[Help]Need some help with IsValidModel by ******
#1

Hey guys,
I've been working on an object editing system and tried to filter out all invalid objects models by this IsValidModel function written by ******(maybe it's been few years?).

It worked perfectly as usually for object models ranging from 321 to 18630(or similar?) which were in samp before 0.3c,however,IT FILTERED OUT ALL 830 OBJECTS ADDED IN SAMP SINCE 0.3c(18630 ~ 19515)!
I do need to keep those new object models but I am unable to figure out how 'IsValidModel' works thus I can't modify it at all!

Has somebody came across the same problem or have any idea how to solve it?Please post here buddies!

I wonder whether the following code should be updated(or update available but I haven't found it?) in YSI system or something?

Here's the code 'IsValidModel':
pawn Код:
IsValidModel(modelid)
{
    // Created by ******.

    static modeldat[] =
    {
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128,
        -515899393, -134217729, -1, -1, 33554431, -1, -1, -1, -14337, -1, -33,
        127, 0, 0, 0, 0, 0, -8388608, -1, -1, -1, -16385, -1, -1, -1, -1, -1,
        -1, -1, -33, -1, -771751937, -1, -9, -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, 33554431, -25, -1, -1, -1, -1, -1, -1,
        -1073676289, -2147483648, 34079999, 2113536, -4825600, -5, -1, -3145729,
        -1, -16777217, -63, -1, -1, -1, -1, -201326593, -1, -1, -1, -1, -1,
        -257, -1, 1073741823, -133122, -1, -1, -65, -1, -1, -1, -1, -1, -1,
        -2146435073, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1073741823, -64, -1,
        -1, -1, -1, -2635777, 134086663, 0, -64, -1, -1, -1, -1, -1, -1, -1,
        -536870927, -131069, -1, -1, -1, -1, -1, -1, -1, -1, -16384, -1,
        -33554433, -1, -1, -1, -1, -1, -1610612737, 524285, -128, -1,
        2080309247, -1, -1, -1114113, -1, -1, -1, 66977343, -524288, -1, -1, -1,
        -1, -2031617, -1, 114687, -256, -1, -4097, -1, -4097, -1, -1,
        1010827263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -32768, -1, -1, -1, -1, -1,
        2147483647, -33554434, -1, -1, -49153, -1148191169, 2147483647,
        -100781080, -262145, -57, 134217727, -8388608, -1, -1, -1, -1, -1, -1,
        -1, -1, -1, -1, -1, -1, -1, -1, -1048577, -1, -449, -1017, -1, -1, -1,
        -1, -1, -1, -1, -1, -1, -1, -1, -1835009, -2049, -1, -1, -1, -1, -1, -1,
        -8193, -1, -536870913, -1, -1, -1, -1, -1, -87041, -1, -1, -1, -1, -1,
        -1, -209860, -1023, -8388609, -2096897, -1, -1048577, -1, -1, -1, -1,
        -1, -1, -897, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1610612737,
        -3073, -28673, -1, -1, -1, -1537, -1, -1, -13, -1, -1, -1, -1, -1985,
        -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1056964609, -1, -1, -1,
        -1, -1, -1, -1, -2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
        -236716037, -1, -1, -1, -1, -1, -1, -1, -536870913, 3, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 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, -2097153, -2109441, -1, 201326591, -4194304, -1, -1,
        -241, -1, -1, -1, -1, -1, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, -32768, -1, -1, -1, -2, -671096835, -1, -8388609, -66323585, -13,
        -1793, -32257, -247809, -1, -1, -513, 16252911, 0, 0, 0, -131072,
        33554383, 0, 0, 0, 0, 0, 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, -1, 8356095, 0, 0, 0, 0, 0,
        0, -256, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
        -268435449, -1, -1, -2049, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
        92274627, -65536, -2097153, -268435457, 591191935, 1, 0, -16777216, -1,
        -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 127
    };
    if ((modelid >= 0) && ((modelid / 32) < sizeof (modeldat)) && (modeldat[modelid / 32] & (1 << (modelid % 32))))
    {
        return 1;
    }
    return 0;
}
P.S.I have searched the forum serveral times by key words 'IsValid','IsValidModel','IsValidObject' but found nothing helpful.
Reply
#2

Quote:
Originally Posted by ******
Посмотреть сообщение
Actually, it is apparently missing a few of the lower objects too - IIRC the nodding chicken isn't in that set, and maybe a few other script controlled objects not in IDE files. I'll try and set something up to generate the array, until then you could do "if old object use that, else check another way".
Here comes the function author himself ha,thanks pal!
Anyway I have tried to seperate the checkings,basically in 3 ways,
1.objects between 615 to 18630 using your array to check.
2.objects between 321 to 615,2nd checking(Actually no checking,I'm not quite sure,still testing).
3.objects between 18631 to 19515,3rd checking(Actually no checking either 'cause they're all valid)
So it would be like this:
321----614 615----------18630 18631---19515
No checking IsValidModel No Checking
Quite awful isn't it,however it works..

Hope updated array being generated and released soon~
And thanks for the help!
P.S.Title updated.
Reply
#3

Quote:
Originally Posted by ******
Посмотреть сообщение
What are 321-614? Aren't those vehicles and weapons? If all the IDs 18631-19515 are valid it does make the update slightly easier. However, I made that function a LONG time ago and it was automatically generated by code I no longer have. However I would say that actually splitting it up like that is probably the simplest way in terms of development. Technically integrating the lower objects in shouldn't mean too much work as they are in the range covered by all those leading zeros at the start of the array.

Each cell holds 32 1s or 0s, each for one single object. That's how this compresses 18,000 objects in to "only" ~560 cells. It would also have been vastly more obvious had I used hex or even boolean numbers instead of decimal, but meh (both would have made it FAR easier to tweak which objects are valid).
321-614 is just an approximate range of objects I intended to make use of(yes they are weapons and vehicles) and several tests've proven the valid range is basically 321-373.And yes to bind all these together is a piece of cake.

Now I can understand that the array above was perhaps generated from the original GTA:SA IDE files and stored in an large array of cells consist of 32 bits.
Thanks a lot~
Reply
#4

This should do it (W.I.P. for Hold Studio):
PHP код:
#!/usr/bin/env php
<?php
    
if (is_dir('/Volumes/C/Program Files (x86)/Rockstar Games/GTA San Andreas'))
        
define('GTA_DIR', '/Volumes/C/Program Files (x86)/Rockstar Games/GTA San Andreas');
    else
        
define('GTA_DIR', '/Volumes/BOOTCAMP/Program Files (x86)/Rockstar Games/GTA San Andreas');
    
    
$scanner = new HoldStudioScanner();
    
    
BuildBitArray($scanner);
    
//BuildModelNameArray($scanner);
    
    
function BuildBitArray(HoldStudioScanner $scanner = null) {
        if (
$scanner === null)
            
$scanner = new HoldStudioScanner();
        if (empty(
$scanner->models))
            
$scanner->scan(GTA_DIR);
        
        for (
$i = 0; $i < 20000 / 32; $i++) {
            if (
$i % 2)
                echo 
", ";
            else if (
$i)
                echo 
",\n";
            
            
printf("0b%032b", @$scanner->valid[$i]);
        }
    }
    
    class 
HoldStudioScanner
    
{
        var 
$models = array();
        var 
$valid;
        
        function 
scan($directory) {
            
$directory = realpath($directory);
            
            if (
$directory === false)
                throw new 
InvalidArgumentException("Invalid directory given: \"$directory\".");
            
            
$iterator = new RecursiveIteratorIterator(
                            new 
HoldStudioRecursiveFilterIterator(
                                new 
RecursiveDirectoryIterator($directory)
                            )
                        );
            
            
$valid = array();
            
            foreach (
$iterator as $path) {
                
$contents = file_get_contents($path);
                
                if (
preg_match_all('/^\s*(objs|anim|weap|tobj)\s*$(.*?)^\s*end\s*$/ism', $contents, $object_matches, PREG_SET_ORDER)) {
                    foreach (
$object_matches as $match) {
                        switch (
strtolower($match[1])) {
                            case 
'inst':
                                
$pat = <<<EOD
                                    /^
                                        \s*(?<id>\d+)\s*,
                                        \s*(?<model>[\\(\\)a-z0-9_+-]+)\s*,
                                        \s*(?<interior>-?\d+)\s*,
                                        \s*(?<pos_x>-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:e[+-]?[0-9]+)?)\s*,
                                        \s*(?<pos_y>-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:e[+-]?[0-9]+)?)\s*,
                                        \s*(?<pos_z>-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:e[+-]?[0-9]+)?)\s*,
                                        \s*(?<rot_x>-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:e[+-]?[0-9]+)?)\s*,
                                        \s*(?<rot_y>-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:e[+-]?[0-9]+)?)\s*,
                                        \s*(?<rot_z>-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:e[+-]?[0-9]+)?)\s*,
                                        \s*(?<rot_w>-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:e[+-]?[0-9]+)?)\s*,
                                        \s*(?<lod>-?\d+)\s*
                                    $/ismx
EOD;
                                
                                break;
                            
                            case 
'objs':
                            case 
'anim':
                            case 
'weap':
                                
$pat = <<<EOD
                                    /^
                                        \s*(?<id>\d+)\s*,
                                        \s*(?<model>[\\(\\)a-z0-9_+-]+)\s*,
                                        \s*(?<texture>[\\(\\)a-z0-9_+-]+)\s*,
                                        (\s*(?<clumps>\d+)\s*,)?
                                        (\s*(?<animation>[\\(\\)a-z0-9_+-]*)\s*,)?
                                        (\s*(?<count>\d+)\s*,)?
                                        \s*(?<draw_distance>-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:e[+-]?[0-9]+)?)\s*,
                                        \s*(?<flags>-?\d+)\s*
                                    $/ismx
