mirror of
https://github.com/Sei-Lisa/LSL-PyOptimizer
synced 2025-07-01 15:48:21 +00:00
Fix GetNextShortest. Add test and regression cases. Rename AssignNewNames.
This commit is contained in:
parent
50d1bb2c41
commit
400809671e
3 changed files with 760 additions and 16 deletions
|
@ -609,7 +609,7 @@ class optimizer(renamer):
|
|||
self.FoldTree(tree, idx)
|
||||
|
||||
if 'shrinknames' in options:
|
||||
self.AssignNewNames()
|
||||
self.ShrinkNames()
|
||||
|
||||
treesymtab = (self.tree, self.symtab)
|
||||
del self.tree
|
||||
|
|
|
@ -2,30 +2,40 @@ import random
|
|||
from base64 import b64encode
|
||||
|
||||
class renamer(object):
|
||||
CharSet1 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_'
|
||||
CharSet2 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_0123456789'
|
||||
CharSet1 = '_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
|
||||
CharSet2 = '0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
|
||||
# TODO: Derive these from builtins.txt somehow.
|
||||
KwByLen = ((), (), ('do', 'if', 'PI'), ('for', 'key', 'EOF'),
|
||||
('jump', 'else', 'list', 'TRUE', 'LOOP'))
|
||||
def GetNextShortest(self):
|
||||
"""Generate the next shortest possible identifier"""
|
||||
while True:
|
||||
n = self.WordCntr
|
||||
self.WordCntr += 1
|
||||
ret = self.CharSet1[n % 53]
|
||||
n //= 53
|
||||
while n > 1:
|
||||
ret += self.CharSet2[n % 63]
|
||||
n //= 63
|
||||
ret = self.CharSet1[self.WordFirstChar]
|
||||
for idx in self.WordRestOfChars:
|
||||
ret += self.CharSet2[idx]
|
||||
self.WordFirstChar += 1
|
||||
if self.WordFirstChar >= len(self.CharSet1):
|
||||
self.WordFirstChar = 0
|
||||
for idx in xrange(len(self.WordRestOfChars)):
|
||||
if self.WordRestOfChars[idx] < len(self.CharSet2)-1:
|
||||
self.WordRestOfChars[idx] += 1
|
||||
break
|
||||
self.WordRestOfChars[idx] = 0
|
||||
else:
|
||||
self.WordRestOfChars.append(0)
|
||||
|
||||
if ret not in self.KwByLen[len(ret)] and ret not in self.UsedNames:
|
||||
return ret
|
||||
|
||||
def AssignNewNames(self):
|
||||
self.WordCntr = 53 # Initialize to length 1
|
||||
def ShrinkNames(self):
|
||||
"""Implements the shrinknames option."""
|
||||
self.WordFirstChar = 0
|
||||
self.WordRestOfChars = []
|
||||
|
||||
# Names that can be reused without penalty. The initial set is there
|
||||
# since the beginning. Others (e.g. Key) are created when some kinds
|
||||
# of stuff are present, but we don't take so many risks.
|
||||
# since the beginning. Others (e.g. Key) are created when certain
|
||||
# stuff is present (e.g. Key when there are keys), but we don't take
|
||||
# too many risks.
|
||||
ReusableNames = set(['LslLibrary', 'LslUserScript', 'System'])
|
||||
|
||||
# Names from ReusableNames that have already been used
|
||||
|
@ -49,7 +59,7 @@ class renamer(object):
|
|||
elif kind == 'v':
|
||||
globalvars.append(name)
|
||||
else:
|
||||
assert False, 'Invalid kind at this scope: ' + kind
|
||||
assert False, 'Invalid kind at this scope: ' + kind # pragma: no cover
|
||||
|
||||
# We make three passes, one for states, then functions, then globals,
|
||||
# in that order.
|
||||
|
@ -111,11 +121,12 @@ class renamer(object):
|
|||
if name == -1: continue
|
||||
if sym['Kind'] != 'v':
|
||||
assert sym['Kind'] == 'l'
|
||||
name = name # trick the optimizer
|
||||
continue
|
||||
if 'Param' in sym:
|
||||
# Same procedure as for global vars
|
||||
# Not the best strategy (using locally unique names would
|
||||
# work optimally) but hey. At the time of writing there's
|
||||
# do a better job) but hey. At the time of writing there's
|
||||
# no reference analysis. TODO: Implement.
|
||||
if ReusableNames:
|
||||
short = ReusableNames.pop()
|
||||
|
|
733
testparser.py
733
testparser.py
|
@ -288,6 +288,7 @@ class Test03_Optimizer(UnitTestCase):
|
|||
self.opt.optimize(p)
|
||||
self.opt.optimize(p, ())
|
||||
print self.outscript.output(p)
|
||||
|
||||
p = self.parser.parse('''string s = llUnescapeURL("%09");default{timer(){float f=llSqrt(-1);
|
||||
integer i;-(-(0.0+i));!!(!~~(!(i)));[]+i;}}''',
|
||||
['extendedtypecast','extendedassignment',
|
||||
|
@ -295,6 +296,736 @@ class Test03_Optimizer(UnitTestCase):
|
|||
)
|
||||
self.opt.optimize(p, ['optimize','foldtabs'])
|
||||
print self.outscript.output(p)
|
||||
|
||||
p = self.parser.parse(
|
||||
'''integer i1; integer i2; integer i3; integer i4; integer i5;
|
||||
string s1; string s2; string s3; string s4; string s5;
|
||||
f1(){jump x; @x;} f2(){integer i3; i4=0; s3=""; f1(); state another;}
|
||||
default { timer() { state another; } }
|
||||
state another { timer() { state default; } touch(integer num_det) {} }
|
||||
''',
|
||||
['optimize', 'shrinknames']
|
||||
)
|
||||
self.opt.optimize(p, ['optimize','shrinknames'])
|
||||
|
||||
print self.outscript.output(p)
|
||||
p = self.parser.parse(
|
||||
'''integer i1; integer i2; integer i3; integer i4; integer i5;
|
||||
string a1; string a2; string a3; string a4; string a5;
|
||||
string b1; string b2; string b3; string b4; string b5;
|
||||
string c1; string c2; string c3; string c4; string c5;
|
||||
string d1; string d2; string d3; string d4; string d5;
|
||||
string e1; string e2; string e3; string e4; string e5;
|
||||
string f1; string f2; string f3; string f4; string f5;
|
||||
string g1; string g2; string g3; string g4; string g5;
|
||||
string h1; string h2; string h3; string h4; string h5;
|
||||
string j1; string j2; string j3; string j4; string j5;
|
||||
string k1; string k2; string k3; string k4; string k5;
|
||||
string l1; string l2; string l3; string l4; string l5;
|
||||
string m1; string m2; string m3; string m4; string m5;
|
||||
string n1; string n2; string n3; string n4; string n5;
|
||||
string o1; string o2; string o3; string o4; string o5;
|
||||
string p1; string p2; string p3; string p4; string p5;
|
||||
string s1; string s2; string s3; string s4; string s5;
|
||||
key k0000; key k0001; key k0002; key k0003; key k0004;
|
||||
key k0005; key k0006; key k0007; key k0008; key k0009;
|
||||
key k0010; key k0011; key k0012; key k0013; key k0014;
|
||||
key k0015; key k0016; key k0017; key k0018; key k0019;
|
||||
key k0020; key k0021; key k0022; key k0023; key k0024;
|
||||
key k0025; key k0026; key k0027; key k0028; key k0029;
|
||||
key k0030; key k0031; key k0032; key k0033; key k0034;
|
||||
key k0035; key k0036; key k0037; key k0038; key k0039;
|
||||
key k0040; key k0041; key k0042; key k0043; key k0044;
|
||||
key k0045; key k0046; key k0047; key k0048; key k0049;
|
||||
key k0050; key k0051; key k0052; key k0053; key k0054;
|
||||
key k0055; key k0056; key k0057; key k0058; key k0059;
|
||||
key k0060; key k0061; key k0062; key k0063; key k0064;
|
||||
key k0065; key k0066; key k0067; key k0068; key k0069;
|
||||
key k0070; key k0071; key k0072; key k0073; key k0074;
|
||||
key k0075; key k0076; key k0077; key k0078; key k0079;
|
||||
key k0080; key k0081; key k0082; key k0083; key k0084;
|
||||
key k0085; key k0086; key k0087; key k0088; key k0089;
|
||||
key k0090; key k0091; key k0092; key k0093; key k0094;
|
||||
key k0095; key k0096; key k0097; key k0098; key k0099;
|
||||
key k0100; key k0101; key k0102; key k0103; key k0104;
|
||||
key k0105; key k0106; key k0107; key k0108; key k0109;
|
||||
key k0110; key k0111; key k0112; key k0113; key k0114;
|
||||
key k0115; key k0116; key k0117; key k0118; key k0119;
|
||||
key k0120; key k0121; key k0122; key k0123; key k0124;
|
||||
key k0125; key k0126; key k0127; key k0128; key k0129;
|
||||
key k0130; key k0131; key k0132; key k0133; key k0134;
|
||||
key k0135; key k0136; key k0137; key k0138; key k0139;
|
||||
key k0140; key k0141; key k0142; key k0143; key k0144;
|
||||
key k0145; key k0146; key k0147; key k0148; key k0149;
|
||||
key k0150; key k0151; key k0152; key k0153; key k0154;
|
||||
key k0155; key k0156; key k0157; key k0158; key k0159;
|
||||
key k0160; key k0161; key k0162; key k0163; key k0164;
|
||||
key k0165; key k0166; key k0167; key k0168; key k0169;
|
||||
key k0170; key k0171; key k0172; key k0173; key k0174;
|
||||
key k0175; key k0176; key k0177; key k0178; key k0179;
|
||||
key k0180; key k0181; key k0182; key k0183; key k0184;
|
||||
key k0185; key k0186; key k0187; key k0188; key k0189;
|
||||
key k0190; key k0191; key k0192; key k0193; key k0194;
|
||||
key k0195; key k0196; key k0197; key k0198; key k0199;
|
||||
key k0200; key k0201; key k0202; key k0203; key k0204;
|
||||
key k0205; key k0206; key k0207; key k0208; key k0209;
|
||||
key k0210; key k0211; key k0212; key k0213; key k0214;
|
||||
key k0215; key k0216; key k0217; key k0218; key k0219;
|
||||
key k0220; key k0221; key k0222; key k0223; key k0224;
|
||||
key k0225; key k0226; key k0227; key k0228; key k0229;
|
||||
key k0230; key k0231; key k0232; key k0233; key k0234;
|
||||
key k0235; key k0236; key k0237; key k0238; key k0239;
|
||||
key k0240; key k0241; key k0242; key k0243; key k0244;
|
||||
key k0245; key k0246; key k0247; key k0248; key k0249;
|
||||
key k0250; key k0251; key k0252; key k0253; key k0254;
|
||||
key k0255; key k0256; key k0257; key k0258; key k0259;
|
||||
key k0260; key k0261; key k0262; key k0263; key k0264;
|
||||
key k0265; key k0266; key k0267; key k0268; key k0269;
|
||||
key k0270; key k0271; key k0272; key k0273; key k0274;
|
||||
key k0275; key k0276; key k0277; key k0278; key k0279;
|
||||
key k0280; key k0281; key k0282; key k0283; key k0284;
|
||||
key k0285; key k0286; key k0287; key k0288; key k0289;
|
||||
key k0290; key k0291; key k0292; key k0293; key k0294;
|
||||
key k0295; key k0296; key k0297; key k0298; key k0299;
|
||||
key k0300; key k0301; key k0302; key k0303; key k0304;
|
||||
key k0305; key k0306; key k0307; key k0308; key k0309;
|
||||
key k0310; key k0311; key k0312; key k0313; key k0314;
|
||||
key k0315; key k0316; key k0317; key k0318; key k0319;
|
||||
key k0320; key k0321; key k0322; key k0323; key k0324;
|
||||
key k0325; key k0326; key k0327; key k0328; key k0329;
|
||||
key k0330; key k0331; key k0332; key k0333; key k0334;
|
||||
key k0335; key k0336; key k0337; key k0338; key k0339;
|
||||
key k0340; key k0341; key k0342; key k0343; key k0344;
|
||||
key k0345; key k0346; key k0347; key k0348; key k0349;
|
||||
key k0350; key k0351; key k0352; key k0353; key k0354;
|
||||
key k0355; key k0356; key k0357; key k0358; key k0359;
|
||||
key k0360; key k0361; key k0362; key k0363; key k0364;
|
||||
key k0365; key k0366; key k0367; key k0368; key k0369;
|
||||
key k0370; key k0371; key k0372; key k0373; key k0374;
|
||||
key k0375; key k0376; key k0377; key k0378; key k0379;
|
||||
key k0380; key k0381; key k0382; key k0383; key k0384;
|
||||
key k0385; key k0386; key k0387; key k0388; key k0389;
|
||||
key k0390; key k0391; key k0392; key k0393; key k0394;
|
||||
key k0395; key k0396; key k0397; key k0398; key k0399;
|
||||
key k0400; key k0401; key k0402; key k0403; key k0404;
|
||||
key k0405; key k0406; key k0407; key k0408; key k0409;
|
||||
key k0410; key k0411; key k0412; key k0413; key k0414;
|
||||
key k0415; key k0416; key k0417; key k0418; key k0419;
|
||||
key k0420; key k0421; key k0422; key k0423; key k0424;
|
||||
key k0425; key k0426; key k0427; key k0428; key k0429;
|
||||
key k0430; key k0431; key k0432; key k0433; key k0434;
|
||||
key k0435; key k0436; key k0437; key k0438; key k0439;
|
||||
key k0440; key k0441; key k0442; key k0443; key k0444;
|
||||
key k0445; key k0446; key k0447; key k0448; key k0449;
|
||||
key k0450; key k0451; key k0452; key k0453; key k0454;
|
||||
key k0455; key k0456; key k0457; key k0458; key k0459;
|
||||
key k0460; key k0461; key k0462; key k0463; key k0464;
|
||||
key k0465; key k0466; key k0467; key k0468; key k0469;
|
||||
key k0470; key k0471; key k0472; key k0473; key k0474;
|
||||
key k0475; key k0476; key k0477; key k0478; key k0479;
|
||||
key k0480; key k0481; key k0482; key k0483; key k0484;
|
||||
key k0485; key k0486; key k0487; key k0488; key k0489;
|
||||
key k0490; key k0491; key k0492; key k0493; key k0494;
|
||||
key k0495; key k0496; key k0497; key k0498; key k0499;
|
||||
key k0500; key k0501; key k0502; key k0503; key k0504;
|
||||
key k0505; key k0506; key k0507; key k0508; key k0509;
|
||||
key k0510; key k0511; key k0512; key k0513; key k0514;
|
||||
key k0515; key k0516; key k0517; key k0518; key k0519;
|
||||
key k0520; key k0521; key k0522; key k0523; key k0524;
|
||||
key k0525; key k0526; key k0527; key k0528; key k0529;
|
||||
key k0530; key k0531; key k0532; key k0533; key k0534;
|
||||
key k0535; key k0536; key k0537; key k0538; key k0539;
|
||||
key k0540; key k0541; key k0542; key k0543; key k0544;
|
||||
key k0545; key k0546; key k0547; key k0548; key k0549;
|
||||
key k0550; key k0551; key k0552; key k0553; key k0554;
|
||||
key k0555; key k0556; key k0557; key k0558; key k0559;
|
||||
key k0560; key k0561; key k0562; key k0563; key k0564;
|
||||
key k0565; key k0566; key k0567; key k0568; key k0569;
|
||||
key k0570; key k0571; key k0572; key k0573; key k0574;
|
||||
key k0575; key k0576; key k0577; key k0578; key k0579;
|
||||
key k0580; key k0581; key k0582; key k0583; key k0584;
|
||||
key k0585; key k0586; key k0587; key k0588; key k0589;
|
||||
key k0590; key k0591; key k0592; key k0593; key k0594;
|
||||
key k0595; key k0596; key k0597; key k0598; key k0599;
|
||||
key k0600; key k0601; key k0602; key k0603; key k0604;
|
||||
key k0605; key k0606; key k0607; key k0608; key k0609;
|
||||
key k0610; key k0611; key k0612; key k0613; key k0614;
|
||||
key k0615; key k0616; key k0617; key k0618; key k0619;
|
||||
key k0620; key k0621; key k0622; key k0623; key k0624;
|
||||
key k0625; key k0626; key k0627; key k0628; key k0629;
|
||||
key k0630; key k0631; key k0632; key k0633; key k0634;
|
||||
key k0635; key k0636; key k0637; key k0638; key k0639;
|
||||
key k0640; key k0641; key k0642; key k0643; key k0644;
|
||||
key k0645; key k0646; key k0647; key k0648; key k0649;
|
||||
key k0650; key k0651; key k0652; key k0653; key k0654;
|
||||
key k0655; key k0656; key k0657; key k0658; key k0659;
|
||||
key k0660; key k0661; key k0662; key k0663; key k0664;
|
||||
key k0665; key k0666; key k0667; key k0668; key k0669;
|
||||
key k0670; key k0671; key k0672; key k0673; key k0674;
|
||||
key k0675; key k0676; key k0677; key k0678; key k0679;
|
||||
key k0680; key k0681; key k0682; key k0683; key k0684;
|
||||
key k0685; key k0686; key k0687; key k0688; key k0689;
|
||||
key k0690; key k0691; key k0692; key k0693; key k0694;
|
||||
key k0695; key k0696; key k0697; key k0698; key k0699;
|
||||
key k0700; key k0701; key k0702; key k0703; key k0704;
|
||||
key k0705; key k0706; key k0707; key k0708; key k0709;
|
||||
key k0710; key k0711; key k0712; key k0713; key k0714;
|
||||
key k0715; key k0716; key k0717; key k0718; key k0719;
|
||||
key k0720; key k0721; key k0722; key k0723; key k0724;
|
||||
key k0725; key k0726; key k0727; key k0728; key k0729;
|
||||
key k0730; key k0731; key k0732; key k0733; key k0734;
|
||||
key k0735; key k0736; key k0737; key k0738; key k0739;
|
||||
key k0740; key k0741; key k0742; key k0743; key k0744;
|
||||
key k0745; key k0746; key k0747; key k0748; key k0749;
|
||||
key k0750; key k0751; key k0752; key k0753; key k0754;
|
||||
key k0755; key k0756; key k0757; key k0758; key k0759;
|
||||
key k0760; key k0761; key k0762; key k0763; key k0764;
|
||||
key k0765; key k0766; key k0767; key k0768; key k0769;
|
||||
key k0770; key k0771; key k0772; key k0773; key k0774;
|
||||
key k0775; key k0776; key k0777; key k0778; key k0779;
|
||||
key k0780; key k0781; key k0782; key k0783; key k0784;
|
||||
key k0785; key k0786; key k0787; key k0788; key k0789;
|
||||
key k0790; key k0791; key k0792; key k0793; key k0794;
|
||||
key k0795; key k0796; key k0797; key k0798; key k0799;
|
||||
key k0800; key k0801; key k0802; key k0803; key k0804;
|
||||
key k0805; key k0806; key k0807; key k0808; key k0809;
|
||||
key k0810; key k0811; key k0812; key k0813; key k0814;
|
||||
key k0815; key k0816; key k0817; key k0818; key k0819;
|
||||
key k0820; key k0821; key k0822; key k0823; key k0824;
|
||||
key k0825; key k0826; key k0827; key k0828; key k0829;
|
||||
key k0830; key k0831; key k0832; key k0833; key k0834;
|
||||
key k0835; key k0836; key k0837; key k0838; key k0839;
|
||||
key k0840; key k0841; key k0842; key k0843; key k0844;
|
||||
key k0845; key k0846; key k0847; key k0848; key k0849;
|
||||
key k0850; key k0851; key k0852; key k0853; key k0854;
|
||||
key k0855; key k0856; key k0857; key k0858; key k0859;
|
||||
key k0860; key k0861; key k0862; key k0863; key k0864;
|
||||
key k0865; key k0866; key k0867; key k0868; key k0869;
|
||||
key k0870; key k0871; key k0872; key k0873; key k0874;
|
||||
key k0875; key k0876; key k0877; key k0878; key k0879;
|
||||
key k0880; key k0881; key k0882; key k0883; key k0884;
|
||||
key k0885; key k0886; key k0887; key k0888; key k0889;
|
||||
key k0890; key k0891; key k0892; key k0893; key k0894;
|
||||
key k0895; key k0896; key k0897; key k0898; key k0899;
|
||||
key k0900; key k0901; key k0902; key k0903; key k0904;
|
||||
key k0905; key k0906; key k0907; key k0908; key k0909;
|
||||
key k0910; key k0911; key k0912; key k0913; key k0914;
|
||||
key k0915; key k0916; key k0917; key k0918; key k0919;
|
||||
key k0920; key k0921; key k0922; key k0923; key k0924;
|
||||
key k0925; key k0926; key k0927; key k0928; key k0929;
|
||||
key k0930; key k0931; key k0932; key k0933; key k0934;
|
||||
key k0935; key k0936; key k0937; key k0938; key k0939;
|
||||
key k0940; key k0941; key k0942; key k0943; key k0944;
|
||||
key k0945; key k0946; key k0947; key k0948; key k0949;
|
||||
key k0950; key k0951; key k0952; key k0953; key k0954;
|
||||
key k0955; key k0956; key k0957; key k0958; key k0959;
|
||||
key k0960; key k0961; key k0962; key k0963; key k0964;
|
||||
key k0965; key k0966; key k0967; key k0968; key k0969;
|
||||
key k0970; key k0971; key k0972; key k0973; key k0974;
|
||||
key k0975; key k0976; key k0977; key k0978; key k0979;
|
||||
key k0980; key k0981; key k0982; key k0983; key k0984;
|
||||
key k0985; key k0986; key k0987; key k0988; key k0989;
|
||||
key k0990; key k0991; key k0992; key k0993; key k0994;
|
||||
key k0995; key k0996; key k0997; key k0998; key k0999;
|
||||
key k1000; key k1001; key k1002; key k1003; key k1004;
|
||||
key k1005; key k1006; key k1007; key k1008; key k1009;
|
||||
key k1010; key k1011; key k1012; key k1013; key k1014;
|
||||
key k1015; key k1016; key k1017; key k1018; key k1019;
|
||||
key k1020; key k1021; key k1022; key k1023; key k1024;
|
||||
key k1025; key k1026; key k1027; key k1028; key k1029;
|
||||
key k1030; key k1031; key k1032; key k1033; key k1034;
|
||||
key k1035; key k1036; key k1037; key k1038; key k1039;
|
||||
key k1040; key k1041; key k1042; key k1043; key k1044;
|
||||
key k1045; key k1046; key k1047; key k1048; key k1049;
|
||||
key k1050; key k1051; key k1052; key k1053; key k1054;
|
||||
key k1055; key k1056; key k1057; key k1058; key k1059;
|
||||
key k1060; key k1061; key k1062; key k1063; key k1064;
|
||||
key k1065; key k1066; key k1067; key k1068; key k1069;
|
||||
key k1070; key k1071; key k1072; key k1073; key k1074;
|
||||
key k1075; key k1076; key k1077; key k1078; key k1079;
|
||||
key k1080; key k1081; key k1082; key k1083; key k1084;
|
||||
key k1085; key k1086; key k1087; key k1088; key k1089;
|
||||
key k1090; key k1091; key k1092; key k1093; key k1094;
|
||||
key k1095; key k1096; key k1097; key k1098; key k1099;
|
||||
key k1100; key k1101; key k1102; key k1103; key k1104;
|
||||
key k1105; key k1106; key k1107; key k1108; key k1109;
|
||||
key k1110; key k1111; key k1112; key k1113; key k1114;
|
||||
key k1115; key k1116; key k1117; key k1118; key k1119;
|
||||
key k1120; key k1121; key k1122; key k1123; key k1124;
|
||||
key k1125; key k1126; key k1127; key k1128; key k1129;
|
||||
key k1130; key k1131; key k1132; key k1133; key k1134;
|
||||
key k1135; key k1136; key k1137; key k1138; key k1139;
|
||||
key k1140; key k1141; key k1142; key k1143; key k1144;
|
||||
key k1145; key k1146; key k1147; key k1148; key k1149;
|
||||
key k1150; key k1151; key k1152; key k1153; key k1154;
|
||||
key k1155; key k1156; key k1157; key k1158; key k1159;
|
||||
key k1160; key k1161; key k1162; key k1163; key k1164;
|
||||
key k1165; key k1166; key k1167; key k1168; key k1169;
|
||||
key k1170; key k1171; key k1172; key k1173; key k1174;
|
||||
key k1175; key k1176; key k1177; key k1178; key k1179;
|
||||
key k1180; key k1181; key k1182; key k1183; key k1184;
|
||||
key k1185; key k1186; key k1187; key k1188; key k1189;
|
||||
key k1190; key k1191; key k1192; key k1193; key k1194;
|
||||
key k1195; key k1196; key k1197; key k1198; key k1199;
|
||||
key k1200; key k1201; key k1202; key k1203; key k1204;
|
||||
key k1205; key k1206; key k1207; key k1208; key k1209;
|
||||
key k1210; key k1211; key k1212; key k1213; key k1214;
|
||||
key k1215; key k1216; key k1217; key k1218; key k1219;
|
||||
key k1220; key k1221; key k1222; key k1223; key k1224;
|
||||
key k1225; key k1226; key k1227; key k1228; key k1229;
|
||||
key k1230; key k1231; key k1232; key k1233; key k1234;
|
||||
key k1235; key k1236; key k1237; key k1238; key k1239;
|
||||
key k1240; key k1241; key k1242; key k1243; key k1244;
|
||||
key k1245; key k1246; key k1247; key k1248; key k1249;
|
||||
key k1250; key k1251; key k1252; key k1253; key k1254;
|
||||
key k1255; key k1256; key k1257; key k1258; key k1259;
|
||||
key k1260; key k1261; key k1262; key k1263; key k1264;
|
||||
key k1265; key k1266; key k1267; key k1268; key k1269;
|
||||
key k1270; key k1271; key k1272; key k1273; key k1274;
|
||||
key k1275; key k1276; key k1277; key k1278; key k1279;
|
||||
key k1280; key k1281; key k1282; key k1283; key k1284;
|
||||
key k1285; key k1286; key k1287; key k1288; key k1289;
|
||||
key k1290; key k1291; key k1292; key k1293; key k1294;
|
||||
key k1295; key k1296; key k1297; key k1298; key k1299;
|
||||
key k1300; key k1301; key k1302; key k1303; key k1304;
|
||||
key k1305; key k1306; key k1307; key k1308; key k1309;
|
||||
key k1310; key k1311; key k1312; key k1313; key k1314;
|
||||
key k1315; key k1316; key k1317; key k1318; key k1319;
|
||||
key k1320; key k1321; key k1322; key k1323; key k1324;
|
||||
key k1325; key k1326; key k1327; key k1328; key k1329;
|
||||
key k1330; key k1331; key k1332; key k1333; key k1334;
|
||||
key k1335; key k1336; key k1337; key k1338; key k1339;
|
||||
key k1340; key k1341; key k1342; key k1343; key k1344;
|
||||
key k1345; key k1346; key k1347; key k1348; key k1349;
|
||||
key k1350; key k1351; key k1352; key k1353; key k1354;
|
||||
key k1355; key k1356; key k1357; key k1358; key k1359;
|
||||
key k1360; key k1361; key k1362; key k1363; key k1364;
|
||||
key k1365; key k1366; key k1367; key k1368; key k1369;
|
||||
key k1370; key k1371; key k1372; key k1373; key k1374;
|
||||
key k1375; key k1376; key k1377; key k1378; key k1379;
|
||||
key k1380; key k1381; key k1382; key k1383; key k1384;
|
||||
key k1385; key k1386; key k1387; key k1388; key k1389;
|
||||
key k1390; key k1391; key k1392; key k1393; key k1394;
|
||||
key k1395; key k1396; key k1397; key k1398; key k1399;
|
||||
key k1400; key k1401; key k1402; key k1403; key k1404;
|
||||
key k1405; key k1406; key k1407; key k1408; key k1409;
|
||||
key k1410; key k1411; key k1412; key k1413; key k1414;
|
||||
key k1415; key k1416; key k1417; key k1418; key k1419;
|
||||
key k1420; key k1421; key k1422; key k1423; key k1424;
|
||||
key k1425; key k1426; key k1427; key k1428; key k1429;
|
||||
key k1430; key k1431; key k1432; key k1433; key k1434;
|
||||
key k1435; key k1436; key k1437; key k1438; key k1439;
|
||||
key k1440; key k1441; key k1442; key k1443; key k1444;
|
||||
key k1445; key k1446; key k1447; key k1448; key k1449;
|
||||
key k1450; key k1451; key k1452; key k1453; key k1454;
|
||||
key k1455; key k1456; key k1457; key k1458; key k1459;
|
||||
key k1460; key k1461; key k1462; key k1463; key k1464;
|
||||
key k1465; key k1466; key k1467; key k1468; key k1469;
|
||||
key k1470; key k1471; key k1472; key k1473; key k1474;
|
||||
key k1475; key k1476; key k1477; key k1478; key k1479;
|
||||
key k1480; key k1481; key k1482; key k1483; key k1484;
|
||||
key k1485; key k1486; key k1487; key k1488; key k1489;
|
||||
key k1490; key k1491; key k1492; key k1493; key k1494;
|
||||
key k1495; key k1496; key k1497; key k1498; key k1499;
|
||||
key k1500; key k1501; key k1502; key k1503; key k1504;
|
||||
key k1505; key k1506; key k1507; key k1508; key k1509;
|
||||
key k1510; key k1511; key k1512; key k1513; key k1514;
|
||||
key k1515; key k1516; key k1517; key k1518; key k1519;
|
||||
key k1520; key k1521; key k1522; key k1523; key k1524;
|
||||
key k1525; key k1526; key k1527; key k1528; key k1529;
|
||||
key k1530; key k1531; key k1532; key k1533; key k1534;
|
||||
key k1535; key k1536; key k1537; key k1538; key k1539;
|
||||
key k1540; key k1541; key k1542; key k1543; key k1544;
|
||||
key k1545; key k1546; key k1547; key k1548; key k1549;
|
||||
key k1550; key k1551; key k1552; key k1553; key k1554;
|
||||
key k1555; key k1556; key k1557; key k1558; key k1559;
|
||||
key k1560; key k1561; key k1562; key k1563; key k1564;
|
||||
key k1565; key k1566; key k1567; key k1568; key k1569;
|
||||
key k1570; key k1571; key k1572; key k1573; key k1574;
|
||||
key k1575; key k1576; key k1577; key k1578; key k1579;
|
||||
key k1580; key k1581; key k1582; key k1583; key k1584;
|
||||
key k1585; key k1586; key k1587; key k1588; key k1589;
|
||||
key k1590; key k1591; key k1592; key k1593; key k1594;
|
||||
key k1595; key k1596; key k1597; key k1598; key k1599;
|
||||
key k1600; key k1601; key k1602; key k1603; key k1604;
|
||||
key k1605; key k1606; key k1607; key k1608; key k1609;
|
||||
key k1610; key k1611; key k1612; key k1613; key k1614;
|
||||
key k1615; key k1616; key k1617; key k1618; key k1619;
|
||||
key k1620; key k1621; key k1622; key k1623; key k1624;
|
||||
key k1625; key k1626; key k1627; key k1628; key k1629;
|
||||
key k1630; key k1631; key k1632; key k1633; key k1634;
|
||||
key k1635; key k1636; key k1637; key k1638; key k1639;
|
||||
key k1640; key k1641; key k1642; key k1643; key k1644;
|
||||
key k1645; key k1646; key k1647; key k1648; key k1649;
|
||||
key k1650; key k1651; key k1652; key k1653; key k1654;
|
||||
key k1655; key k1656; key k1657; key k1658; key k1659;
|
||||
key k1660; key k1661; key k1662; key k1663; key k1664;
|
||||
key k1665; key k1666; key k1667; key k1668; key k1669;
|
||||
key k1670; key k1671; key k1672; key k1673; key k1674;
|
||||
key k1675; key k1676; key k1677; key k1678; key k1679;
|
||||
key k1680; key k1681; key k1682; key k1683; key k1684;
|
||||
key k1685; key k1686; key k1687; key k1688; key k1689;
|
||||
key k1690; key k1691; key k1692; key k1693; key k1694;
|
||||
key k1695; key k1696; key k1697; key k1698; key k1699;
|
||||
key k1700; key k1701; key k1702; key k1703; key k1704;
|
||||
key k1705; key k1706; key k1707; key k1708; key k1709;
|
||||
key k1710; key k1711; key k1712; key k1713; key k1714;
|
||||
key k1715; key k1716; key k1717; key k1718; key k1719;
|
||||
key k1720; key k1721; key k1722; key k1723; key k1724;
|
||||
key k1725; key k1726; key k1727; key k1728; key k1729;
|
||||
key k1730; key k1731; key k1732; key k1733; key k1734;
|
||||
key k1735; key k1736; key k1737; key k1738; key k1739;
|
||||
key k1740; key k1741; key k1742; key k1743; key k1744;
|
||||
key k1745; key k1746; key k1747; key k1748; key k1749;
|
||||
key k1750; key k1751; key k1752; key k1753; key k1754;
|
||||
key k1755; key k1756; key k1757; key k1758; key k1759;
|
||||
key k1760; key k1761; key k1762; key k1763; key k1764;
|
||||
key k1765; key k1766; key k1767; key k1768; key k1769;
|
||||
key k1770; key k1771; key k1772; key k1773; key k1774;
|
||||
key k1775; key k1776; key k1777; key k1778; key k1779;
|
||||
key k1780; key k1781; key k1782; key k1783; key k1784;
|
||||
key k1785; key k1786; key k1787; key k1788; key k1789;
|
||||
key k1790; key k1791; key k1792; key k1793; key k1794;
|
||||
key k1795; key k1796; key k1797; key k1798; key k1799;
|
||||
key k1800; key k1801; key k1802; key k1803; key k1804;
|
||||
key k1805; key k1806; key k1807; key k1808; key k1809;
|
||||
key k1810; key k1811; key k1812; key k1813; key k1814;
|
||||
key k1815; key k1816; key k1817; key k1818; key k1819;
|
||||
key k1820; key k1821; key k1822; key k1823; key k1824;
|
||||
key k1825; key k1826; key k1827; key k1828; key k1829;
|
||||
key k1830; key k1831; key k1832; key k1833; key k1834;
|
||||
key k1835; key k1836; key k1837; key k1838; key k1839;
|
||||
key k1840; key k1841; key k1842; key k1843; key k1844;
|
||||
key k1845; key k1846; key k1847; key k1848; key k1849;
|
||||
key k1850; key k1851; key k1852; key k1853; key k1854;
|
||||
key k1855; key k1856; key k1857; key k1858; key k1859;
|
||||
key k1860; key k1861; key k1862; key k1863; key k1864;
|
||||
key k1865; key k1866; key k1867; key k1868; key k1869;
|
||||
key k1870; key k1871; key k1872; key k1873; key k1874;
|
||||
key k1875; key k1876; key k1877; key k1878; key k1879;
|
||||
key k1880; key k1881; key k1882; key k1883; key k1884;
|
||||
key k1885; key k1886; key k1887; key k1888; key k1889;
|
||||
key k1890; key k1891; key k1892; key k1893; key k1894;
|
||||
key k1895; key k1896; key k1897; key k1898; key k1899;
|
||||
key k1900; key k1901; key k1902; key k1903; key k1904;
|
||||
key k1905; key k1906; key k1907; key k1908; key k1909;
|
||||
key k1910; key k1911; key k1912; key k1913; key k1914;
|
||||
key k1915; key k1916; key k1917; key k1918; key k1919;
|
||||
key k1920; key k1921; key k1922; key k1923; key k1924;
|
||||
key k1925; key k1926; key k1927; key k1928; key k1929;
|
||||
key k1930; key k1931; key k1932; key k1933; key k1934;
|
||||
key k1935; key k1936; key k1937; key k1938; key k1939;
|
||||
key k1940; key k1941; key k1942; key k1943; key k1944;
|
||||
key k1945; key k1946; key k1947; key k1948; key k1949;
|
||||
key k1950; key k1951; key k1952; key k1953; key k1954;
|
||||
key k1955; key k1956; key k1957; key k1958; key k1959;
|
||||
key k1960; key k1961; key k1962; key k1963; key k1964;
|
||||
key k1965; key k1966; key k1967; key k1968; key k1969;
|
||||
key k1970; key k1971; key k1972; key k1973; key k1974;
|
||||
key k1975; key k1976; key k1977; key k1978; key k1979;
|
||||
key k1980; key k1981; key k1982; key k1983; key k1984;
|
||||
key k1985; key k1986; key k1987; key k1988; key k1989;
|
||||
key k1990; key k1991; key k1992; key k1993; key k1994;
|
||||
key k1995; key k1996; key k1997; key k1998; key k1999;
|
||||
key k2000; key k2001; key k2002; key k2003; key k2004;
|
||||
key k2005; key k2006; key k2007; key k2008; key k2009;
|
||||
key k2010; key k2011; key k2012; key k2013; key k2014;
|
||||
key k2015; key k2016; key k2017; key k2018; key k2019;
|
||||
key k2020; key k2021; key k2022; key k2023; key k2024;
|
||||
key k2025; key k2026; key k2027; key k2028; key k2029;
|
||||
key k2030; key k2031; key k2032; key k2033; key k2034;
|
||||
key k2035; key k2036; key k2037; key k2038; key k2039;
|
||||
key k2040; key k2041; key k2042; key k2043; key k2044;
|
||||
key k2045; key k2046; key k2047; key k2048; key k2049;
|
||||
key k2050; key k2051; key k2052; key k2053; key k2054;
|
||||
key k2055; key k2056; key k2057; key k2058; key k2059;
|
||||
key k2060; key k2061; key k2062; key k2063; key k2064;
|
||||
key k2065; key k2066; key k2067; key k2068; key k2069;
|
||||
key k2070; key k2071; key k2072; key k2073; key k2074;
|
||||
key k2075; key k2076; key k2077; key k2078; key k2079;
|
||||
key k2080; key k2081; key k2082; key k2083; key k2084;
|
||||
key k2085; key k2086; key k2087; key k2088; key k2089;
|
||||
key k2090; key k2091; key k2092; key k2093; key k2094;
|
||||
key k2095; key k2096; key k2097; key k2098; key k2099;
|
||||
key k2100; key k2101; key k2102; key k2103; key k2104;
|
||||
key k2105; key k2106; key k2107; key k2108; key k2109;
|
||||
key k2110; key k2111; key k2112; key k2113; key k2114;
|
||||
key k2115; key k2116; key k2117; key k2118; key k2119;
|
||||
key k2120; key k2121; key k2122; key k2123; key k2124;
|
||||
key k2125; key k2126; key k2127; key k2128; key k2129;
|
||||
key k2130; key k2131; key k2132; key k2133; key k2134;
|
||||
key k2135; key k2136; key k2137; key k2138; key k2139;
|
||||
key k2140; key k2141; key k2142; key k2143; key k2144;
|
||||
key k2145; key k2146; key k2147; key k2148; key k2149;
|
||||
key k2150; key k2151; key k2152; key k2153; key k2154;
|
||||
key k2155; key k2156; key k2157; key k2158; key k2159;
|
||||
key k2160; key k2161; key k2162; key k2163; key k2164;
|
||||
key k2165; key k2166; key k2167; key k2168; key k2169;
|
||||
key k2170; key k2171; key k2172; key k2173; key k2174;
|
||||
key k2175; key k2176; key k2177; key k2178; key k2179;
|
||||
key k2180; key k2181; key k2182; key k2183; key k2184;
|
||||
key k2185; key k2186; key k2187; key k2188; key k2189;
|
||||
key k2190; key k2191; key k2192; key k2193; key k2194;
|
||||
key k2195; key k2196; key k2197; key k2198; key k2199;
|
||||
key k2200; key k2201; key k2202; key k2203; key k2204;
|
||||
key k2205; key k2206; key k2207; key k2208; key k2209;
|
||||
key k2210; key k2211; key k2212; key k2213; key k2214;
|
||||
key k2215; key k2216; key k2217; key k2218; key k2219;
|
||||
key k2220; key k2221; key k2222; key k2223; key k2224;
|
||||
key k2225; key k2226; key k2227; key k2228; key k2229;
|
||||
key k2230; key k2231; key k2232; key k2233; key k2234;
|
||||
key k2235; key k2236; key k2237; key k2238; key k2239;
|
||||
key k2240; key k2241; key k2242; key k2243; key k2244;
|
||||
key k2245; key k2246; key k2247; key k2248; key k2249;
|
||||
key k2250; key k2251; key k2252; key k2253; key k2254;
|
||||
key k2255; key k2256; key k2257; key k2258; key k2259;
|
||||
key k2260; key k2261; key k2262; key k2263; key k2264;
|
||||
key k2265; key k2266; key k2267; key k2268; key k2269;
|
||||
key k2270; key k2271; key k2272; key k2273; key k2274;
|
||||
key k2275; key k2276; key k2277; key k2278; key k2279;
|
||||
key k2280; key k2281; key k2282; key k2283; key k2284;
|
||||
key k2285; key k2286; key k2287; key k2288; key k2289;
|
||||
key k2290; key k2291; key k2292; key k2293; key k2294;
|
||||
key k2295; key k2296; key k2297; key k2298; key k2299;
|
||||
key k2300; key k2301; key k2302; key k2303; key k2304;
|
||||
key k2305; key k2306; key k2307; key k2308; key k2309;
|
||||
key k2310; key k2311; key k2312; key k2313; key k2314;
|
||||
key k2315; key k2316; key k2317; key k2318; key k2319;
|
||||
key k2320; key k2321; key k2322; key k2323; key k2324;
|
||||
key k2325; key k2326; key k2327; key k2328; key k2329;
|
||||
key k2330; key k2331; key k2332; key k2333; key k2334;
|
||||
key k2335; key k2336; key k2337; key k2338; key k2339;
|
||||
key k2340; key k2341; key k2342; key k2343; key k2344;
|
||||
key k2345; key k2346; key k2347; key k2348; key k2349;
|
||||
key k2350; key k2351; key k2352; key k2353; key k2354;
|
||||
key k2355; key k2356; key k2357; key k2358; key k2359;
|
||||
key k2360; key k2361; key k2362; key k2363; key k2364;
|
||||
key k2365; key k2366; key k2367; key k2368; key k2369;
|
||||
key k2370; key k2371; key k2372; key k2373; key k2374;
|
||||
key k2375; key k2376; key k2377; key k2378; key k2379;
|
||||
key k2380; key k2381; key k2382; key k2383; key k2384;
|
||||
key k2385; key k2386; key k2387; key k2388; key k2389;
|
||||
key k2390; key k2391; key k2392; key k2393; key k2394;
|
||||
key k2395; key k2396; key k2397; key k2398; key k2399;
|
||||
key k2400; key k2401; key k2402; key k2403; key k2404;
|
||||
key k2405; key k2406; key k2407; key k2408; key k2409;
|
||||
key k2410; key k2411; key k2412; key k2413; key k2414;
|
||||
key k2415; key k2416; key k2417; key k2418; key k2419;
|
||||
key k2420; key k2421; key k2422; key k2423; key k2424;
|
||||
key k2425; key k2426; key k2427; key k2428; key k2429;
|
||||
key k2430; key k2431; key k2432; key k2433; key k2434;
|
||||
key k2435; key k2436; key k2437; key k2438; key k2439;
|
||||
key k2440; key k2441; key k2442; key k2443; key k2444;
|
||||
key k2445; key k2446; key k2447; key k2448; key k2449;
|
||||
key k2450; key k2451; key k2452; key k2453; key k2454;
|
||||
key k2455; key k2456; key k2457; key k2458; key k2459;
|
||||
key k2460; key k2461; key k2462; key k2463; key k2464;
|
||||
key k2465; key k2466; key k2467; key k2468; key k2469;
|
||||
key k2470; key k2471; key k2472; key k2473; key k2474;
|
||||
key k2475; key k2476; key k2477; key k2478; key k2479;
|
||||
key k2480; key k2481; key k2482; key k2483; key k2484;
|
||||
key k2485; key k2486; key k2487; key k2488; key k2489;
|
||||
key k2490; key k2491; key k2492; key k2493; key k2494;
|
||||
key k2495; key k2496; key k2497; key k2498; key k2499;
|
||||
key k2500; key k2501; key k2502; key k2503; key k2504;
|
||||
key k2505; key k2506; key k2507; key k2508; key k2509;
|
||||
key k2510; key k2511; key k2512; key k2513; key k2514;
|
||||
key k2515; key k2516; key k2517; key k2518; key k2519;
|
||||
key k2520; key k2521; key k2522; key k2523; key k2524;
|
||||
key k2525; key k2526; key k2527; key k2528; key k2529;
|
||||
key k2530; key k2531; key k2532; key k2533; key k2534;
|
||||
key k2535; key k2536; key k2537; key k2538; key k2539;
|
||||
key k2540; key k2541; key k2542; key k2543; key k2544;
|
||||
key k2545; key k2546; key k2547; key k2548; key k2549;
|
||||
key k2550; key k2551; key k2552; key k2553; key k2554;
|
||||
key k2555; key k2556; key k2557; key k2558; key k2559;
|
||||
key k2560; key k2561; key k2562; key k2563; key k2564;
|
||||
key k2565; key k2566; key k2567; key k2568; key k2569;
|
||||
key k2570; key k2571; key k2572; key k2573; key k2574;
|
||||
key k2575; key k2576; key k2577; key k2578; key k2579;
|
||||
key k2580; key k2581; key k2582; key k2583; key k2584;
|
||||
key k2585; key k2586; key k2587; key k2588; key k2589;
|
||||
key k2590; key k2591; key k2592; key k2593; key k2594;
|
||||
key k2595; key k2596; key k2597; key k2598; key k2599;
|
||||
key k2600; key k2601; key k2602; key k2603; key k2604;
|
||||
key k2605; key k2606; key k2607; key k2608; key k2609;
|
||||
key k2610; key k2611; key k2612; key k2613; key k2614;
|
||||
key k2615; key k2616; key k2617; key k2618; key k2619;
|
||||
key k2620; key k2621; key k2622; key k2623; key k2624;
|
||||
key k2625; key k2626; key k2627; key k2628; key k2629;
|
||||
key k2630; key k2631; key k2632; key k2633; key k2634;
|
||||
key k2635; key k2636; key k2637; key k2638; key k2639;
|
||||
key k2640; key k2641; key k2642; key k2643; key k2644;
|
||||
key k2645; key k2646; key k2647; key k2648; key k2649;
|
||||
key k2650; key k2651; key k2652; key k2653; key k2654;
|
||||
key k2655; key k2656; key k2657; key k2658; key k2659;
|
||||
key k2660; key k2661; key k2662; key k2663; key k2664;
|
||||
key k2665; key k2666; key k2667; key k2668; key k2669;
|
||||
key k2670; key k2671; key k2672; key k2673; key k2674;
|
||||
key k2675; key k2676; key k2677; key k2678; key k2679;
|
||||
key k2680; key k2681; key k2682; key k2683; key k2684;
|
||||
key k2685; key k2686; key k2687; key k2688; key k2689;
|
||||
key k2690; key k2691; key k2692; key k2693; key k2694;
|
||||
key k2695; key k2696; key k2697; key k2698; key k2699;
|
||||
key k2700; key k2701; key k2702; key k2703; key k2704;
|
||||
key k2705; key k2706; key k2707; key k2708; key k2709;
|
||||
key k2710; key k2711; key k2712; key k2713; key k2714;
|
||||
key k2715; key k2716; key k2717; key k2718; key k2719;
|
||||
key k2720; key k2721; key k2722; key k2723; key k2724;
|
||||
key k2725; key k2726; key k2727; key k2728; key k2729;
|
||||
key k2730; key k2731; key k2732; key k2733; key k2734;
|
||||
key k2735; key k2736; key k2737; key k2738; key k2739;
|
||||
key k2740; key k2741; key k2742; key k2743; key k2744;
|
||||
key k2745; key k2746; key k2747; key k2748; key k2749;
|
||||
key k2750; key k2751; key k2752; key k2753; key k2754;
|
||||
key k2755; key k2756; key k2757; key k2758; key k2759;
|
||||
key k2760; key k2761; key k2762; key k2763; key k2764;
|
||||
key k2765; key k2766; key k2767; key k2768; key k2769;
|
||||
key k2770; key k2771; key k2772; key k2773; key k2774;
|
||||
key k2775; key k2776; key k2777; key k2778; key k2779;
|
||||
key k2780; key k2781; key k2782; key k2783; key k2784;
|
||||
key k2785; key k2786; key k2787; key k2788; key k2789;
|
||||
key k2790; key k2791; key k2792; key k2793; key k2794;
|
||||
key k2795; key k2796; key k2797; key k2798; key k2799;
|
||||
key k2800; key k2801; key k2802; key k2803; key k2804;
|
||||
key k2805; key k2806; key k2807; key k2808; key k2809;
|
||||
key k2810; key k2811; key k2812; key k2813; key k2814;
|
||||
key k2815; key k2816; key k2817; key k2818; key k2819;
|
||||
key k2820; key k2821; key k2822; key k2823; key k2824;
|
||||
key k2825; key k2826; key k2827; key k2828; key k2829;
|
||||
key k2830; key k2831; key k2832; key k2833; key k2834;
|
||||
key k2835; key k2836; key k2837; key k2838; key k2839;
|
||||
key k2840; key k2841; key k2842; key k2843; key k2844;
|
||||
key k2845; key k2846; key k2847; key k2848; key k2849;
|
||||
key k2850; key k2851; key k2852; key k2853; key k2854;
|
||||
key k2855; key k2856; key k2857; key k2858; key k2859;
|
||||
key k2860; key k2861; key k2862; key k2863; key k2864;
|
||||
key k2865; key k2866; key k2867; key k2868; key k2869;
|
||||
key k2870; key k2871; key k2872; key k2873; key k2874;
|
||||
key k2875; key k2876; key k2877; key k2878; key k2879;
|
||||
key k2880; key k2881; key k2882; key k2883; key k2884;
|
||||
key k2885; key k2886; key k2887; key k2888; key k2889;
|
||||
key k2890; key k2891; key k2892; key k2893; key k2894;
|
||||
key k2895; key k2896; key k2897; key k2898; key k2899;
|
||||
key k2900; key k2901; key k2902; key k2903; key k2904;
|
||||
key k2905; key k2906; key k2907; key k2908; key k2909;
|
||||
key k2910; key k2911; key k2912; key k2913; key k2914;
|
||||
key k2915; key k2916; key k2917; key k2918; key k2919;
|
||||
key k2920; key k2921; key k2922; key k2923; key k2924;
|
||||
key k2925; key k2926; key k2927; key k2928; key k2929;
|
||||
key k2930; key k2931; key k2932; key k2933; key k2934;
|
||||
key k2935; key k2936; key k2937; key k2938; key k2939;
|
||||
key k2940; key k2941; key k2942; key k2943; key k2944;
|
||||
key k2945; key k2946; key k2947; key k2948; key k2949;
|
||||
key k2950; key k2951; key k2952; key k2953; key k2954;
|
||||
key k2955; key k2956; key k2957; key k2958; key k2959;
|
||||
key k2960; key k2961; key k2962; key k2963; key k2964;
|
||||
key k2965; key k2966; key k2967; key k2968; key k2969;
|
||||
key k2970; key k2971; key k2972; key k2973; key k2974;
|
||||
key k2975; key k2976; key k2977; key k2978; key k2979;
|
||||
key k2980; key k2981; key k2982; key k2983; key k2984;
|
||||
key k2985; key k2986; key k2987; key k2988; key k2989;
|
||||
key k2990; key k2991; key k2992; key k2993; key k2994;
|
||||
key k2995; key k2996; key k2997; key k2998; key k2999;
|
||||
key k3000; key k3001; key k3002; key k3003; key k3004;
|
||||
key k3005; key k3006; key k3007; key k3008; key k3009;
|
||||
key k3010; key k3011; key k3012; key k3013; key k3014;
|
||||
key k3015; key k3016; key k3017; key k3018; key k3019;
|
||||
key k3020; key k3021; key k3022; key k3023; key k3024;
|
||||
key k3025; key k3026; key k3027; key k3028; key k3029;
|
||||
key k3030; key k3031; key k3032; key k3033; key k3034;
|
||||
key k3035; key k3036; key k3037; key k3038; key k3039;
|
||||
key k3040; key k3041; key k3042; key k3043; key k3044;
|
||||
key k3045; key k3046; key k3047; key k3048; key k3049;
|
||||
key k3050; key k3051; key k3052; key k3053; key k3054;
|
||||
key k3055; key k3056; key k3057; key k3058; key k3059;
|
||||
key k3060; key k3061; key k3062; key k3063; key k3064;
|
||||
key k3065; key k3066; key k3067; key k3068; key k3069;
|
||||
key k3070; key k3071; key k3072; key k3073; key k3074;
|
||||
key k3075; key k3076; key k3077; key k3078; key k3079;
|
||||
key k3080; key k3081; key k3082; key k3083; key k3084;
|
||||
key k3085; key k3086; key k3087; key k3088; key k3089;
|
||||
key k3090; key k3091; key k3092; key k3093; key k3094;
|
||||
key k3095; key k3096; key k3097; key k3098; key k3099;
|
||||
key k3100; key k3101; key k3102; key k3103; key k3104;
|
||||
key k3105; key k3106; key k3107; key k3108; key k3109;
|
||||
key k3110; key k3111; key k3112; key k3113; key k3114;
|
||||
key k3115; key k3116; key k3117; key k3118; key k3119;
|
||||
key k3120; key k3121; key k3122; key k3123; key k3124;
|
||||
key k3125; key k3126; key k3127; key k3128; key k3129;
|
||||
key k3130; key k3131; key k3132; key k3133; key k3134;
|
||||
key k3135; key k3136; key k3137; key k3138; key k3139;
|
||||
key k3140; key k3141; key k3142; key k3143; key k3144;
|
||||
key k3145; key k3146; key k3147; key k3148; key k3149;
|
||||
key k3150; key k3151; key k3152; key k3153; key k3154;
|
||||
key k3155; key k3156; key k3157; key k3158; key k3159;
|
||||
key k3160; key k3161; key k3162; key k3163; key k3164;
|
||||
key k3165; key k3166; key k3167; key k3168; key k3169;
|
||||
key k3170; key k3171; key k3172; key k3173; key k3174;
|
||||
key k3175; key k3176; key k3177; key k3178; key k3179;
|
||||
key k3180; key k3181; key k3182; key k3183; key k3184;
|
||||
key k3185; key k3186; key k3187; key k3188; key k3189;
|
||||
key k3190; key k3191; key k3192; key k3193; key k3194;
|
||||
key k3195; key k3196; key k3197; key k3198; key k3199;
|
||||
key k3200; key k3201; key k3202; key k3203; key k3204;
|
||||
key k3205; key k3206; key k3207; key k3208; key k3209;
|
||||
key k3210; key k3211; key k3212; key k3213; key k3214;
|
||||
key k3215; key k3216; key k3217; key k3218; key k3219;
|
||||
key k3220; key k3221; key k3222; key k3223; key k3224;
|
||||
key k3225; key k3226; key k3227; key k3228; key k3229;
|
||||
key k3230; key k3231; key k3232; key k3233; key k3234;
|
||||
key k3235; key k3236; key k3237; key k3238; key k3239;
|
||||
key k3240; key k3241; key k3242; key k3243; key k3244;
|
||||
key k3245; key k3246; key k3247; key k3248; key k3249;
|
||||
key k3250; key k3251; key k3252; key k3253; key k3254;
|
||||
key k3255; key k3256; key k3257; key k3258; key k3259;
|
||||
key k3260; key k3261; key k3262; key k3263; key k3264;
|
||||
key k3265; key k3266; key k3267; key k3268; key k3269;
|
||||
key k3270; key k3271; key k3272; key k3273; key k3274;
|
||||
key k3275; key k3276; key k3277; key k3278; key k3279;
|
||||
key k3280; key k3281; key k3282; key k3283; key k3284;
|
||||
key k3285; key k3286; key k3287; key k3288; key k3289;
|
||||
key k3290; key k3291; key k3292; key k3293; key k3294;
|
||||
key k3295; key k3296; key k3297; key k3298; key k3299;
|
||||
key k3300; key k3301; key k3302; key k3303; key k3304;
|
||||
key k3305; key k3306; key k3307; key k3308; key k3309;
|
||||
key k3310; key k3311; key k3312; key k3313; key k3314;
|
||||
key k3315; key k3316; key k3317; key k3318; key k3319;
|
||||
key k3320; key k3321; key k3322; key k3323; key k3324;
|
||||
key k3325; key k3326; key k3327; key k3328; key k3329;
|
||||
key k3330; key k3331; key k3332; key k3333; key k3334;
|
||||
key k3335; key k3336; key k3337; key k3338; key k3339;
|
||||
key k3340; key k3341; key k3342; key k3343; key k3344;
|
||||
key k3345; key k3346; key k3347; key k3348; key k3349;
|
||||
key k3350; key k3351; key k3352; key k3353; key k3354;
|
||||
key k3355; key k3356; key k3357; key k3358; key k3359;
|
||||
key k3360; key k3361; key k3362; key k3363; key k3364;
|
||||
key k3365; key k3366; key k3367; key k3368; key k3369;
|
||||
key k3370; key k3371; key k3372; key k3373; key k3374;
|
||||
key k3375; key k3376; key k3377; key k3378; key k3379;
|
||||
key k3380; key k3381; key k3382; key k3383; key k3384;
|
||||
key k3385; key k3386; key k3387; key k3388; key k3389;
|
||||
key k3390; key k3391; key k3392; key k3393; key k3394;
|
||||
key k3395; key k3396; key k3397; key k3398; key k3399;
|
||||
fn1(){jump x; @x;} fn2(){integer i3; i4=0; s3=""; fn1(); state another;}
|
||||
default { timer() { state another; } state_exit() {} }
|
||||
state another { timer() { state default; } touch(integer num_det) {} }
|
||||
''',
|
||||
['optimize', 'shrinknames']
|
||||
)
|
||||
self.opt.optimize(p, ['optimize','shrinknames'])
|
||||
print self.outscript.output(p)
|
||||
|
||||
p = self.parser.parse(
|
||||
'''integer i1; integer i2;
|
||||
f(integer a, integer b, integer c, integer d, integer e){}
|
||||
default{timer(){}}
|
||||
''',
|
||||
['optimize', 'shrinknames']
|
||||
)
|
||||
self.opt.optimize(p, ['optimize','shrinknames'])
|
||||
print self.outscript.output(p)
|
||||
|
||||
def test_regression(self):
|
||||
|
||||
|
||||
|
@ -335,6 +1066,8 @@ class Test03_Optimizer(UnitTestCase):
|
|||
self.assertEqual(out, 'list L;\nfloat f = 0;\n'
|
||||
'default\n{\n timer()\n {\n }\n}\n')
|
||||
|
||||
self.assertRaises(EParseAlreadyDefined, self.parser.parse,
|
||||
'default { timer() {} timer() {} }')
|
||||
|
||||
def tearDown(self):
|
||||
del self.parser
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue