4.最長パスに関する検討

4-1.最長パスを求める方法

APIの推移の中で最も長いAPIの呼び出しの並びは、そのプログラムにとっての成功ルートであると仮定できる。例えばグラフ4-1-1の場合にはApiA→ApiB、ApiB→ApiC、ApiC→ApiD、ApiD→ApiEはプログラムとして正常なルートであると推測できる。それに対してApiA→ApiE、ApiB→ApiE、ApiC→ApiEはエラーが発生している可能性が高い。

グラフ4-1-1
digraph "g" {
  "ApiA" -> "ApiB";
  "ApiB" -> "ApiC";
  "ApiC" -> "ApiD";
  "ApiA" -> "ApiE";
  "ApiB" -> "ApiE";
  "ApiC" -> "ApiE";
  "ApiD" -> "ApiE";
}

グラフ4-1-1

最長片道きっぷの経路を求める問題[14]を応用して最長パスを求める。最長片道きっぷとは異なり有向グラフである。また同一のノードを何度も経由できる。スタートは固定されている。ここでグラフ4-1-2を例にして、最長パスを求める方法を考える。このグラフの最長パスはa→c→e→g→i→g→jである。

グラフ4-1-2
digraph "g" {
  "a" -> "b";
  "a" -> "c";
  "b" -> "d";
  "c" -> "e";
  "c" -> "f";
  "d" -> "b";
  "e" -> "g";
  "e" -> "h";
  "f" -> "j";
  "g" -> "i";
  "g" -> "j";
  "h" -> "j";
  "i" -> "g";
}

グラフ4-1-2

各エッジをそれぞれEab:a→b、Eac:a→c、...、Eig:i→gとする。Eは経由するならば1、経由しないならば0となる。各ノードに対応する変数NをそれぞれNa=-Eab-Eac、Nb=Eab-Ebd、...、Nj=Efj+Egj+Ehjとする。ノードに入るエッジが有効ならばNに1を加え、ノードから出るエッジが有効ならばNから1を引く。このときスタートのNは-1になる。またゴールのNは1になる。それ以外のNは経由する回数に関係なく0になる。また、スタートを除くすべてのNの合計は1になる。

これらの法則を下にして整数計画法で最長パスを求めようとすると、GLPKのモデルファイルはリスト4-1-1のようになる。

リスト4-1-1
var ab binary;
var ac binary;
var bd binary;
var ce binary;
var cf binary;
var db binary;
var eg binary;
var eh binary;
var fj binary;
var gi binary;
var gj binary;
var hj binary;
var ig binary;
var b binary;
var c binary;
var d binary;
var e binary;
var f binary;
var g binary;
var h binary;
var i binary;
var j binary;

maximize profit: ab + ac + bd + ce + cf + db + eg + eh + fj + gi + gj + hj + ig;
s.t. nodea: - ab - ac = -1;
s.t. nodeb: ab + db - bd = b;
s.t. nodec: ac - ce - cf = c;
s.t. noded: bd - db = d;
s.t. nodee: ce - eg - eh = e;
s.t. nodef: cf - fj = f;
s.t. nodeg: eg + ig - gi - gj = g;
s.t. nodeh: eh - hj = h;
s.t. nodei: gi - ig = i;
s.t. nodej: fj + gj + hj = j;
s.t. node: b + c + d + e + f + g + h + i + j = 1;

これをGLPKで解を求めるとリスト4-1-2のようになる。

リスト4-1-2
Problem:    graph4-1-2
Rows:       12
Columns:    22 (22 integer, 22 binary)
Non-zeros:  57
Status:     INTEGER OPTIMAL
Objective:  profit = 8 (MAXimum) 8 (LP)

   No.   Row name        Activity     Lower bound   Upper bound
------ ------------    ------------- ------------- -------------
     1 profit                      8
     2 nodea                      -1            -1             =
     3 nodeb                       0            -0             =
     4 nodec                       0            -0             =
     5 noded                       0            -0             =
     6 nodee                       0            -0             =
     7 nodef                       0            -0             =
     8 nodeg                       0            -0             =
     9 nodeh                       0            -0             =
    10 nodei                       0            -0             =
    11 nodej                       0            -0             =
    12 node                        1             1             =

   No. Column name       Activity     Lower bound   Upper bound