EOD;
                                
                                break;
                            
                            case 
'tobj':
                                
// ID, ModelName, TextureName, ObjectCount, DrawDistance, [DrawDistance2, ...], Flags, TimeOn, TimeOff
                                
$pat = <<<EOD
                                    /^
                                        \s*(?<id>\d+)\s*,
                                        \s*(?<model>[\\(\\)a-z0-9_+-]+)\s*,
                                        \s*(?<texture>[\\(\\)a-z0-9_+-]+)\s*,
                                        \s*(?<clumps>\d+)\s*,
                                        
                                    /ismx
EOD;
                                break;
                            
                            default:
                                throw new 
UnexpectedValueException("Unsupported section: \"{$match[1]}\".");
                        }
                        
                        if (
preg_match_all($pat, $match[2], $matches, PREG_SET_ORDER)) {
                            foreach (
$matches as $m) {
                                
$this->models[$m['id']] = (object) array(
                                    
'id'            => $m['id'],
                                    
'name'          => $m['model'],
                                    
'texture'       => $m['texture'],
                                    
'clumps'        => $m['clumps'],
                                    
'count'         => @$m['count'],
                                    
'draw_distance' => @$m['draw_distance'],
                                    
'flags'         => @$m['flags'],
                                    
'valid'         => false,
                                    
'file'          => basename($path)
                                );
                                
                                if (
preg_match('/^lod|lod$|\blod\b|lod_|_lod|lodbit|^laeLOD|lod\d+$/i', $m['model']))
                                    continue;
                                
                                if (@
$m['draw_distance'] > 299.0)
                                    continue;
                                
                                
$id = (int) $m['id'];
                                
$slot = (int) floor($id / 32);
                                
                                if (!isset(
$valid[$slot]))
                                    
$valid[$slot] = 0;
                                
                                
$valid[$slot] |= 1 << ($id & 31);
                                
                                
$this->models[$m['id']]->valid = true;
                            }
                        }
                    }
                }
            }
            
            
