Show
Ignore:
Timestamp:
12/06/07 17:22:50 (7 years ago)
Author:
tokuhirom
Message:

lang/perl/HTTP-MobileAgent?-Flash: 最新のデータに追従しつつ、スクレイピングスクリプトを最新のHTMLに追従させた。

Location:
lang/perl/HTTP-MobileAgent-Flash/trunk
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/HTTP-MobileAgent-Flash/trunk/bin/lwp_flash_lite_map_docomo.pl

    r2627 r2636  
    11#!/usr/bin/perl 
    2  
    32use strict; 
    43use warnings; 
    5 use Jcode; 
     4use utf8; 
     5use Encode; 
    66use LWP::UserAgent; 
     7use Web::Scraper; 
     8use URI; 
    79 
    810my $URL = 'http://www.nttdocomo.co.jp/service/imode/make/content/spec/flash/index.html'; 
    911 
    10 do_task(@ARGV); 
     12main(@ARGV); 
    1113 
    12 sub do_task { 
    13     my $ua = LWP::UserAgent->new; 
    14     my $res = $ua->get($URL); 
    15     unless ($res->is_success) { 
    16         die "Can't get $URL : " . $res->status_line; 
    17     } 
     14sub main { 
     15    my @args = @_; 
    1816 
    19     my $html = Jcode->new($res->content)->euc; 
     17    my $stuff = (@args == 1) ? _slurp($args[0]) : URI->new($URL); 
    2018 
    21     my @flash; 
    22     { 
    23         my $re = regexp_model(); 
    24         while ($html =~ /$re/igs) { 
    25             push(@flash, { 
    26                 model          => uc $1, 
    27                 width          => $2, 
    28                 height         => $3, 
    29                 max_file_size  => $4, 
    30             }); 
    31         } 
    32     } 
     19    my $versions = _scrape($stuff); 
     20    _output($versions); 
     21} 
    3322 
    34     { 
    35         my $re = regexp_ver(); 
    36         while ($html =~ /$re/igs) { 
    37             my($count, $version) = ($1, $2); 
    38             my $i = 1; 
    39             for my $f (@flash) { 
    40                 last if ($i > $count); 
    41                 unless ($f->{version}) { 
    42                     $i++; 
    43                     $f->{version} = $version; 
    44                 } 
     23sub _scrape { 
     24    my $stuff = shift; 
     25 
     26    my $ret = scraper { 
     27        process '//div[position()<7]/div/div[@class="section"]', 'versions[]', scraper { 
     28            process '//h2/a/text()', 'version', ['TEXT', sub { s/^Flash Lite // }]; 
     29            process '//tr[@class="acenter"]', 'models[]', [sub { 
     30                my $elem = $_; 
     31                my $tree = $elem->as_tree; 
     32                $_->delete for $tree->findnodes('//td[@class="brownLight acenter middle"]'); # remove series info. 
     33 
     34                scraper { 
     35                    process '//td[position()=1]', 'model', ['TEXT', sub { s/μ/myu/; s/\(.+)// }, sub { uc } ]; 
     36                    process '//td[position()=2]', 'display', ['TEXT', sub { /(\d+)×(\d+)/; +{width=>$1, height => $2} }]; 
     37                    process '//td[position()=4]', 'max_file_size', 'TEXT'; 
     38                }->scrape($tree); 
     39            }]; 
     40        }; 
     41    }->scrape($stuff); 
     42 
     43    $ret->{versions}; 
     44} 
     45 
     46sub _output { 
     47    my $versions = shift; 
     48 
     49    for my $version (@{$versions}) { 
     50        for my $model (@{$version->{models}}) { 
     51            printf "%s:\n", $model->{model}; 
     52            printf "  version : %s\n", $version->{version}; 
     53            for my $key (qw/width height/) { 
     54                printf "  $key : $model->{display}->{$key}\n"; 
    4555            } 
    46         } 
    47     } 
    48  
    49     for my $f (@flash) { 
    50         printf "%s:\n", $f->{model}; 
    51         for my $key (qw(version width height max_file_size)) { 
    52             printf "  %s : %s\n", $key, $f->{$key}; 
     56            printf "  max_file_size : $model->{max_file_size}\n"; 
    5357        } 
    5458    } 
    5559} 
    5660 
    57 sub regexp_model { 
    58     return <<'REGEX'; 
    59 <TD><FONT SIZE="2">([A-Z]+\d+\w*).*?</FONT></TD>\s* 
    60 <TD><FONT SIZE="2">(\d+)��\d+)</FONT></TD>\s* 
    61 <TD><FONT SIZE="2">.+?</FONT></TD>\s* 
    62 <TD><FONT SIZE="2">(\d+)</FONT></TD>\s* 
    63 <TD><FONT SIZE="2">.+?</FONT></TD>\s* 
    64 <TD><FONT SIZE="2">.+?</FONT></TD>\s* 
    65 REGEX 
     61sub _slurp { 
     62    my $fname = shift; 
     63 
     64    open my $fh, '<', $fname or die $!; 
     65    my $content = do { local $/; <$fh> }; 
     66    close $fh; 
     67 
     68    decode('cp932', $content); 
    6669} 
    6770 
    68 sub regexp_ver { 
    69     return <<'REGEX'; 
    70 <TR ALIGN="CENTER" BGCOLOR="#FFFFFF">\s* 
    71 <TD ROWSPAN="(\d+)" BGCOLOR="#FFFFCC"><FONT SIZE="2" COLOR="#009900">(\d+\.\d+)</FONT></TD>\s* 
    72 <TD ROWSPAN="\d+" BGCOLOR="#FFFFCC"><FONT SIZE="2" COLOR="#009900">\w+</FONT></TD>\s* 
    73 REGEX 
     71sub HTML::Element::as_tree { 
     72    my $self = shift; 
     73 
     74    my $tree = HTML::TreeBuilder::XPath->new; 
     75    $tree->parse($self->as_HTML); 
     76    $tree; 
    7477} 
     78 
  • lang/perl/HTTP-MobileAgent-Flash/trunk/bin/make_map.pl

    r2627 r2636  
    3131    $Data::Dumper::Indent = 1; 
    3232    $Data::Dumper::Terse  = 1; 
     33    $Data::Dumper::Sortkeys = 1; 
    3334    printf <<'TEMPLATE', $0, Data::Dumper->Dump([ $map ]); 
    3435package HTTP::MobileAgent::Flash::DoCoMoFlashMap; 
  • lang/perl/HTTP-MobileAgent-Flash/trunk/lib/HTTP/MobileAgent/Flash/DoCoMoFlashMap.pm

    r2627 r2636  
    3030 
    3131$FLASH_MAP ||= { 
     32  'D505I' => { 
     33    'height' => '270', 
     34    'max_file_size' => '200', 
     35    'version' => '1.0', 
     36    'width' => '240' 
     37  }, 
     38  'D505IS' => { 
     39    'height' => '270', 
     40    'max_file_size' => '300', 
     41    'version' => '1.0', 
     42    'width' => '240' 
     43  }, 
     44  'D506I' => { 
     45    'height' => '270', 
     46    'max_file_size' => '300', 
     47    'version' => '1.0', 
     48    'width' => '240' 
     49  }, 
     50  'D701I' => { 
     51    'height' => '240', 
     52    'max_file_size' => '2000', 
     53    'version' => '1.1', 
     54    'width' => '230' 
     55  }, 
     56  'D701IWM' => { 
     57    'height' => '240', 
     58    'max_file_size' => '2000', 
     59    'version' => '1.1', 
     60    'width' => '230' 
     61  }, 
     62  'D702I' => { 
     63    'height' => '240', 
     64    'max_file_size' => '2000', 
     65    'version' => '1.1', 
     66    'width' => '230' 
     67  }, 
     68  'D702IBCL' => { 
     69    'height' => '240', 
     70    'max_file_size' => '2000', 
     71    'version' => '1.1', 
     72    'width' => '230' 
     73  }, 
     74  'D702IF' => { 
     75    'height' => '240', 
     76    'max_file_size' => '2000', 
     77    'version' => '1.1', 
     78    'width' => '230' 
     79  }, 
     80  'D703I' => { 
     81    'height' => '240', 
     82    'max_file_size' => '2048', 
     83    'version' => '1.1', 
     84    'width' => '230' 
     85  }, 
     86  'D704I' => { 
     87    'height' => '240', 
     88    'max_file_size' => '2048', 
     89    'version' => '1.1', 
     90    'width' => '230' 
     91  }, 
     92  'D800IDS' => { 
     93    'height' => '240', 
     94    'max_file_size' => '2000', 
     95    'version' => '1.1', 
     96    'width' => '230' 
     97  }, 
     98  'D851IWM' => { 
     99    'height' => '320', 
     100    'max_file_size' => '2000', 
     101    'version' => '1.1', 
     102    'width' => '230' 
     103  }, 
     104  'D900I' => { 
     105    'height' => '270', 
     106    'max_file_size' => '1024', 
     107    'version' => '1.0', 
     108    'width' => '240' 
     109  }, 
     110  'D901I' => { 
     111    'height' => '240', 
     112    'max_file_size' => '2000', 
     113    'version' => '1.1', 
     114    'width' => '230' 
     115  }, 
     116  'D901IS' => { 
     117    'height' => '240', 
     118    'max_file_size' => '2000', 
     119    'version' => '1.1', 
     120    'width' => '230' 
     121  }, 
     122  'D902I' => { 
     123    'height' => '320', 
     124    'max_file_size' => '2000', 
     125    'version' => '1.1', 
     126    'width' => '230' 
     127  }, 
     128  'D902IS' => { 
     129    'height' => '320', 
     130    'max_file_size' => '2000', 
     131    'version' => '1.1', 
     132    'width' => '230' 
     133  }, 
     134  'D903I' => { 
     135    'height' => '320', 
     136    'max_file_size' => '2048', 
     137    'version' => '1.1', 
     138    'width' => '230' 
     139  }, 
     140  'D903ITV' => { 
     141    'height' => '320', 
     142    'max_file_size' => '2048', 
     143    'version' => '1.1', 
     144    'width' => '230' 
     145  }, 
     146  'D904I' => { 
     147    'height' => '320', 
     148    'max_file_size' => '2048', 
     149    'version' => '1.1', 
     150    'width' => '240' 
     151  }, 
     152  'D905I' => { 
     153    'height' => '704', 
     154    'max_file_size' => '3072', 
     155    'version' => '3.0', 
     156    'width' => '480' 
     157  }, 
     158  'F505I' => { 
     159    'height' => '268', 
     160    'max_file_size' => '300', 
     161    'version' => '1.0', 
     162    'width' => '240' 
     163  }, 
     164  'F505IGPS' => { 
     165    'height' => '268', 
     166    'max_file_size' => '300', 
     167    'version' => '1.0', 
     168    'width' => '240' 
     169  }, 
     170  'F506I' => { 
     171    'height' => '268', 
     172    'max_file_size' => '300', 
     173    'version' => '1.0', 
     174    'width' => '240' 
     175  }, 
     176  'F700I' => { 
     177    'height' => '240', 
     178    'max_file_size' => '2000', 
     179    'version' => '1.1', 
     180    'width' => '230' 
     181  }, 
     182  'F700IS' => { 
     183    'height' => '240', 
     184    'max_file_size' => '2000', 
     185    'version' => '1.1', 
     186    'width' => '230' 
     187  }, 
     188  'F702ID' => { 
     189    'height' => '240', 
     190    'max_file_size' => '2000', 
     191    'version' => '1.1', 
     192    'width' => '230' 
     193  }, 
     194  'F703I' => { 
     195    'height' => '240', 
     196    'max_file_size' => '2048', 
     197    'version' => '1.1', 
     198    'width' => '230' 
     199  }, 
     200  'F704I' => { 
     201    'height' => '240', 
     202    'max_file_size' => '2048', 
     203    'version' => '1.1', 
     204    'width' => '230' 
     205  }, 
     206  'F882IES' => { 
     207    'height' => '256', 
     208    'max_file_size' => '2000', 
     209    'version' => '1.1', 
     210    'width' => '240' 
     211  }, 
     212  'F883I' => { 
     213    'height' => '256', 
     214    'max_file_size' => '2000', 
     215    'version' => '1.1', 
     216    'width' => '240' 
     217  }, 
     218  'F883IES' => { 
     219    'height' => '256', 
     220    'max_file_size' => '2000', 
     221    'version' => '1.1', 
     222    'width' => '240' 
     223  }, 
     224  'F900I' => { 
     225    'height' => '240', 
     226    'max_file_size' => '1000', 
     227    'version' => '1.0', 
     228    'width' => '230' 
     229  }, 
     230  'F900IC' => { 
     231    'height' => '240', 
     232    'max_file_size' => '1000', 
     233    'version' => '1.0', 
     234    'width' => '230' 
     235  }, 
     236  'F900IT' => { 
     237    'height' => '240', 
     238    'max_file_size' => '1000', 
     239    'version' => '1.0', 
     240    'width' => '230' 
     241  }, 
     242  'F901IC' => { 
     243    'height' => '240', 
     244    'max_file_size' => '2000', 
     245    'version' => '1.1', 
     246    'width' => '230' 
     247  }, 
     248  'F901IS' => { 
     249    'height' => '240', 
     250    'max_file_size' => '2000', 
     251    'version' => '1.1', 
     252    'width' => '230' 
     253  }, 
     254  'F902I' => { 
     255    'height' => '240', 
     256    'max_file_size' => '2000', 
     257    'version' => '1.1', 
     258    'width' => '230' 
     259  }, 
     260  'F902IS' => { 
     261    'height' => '240', 
     262    'max_file_size' => '2000', 
     263    'version' => '1.1', 
     264    'width' => '230' 
     265  }, 
     266  'F903I' => { 
     267    'height' => '240', 
     268    'max_file_size' => '2048', 
     269    'version' => '1.1', 
     270    'width' => '230' 
     271  }, 
     272  'F903IBSC' => { 
     273    'height' => '240', 
     274    'max_file_size' => '2048', 
     275    'version' => '1.1', 
     276    'width' => '230' 
     277  }, 
     278  'F903IX' => { 
     279    'height' => '240', 
     280    'max_file_size' => '2048', 
     281    'version' => '1.1', 
     282    'width' => '230' 
     283  }, 
     284  'F904I' => { 
     285    'height' => '352', 
     286    'max_file_size' => '2048', 
     287    'version' => '1.1', 
     288    'width' => '240' 
     289  }, 
     290  'F905I' => { 
     291    'height' => '704', 
     292    'max_file_size' => '3072', 
     293    'version' => '3.0', 
     294    'width' => '480' 
     295  }, 
     296  'L704I' => { 
     297    'height' => '280', 
     298    'max_file_size' => '3072', 
     299    'version' => '1.1', 
     300    'width' => '240' 
     301  }, 
     302  'M702IG' => { 
     303    'height' => '267', 
     304    'max_file_size' => '600', 
     305    'version' => '1.1', 
     306    'width' => '240' 
     307  }, 
     308  'M702IS' => { 
     309    'height' => '267', 
     310    'max_file_size' => '600', 
     311    'version' => '1.1', 
     312    'width' => '240' 
     313  }, 
     314  'N505I' => { 
     315    'height' => '270', 
     316    'max_file_size' => '200', 
     317    'version' => '1.0', 
     318    'width' => '240' 
     319  }, 
     320  'N505IS' => { 
     321    'height' => '270', 
     322    'max_file_size' => '400', 
     323    'version' => '1.0', 
     324    'width' => '240' 
     325  }, 
     326  'N506I' => { 
     327    'height' => '295', 
     328    'max_file_size' => '400', 
     329    'version' => '1.0', 
     330    'width' => '240' 
     331  }, 
    32332  'N506IS' => { 
    33     'width' => '240', 
    34     'version' => '1.0', 
     333    'height' => '295', 
    35334    'max_file_size' => '400', 
    36     'height' => '295' 
    37   }, 
    38   'F883I' => { 
    39     'width' => '240', 
    40     'version' => '1.1', 
    41     'max_file_size' => '2000', 
    42     'height' => '256' 
    43   }, 
    44   'F902IS' => { 
    45     'width' => '230', 
    46     'version' => '1.1', 
    47     'max_file_size' => '2000', 
    48     'height' => '240' 
     335    'version' => '1.0', 
     336    'width' => '240' 
     337  }, 
     338  'N506ISII' => { 
     339    'height' => '295', 
     340    'max_file_size' => '400', 
     341    'version' => '1.0', 
     342    'width' => '240' 
     343  }, 
     344  'N601I' => { 
     345    'height' => '270', 
     346    'max_file_size' => '2048', 
     347    'version' => '1.1', 
     348    'width' => '240' 
     349  }, 
     350  'N700I' => { 
     351    'height' => '270', 
     352    'max_file_size' => '2048', 
     353    'version' => '1.1', 
     354    'width' => '240' 
     355  }, 
     356  'N701I' => { 
     357    'height' => '270', 
     358    'max_file_size' => '2048', 
     359    'version' => '1.1', 
     360    'width' => '240' 
     361  }, 
     362  'N701IECO' => { 
     363    'height' => '270', 
     364    'max_file_size' => '2048', 
     365    'version' => '1.1', 
     366    'width' => '240' 
     367  }, 
     368  'N702ID' => { 
     369    'height' => '270', 
     370    'max_file_size' => '2048', 
     371    'version' => '1.1', 
     372    'width' => '240' 
     373  }, 
     374  'N702IS' => { 
     375    'height' => '270', 
     376    'max_file_size' => '2048', 
     377    'version' => '1.1', 
     378    'width' => '240' 
     379  }, 
     380  'N703ID' => { 
     381    'height' => '270', 
     382    'max_file_size' => '2048', 
     383    'version' => '1.1', 
     384    'width' => '240' 
     385  }, 
     386  'N703IMYU' => { 
     387    'height' => '270', 
     388    'max_file_size' => '2048', 
     389    'version' => '1.1', 
     390    'width' => '240' 
     391  }, 
     392  'N704IMYU' => { 
     393    'height' => '270', 
     394    'max_file_size' => '2048', 
     395    'version' => '1.1', 
     396    'width' => '240' 
     397  }, 
     398  'N900I' => { 
     399    'height' => '269', 
     400    'max_file_size' => '1024', 
     401    'version' => '1.0', 
     402    'width' => '240' 
     403  }, 
     404  'N900IG' => { 
     405    'height' => '269', 
     406    'max_file_size' => '1024', 
     407    'version' => '1.0', 
     408    'width' => '240' 
     409  }, 
     410  'N900IL' => { 
     411    'height' => '269', 
     412    'max_file_size' => '1024', 
     413    'version' => '1.0', 
     414    'width' => '240' 
     415  }, 
     416  'N900IS' => { 
     417    'height' => '269', 
     418    'max_file_size' => '1024', 
     419    'version' => '1.0', 
     420    'width' => '240' 
     421  }, 
     422  'N901IC' => { 
     423    'height' => '270', 
     424    'max_file_size' => '2048', 
     425    'version' => '1.1', 
     426    'width' => '240' 
     427  }, 
     428  'N901IS' => { 
     429    'height' => '270', 
     430    'max_file_size' => '2048', 
     431    'version' => '1.1', 
     432    'width' => '240' 
     433  }, 
     434  'N902I' => { 
     435    'height' => '270', 
     436    'max_file_size' => '2048', 
     437    'version' => '1.1', 
     438    'width' => '240' 
     439  }, 
     440  'N902IL' => { 
     441    'height' => '270', 
     442    'max_file_size' => '2048', 
     443    'version' => '1.1', 
     444    'width' => '240' 
     445  }, 
     446  'N902IS' => { 
     447    'height' => '270', 
     448    'max_file_size' => '2048', 
     449    'version' => '1.1', 
     450    'width' => '240' 
     451  }, 
     452  'N902IX' => { 
     453    'height' => '270', 
     454    'max_file_size' => '2048', 
     455    'version' => '1.1', 
     456    'width' => '240' 
     457  }, 
     458  'N903I' => { 
     459    'height' => '270', 
     460    'max_file_size' => '2048', 
     461    'version' => '1.1', 
     462    'width' => '240' 
     463  }, 
     464  'N904I' => { 
     465    'height' => '352', 
     466    'max_file_size' => '2048', 
     467    'version' => '1.1', 
     468    'width' => '240' 
     469  }, 
     470  'N905I' => { 
     471    'height' => '640', 
     472    'max_file_size' => '3072', 
     473    'version' => '3.0', 
     474    'width' => '480' 
     475  }, 
     476  'N905IMYU' => { 
     477    'height' => '640', 
     478    'max_file_size' => '3072', 
     479    'version' => '3.0', 
     480    'width' => '480' 
     481  }, 
     482  'P505I' => { 
     483    'height' => '266', 
     484    'max_file_size' => '256', 
     485    'version' => '1.0', 
     486    'width' => '240' 
     487  }, 
     488  'P505IS' => { 
     489    'height' => '266', 
     490    'max_file_size' => '404', 
     491    'version' => '1.0', 
     492    'width' => '240' 
     493  }, 
     494  'P506IC' => { 
     495    'height' => '266', 
     496    'max_file_size' => '404', 
     497    'version' => '1.0', 
     498    'width' => '240' 
     499  }, 
     500  'P506ICII' => { 
     501    'height' => '266', 
     502    'max_file_size' => '404', 
     503    'version' => '1.0', 
     504    'width' => '240' 
     505  }, 
     506  'P700I' => { 
     507    'height' => '270', 
     508    'max_file_size' => '2000', 
     509    'version' => '1.1', 
     510    'width' => '240' 
     511  }, 
     512  'P701ID' => { 
     513    'height' => '270', 
     514    'max_file_size' => '2000', 
     515    'version' => '1.1', 
     516    'width' => '240' 
     517  }, 
     518  'P702I' => { 
     519    'height' => '270', 
     520    'max_file_size' => '2000', 
     521    'version' => '1.1', 
     522    'width' => '240' 
     523  }, 
     524  'P702ID' => { 
     525    'height' => '270', 
     526    'max_file_size' => '2000', 
     527    'version' => '1.1', 
     528    'width' => '240' 
     529  }, 
     530  'P703I' => { 
     531    'height' => '270', 
     532    'max_file_size' => '2000', 
     533    'version' => '1.1', 
     534    'width' => '240' 
     535  }, 
     536  'P703IMYU' => { 
     537    'height' => '270', 
     538    'max_file_size' => '2000', 
     539    'version' => '1.1', 
     540    'width' => '240' 
     541  }, 
     542  'P704I' => { 
     543    'height' => '270', 
     544    'max_file_size' => '2048', 
     545    'version' => '1.1', 
     546    'width' => '240' 
     547  }, 
     548  'P704IMYU' => { 
     549    'height' => '270', 
     550    'max_file_size' => '2048', 
     551    'version' => '1.1', 
     552    'width' => '240' 
     553  }, 
     554  'P851I' => { 
     555    'height' => '270', 
     556    'max_file_size' => '2000', 
     557    'version' => '1.1', 
     558    'width' => '240' 
     559  }, 
     560  'P900I' => { 
     561    'height' => '266', 
     562    'max_file_size' => '1024', 
     563    'version' => '1.0', 
     564    'width' => '240' 
     565  }, 
     566  'P900IV' => { 
     567    'height' => '266', 
     568    'max_file_size' => '1024', 
     569    'version' => '1.0', 
     570    'width' => '240' 
     571  }, 
     572  'P901I' => { 
     573    'height' => '270', 
     574    'max_file_size' => '2000', 
     575    'version' => '1.1', 
     576    'width' => '240' 
     577  }, 
     578  'P901IS' => { 
     579    'height' => '270', 
     580    'max_file_size' => '2000', 
     581    'version' => '1.1', 
     582    'width' => '240' 
     583  }, 
     584  'P901ITV' => { 
     585    'height' => '270', 
     586    'max_file_size' => '2000', 
     587    'version' => '1.1', 
     588    'width' => '240' 
     589  }, 
     590  'P902I' => { 
     591    'height' => '270', 
     592    'max_file_size' => '2000', 
     593    'version' => '1.1', 
     594    'width' => '240' 
     595  }, 
     596  'P902IS' => { 
     597    'height' => '270', 
     598    'max_file_size' => '2000', 
     599    'version' => '1.1', 
     600    'width' => '240' 
     601  }, 
     602  'P903I' => { 
     603    'height' => '270', 
     604    'max_file_size' => '2000', 
     605    'version' => '1.1', 
     606    'width' => '240' 
     607  }, 
     608  'P903ITV' => { 
     609    'height' => '350', 
     610    'max_file_size' => '2048', 
     611    'version' => '1.1', 
     612    'width' => '240' 
     613  }, 
     614  'P903IX' => { 
     615    'height' => '270', 
     616    'max_file_size' => '2000', 
     617    'version' => '1.1', 
     618    'width' => '240' 
     619  }, 
     620  'P904I' => { 
     621    'height' => '350', 
     622    'max_file_size' => '2048', 
     623    'version' => '1.1', 
     624    'width' => '240' 
     625  }, 
     626  'P905I' => { 
     627    'height' => '700', 
     628    'max_file_size' => '3072', 
     629    'version' => '3.0', 
     630    'width' => '480' 
     631  }, 
     632  'SA700IS' => { 
     633    'height' => '252', 
     634    'max_file_size' => '2048', 
     635    'version' => '1.1', 
     636    'width' => '240' 
     637  }, 
     638  'SA702I' => { 
     639    'height' => '252', 
     640    'max_file_size' => '2048', 
     641    'version' => '1.1', 
     642    'width' => '240' 
     643  }, 
     644  'SA800I' => { 
     645    'height' => '252', 
     646    'max_file_size' => '2048', 
     647    'version' => '1.1', 
     648    'width' => '240' 
     649  }, 
     650  'SH505I' => { 
     651    'height' => '252', 
     652    'max_file_size' => '200', 
     653    'version' => '1.0', 
     654    'width' => '240' 
     655  }, 
     656  'SH505IS' => { 
     657    'height' => '252', 
     658    'max_file_size' => '300', 
     659    'version' => '1.0', 
     660    'width' => '240' 
     661  }, 
     662  'SH506IC' => { 
     663    'height' => '252', 
     664    'max_file_size' => '300', 
     665    'version' => '1.0', 
     666    'width' => '240' 
     667  }, 
     668  'SH700I' => { 
     669    'height' => '252', 
     670    'max_file_size' => '2048', 
     671    'version' => '1.1', 
     672    'width' => '240' 
     673  }, 
     674  'SH700IS' => { 
     675    'height' => '252', 
     676    'max_file_size' => '2048', 
     677    'version' => '1.1', 
     678    'width' => '240' 
     679  }, 
     680  'SH702ID' => { 
     681    'height' => '240', 
     682    'max_file_size' => '2048', 
     683    'version' => '1.1', 
     684    'width' => '240' 
    49685  }, 
    50686  'SH702IS' => { 
    51     'width' => '240', 
    52     'version' => '1.1', 
    53     'max_file_size' => '2048', 
    54     'height' => '240' 
    55   }, 
    56   'D903ITV' => { 
    57     'width' => '230', 
    58     'version' => '1.1', 
    59     'max_file_size' => '2048', 
    60     'height' => '320' 
    61   }, 
    62   'N900I' => { 
    63     'width' => '240', 
    64     'version' => '1.0', 
    65     'max_file_size' => '1024', 
    66     'height' => '269' 
     687    'height' => '240', 
     688    'max_file_size' => '2048', 
     689    'version' => '1.1', 
     690    'width' => '240' 
     691  }, 
     692  'SH703I' => { 
     693    'height' => '240', 
     694    'max_file_size' => '2048', 
     695    'version' => '1.1', 
     696    'width' => '240' 
     697  }, 
     698  'SH704I' => { 
     699    'height' => '320', 
     700    'max_file_size' => '2048', 
     701    'version' => '1.1', 
     702    'width' => '240' 
     703  }, 
     704  'SH851I' => { 
     705    'height' => '252', 
     706    'max_file_size' => '2048', 
     707    'version' => '1.1', 
     708    'width' => '240' 
     709  }, 
     710  'SH900I' => { 
     711    'height' => '252', 
     712    'max_file_size' => '1000', 
     713    'version' => '1.0', 
     714    'width' => '240' 
     715  }, 
     716  'SH901IC' => { 
     717    'height' => '252', 
     718    'max_file_size' => '2048', 
     719    'version' => '1.1', 
     720    'width' => '240' 
     721  }, 
     722  'SH901IS' => { 
     723    'height' => '252', 
     724    'max_file_size' => '2048', 
     725    'version' => '1.1', 
     726    'width' => '240' 
     727  }, 
     728  'SH902I' => { 
     729    'height' => '240', 
     730    'max_file_size' => '2048', 
     731    'version' => '1.1', 
     732    'width' => '240' 
     733  }, 
     734  'SH902IS' => { 
     735    'height' => '240', 
     736    'max_file_size' => '2048', 
     737    'version' => '1.1', 
     738    'width' => '240' 
     739  }, 
     740  'SH902ISL' => { 
     741    'height' => '240', 
     742    'max_file_size' => '2048', 
     743    'version' => '1.1', 
     744    'width' => '240' 
     745  }, 
     746  'SH903I' => { 
     747    'height' => '320', 
     748    'max_file_size' => '2048', 
     749    'version' => '1.1', 
     750    'width' => '240' 
     751  }, 
     752  'SH903ITV' => { 
     753    'height' => '320', 
     754    'max_file_size' => '2048', 
     755    'version' => '1.1', 
     756    'width' => '240' 
     757  }, 
     758  'SH904I' => { 
     759    'height' => '320', 
     760    'max_file_size' => '2048', 
     761    'version' => '1.1', 
     762    'width' => '240' 
     763  }, 
     764  'SH905I' => { 
     765    'height' => '640', 
     766    'max_file_size' => '3072', 
     767    'version' => '3.0', 
     768    'width' => '480' 
     769  }, 
     770  'SO505I' => { 
     771    'height' => '240', 
     772    'max_file_size' => '200', 
     773    'version' => '1.0', 
     774    'width' => '256' 
     775  }, 
     776  'SO505IS' => { 
     777    'height' => '256', 
     778    'max_file_size' => '400', 
     779    'version' => '1.0', 
     780    'width' => '240' 
     781  }, 
     782  'SO506I' => { 
     783    'height' => '256', 
     784    'max_file_size' => '400', 
     785    'version' => '1.0', 
     786    'width' => '240' 
     787  }, 
     788  'SO506IC' => { 
     789    'height' => '256', 
     790    'max_file_size' => '400', 
     791    'version' => '1.0', 
     792    'width' => '240' 
     793  }, 
     794  'SO506IS' => { 
     795    'height' => '256', 
     796    'max_file_size' => '400', 
     797    'version' => '1.0', 
     798    'width' => '240' 
     799  }, 
     800  'SO702I' => { 
     801    'height' => '256', 
     802    'max_file_size' => '2000', 
     803    'version' => '1.1', 
     804    'width' => '240' 
     805  }, 
     806  'SO703I' => { 
     807    'height' => '368', 
     808    'max_file_size' => '2048', 
     809    'version' => '1.1', 
     810    'width' => '240' 
     811  }, 
     812  'SO704I' => { 
     813    'height' => '368', 
     814    'max_file_size' => '2048', 
     815    'version' => '1.1', 
     816    'width' => '240' 
     817  }, 
     818  'SO902I' => { 
     819    'height' => '256', 
     820    'max_file_size' => '2000', 
     821    'version' => '1.1', 
     822    'width' => '240' 
     823  }, 
     824  'SO902IWP+' => { 
     825    'height' => '256', 
     826    'max_file_size' => '2000', 
     827    'version' => '1.1', 
     828    'width' => '240' 
     829  }, 
     830  'SO903I' => { 
     831    'height' => '368', 
     832    'max_file_size' => '2000', 
     833    'version' => '1.1', 
     834    'width' => '240' 
    67835  }, 
    68836  'SO903ITV' => { 
    69     'width' => '240', 
    70     'version' => '1.1', 
    71     'max_file_size' => '2048', 
    72     'height' => '368' 
    73   }, 
    74   'P702I' => { 
    75     'width' => '240', 
    76     'version' => '1.1', 
    77     'max_file_size' => '2000', 
    78     'height' => '270' 
    79   }, 
    80   'D701I' => { 
    81     'width' => '230', 
    82     'version' => '1.1', 
    83     'max_file_size' => '2000', 
    84     'height' => '240' 
    85   }, 
    86   'SO703I' => { 
    87     'width' => '240', 
    88     'version' => '1.1', 
    89     'max_file_size' => '2048', 
    90     'height' => '368' 
    91   }, 
    92   'P903I' => { 
    93     'width' => '240', 
    94     'version' => '1.1', 
    95     'max_file_size' => '2000', 
    96     'height' => '270' 
    97   }, 
    98   'SH505I' => { 
    99     'width' => '240', 
    100     'version' => '1.0', 
    101     'max_file_size' => '200', 
    102     'height' => '252' 
    103   }, 
    104   'N703ID' => { 
    105     'width' => '240', 
    106     'version' => '1.1', 
    107     'max_file_size' => '2048', 
    108     'height' => '270' 
    109   }, 
    110   'P900I' => { 
    111     'width' => '240', 
    112     'version' => '1.0', 
    113     'max_file_size' => '1024', 
    114     'height' => '266' 
    115   }, 
    116   'SA800I' => { 
    117     'width' => '240', 
    118     'version' => '1.1', 
    119     'max_file_size' => '2048', 
    120     'height' => '252' 
    121   }, 
    122   'D851IWM' => { 
    123     'width' => '230', 
    124     'version' => '1.1', 
    125     'max_file_size' => '2000', 
    126     'height' => '320' 
    127   }, 
    128   'P900IV' => { 
    129     'width' => '240', 
    130     'version' => '1.0', 
    131     'max_file_size' => '1024', 
    132     'height' => '266' 
    133   }, 
    134   'M702IG' => { 
    135     'width' => '240', 
    136     'version' => '1.1', 
    137     'max_file_size' => '600', 
    138     'height' => '267' 
    139   }, 
    140   'P851I' => { 
    141     'width' => '240', 
    142     'version' => '1.1', 
    143     'max_file_size' => '2000', 
    144     'height' => '270' 
    145   }, 
    146   'P901I' => { 
    147     'width' => '240', 
    148     'version' => '1.1', 
    149     'max_file_size' => '2000', 
    150     'height' => '270' 
    151   }, 
    152   'F900IT' => { 
    153     'width' => '230', 
    154     'version' => '1.0', 
    155     'max_file_size' => '1000', 
    156     'height' => '240' 
    157   }, 
    158   'D505I' => { 
    159     'width' => '240', 
    160     'version' => '1.0', 
    161     'max_file_size' => '200', 
    162     'height' => '320' 
    163   }, 
    164   'N601I' => { 
    165     'width' => '240', 
    166     'version' => '1.1', 
    167     'max_file_size' => '2048', 
    168     'height' => '270' 
    169   }, 
    170   'D702I' => { 
    171     'width' => '230', 
    172     'version' => '1.1', 
    173     'max_file_size' => '2000', 
    174     'height' => '240' 
    175   }, 
    176   'P505IS' => { 
    177     'width' => '240', 
    178     'version' => '1.0', 
    179     'max_file_size' => '404', 
    180     'height' => '266' 
    181   }, 
    182   'P902I' => { 
    183     'width' => '240', 
    184     'version' => '1.1', 
    185     'max_file_size' => '2000', 
    186     'height' => '270' 
    187   }, 
    188   'SO902IWP' => { 
    189     'width' => '240', 
    190     'version' => '1.1', 
    191     'max_file_size' => '2000', 
    192     'height' => '256' 
    193   }, 
    194   'D901IS' => { 
    195     'width' => '230', 
    196     'version' => '1.1', 
    197     'max_file_size' => '2000', 
    198     'height' => '240' 
    199   }, 
    200   'N505I' => { 
    201     'width' => '240', 
    202     'version' => '1.0', 
    203     'max_file_size' => '200', 
    204     'height' => '270' 
    205   }, 
    206   'SO903I' => { 
    207     'width' => '240', 
    208     'version' => '1.1', 
    209     'max_file_size' => '2000', 
    210     'height' => '368' 
    211   }, 
    212   'N506I' => { 
    213     'width' => '240', 
    214     'version' => '1.0', 
    215     'max_file_size' => '400', 
    216     'height' => '295' 
    217   }, 
    218   'P904I' => { 
    219     'width' => '240', 
    220     'version' => '1.1', 
    221     'max_file_size' => '2048', 
    222     'height' => '350' 
    223   }, 
    224   'SH703I' => { 
    225     'width' => '240', 
    226     'version' => '1.1', 
    227     'max_file_size' => '2048', 
    228     'height' => '240' 
    229   }, 
    230   'D800IDS' => { 
    231     'width' => '230', 
    232     'version' => '1.1', 
    233     'max_file_size' => '2000', 
    234     'height' => '240' 
    235   }, 
    236   'N901IS' => { 
    237     'width' => '240', 
    238     'version' => '1.1', 
    239     'max_file_size' => '2048', 
    240     'height' => '270' 
    241   }, 
    242   'SA702I' => { 
    243     'width' => '240', 
    244     'version' => '1.1', 
    245     'max_file_size' => '2048', 
    246     'height' => '252' 
    247   }, 
    248   'SH900I' => { 
    249     'width' => '240', 
    250     'version' => '1.0', 
    251     'max_file_size' => '1000', 
    252     'height' => '252' 
    253   }, 
    254   'F903I' => { 
    255     'width' => '230', 
    256     'version' => '1.1', 
    257     'max_file_size' => '2048', 
    258     'height' => '240' 
    259   }, 
    260   'F901IC' => { 
    261     'width' => '230', 
    262     'version' => '1.1', 
    263     'max_file_size' => '2000', 
    264     'height' => '240' 
    265   }, 
    266   'SO506I' => { 
    267     'width' => '240', 
    268     'version' => '1.0', 
    269     'max_file_size' => '400', 
    270     'height' => '256' 
    271   }, 
    272   'D703I' => { 
    273     'width' => '230', 
    274     'version' => '1.1', 
    275     'max_file_size' => '2048', 
    276     'height' => '240' 
    277   }, 
    278   'D702IF' => { 
    279     'width' => '230', 
    280     'version' => '1.1', 
    281     'max_file_size' => '2000', 
    282     'height' => '240' 
    283   }, 
    284   'SH902I' => { 
    285     'width' => '240', 
    286     'version' => '1.1', 
    287     'max_file_size' => '2048', 
    288     'height' => '240' 
    289   }, 
    290   'F700I' => { 
    291     'width' => '230', 
    292     'version' => '1.1', 
    293     'max_file_size' => '2000', 
    294     'height' => '240' 
    295   }, 
    296   'N506ISII' => { 
    297     'width' => '240', 
    298     'version' => '1.0', 
    299     'max_file_size' => '400', 
    300     'height' => '295' 
    301   }, 
    302   'N902IL' => { 
    303     'width' => '240', 
    304     'version' => '1.1', 
    305     'max_file_size' => '2048', 
    306     'height' => '270' 
    307   }, 
    308   'N901IC' => { 
    309     'width' => '240', 
    310     'version' => '1.1', 
    311     'max_file_size' => '2048', 
    312     'height' => '270' 
    313   }, 
    314   'N900IG' => { 
    315     'width' => '240', 
    316     'version' => '1.0', 
    317     'max_file_size' => '1024', 
    318     'height' => '269' 
    319   }, 
    320   'SH506IC' => { 
    321     'width' => '240', 
    322     'version' => '1.0', 
    323     'max_file_size' => '300', 
    324     'height' => '252' 
    325   }, 
    326   'P506ICII' => { 
    327     'width' => '240', 
    328     'version' => '1.0', 
    329     'max_file_size' => '404', 
    330     'height' => '266' 
    331   }, 
    332   'F702ID' => { 
    333     'width' => '230', 
    334     'version' => '1.1', 
    335     'max_file_size' => '2000', 
    336     'height' => '240' 
    337   }, 
    338   'SH904I' => { 
    339     'width' => '240', 
    340     'version' => '1.1', 
    341     'max_file_size' => '2048', 
    342     'height' => '320' 
    343   }, 
    344   'P702ID' => { 
    345     'width' => '240', 
    346     'version' => '1.1', 
    347     'max_file_size' => '2000', 
    348     'height' => '270' 
    349   }, 
    350   'N702ID' => { 
    351     'width' => '240', 
    352     'version' => '1.1', 
    353     'max_file_size' => '2048', 
    354     'height' => '270' 
    355   }, 
    356   'P703I' => { 
    357     'width' => '240', 
    358     'version' => '1.1', 
    359     'max_file_size' => '2000', 
    360     'height' => '270' 
    361   }, 
    362   'SA700IS' => { 
    363     'width' => '240', 
    364     'version' => '1.1', 
    365     'max_file_size' => '2048', 
    366     'height' => '252' 
    367   }, 
    368   'SH901IC' => { 
    369     'width' => '240', 
    370     'version' => '1.0', 
    371     'max_file_size' => '2048', 
    372     'height' => '252' 
    373   }, 
    374   'P903IX' => { 
    375     'width' => '240', 
    376     'version' => '1.1', 
    377     'max_file_size' => '2000', 
    378     'height' => '270' 
    379   }, 
    380   'P901ITV' => { 
    381     'width' => '240', 
    382     'version' => '1.1', 
    383     'max_file_size' => '2000', 
    384     'height' => '270' 
    385   }, 
    386   'SH700IS' => { 
    387     'width' => '240', 
    388     'version' => '1.1', 
    389     'max_file_size' => '2048', 
    390     'height' => '252' 
    391   }, 
    392   'SO506IS' => { 
    393     'width' => '240', 
    394     'version' => '1.0', 
    395     'max_file_size' => '400', 
    396     'height' => '256' 
    397   }, 
    398   'F506I' => { 
    399     'width' => '240', 
    400     'version' => '1.0', 
    401     'max_file_size' => '300', 
    402     'height' => '268' 
    403   }, 
    404   'D702IBCL' => { 
    405     'width' => '230', 
    406     'version' => '1.1', 
    407     'max_file_size' => '2000', 
    408     'height' => '240' 
    409   }, 
    410   'SH901IS' => { 
    411     'width' => '240', 
    412     'version' => '1.1', 
    413     'max_file_size' => '2048', 
    414     'height' => '252' 
    415   }, 
    416   'N701I' => { 
    417     'width' => '240', 
    418     'version' => '1.1', 
    419     'max_file_size' => '2048', 
    420     'height' => '270' 
    421   }, 
    422   'SO505IS' => { 
    423     'width' => '240', 
    424     'version' => '1.0', 
    425     'max_file_size' => '400', 
    426     'height' => '256' 
    427   }, 
    428   'N703I' => { 
    429     'width' => '240', 
    430     'version' => '1.1', 
    431     'max_file_size' => '2048', 
    432     'height' => '270' 
    433   }, 
    434   'F700IS' => { 
    435     'width' => '230', 
    436     'version' => '1.1', 
    437     'max_file_size' => '2000', 
    438     'height' => '240' 
    439   }, 
    440   'N903I' => { 
    441     'width' => '240', 
    442     'version' => '1.1', 
    443     'max_file_size' => '2048', 
    444     'height' => '270' 
    445   }, 
    446   'N700I' => { 
    447     'width' => '240', 
    448     'version' => '1.1', 
    449     'max_file_size' => '2048', 
    450     'height' => '270' 
    451   }, 
    452   'D902IS' => { 
    453     'width' => '230', 
    454     'version' => '1.1', 
    455     'max_file_size' => '2000', 
    456     'height' => '320' 
    457   }, 
    458   'D506I' => { 
    459     'width' => '240', 
    460     'version' => '1.0', 
    461     'max_file_size' => '300', 
    462     'height' => '270' 
    463   }, 
    464   'D902I' => { 
    465     'width' => '230', 
    466     'version' => '1.1', 
    467     'max_file_size' => '2000', 
    468     'height' => '320' 
    469   }, 
    470   'M702IS' => { 
    471     'width' => '240', 
    472     'version' => '1.1', 
    473     'max_file_size' => '600', 
    474     'height' => '267' 
    475   }, 
    476   'D701IWM' => { 
    477     'width' => '230', 
    478     'version' => '1.1', 
    479     'max_file_size' => '2000', 
    480     'height' => '240' 
    481   }, 
    482   'SH902IS' => { 
    483     'width' => '240', 
    484     'version' => '1.1', 
    485     'max_file_size' => '2048', 
    486     'height' => '240' 
    487   }, 
    488   'D901I' => { 
    489     'width' => '230', 
    490     'version' => '1.1', 
    491     'max_file_size' => '2000', 
    492     'height' => '240' 
    493   }, 
    494   'N505IS' => { 
    495     'width' => '240', 
    496     'version' => '1.0', 
    497     'max_file_size' => '400', 
    498     'height' => '270' 
    499   }, 
    500   'F900IC' => { 
    501     'width' => '230', 
    502     'version' => '1.0', 
    503     'max_file_size' => '1000', 
    504     'height' => '240' 
    505   }, 
    506   'SO702I' => { 
    507     'width' => '240', 
    508     'version' => '1.1', 
    509     'max_file_size' => '2000', 
    510     'height' => '256' 
    511   }, 
    512   'D505IS' => { 
    513     'width' => '240', 
    514     'version' => '1.0', 
    515     'max_file_size' => '300', 
    516     'height' => '270' 
    517   }, 
    518   'N900IS' => { 
    519     'width' => '240', 
    520     'version' => '1.0', 
    521     'max_file_size' => '1024', 
    522     'height' => '269' 
    523   }, 
    524   'SH700I' => { 
    525     'width' => '240', 
    526     'version' => '1.1', 
    527     'max_file_size' => '2048', 
    528     'height' => '252' 
    529   }, 
    530   'P701ID' => { 
    531     'width' => '240', 
    532     'version' => '1.1', 
    533     'max_file_size' => '2000', 
    534     'height' => '270' 
    535   }, 
    536   'F902I' => { 
    537     'width' => '230', 
    538     'version' => '1.1', 
    539     'max_file_size' => '2000', 
    540     'height' => '240' 
    541   }, 
    542   'P505I' => { 
    543     'width' => '240', 
    544     'version' => '1.0', 
    545     'max_file_size' => '256', 
    546     'height' => '266' 
    547   }, 
    548   'F903IBSC' => { 
    549     'width' => '230', 
    550     'version' => '1.1', 
    551     'max_file_size' => '2048', 
    552     'height' => '240' 
    553   }, 
    554   'SO506IC' => { 
    555     'width' => '240', 
    556     'version' => '1.0', 
    557     'max_file_size' => '400', 
    558     'height' => '256' 
    559   }, 
    560   'N904I' => { 
    561     'width' => '240', 
    562     'version' => '1.1', 
    563     'max_file_size' => '2048', 
    564     'height' => '352' 
    565   }, 
    566   'P903ITV' => { 
    567     'width' => '240', 
    568     'version' => '1.1', 
    569     'max_file_size' => '2048', 
    570     'height' => '350' 
    571   }, 
    572   'SH902ISL' => { 
    573     'width' => '240', 
    574     'version' => '1.1', 
    575     'max_file_size' => '2048', 
    576     'height' => '240' 
    577   }, 
    578   'N902I' => { 
    579     'width' => '240', 
    580     'version' => '1.1', 
    581     'max_file_size' => '2048', 
    582     'height' => '270' 
    583   }, 
    584   'SO704I' => { 
    585     'width' => '240', 
    586     'version' => '1.1', 
    587     'max_file_size' => '2048', 
    588     'height' => '368' 
    589   }, 
    590   'D903I' => { 
    591     'width' => '230', 
    592     'version' => '1.1', 
    593     'max_file_size' => '2048', 
    594     'height' => '320' 
    595   }, 
    596   'D900I' => { 
    597     'width' => '240', 
    598     'version' => '1.0', 
    599     'max_file_size' => '1024', 
    600     'height' => '270' 
    601   }, 
    602   'P901IS' => { 
    603     'width' => '240', 
    604     'version' => '1.1', 
    605     'max_file_size' => '2000', 
    606     'height' => '270' 
    607   }, 
    608   'F703I' => { 
    609     'width' => '230', 
    610     'version' => '1.1', 
    611     'max_file_size' => '2048', 
    612     'height' => '240' 
    613   }, 
    614   'F900I' => { 
    615     'width' => '230', 
    616     'version' => '1.0', 
    617     'max_file_size' => '1000', 
    618     'height' => '240' 
    619   }, 
    620   'P902IS' => { 
    621     'width' => '240', 
    622     'version' => '1.1', 
    623     'max_file_size' => '2000', 
    624     'height' => '270' 
    625   }, 
    626   'F901IS' => { 
    627     'width' => '230', 
    628     'version' => '1.1', 
    629     'max_file_size' => '2000', 
    630     'height' => '240' 
    631   }, 
    632   'F505IGPS' => { 
    633     'width' => '240', 
    634     'version' => '1.0', 
    635     'max_file_size' => '300', 
    636     'height' => '268' 
    637   }, 
    638   'SO902I' => { 
    639     'width' => '240', 
    640     'version' => '1.1', 
    641     'max_file_size' => '2000', 
    642     'height' => '256' 
    643   }, 
    644   'SH903I' => { 
    645     'width' => '240', 
    646     'version' => '1.1', 
    647     'max_file_size' => '2048', 
    648     'height' => '320' 
    649   }, 
    650   'N902IS' => { 
    651     'width' => '240', 
    652     'version' => '1.1', 
    653     'max_file_size' => '2048', 
    654     'height' => '270' 
    655   }, 
    656   'N900IL' => { 
    657     'width' => '240', 
    658     'version' => '1.0', 
    659     'max_file_size' => '1024', 
    660     'height' => '269' 
    661   }, 
    662   'SH903ITV' => { 
    663     'width' => '240', 
    664     'version' => '1.1', 
    665     'max_file_size' => '2048', 
    666     'height' => '320' 
    667   }, 
    668   'N702IS' => { 
    669     'width' => '240', 
    670     'version' => '1.1', 
    671     'max_file_size' => '2048', 
    672     'height' => '270' 
    673   }, 
    674   'P506IC' => { 
    675     'width' => '240', 
    676     'version' => '1.0', 
    677     'max_file_size' => '404', 
    678     'height' => '266' 
    679   }, 
    680   'P700I' => { 
    681     'width' => '240', 
    682     'version' => '1.1', 
    683     'max_file_size' => '2000', 
    684     'height' => '270' 
    685   }, 
    686   'SH702ID' => { 
    687     'width' => '240', 
    688     'version' => '1.1', 
    689     'max_file_size' => '2048', 
    690     'height' => '240' 
    691   }, 
    692   'F505I' => { 
    693     'width' => '240', 
    694     'version' => '1.0', 
    695     'max_file_size' => '300', 
    696     'height' => '268' 
    697   }, 
    698   'N701IECO' => { 
    699     'width' => '240', 
    700     'version' => '1.1', 
    701     'max_file_size' => '2048', 
    702     'height' => '270' 
    703   }, 
    704   'F903IX' => { 
    705     'width' => '230', 
    706     'version' => '1.1', 
    707     'max_file_size' => '2048', 
    708     'height' => '240' 
    709   }, 
    710   'N902IX' => { 
    711     'width' => '240', 
    712     'version' => '1.1', 
    713     'max_file_size' => '2048', 
    714     'height' => '270' 
    715   }, 
    716   'F904I' => { 
    717     'width' => '240', 
    718     'version' => '1.1', 
    719     'max_file_size' => '2048', 
    720     'height' => '432' 
    721   }, 
    722   'F882IES' => { 
    723     'width' => '240', 
    724     'version' => '1.1', 
    725     'max_file_size' => '2000', 
    726     'height' => '256' 
    727   }, 
    728   'SH505IS' => { 
    729     'width' => '240', 
    730     'version' => '1.0', 
    731     'max_file_size' => '300', 
    732     'height' => '252' 
     837    'height' => '368', 
     838    'max_file_size' => '2048', 
     839    'version' => '1.1', 
     840    'width' => '240' 
     841  }, 
     842  'SO905I' => { 
     843    'height' => '736', 
     844    'max_file_size' => '3072', 
     845    'version' => '3.0', 
     846    'width' => '480' 
    733847  } 
    734848}