------ ------------    ------------- ------------- -------------
     1 ab           *              0             0             1
     2 ac           *              1             0             1
     3 bd           *              1             0             1
     4 ce           *              1             0             1
     5 cf           *              0             0             1
     6 db           *              1             0             1
     7 eg           *              0             0             1
     8 eh           *              1             0             1
     9 fj           *              0             0             1
    10 gi           *              1             0             1
    11 gj           *              0             0             1
    12 hj           *              1             0             1
    13 ig           *              1             0             1
    14 b            *              0             0             1
    15 c            *              0             0             1
    16 d            *              0             0             1
    17 e            *              0             0             1
    18 f            *              0             0             1
    19 g            *              0             0             1
    20 h            *              0             0             1
    21 i            *              0             0             1
    22 j            *              1             0             1

Integer feasibility conditions:

INT.PE: max.abs.err. = 0.00e+00 on row 0
        max.rel.err. = 0.00e+00 on row 0
        High quality

INT.PB: max.abs.err. = 0.00e+00 on row 0
        max.rel.err. = 0.00e+00 on row 0
        High quality

End of output

これをグラフ4-1-2に図示するとグラフ4-1-3のようになる。

グラフ4-1-3
digraph "g" {
  "a" -> "b";
  "a" -> "c" [color = red];
  "b" -> "d" [color = red];
  "c" -> "e" [color = red];
  "c" -> "f";
  "d" -> "b" [color = red];
  "e" -> "g";
  "e" -> "h" [color = red];
  "f" -> "j";
  "g" -> "i" [color = red];
  "g" -> "j";
  "h" -> "j" [color = red];
  "i" -> "g" [color = red];
}

グラフ4-1-3

最長片道きっぷの経路を求める問題と同様に孤立したループが生じている。最長片道きっぷと同様に式を追加することで孤立したループを排除していく。この場合にはbd + db - ab <= 1とgi + ig - eg - gj <= 1を追加する。

ノードaをスタートとするグラフ4-1-4のような事例を考える。この場合にはまずはじめに赤線で示した解が導かれる。

グラフ4-1-4
digraph "g" {
  "a" -> "b" [color = red];
  "a" -> "d";
  "b" -> "c" [color = red];
  "d" -> "e" [color = red];
  "d" -> "g" [color = red];
  "e" -> "d" [color = red];
  "e" -> "f" [color = red];
  "f" -> "e" [color = red];
  "f" -> "g" [color = red];
  "g" -> "d" [color = red];
  "g" -> "f" [color = red];
}

グラフ4-1-4

次に孤立したループを排除するために、de + dg + ed + ef + fe + fg + gd + gf - ad <= 7を追加する。しかし次のステップでは期待した結果は得られない。例えばグラフ4-1-5のような解が得られる。

グラフ4-1-5
digraph "g" {
  "a" -> "b" [color = red];
  "a" -> "d";
  "b" -> "c" [color = red];
  "d" -> "e" [color = red];
  "d" -> "g";
  "e" -> "d" [color = red];
  "e" -> "f" [color = red];
  "f" -> "e" [color = red];
  "f" -> "g" [color = red];
  "g" -> "d";
  "g" -> "f" [color = red];
}

グラフ4-1-5

さらに孤立したループを削除する式、例えばde + ed + ef + fe + fg + gf - ad <= 5を追加しても、次もノードdefgによって構成される異なる孤立したループが解として出力される。ノードdefgによって構成される孤立したループをすべて列挙するまでこれは続く。ノードが4つ程度ならばすべてを列挙することは可能だが、ノードとエッジの数が増えた場合にはすべてを列挙することは事実上不可能である。そこで次のように考える。

スタートから作られる最長ルート(この場合a→b→c)の距離(この場合は2)に比べて大きいか等しい距離を持つ孤立したループ(この場合d→e→f→g→d→g→f→e→d)が出現したとき、そのスタートから作られる最長ルートは求める解にはならない。なぜならばスタートからその孤立したループに至るルートの方がそのスタートから作られる最長ルートよりも長いことは明らかである。よってスタートから作られる最長ルートを排除する式(この場合ab + bc - ad <= 1)を追加することができる。

4-2.最長API推移の発見

API推移の最長パスを発見するためにmxroot.plを作った。これはapiflw.plの出力結果から最長パスを見つけ出し、parser.plの出力結果と互換性がある形式で最長パスを出力する。(ゆえに3-1-3.API抽出の比較と同様に比較を行うことが可能である。比較に関しては次節で扱う。)