$this->valid = $valid;
        }
        
        public function 
isValid($id) {
            
$slot = (int) floor($id / 32);
            
            if (!isset(
$this->valid[$slot]))
                return 
false;
            else
                return !!(
$this->valid[$slot] & (1 << ($id & 31)));
        }
    }
    
    class 
HoldStudioRecursiveFilterIterator extends RecursiveFilterIterator
    
{
        function 
__construct(RecursiveDirectoryIterator $iterator) {
            
parent::__construct($iterator);
        }
        
        public function 
accept() {
            
$current = $this->current();
            
            if (
$current->isDir())
                return 
true;
            
            
$ext = strtolower($current->getExtension());
            
            return 
in_array($ext, array('ide', 'ipl'), true);
        }
    }
?>
Output (SA-MP 0.3e):
Код:
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b11111111111011111110110111111110, 0b00000000001111111111111111111111,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b11111111111111111111111110000000,
0b11100001001111111111111111111111, 0b11110111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b00000001111000000111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111100011111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111011111, 0b11111111111111111111111101111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111100000000000001111111111,
0b11111111111111111111111111111111, 0b11111111111010111101111111111111,
0b11111111111111111111111111111111, 0b11111111111111111001111111111111,
0b11111111111111111111111111111111, 0b10000000000011111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111011111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111101011101111111111, 0b11111111111111111111111111110111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111110011,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111100111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111011110111101111,
0b10000000000000000000000000000000, 0b00000010000010000000010011111111,
0b00000000001000000100000000000000, 0b11111111101101100101111000000000,
0b01110000111111111111111111111011, 0b00000000001111111111111111000000,
0b10011111110000000000001111001100, 0b11111111101111001100000000011110,
0b00001110110111111100111111111111, 0b11111111111111111111111111001110,
0b11111000000011111111111111111111, 0b11111111111111111110111101101011,
0b01000000000000000111111101110111, 0b11010111111111111111000001111100,
0b11110011111111111111111001111111, 0b01011111111111111111111111111111,
0b01111110100001111011111010101011, 0b10001001010101100100001000010000,
0b10100000000000000001010000101010, 0b00001000001111101010111100100000,
0b11111111111111111111111010100001, 0b00000000011111111111110101111111,
0b00001111111111111111110000111100, 0b11011110111111001111011011111011,
0b11111111111001111111110011001110, 0b11111111111111111111111111111111,
0b01111111111111111111111110111111, 0b01111000111111111111110111111111,
0b00011100000000010000000000000111, 0b00001111111100001000000000000000,
0b10101111001001110111110011111000, 0b01010101010101010110100000101011,
0b01110111110101011111110100101001, 0b01111111111100101110111011111011,
0b11111111111111111100101111001000, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b00000000011111111111111111111111, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b11111111000000000000000000000000, 0b00010100101000001111111111111111,
0b11111111101111011111111111000000, 0b00111111111111111111111100000001,
0b11110000000000000000000000000000, 0b00000101010101010111111111111111,
0b11110010110111000011111010000000, 0b11111110111110000111110111010000,
0b00000000000000011111111111111111, 0b00000000000000000000000000000000,
0b11111111111111111111111111000000, 0b11111111111111111111111111111111,
0b11011111111111111111111111111111, 0b00000000000000000000000000000111,
0b00000000000000000000000000000000, 0b11010111111000000000000000000000,
0b10110011001000101111111111111111, 0b00011000010111010101011111010111,
0b11011111111111111111010101111111, 0b11111111111111100000000000000011,
0b11111111111111111111111111111111, 0b11111111111111111100000101111111,
0b00000000000000000000000111111111, 0b00011000000001111000000000000000,
0b11111111111111100111100000000100, 0b11110100011011111111110000000000,
0b11111110001001111111110000000111, 0b11111111110110000100101010101000,
0b11111111111111111100000000000000, 0b11111111111111111111111111111111,
0b11101011111011110011111111111111, 0b11111111111111111111111111111111,
0b00010001000001111100001111111111, 0b00100000000000000000000000000000,
0b00000000000000000000000000000000, 0b11111101000000000000000000000000,
0b11110001110101000001111111111111, 0b00000000000001101111010000010010,
0b11111111111111111111111110000000, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11100001111100000111100000000000, 0b11100110011111111101011111111011,
0b00000000000000000000000100111001, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000100110000101100111111001100,
0b11111111111110000000000000000000, 0b00000000000001111111111111111111,
0b11000001111111011100000110000000, 0b00000111111101111111111111111111,
0b00000000001000011110000111010010, 0b00111000100111110011110000000000,
0b00111111111110101000001001111110, 0b00000000000000100001111100000000,
0b11111111111111111111111100000000, 0b01111111111111111111111111111111,
0b01011100001111111110101111110111, 0b11100010111111100000000000111111,
0b11011000011000110011100011111001, 0b01100110000011110001100000010000,
0b00000111100000000000000000000100, 0b00010111111101100011100001101010,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b11111111101111111000000000000000, 0b01111000000111100000000111111111,
0b00000000011111110111111110111111, 0b11111111111111111111111111111111,
0b00000000101001101111111111111111, 0b11111111111111111111111111111110,
0b10100001000000111111111111111111, 0b11111111111111111111111111111011,
0b00000000000000000000000000000011, 0b00000000000000100000000000000000,
0b01110001111111010000000000010000, 0b11111101111101100011011111111111,
0b10000000011111111111110101010111, 0b11011111100000010011001010110111,
0b11010011101011111111111111111111, 0b10101010000010010000001111111000,
0b11111000101111100000111110010110, 0b11111111100000000000000000000001,
0b11111111111111111111111111111111, 0b01111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111101111111111,
0b11111111111111111111111111111111, 0b00000000000001111111111111111111,
0b00111000000000010001000000000010, 0b00000000000011100000000000000000,
0b00000000000000000000100000000000, 0b00000000000000000000000000000000,
0b11110101000000000000000000000000, 0b00011111111000000101001000000111,
0b11110000011110100011011101000000, 0b01111110111111111111111111111111,
0b10101000000111110100101111011100, 0b11111111111111111111110000111010,
0b00000000000000000000011111111111, 0b11111111111111111111111111111110,
0b00001000111111111111111111111111, 0b00000000000000000000000000000000,
0b00001111111110000000001111111101, 0b00111110000001111111101110100000,
0b00001111111101111100011111000100, 0b11101010111101010011000111110000,
0b11101010000000000000000111010001, 0b10001110110101100101000001110101,
0b11000011111010101011111111111111, 0b11010110101111110000000000111111,
0b00011111111111111111111111010100, 0b11111111111111111111111111111111,
0b00111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b10000000001111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b00000000000000111111111111111111,
0b00000000000000000000000001000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00011111000000000000000000000000,
0b00011111111111100111111111111111, 0b00000011111111111111111111111110,
0b00000000000000000000000000000000, 0b00101100000110000000000000010000,
0b11100000111110000000001000000000, 0b11111000000000011111111100000000,
0b11010000111111101011111111111111, 0b11001101010100011100011101000011,
0b11111111111101010011110011100111, 0b01000000000111111001101111111111,
0b00000000111010111111110010000111, 0b11111111111000000000001111111111,
0b11111111111111111111111111111111, 0b11111111111011110111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b00000000000001100000001111111111, 0b00000000000000000000000000000000,
0b11100000000000000000000000000000, 0b00000000000000000000000000000001,
0b11111111111111111111110000010000, 0b00000111111111111111111111111111,
0b11111111111111111110100000000000, 0b11111111111111111111111110111111,
0b00000011100001111111111111111111, 0b00000000001100000000000000000000,
0b01100110001011010000000000000000, 0b11111111111111111111111111111111,
0b00000111111111111111111111111111, 0b00000000000000000000000011111110,
0b11111111110100000000000000000000, 0b00000000000000000111111111101011,
0b01100000000000000000000110011100, 0b11111111111111111111111111101010,
0b11111100000000000111111111111111, 0b00000000000000000000000001111111,
0b11101111000000000000000000000000, 0b11111110111111111111111111111111,
0b11111111111111111111011111111111, 0b11000000001000000000000011011001,
0b11011111111111111111111111111111, 0b11100000011000000000011111111110,
0b00000000001111100011111111111111, 0b00011110111111000000000000000000,
0b11001111111100001001011111110100, 0b00110001110001111000011101011110,
0b00000000000000000000000001110110, 0b11111111111111111100000000000000,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b00111111111111111111111111111111,
0b00000000000000000000000000000000, 0b11000000000000000000000000000000,
0b00000000000000011111111111111111, 0b11101111111111110100001000000000,
0b00001010000000001111111111111111, 0b00001100000110011000000000000000,
0b01010011111111111111111111000000, 0b11000001111111111100000000000100,
0b11111111111111111111111111111111, 0b11001111110000000000111111111111,
0b11111111111111111111111111111111, 0b00001111111111111111111111011111,
0b00000011100000000000111000100000, 0b11111111111111111110000000100000,
0b11111111111001111111111111111111, 0b11111111111111111111111111111111,
0b00000000000000000000000011111111, 0b10000000000000000000000000000000,
0b11111111111111111111111111111111, 0b11111111111111111111111111001111,
0b00000000000000000111111000001111, 0b00000000000000000000000000000000,
0b11110111100000000000000000000000, 0b00111111111100001011111111111111,
0b10110111101010010000000000000000, 0b11010000111111110001011011101010,
0b10000011100000101101001011010000, 0b11111111111110000100000010111101,
0b11110011011111110100001100011111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b00000000000110011111111111111111,
0b00001111100000000000000000000000, 0b10000000000000001011111010000000,
0b11100100000001111000000000000000, 0b00000000000000000000000000000011,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b11111111111111111111111111111111, 0b11111111111111111111111111111011,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b00001110001111111101111001011011,
0b00011110011000011100011000111100, 0b11000000001011111111111110010001,
0b01111111111111111101101111111111, 0b00111111111111111010100001110010,
0b01111111111000000100000001011000, 0b00000000001110000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000111000000000000000,
0b01000001000100000011101000000001, 0b11001111100110110000000000111010,
0b00000000000000000000000000000000, 0b11111000000000000100000000000000,
0b01000000001000000001111110111111, 0b11111111111011100111000000000000,
0b11111111111111111111111111111111, 0b00001111111111111111111111111111,
0b11111111110000000000000000000000, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111100001111,
0b11111111111111111111111111111111, 0b01111111101111011111111111111111,
0b00100001000000000000000000000010, 0b10110111011001100111011000001000,
0b00000000001000000000000010000111, 0b10000100000000011000001111100000,
0b00000000000000000000000000000100, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b11111111111111111000000000000000,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11010111111111111111111111111101, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111100000011111111111111111111,
0b11111111111111111111111111110011, 0b11111111111111111111100011111111,
0b11111111111111111000000111111111, 0b11111111111111000011111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111110111111111, 0b00000000111101111111111111101111,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b11111111111111100000000000000000,
0b00000001111111111111111111111111, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111000000011111110111111111, 0b11111111111111111111111111111111,
0b11111111111111101111111111111111, 0b00000111111111111111111111111111,
0b00001111111111111111111111111111, 0b01110100111101000100000111110000,
0b10101000000000000000000000000001, 0b00000000111101000000000000000011,
0b00000000111111000000000000000000, 0b00001001000111000000000000000000,
0b00100010100000100000000000000000, 0b11111111111110001100000000100100,
0b11111111111111111111111111111111, 0b01110000011101100011111001111010,
0b11111000000000000000000000011110, 0b11000001111101100000111111111111,
0b00000000011111111111111111101110, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b11111111111111111111111100000000,
0b11111110001111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b01010111111111111111111111111111,
0b01010101010101010101010101010101, 0b01010101000101010101010101010101,
0b01010101010101010101010101010101, 0b10101010101010000101010101010101,
0b01111010111111111111111111111010, 0b00000000111010101101100000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b10000000000000111100000000000000,
0b11110000000000000000000000000101, 0b11111111111111111111111011111111,
0b11111111111111111111111111111111, 0b11111101101101101100111111100001,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b00000000000000000000000000011111,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000101011000000000000, 0b01111011000000100000000000100000,
0b11000011111111010000111111011000, 0b11111011100011110110111001111001,
0b11001101111111110110000111100111, 0b00000101011110110000000001111110,
0b11111111111111110000000000000000, 0b11111111110111111111111111111111,
0b11111111111111111111111111111111, 0b00100011011111111111111111111111,
0b00000000000000000000000000000001, 0b00000000000000000000000000000000,
0b11111111000000000000000000000000, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b00000111111111111111111111111111, 0b00000000000000000000000000000000,
0b11111111111111111111111111111111, 0b00000000001111111111111111111111,
0b00000000010000000000000000000001, 0b00000011100000000000000000000000,
0b00000000000000000000001111101010, 0b11111111111111110000000000000000,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b10111111111111111111111111111111, 0b11111111111111111100111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b01111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111110011111111111, 0b11101111111111111111000111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11110000000001111111111111111111, 0b00001111111111111111111111111111,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00100000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)