さらにmxroot.plの出力結果とそれに対応するapiflw.plの出力結果をあわせてグラフ上に最長パスを図示するスクリプトmxrtmk.plを作成した。

W32/Bagleの亜種とW32/Korgoの亜種、W32/Mydoomの亜種、W32/Netskyの亜種、Text maidの各バージョン、ネットワーク関連のプログラムについてmxroot.plを用いてAPIリストを作った。またmxrtmk.plを用いてグラフを作った。

表4-2-1 W32/Bagleの各亜種の最長パス
名称IDA Pro出力Graphvizグラフ
W32/Bagle.A w32bg__a.lstw32bg__a.dotw32bg__a.png
W32/Bagle.B w32bg__b.lstw32bg__b.dotw32bg__b.png
W32/Bagle.C w32bg__c.lstw32bg__c.dotw32bg__c.png
W32/Bagle.D w32bg__d.lstw32bg__d.dotw32bg__d.png
W32/Bagle.J w32bg__j.lstw32bg__j.dotw32bg__j.png
W32/Bagle.K w32bg__k.lstw32bg__k.dotw32bg__k.png
W32/Bagle.N w32bg__n.lstw32bg__n.dotw32bg__n.png
W32/Bagle.P w32bg__p.lstw32bg__p.dotw32bg__p.png
W32/Bagle.Q w32bg__q.lstw32bg__q.dotw32bg__q.png
W32/Bagle.R w32bg__r.lstw32bg__r.dotw32bg__r.png
W32/Bagle.S w32bg__s.lstw32bg__s.dotw32bg__s.png
W32/Bagle.T w32bg__t.lstw32bg__t.dotw32bg__t.png
W32/Bagle.X w32bg__x.lstw32bg__x.dotw32bg__x.png
W32/Bagle.Z w32bg__z.lstw32bg__z.dotw32bg__z.png
W32/Bagle.AA w32bg_aa.lstw32bg_aa.dotw32bg_aa.png
W32/Bagle.AD w32bg_ad.lstw32bg_ad.dotw32bg_ad.png
W32/Bagle#115w32bg115.lstw32bg115.dotw32bg115.png
表4-2-2 W32/Korgoの各亜種の最長パス
名称IDA Pro出力Graphvizグラフ
W32/Korgo.A w32krg_a.lstw32krg_a.dotw32krg_a.png
W32/Korgo.B w32krg_b.lstw32krg_b.dotw32krg_b.png
W32/Korgo.C w32krg_c.lstw32krg_c.dotw32krg_c.png
W32/Korgo.E w32krg_e.lstw32krg_e.dotw32krg_e.png
W32/Korgo.G w32krg_g.lstw32krg_g.dotw32krg_g.png
W32/Korgo.N w32krg_n.lstw32krg_n.dotw32krg_n.png
W32/Korgo.P w32krg_p.lstw32krg_p.dotw32krg_p.png
W32/Korgo.Q w32krg_q.lstw32krg_q.dotw32krg_q.png
W32/Korgo.R w32krg_r.lstw32krg_r.dotw32krg_r.png
W32/Korgo.S w32krg_s.lstw32krg_s.dotw32krg_s.png
W32/Korgo.T w32krg_t.lstw32krg_t.dotw32krg_t.png
W32/Korgo.V w32krg_v.lstw32krg_v.dotw32krg_v.png
W32/Korgo.Z w32krg_z.lstw32krg_z.dotw32krg_z.png
W32/Korgo.AAw32krgaa.lstw32krgaa.dotw32krgaa.png
W32/Korgo.ABw32krgab.lstw32krgab.dotw32krgab.png
W32/Korgo.ACw32krgac.lstw32krgac.dotw32krgac.png
表4-2-3 W32/Mydoomの各亜種の最長パス
名称IDA Pro出力Graphvizグラフ
W32/Mydoom.A w32myd_a.lstw32myd_a.dotw32myd_a.png
W32/Mydoom.B w32myd_b.lstw32myd_b.dotw32myd_b.png
W32/Mydoom.F w32myd_f.lstw32myd_f.dotw32myd_f.png
W32/Mydoom.G w32myd_g.lstw32myd_g.dotw32myd_g.png
W32/Mydoom.H w32myd_h.lstw32myd_h.dotw32myd_h.png
W32/Mydoom.L w32myd_l.lstw32myd_l.dotw32myd_l.png
W32/Mydoom.N w32myd_n.lstw32myd_n.dotw32myd_n.png
W32/Mydoom.O w32myd_o.lstw32myd_o.dotw32myd_o.png
W32/Mydoom.R w32myd_r.lstw32myd_r.dotw32myd_r.png
W32/Mydoom.S w32myd_s.lstw32myd_s.dotw32myd_s.png
W32/Mydoom.T w32myd_t.lstw32myd_t.dotw32myd_t.png
W32/Mydoom.X w32myd_x.lstw32myd_x.dotw32myd_x.png
W32/Mydoom.AFw32mydaf.lstw32mydaf.dotw32mydaf.png
W32/Mydoom.AMw32mydam.lstw32mydam.dotw32mydam.png
W32/Mydoom.BHw32mydbh.lstw32mydbh.dotw32mydbh.png
W32/Mydoom.BNw32mydbn.lstw32mydbn.dotw32mydbn.png
W32/Mydoom#46w32myd46.lstw32myd46.dotw32myd46.png
表4-2-4 W32/Netskyの各亜種の最長パス
名称IDA Pro出力Graphvizグラフ
W32/Netsky.Bw32nts_b.lstw32nts_b.dotw32nts_b.png
W32/Netsky.Lw32nts_l.lstw32nts_l.dotw32nts_l.png
W32/Netsky.Mw32nts_m.lstw32nts_m.dotw32nts_m.png
W32/Netsky.Ow32nts_o.lstw32nts_o.dotw32nts_o.png
W32/Netsky.Ww32nts_w.lstw32nts_w.dotw32nts_w.png
表4-2-5 Text maidの各バージョンの最長パス
名称IDA Pro出力Graphvizグラフ
Text maid 1.9Etm019eja.lsttm019eja.dot tm019eja.png
Text maid 1.9Ftm019fja.lsttm019fja.dot tm019fja.png
Text maid 1.9Gtm019gja.lsttm019gja.dot tm019gja.png
Text maid 1.9Htm019hja.lsttm019hja.dot tm019hja.png
Text maid 1.9Itm019ija.lsttm019ija.dot tm019ija.png
Text maid 1.9Jtm019jja.lsttm019jja.dot tm019jja.png
Text maid 1.9Ktm019kja.lsttm019kja.dot tm019kja.png
Text maid 1.9Ltm019lja.lsttm019lja.dot tm019lja.png
Text maid 1.9Mtm019mja.lsttm019mja.dot tm019mja.png
Text maid 1.9Ntm019nja.lsttm019nja.dot tm019nja.png
Text maid 1.9Otm019oja.lsttm019oja.dot tm019oja.png
Text maid 1.9Ptm019pja.lsttm019pja.dot tm019pja.png
Text maid 1.9Qtm019qja.lsttm019qja.dot tm019qja.png
Text maid 1.9Rtm019rja.lsttm019rja.dot tm019rja.png
Text maid 1.9Stm019sja.lsttm019sja.dot tm019sja.png
Text maid 1.9Ttm019tja.lsttm019tja.dot tm019tja.png
Text maid 1.9Utm019uja.lsttm019uja.dot tm019uja.png
表4-2-6 ネットワーク関連プログラムの最長パス
名称IDA Pro出力Graphvizグラフ
fingerfinger.lstfinger.dotfinger.png
ftp ftp.lst ftp.dot ftp.png
ping ping.lst ping.dot ping.png
telnettelnet.lsttelnet.dottelnet.png
tftp tftp.lst tftp.dot tftp.png

4-3.最長API推移の比較

3-1-3.API抽出の比較と同様に上記のAPIのリストを1つの配列とみなし、多重配列アライメントを行う。図4-3-1はW32/Bagleの各亜種、図4-3-2はW32/Korgoの各亜種、図4-3-3はW32/Mydoomの各亜種、図4-3-4はW32/Netskyの各亜種、図4-3-5Text maidの各バージョンの多重配列アライメントである。Text maidはコンピュータウイルスではないが各バージョンを亜種とみなし解析を行った。

図4-3-1 W32/Bagleの各亜種間の多重配列アライメント 図4-3-1

図4-3-2 W32/Korgoの各亜種間の多重配列アライメント 図4-3-2

図4-3-3 W32/Mydoomの各亜種間の多重配列アライメント 図4-3-3

図4-3-4 W32/Netskyの各亜種間の多重配列アライメント 図4-3-4

図4-3-5 Text maidの各バージョンの多重配列アライメント 図4-3-5

表4-3-1はW32/Bagleの各亜種、表4-3-2はW32/Korgoの各亜種、表4-3-3はW32/Mydoomの各亜種、表4-3-4はW32/Netskyの各亜種、表4-3-5はText maidの各バージョンの距離である。表4-3-6は各亜種とネットワーク関連のプログラムとの距離である。ネットワーク関連のプログラムはコンピュータウイルスではないが、コンピュータウイルスと似ていると思われるので比較を行うことで誤認が生じないか確かめた。

2つの配列の距離は完全に一致するときには0となり、まったく一致しないときには10000になる。なお、完全に一致する場合には項目を1つにまとめるため出力結果で距離は0にならない。

表4-3-1 W32/Bagleの各亜種間の距離
a c d j k n p q r s x z aa ad
115 9045 9617 9613 8909 8849 8897 8884 9261 9037 9304 9784 9446 9359 9029
a 9743 9736 9105 8906 9294 9728 9537 9248 9479 9873 9397 9500 9720
c 4848 100009911 9801 9937 9800 9936 9801 6666 100001000010000
d 100009909 9933 9936 9797 9935 9933 5294 9931 1000010000
j 5391 8379 8186 8305 7885 8508 9904 8651 7784 8888
k 8260 8010 8624 8235 8691 100008888 7329 8586
n 6443 8028 7254 8093 9868 8425 7767 8000
p 7093 6582 7594 9937 8628 7142 7616
q 7365 7857 9934 7295 7093 7703
r 8127 9871 7962 7863 8407
s 100008687 7990 8533
x 9931 1000010000
z 7703 8224
aa 6750
表4-3-2 W32/Korgoの各亜種間の距離
b c e g n p q r s t v z ab
a 5434751471287815803990448850922689289265892682629037
b 733780398436855089418734906987908975907587509120
c 85218620882685088870899488468967864189499261
e 6816718790328495908288079061856474248518
g 677490829128893081229360903676898675
n 90009099894782159134905678818842
p 7163761988097535763584957848
q 824691667605718388158630
r 93188120834391288837
s 9302973985829062
t 789190569000
v 87208303
z 8721
表4-3-3 W32/Mydoomの各亜種間の距離
a b f g h l o r s t af ag am bh bn
46 921279417727882085469289895078578582733392079151884889878461
a 95699661952394309640953295659870930494239818942097119508
b 8174839481959108905590299175880591269055945194489310
f 820581049111868986848888885392718531848891838461
g 63827664816377859552858083788774899494378271
h 7784845680799133849083569250898392258250
l 851887869798847987119186942391618901
o 81759565942388239154961389628741
r 9333876684059127898892467194
s 934992728785892088349457
t 89119285829484058827
af 9142955085158085
ag 853687969102
am 94829032
bh 9144
表4-3-4 W32/Netskyの各亜種間の距離
l m o w
b 7088697381396986
l 200078268840
m 77278787
o 6949
表4-3-5 Text maidの各バージョン間の距離
f g h i l o p q s t u
e 73887555763379568469873783248134917094249650
f 6753827577778356822477258831939791939527
g 649471136595736080937055889387239308
h 71587119761978286363881888399310
i 6943841887227121912593149395
l 706187337339866388758818
o 71217363869585718991
p 7571936291609409
q 868088428739
s 72818290
t 7129
表4-3-6 全体の距離
ftp ping telnet tftp tm019eja tm019fja tm019gja tm019hja tm019ija tm019jja tm019kjatm019lja tm019mja tm019njatm019oja tm019pja tm019qja tm019rja tm019sja tm019tja tm019uja w32bg115 w32bg__a w32bg__b w32bg__c w32bg__d w32bg__j w32bg__k w32bg__n w32bg__p w32bg__q w32bg__t w32bg__r w32bg__s w32bg__x w32bg__z w32bg_aa w32bg_ad w32krg_a w32krg_b w32krg_c w32krg_e w32krg_g w32krg_n w32krg_p w32krg_q w32krg_r w32krg_s w32krg_t w32krg_v w32krgaa w32krgacw32krg_z w32krgab w32myd46 w32myd_a w32myd_b w32myd_f w32myd_g w32myd_h w32myd_l w32myd_n w32myd_o w32myd_r w32myd_x w32myd_s w32myd_t w32mydaf w32mydag w32mydam w32mydbh w32mydbn w32nts_b w32nts_l w32nts_m w32nts_o w32nts_w
finger 8235 8965 9489 8800 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 9772 9705 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 9927 10000 9931 9565 9910 9847 9812 9938 10000 10000 10000 10000 9937 10000 9714 9811 10000 9914 9800 9736 10000 9910 9909 9919 10000 9900 10000 10000 9775 10000 10000 10000 10000 10000 9824 9814 10000 10000
ftp 8000 9520 8571 9785 9882 9819 10000 9940 10000 10000 10000 10000 9944 9945 10000 9600 9684 9705 9538 9666 9687 9638 9653 9698 9707 9761 9855 9878 9887 9883 9793 9928 9874 9894 9947 9945 9849 9770 9694 9892 10000 9618 9947 9930 10000 9466 9904 9923 9856 9779 9867 9831 9921 10000 9846 10000 10000 10000 9913 10000 9902 9882 9878 9882 10000
ping 9801 7826 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 9887 9705 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 9905 10000 9905 9808 10000 10000 10000 9913 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000
telnet 10000 10000 10000 10000 10000 9952 10000 10000 10000 10000 10000 10000 10000 9879 9928 9910 9909 10000 10000 9953 10000 10000 10000 10000 9910 9951 10000 9953 9786 9945 9900 9870 9957 10000 10000 10000 10000 9912 10000 9943 9913 10000 10000 9833 9932 10000 9890 9888 10000 10000 10000 10000 9942 9937 10000 10000 9936 10000 10000 9842 9838 10000 10000
tftp 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 9826 9687 10000 10000 9890 9898 9928 9931 9927 9930 10000 10000 10000 9931 9929 9824 9907 9921 9936 9936 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 9782 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 9918 10000 10000 9859 10000 10000 9811 10000
tm019eja 7388 7555 7633 7956 8469 8737 8324 8134 9170 9424 9650 9845 9867 9919 9834 9771 9725 10000 9957 9819 9956 9955 10000 9720 9957 9911 10000 10000 10000 10000 10000 10000 9947 9838 9893 10000 10000 9840 10000 10000 9899 9924 10000 9945 9896 9895 9951 10000 9890 10000 9946 10000 10000 10000 10000 9787 10000 9928 9927 9856 10000
tm019fja 6753 8275 7718 8356 8224 7725 8831 9397 9193 9527 9790 9888 10000 9933 9803 9763 10000 9884 9840 9922 9881 9934 9754 9961 9921 9868 9955 9917 9963 10000 9924 9954 9860 9954 9963 9953 9814 9963 10000 9777 10000 9893 9810 9819 9817 9828 9950 9857 9941 9906 10000 10000 9872 10000 9672 10000 9940 9939 9880 10000
tm019gja 6494 7179 6595 7360 8093 7055 8893 8723 9308 9823 9829 9865 9863 9800 9710 9880 9883 9838 9881 9920 9933 9793 9922 9880 9911 9909 9916 9963 9925 9923 9906 9810 9811 9887 10000 9859 9962 9955 9820 9937 9946 9856 9816 9861 9870 10000 9855 10000 9905 10000 10000 9914 9948 9765 10000 9939 9938 9878 10000
tm019hja 7158 7119 7619 7828 6363 8818 8839 9310 9851 9750 10000 10000 9784 9846 9785 9917 9740 9789 9785 10000 9734 9834 9915 9953 10000 10000 10000 10000 9959 10000 10000 10000 10000 9948 10000 10000 10000 9758 10000 9941 9897 9951 9950 9861 9891 9896 9662 9897 9945 9946 9954 9775 9798 10000 9933 9932 9866 10000
tm019ija tm019jja tm019kja 6943 8418 8722 7121 9125 9314 9395 9715 9943 9933 9932 9901 9905 9839 9763 9960 9881 9960 9933 9621 9922 9960 9911 9909 9958 9888 9963 9923 10000 9953 10000 9925 9952 9953 9888 10000 9774 10000 10000 9758 9954 9908 9957 9900 9903 9940 9710 10000 10000 9603 9948 9765 10000 10000 10000 9939 10000
tm019lja tm019mja tm019nja 7128 8733 7339 8663 8875 8818 9644 10000 9934 9933 9752 9810 9759 9805 9880 9843 9920 9934 9625 9884 9921 9868 9909 9917 9926 9926 9886 10000 10000 9907 9888 9952 10000 9963 9911 9822 10000 9946 9953 9909 9909 9957 9900 9856 9940 9810 9950 10000 9829 9949 9861 10000 9940 9939 9880 10000
tm019oja 7185 7363 8695 8571 8991 9787 9710 9932 10000 9748 9856 9672 9843 9713 9760 9838 9932 9876 9722 9840 9955 9954 9958 9962 9962 9961 10000 10000 10000 9962 9952 10000 9962 10000 9819 10000 9945 9952 10000 10000 9956 9899 9903 9754 9952 9949 9899 10000 9738 9859 9945 9939 9938 9878 10000
tm019pja 7571 9362 9160 9409 9862 9722 9935 10000 9806 9766 9762 9924 9761 9845 9681 9935 9880 9769 9883 9957 9955 9918 9963 9927 9962 9954 9954 9954 9926 9953 10000 9963 9956 9825 10000 9947 9907 9955 10000 9958 9902 9811 9764 9954 9852 9951 9958 9798 9864 10000 9941 9940 9941 10000
tm019qja tm019rja 8680 8842 8739 9896 9777 10000 10000 9805 9860 9802 9923 9801 9844 9842 10000 9797 9846 9922 9957 9955 9959 9963 9963 9962 10000 9954 10000 9963 9953 10000 9963 10000 9688 10000 9947 9859 10000 10000 9915 9902 9810 9763 9907 9950 9902 9873 9746 9817 9947 9941 9940 9882 10000
tm019sja 7281 8290 9898 9839 10000 9937 9811 9955 9767 9850 9845 9848 9885 10000 9721 9925 9885 9873 9913 9880 9928 9928 9927 9955 9955 9955 9928 10000 9955 9964 10000 9915 10000 9897 9770 9913 9912 9876 10000 10000 9887 9955 10000 9905 9877 9951 9911 10000 10000 10000 9886 10000
tm019tja 7129 9764 9948 9939 9938 9908 9866 9770 9852 9809 9774 9886 9939 9884 9814 9811 9875 9914 9881 9929 9894 9891 9912 9912 9868 9893 9955 9913 9964 9916 9916 10000 9950 10000 9828 9914 9919 9859 9819 9889 9955 9953 10000 9919 9904 9913 10000 9944 9943 9832 10000
tm019uja 9797 10000 10000 10000 9953 9955 9769 9775 9846 9849 10000 10000 9922 9851 9809 9958 9957 10000 9964 9964 9963 10000 9955 10000 10000 10000 10000 9964 10000 9787 10000 10000 9910 10000 10000 10000 10000 9863 10000 9910 9952 10000 9878 9952 9956 10000 9944 9943 9887 10000
w32bg115 9313 9673 9670 8807 8947 9104 9166 9018 9117 9571 9893 8914 9359 9270 9612 9683 9706 9701 9803 9933 9840 9716 9717 9664 9711 9760 9802 9846 9527 9742 9819 9628 9724 9640 9698 9429 9537 9701 9543 9424 9916 9661 9694 9467 9724 9951 9950 9852 9689
w32bg__a w32bg__b 9743 9736 9448 9558 9479 9615 9352 9608 9540 9873 9461 9728 9485 9936 9865 9636 9899 9950 9842 9860 9859 9930 9949 9855 9861 9949 9935 9736 9770 9824 9856 9865 9724 9683 9603 9703 9101 9784 9921 9685 10000 9586 9720 9729 9894 9891 9894 10000
w32bg__c 4848 10000 9911 9664 10000 9867 9871 9801 5555 9931 10000 9935 10000 10000 9929 9883 9941 9815 9913 10000 9266 9634 10000 10000 9941 9504 10000 9661 9885 10000 9834 9916 9925 10000 9909 9852 9821 10000 9901 9851 10000 10000 10000 10000 10000 10000 10000
w32bg__d 10000 10000 9729 10000 9797 9870 9933 7804 9861 10000 9868 10000 10000 10000 9881 10000 9938 9912 9911 9449 9818 10000 9913 9880 9754 10000 9649 10000 10000 9916 9741 9847 10000 10000 9848 9818 10000 9900 9925 10000 10000 10000 10000 10000 10000 10000
w32bg__j 5000 8045 8502 8500 8415 8571 9904 9255 8502 9005 9720 9768 9685 9911 9866 9908 9821 9880 9941 9724 9689 9761 9865 9831 9717 9823 9857 9691 9649 9644 9672 9671 9687 9663 9693 9527 9738 9447 9798 9515 9928 10000 10000 10000 9823
w32bg__k 8324 8385 7853 8359 8631 9911 9062 8445 9100 9732 9779 9646 9914 9782 9955 9712 9828 9829 9596 9580 9714 9913 9672 9673 9834 9795 9705 9548 9602 9631 9622 9515 9685 9647 9415 9751 9470 9808 9476 9931 10000 10000 10000 9834
w32bg__n 6010 7560 7619 6526 9664 8584 7710 8584 9502 9678 9705 9622 9661 9692 9669 9765 9766 9618 9905 9861 9737 9638 9545 9938 9617 9460 9772 9675 9784 9267 9808 9636 9714 9798 9750 9608 9795 9768 9946 10000 10000 9940 10000
w32bg__p 7582 6307 7535 9937 8423 7500 8274 9608 9734 9797 9670 9819 9776 9633 9678 9910 9742 9908 9820 9706 9783 9650 9940 9631 9478 9642 9497 9790 9400 9767 9828 9770 9855 9807 9487 10000 9775 10000 10000 10000 10000 10000
w32bg__q w32bg__t 7050 8194 9867 7031 7156 7463 9733 9771 9790 9737 9814 9924 9668 9666 9765 9773 9759 9669 9736 9683 9776 9937 9783 9711 9677 9528 9272 9484 9856 9759 9512 9479 9748 9696 9794 9861 9781 10000 10000 10000 9875
w32bg__r 7962 9806 8075 8080 8198 9649 9730 9668 9854 9854 9812 9675 9909 9770 9662 9716 9771 9854 9644 9781 9939 9735 9571 9348 9342 9656 9226 9414 9644 9719 9802 9854 9832 9748 9772 9677 10000 10000 10000 10000
w32bg__s 9801 8789 8362 9382 9549 9631 9662 9583 9622 9770 9718 9716 9718 9498 9857 9814 9737 9638 9592 9938 9673 9512 9583 9530 9650 9322 9609 9698 9859 9747 9750 9786 9743 9862 10000 9880 9817 10000 10000
w32bg__x 9863 9874 9803 9922 9918 9785 9883 9883 9815 9736 9824 9459 9634 9909 9827 9941 9504 10000 10000 9767 9910 9834 9831 9925 9901 9722 10000 10000 10000 10000 9851 10000 10000 10000 10000 10000 10000 10000
w32bg__z 7990 8387 9439 9571 9563 9573 9613 9765 9857 9708 9759 9527 9753 9611 9770 9579 9629 9935 9662 9550 9420 9466 9354 9470 9597 9490 9230 9293 9635 9504 9789 9663 9717 10000 9937 10000 9870
w32bg_aa 6479 9563 9596 9756 9708 9632 9738 9585 9772 9910 9742 9768 9634 9781 9649 9372 9940 9576 9428 9734 9732 9704 9658 9719 9529 9530 9340 9856 9707 9701 9866 9790 9827 9883 10000 9880
w32bg_ad 9646 9681 9708 9816 9816 9849 9624 9719 9908 9889 9811 9722 9890 9823 9779 9939 9894 9715 9634 9534 9517 9650 9810 9883 9716 9750 9852 9788 10000 9954 9729 10000 10000 10000 9877
w32krg_a 5642 7653 7450 7990 8039 9627 9513 9572 8246 9385 9405 8738 9646 9700 9469 9220 9505 9639 9358 9759 9537 9500 9500 9621 9532 9715 9563 9647 9521 9750 9931 9929 9645 9703
w32krg_b 7411 7920 8490 8325 9555 9611 9497 8186 9298 9200 8853 9523 9742 9440 9470 9364 9789 9392 9751 9642 9600 9629 9664 9638 9704 9600 9631 9673 9671 9703 9925 9854 9923
w32krg_c