LogOpasnet base connectionInterface for uploading data to and downloading from the Opasnet Base.
<a href="http://en.opasnet.org/w/Image:Opasnet_base_connection.ANA">Wiki description</a>Jouni Tuomisto9. maata 2008 10:42ktluser25. Mayta 2009 23:05 48,241,0,0,1,1,1,0,0,0,01,4,8,586,623,172,102,90,476,224Arial, 150,Linkmodule Op_en2676,2,2,-32763,1,Opasnet base connection.ANA100,1,1,1,1,9,2970,2100,15,0This module saves model results into the Opasnet Base. You need your Opasnet username and password for that. You must fill in all tables before the process is completed. Fill in the data below from top to bottom.
If an object with the same Ident already exists in the Opasnet Base, the information will be added to that object.
Before you start, make sure that you have created an object page in the Opasnet wiki for each object (study or variable) you want to upload.276,76,-1268,68Username0272,156,1160,121,0,0,1,0,0,0,142,0,152425,39321,65535Opasnet_usernamePassword0272,180,1160,121,0,0,1,0,0,0,142,0,152425,39321,65535Opasnet_passwordNumber of indices0272,340,1152,121,0,0,1,0,0,0,72,0,152425,39321,65535N_indicesStudy or variable info0276,548,1156,121,0,0,1,0,0,0,90,0,152425,39321,65535Object_info1Upload a data table. Indices are determinants of your study objects, such as sex or observation year. Parameters are those that are measured, such as body weight or pollutant concentration.272,344,-1160,1441,0,0,1,0,1,0,,0,2,693,146,476,224Finally, fill in the name (a description that may be longer than an identifier) and the unit of measurement. Then press the button Upload data.276,516,-1268,20Study Ident0272,317,1152,131,0,0,1,0,0,0,158,0,152425,39321,65535Study_identAdvanced uploadktluser1. Aprta 2009 9:38 48,24152,784,148,241,0,0,1,1,1,0,,0,1,599,9,670,624,17Te113) Upload an Analytica model. First, switch the choice "Data table or model?" to "Analytica model". Note! You can insert several variables at the same time. Each variable or study MUST have at least one index. Analytica identifiers are used to find the right nodes. Ident is the identifier of the description page in the Opasnet wiki. If Probabilistic? is 1, a sample of the distribution is stored; otherwise, the mean or the point estimate is stored.320,350,-5304,891,0,0,1,0,1,0,,0,Writerjtue24. maata 2009 9:36 48,24176,648,148,241,556,21,610,490,17W LocMakes a table to be written to the Loc table.index j:= ['id','Std_id','Obj_id_i','Location','Roww','Description'];
var a:= Locations[.j=j];
var b:= a[j='Obj_id_i'];
var c:= textify(cardinals[table1='Loc']+a[@j=1]);
a:= array(j,[c, c, findid(b,Obj,'Ident'), a, textify(a), a])440,208,148,162,156,83,476,2452,642,68,606,278,0,MIDM65535,45873,39321[Sys_localindex('J'),Sys_localindex('I')]2,D,4,2,0,0,4,0,$,0,"ABBREV",0100,1,1,1,1,9,2970,2100,15,0[][Sys_localindex('I'),16,Sys_localindex('I'),1,Sys_localindex('J'),1]W LoccellSlices fields that are needed in the Locres table from Inp_locres.index j:= ['id','Cell_id','Loc_id'];
var a:= Loccells;
var b:= textify(findid(a[.j='Loc_id'], Obj, 'Ident'));
var c:= textify(a[.j='Location']);
b:= findid(b&'+'&c, (if Loc.j='Obj_id_i' then Loc&'+'&Loc[.j='Location'] else Loc), 'Obj_id_i');
a:= a[.j=j];
a:= array(j,[(a+cardinals[table1='Loccell']),(a+cardinals[table1='Cell']), b]);
textify(a)424,312,148,162,776,90,476,4872,72,177,619,303,0,MIDM65535,45873,39321[Sys_localindex('J'),Sys_localindex('I')]2,I,4,2,0,0,4,0,$,0,"ABBREV",0[]W CellSlices the fields that are needed in the Res table. Removes duplicate rows.index j:= ['id','Obj_id_v','Obj_id_r','Mean','SD','N'];
var a:= loccells1;
{index i:= unique(a[.j='Cell_id'], a.i);
ivar a:= a[.i=i];}
var b:= a[.j='Cell_id']+cardinals[table1='Cell'];
a:= a[.j=j];
var c:= findid(a[@j=2], Obj, 'Ident');
var d:= w_obj[.j='Ident'];
d:= findid(d, Obj, 'Ident')[@.i=size(w_obj.i)];
a:= array(j, [textify(b),c, d, a, a, textify(a)]);
if a=null then '' else a424,256,148,162,799,214,476,3792,85,264,505,368,0,MIDM65535,45873,39321[Sys_localindex('J'),Sys_localindex('I')]2,D,4,2,0,0,4,0,$,0,"ABBREV",0[]WikisNames of different wikis used.Table(Self)(
'Op_en','Op_fi','Heande','En','Fi','Erac','Beneris','Intarese','Piltti','Kantiva','Bioher','Heimtsa')[1,2,3,4,5,8,9,10,11,13,14,15]304,24,148,1665535,52427,65534[Self]Object typesTypes of different objects that may exist in Analytica or Opasnet Base. Types that have the same number are treated equally in these systems.Table(Self)(
'Variable','Dimension','Method','Model','Class','Index','Nugget','Encyclopedia article','Run','Chance','Decision','Objective','Constant','Determ','Module','Library','Form')[1,2,3,4,5,6,7,8,9,1,10,1,1,1,4,4,4]64,312,148,202,56,132,476,2242,674,34,416,606,0,MIDM2,636,151,416,390,0,MIDM65535,52427,65534W ObjSelects relevant information for the Obj table from Objects1 node.index j:= ['id','Ident','Name','Unit','Objtype_id','Page','Wiki_id'];
var a:= Objects;
var b:= if a[.j='Ident'] = 0 then -1 else a[.j='Ident'];
b:= findid(b, Obj, 'Ident');
b:= if b='0' then cardinals[table1='Obj']+a[.j='id'] else b;
a:= if a.j='id' then b else a;
a:= a[.j=j];
a:= if j='Ident' and a[j='Ident']='' then a[j='id'] else a;
a:= if j='Ident' and a.i='Run' and isnumber(append_to_run) then append_to_run else a;
textify(a)424,120,148,162,510,138,476,5082,6,67,1023,259,0,MIDM65535,45873,39321[Sys_localindex('J'),Sys_localindex('I')]2,I,4,2,0,0,4,0,$,0,"ABBREV",0[][]W ResinfoIf the result is not a number, then the actual result text can be written into the Description field of the Descr table. Makes a list of text values to be written into the Descr table.index j:= ['id','Restext'];
var a:= Results;
index i:= subset(a[.j='Restext']);
a:= a[.j=j, .i=i];
a:= array(j, [textify(a+Cardinals[table1='Res']), a])424,384,148,162,674,46,476,2592,670,328,416,303,0,MIDM65535,45873,39321[Sys_localindex('J'),Sys_localindex('I')]2,D,4,2,0,0,4,0,$,0,"ABBREV",0[]W ObjinfoMakes a list of objects that contains some additional information to be written into the Inf table.index j:= ['Obj_id','Acttype_id','Who','Comments'];
var a:= Objects;
var b:= if a[.j='Ident'] = 0 then -1 else a[.j='Ident'];
b:= findid(b, Obj, 'Ident');
b:= if b='0' then cardinals[table1='Obj']+a[.j='id'] else b;
a:= if j='Obj_id' then b else a[.j=j];
a:= if a = null or a='' then 0 else a;
index i:= subset(if sum(a, j) = 0 then 0 else 1);
a:= a[.i=i];
a:= if a=null or a=0 then '' else a&''424,72,148,162,773,40,476,3402,34,427,690,274,0,MIDM65535,45873,39321[Sys_localindex('J'),Sys_localindex('I')]2,I,4,2,0,0,4,0,$,0,"ABBREV",0[][Sys_localindex('J'),1,Sys_localindex('I'),1,Sys_localindex('J'),1]W Resindex j:= ['id','Cell_id','Obs','Result'];
var a:= Results;
index i:= subset(if a[.j='Result']=null and a[.j='Description']=0 then 0 else 1);
a:= a[.j=j, .i=i];
a:= array(j, [textify(a+Cardinals[table1='Res']), textify(a+ Cardinals[table1='Cell']), textify(a),a]);
if a=null then '' else a
424,416,148,132,629,191,582,2972,54,89,609,375,0,MIDM65535,45873,39321[Sys_localindex('J'),Sys_localindex('I')]2,D,4,2,0,0,4,0,$,0,"ABBREV",0[][]Number of variablesAdditional information for each index and decision node. Description node is the name of a node containing information about the locations of the index. It must be indexed by the index.1176,408,148,222,140,217,476,2242,605,351,664,303,0,MIDM2,506,220,684,303,0,MIDM[Formnode Number_of_variables1]52425,39321,65535[][][1,1,0,1]Variablevar a:= if data_table_or_model_ = 'Data table' then 1 else N_variables;
'Var'&1..a176,344,148,131,1,1,1,1,1,0,,0,2,107,331,416,303,0,MIDM[1,1,1,0]['Var1']List of variablesAdditional information for each index and decision node. Description node is the name of a node containing information about the locations of the index. It must be indexed by the index.Table(Variable1,Varinfo)(
'world_population1','Op_en3058',0
)176,312,148,222,140,217,476,2242,11,16,553,630,0,MIDM2,506,220,684,303,0,MIDM[Formnode Variables1]52425,39321,65535[Varinfo,Variable1][Varinfo,Variable1][0,1,1,0]Number of indices3176,256,148,20[Formnode Number_of_indices1]52425,39321,65535[1,1,0,1]Object infoTable(Object_info,Object1)(
'Population of the World','Country codes used by WHO','Year','Sex','Age',
'#','-','a','-','a'
)176,72,148,132,102,90,476,3492,571,27,659,478,0,MIDM2,184,194,660,316,0,MIDM[Formnode Study_or_variable_i1]52425,39321,65535[Object_info,Object1][Object_info,Object1]Object info['Name','Unit']176,96,148,12LoccellsMakes a list of all locations in all results in all variables. The list is as long as is needed for the Loccell table. A subset is taken then for the Cell table.
1) Initialises local variables, and slices variables from Object1.
2)-4) Does the process for each variable one at a time. This happens in function Loccell.
5) Makes i the row index.
, @observation=@cell_id+1var output:= 0;
output:= if data_table_or_model_ = 'Data table' then
Doloccell(Data_table)
else (
var e:= 0;
var f:= 0;
var x:= 1;
while x<= size(variable1) do (
var a:= sample(evaluate(List_of_variables[@variable1=x, varinfo='Analytica identifier']));
var b:= sdeviation(a);
a:= mean(a);
index temp:= concat(indexnames(a),['Result']);
index i:= 1..size(a);
a:= mdarraytotable(a, i, temp);
b:= mdarraytotable(b, i, temp);
index j:= concat(temp,['SD']);
index temp2:= ['Result'];
a:= concat(a, b[temp=temp2], temp, temp2, j);
a:= Doloccell(a, x, e, f);
e:= e+size(a.i);
f:= f+size(i);
output:= if x=1 then a else for y:= output.j do ( concat(output[.j=y], a[.j=y]) );
x:= x+1) ;
output);
{index i:= 1..size(output)/size(output.j);
for y:= output.j do (slice(output[.j=y],i))}304,312,148,162,708,12,526,5962,31,123,731,488,0,MIDM[Sys_localindex('J'),Sys_localindex('I'),Undefined,Undefined,Undefined,1]2,D,4,2,0,0,4,0,$,0,"ABBREV",0[][Undefined][Sys_localindex('CONV2'),1,Parameter,1,Sys_localindex('L'),1]ResultsThe usage of local variables: a: the temporary variable that is being edited. e: cardinal of the Cell table. f: cardinal of the Res table. j: output column headings. i: output row numbers. NOTE! ONLY THE DETERMINISTIC VERSION WORKS AT THE MOMENT.
1) Only one piece of information (Observations) is included.
2)-5) The process is done for each variable one at a time (this is indexed by x).
3) Several within-loop local variables are initiated.
4) The variable is given index runn which is equal to run if probabilistic and [0] if not. The array is flattened first to 2-D, the value only is kept.
5) Variables are concatenated to each other.
6) Index i is made the index of the implicit index.
NOTE! This node MUST be formatted to Integer, otherwise Res_id will be stored in a wrong format.var output:= 0;
output:= if data_table_or_model_ = 'Data table' then
Doresult(Data_table, 0)
else (
var e:= 0;
var f:= 0;
var x:= 1;
while x<= size(variable1) do (
var a:= sample(evaluate(List_of_variables[@variable1=x, varinfo='Analytica identifier']));
index j:= concat(indexnames(max(a,run)),['Result']);
index i:= 1..size(max(a,run));
a:= mdarraytotable(a, i, j);
a:= Doresult(a, List_of_variables[@variable1=x, varinfo='Probabilistic?'], e, f);
e:= max(a[.j='Cell_id'],a.i);
f:= max(a[.j='id'],a.i);
output:= if x=1 then a else for y:= output.j do ( concat(output[.j=y], a[.j=y]) );
x:= x+1) ;
output);
index i:= 1..size(output)/size(output.j);
output:= for y:= output.j do (slice(output[.j=y],i))304,384,148,162,642,17,585,6152,28,187,469,411,0,MIDM[Sys_localindex('J'),Sys_localindex('I')]2,D,4,2,0,0,4,0,$,0,"ABBREV",0[Run,2,Sys_localindex('J'),1,Sys_localindex('I'),1]LocationsThe format of this node MUST be integer, so that the id and Roww values are stored correctly.var output:= 0;
output:= if data_table_or_model_ = 'Data table' then
Dolocation(Data_table)
else (
var x:= 1;
while x<= size(variable1) do (
var a:= mean(evaluate(List_of_variables[@variable1=x, varinfo='Analytica identifier']));
index j:= concat(indexnames(a),['Result']);
index i:= 1..size(a);
a:= mdarraytotable(a, i, j);
a:= Dolocation(a);
output:= if x=1 then a else for y:= output.j do ( concat(output[.j=y], a[.j=y]) );
x:= x+1) ;
output);
index i:= 1..size(output)/size(output.j);
output:= for y:= output.j do (slice(output[.j=y],i));
output:= if output.j='id' then i else output;
{if output.j='Description' then va5[@who_country_code=@output.i] else output}304,208,148,162,549,55,476,5812,482,15,746,348,0,MIDM[Sys_localindex('J'),Sys_localindex('I')]2,I,4,2,0,0,4,0,$,0,"ABBREV",0[0][Sys_localindex('D'),1,Object_all3,1,Age,1]Data tableindex h:= data_table2[@.i=1, @.j=1..N_indices];
index j:= concat(h,['Parameter','Result']);
index parameter:= data_table2[@.i=1, @.j=N_indices+(1..size(data_table2.j)-N_indices)];
index i:= 1..(size(data_table2.i)-1)*(size(parameter));
index loccell_id:= 1..(size(i)*size(h));
var conv:= if j='Result' then @parameter+N_indices else @j;
index conv2:= 1..size(data_table2.i)-1;
var a:= data_table2[@.j=conv, @.i=conv2+1];
a:= if j='Parameter' then parameter else a;
a:= concatrows(a, parameter, conv2, i);
if j='Result' then evaluate(a) else avar data:= if Data_table_name = '' then data_table2 else evaluate(Data_table_name);
index h:= data.j[@.j=1..N_indices];
var c:= if parameter_name='' then 'Parameter' else parameter_name;
index j:= concat(h,[c,'Result']);
index parameter:= data.j[@.j=N_indices+(1..size(data.j)-N_indices)];
index temp:= 1..size(data.i)*size(parameter);
var conv:= if j='Result' then @parameter+N_indices else @j;
var a:= data[@.j=conv];
a:= if @j=size(j)-1 then parameter else a;
a:= concatrows(a, parameter, a.i, temp);
a:= if j='Result' then evaluate(a[j='Result']) else a;
index i:= Subset(a[j='Result']<>null);
a[temp=i]176,208,148,132,97,51,482,3592,625,86,611,523,0,MIDM[Sys_localindex('J'),Sys_localindex('I')]2,D,4,2,0,0,4,0,$,0,"ABBREV",0[1,1,1,0][Sys_localindex('I'),9,Sys_localindex('PARAMETER'),1,Sys_localindex('J'),1]Varinfo['Analytica identifier','Ident','Probabilistic?']176,368,148,122,90,166,416,303,0,MIDM['Analytica identifier','Ident','Probabilistic?']ObjectsIndex j:= ['id','Ident','Name','Unit','Objtype_id','Acttype_id','Page','Wiki_id', 'Who','Comments','Probabilistic?','Description node'];
index i:= concat(Object1,['Run']);
var a:= if j='Ident' and i = 'Var1' then study_ident else null;
a:= if data_table_or_model_ = 'Data table' then a else List_of_variables[Variable1=i, Varinfo=j];
a:= if a=null then Object_info1[Object1=i, Object_info=j] else a;
var b:= findintext(wikis,a[j='Ident']);
var c:= sum(if b=0 then 0 else @wikis,wikis);
b:= sum(if b=0 then 0 else b+textlength(Wikis),wikis);
b:= if b = 0 then 2664 else selecttext(a[j='Ident'],b);
a:= array(j,[
@i,
if @i>size(variable1) and @i<size(i) then i else a,
if i ='Run' then 'Analytica '&Analyticaedition&', ('&Analyticaplatform&'), Version: '&Analyticaversion&', Samplesize: '&samplesize else a,
a,
if @i<=size(variable1) then 1 else if @i=size(i) then 9 else 6,
if @i<=size(variable1) then 11 else 1,
if i='Run' then '2817' else b&'',
if c=0 then 1&'' else c&'',
opasnet_username, '', a, '']);
a:= if a = null then '' else a304,72,148,162,669,75,479,5512,106,165,754,315,0,MIDM[Sys_localindex('I'),Sys_localindex('J')]Objectreset;
var a:= indexnames(evaluate(List_of_variables[Varinfo='Analytica identifier']));
a:= if a='Variable1' or a='Run' then 0 else 1;
a:= subset(a);
a:= if data_table_or_model_ = 'Data table' then Data_table.j[@.j=1..size(data_table.j)-1] else a;
var b:= if data_table_or_model_ = 'Data table' then "['Var1']" else "variable1";
concat(evaluate(b),a)176,120,148,132,59,17,630,3382,852,136,416,303,0,MIDM[Year,Who_country_code]Study Ident'Op_en3058'176,32,148,16[Formnode Study_ident1]52425,39321,65535[1,1,0,1]Observations'Municipality_fin Age Males 2013 Females 2013 Males 2020 Females 2020 Males 2030 Females 2030
Espoo - Esbo 0-4 9218 8791 9509 9067 9414 8976
Espoo - Esbo 5-9 8461 8019 8881 8418 9064 8590
Espoo - Esbo 10-14 7651 7276 8392 7983 8733 8316
Espoo - Esbo 15 - 19 7878 7665 7942 7634 8689 8302
Espoo - Esbo 20 - 24 9703 8254 9166 7700 9825 8164
Espoo - Esbo 25 - 29 9221 8671 10075 9363 9319 8580
Espoo - Esbo 30 - 34 10158 9887 10229 9855 9967 9545
Espoo - Esbo 35 - 39 9996 9824 10385 10112 10850 10446
Espoo - Esbo 40 - 44 8736 8672 9910 9754 10095 9833
Espoo - Esbo 45 - 49 9360 9789 8846 8897 9846 9866
Espoo - Esbo 50 - 54 8366 8843 8759 9227 9231 9424
Espoo - Esbo 55 - 59 7045 7880 8205 8891 7947 8322
Espoo - Esbo 60 - 64 6384 7645 6740 7617 7590 8370
Espoo - Esbo >=65 14543 19580 18716 25250 24301 32210
Helsinki - Helsingfors 0-4 14140 13613 14296 13762 13869 13349
Helsinki - Helsingfors 5-9 12102 11791 12391 12025 12387 12017
Helsinki - Helsingfors 10-14 11734 11389 11942 11544 12172 11764
Helsinki - Helsingfors 15 - 19 13797 14187 12321 12858 12862 13419
Helsinki - Helsingfors 20 - 24 21478 25254 19377 22926 19565 23290
Helsinki - Helsingfors 25 - 29 25056 27208 26650 28556 23965 25708
Helsinki - Helsingfors 30 - 34 24082 23867 23944 23568 22855 22377
Helsinki - Helsingfors 35 - 39 21005 19952 21072 20381 21649 20718
Helsinki - Helsingfors 40 - 44 17917 17261 19664 18761 19607 18751
Helsinki - Helsingfors 45 - 49 19971 20571 17476 17035 18919 18668
Helsinki - Helsingfors 50 - 54 18613 20147 18035 19002 18068 18226
Helsinki - Helsingfors 55 - 59 16671 19310 18191 20058 16135 16722
Helsinki - Helsingfors 60 - 64 15464 19421 15627 18273 16109 17856
Helsinki - Helsingfors >=65 37669 60241 45258 69319 55248 80147
Kauniainen - Grankulla 0-4 222 195 226 198 222 195
Kauniainen - Grankulla 5-9 276 238 280 251 283 253
Kauniainen - Grankulla 10-14 311 279 318 265 324 275
Kauniainen - Grankulla 15 - 19 376 315 327 281 339 288
Kauniainen - Grankulla 20 - 24 305 247 267 222 277 227
Kauniainen - Grankulla 25 - 29 183 144 207 154 184 140
Kauniainen - Grankulla 30 - 34 153 171 155 171 150 165
Kauniainen - Grankulla 35 - 39 214 254 219 255 228 262
Kauniainen - Grankulla 40 - 44 268 267 289 288 290 288
Kauniainen - Grankulla 45 - 49 337 371 281 293 305 312
Kauniainen - Grankulla 50 - 54 307 326 290 316 284 290
Kauniainen - Grankulla 55 - 59 259 239 280 285 248 238
Kauniainen - Grankulla 60 - 64 230 245 248 240 246 254
Kauniainen - Grankulla >=65 740 1083 826 1219 971 1410
Vantaa - Vanda 0-4 6782 6498 6962 6669 6825 6537
Vantaa - Vanda 5-9 6228 5945 6502 6217 6577 6287
Vantaa - Vanda 10-14 5745 5561 6201 6022 6416 6253
Vantaa - Vanda 15 - 19 5970 6078 5905 5880 6397 6356
Vantaa - Vanda 20 - 24 6480 6548 5971 5993 6343 6284
Vantaa - Vanda 25 - 29 6797 6815 7354 7326 6735 6657
Vantaa - Vanda 30 - 34 7706 7428 7753 7434 7499 7153
Vantaa - Vanda 35 - 39 7766 7459 7910 7643 8249 7909
Vantaa - Vanda 40 - 44 7038 6770 7835 7445 7925 7520
Vantaa - Vanda 45 - 49 7909 7710 7156 6898 7880 7556
Vantaa - Vanda 50 - 54 7126 7130 7340 7266 7518 7323
Vantaa - Vanda 55 - 59 6129 6602 7029 7211 6558 6544
Vantaa - Vanda 60 - 64 5659 6536 5774 6124 6384 6514
Vantaa - Vanda >=65 12282 16668 15717 21344 19879 26286'64,160,152,162,637,65,476,362[Formnode Observations3]52425,39321,65535Data tablevar a:= splittext(textreplace(Observations2, chr(10),'',true),chr(13));
index i:= 1..size(a);
a:= slice(a,i);
a:= splittext(a, chr(9));
index j:= 1..size(a)/size(i);
for y:= i do (slice(a[i=y],j))var a:= splittext(textreplace(Observations2, chr(10),'',true),chr(13));
index j:= splittext(slice(a,1), chr(9));
index i:= 1..size(a)-1;
a:= slice(a,i+1);
a:= splittext(a, chr(9));
for y:= i do (slice(a[i=y],@j))64,208,148,162,98,65,476,3622,8,352,629,303,0,MIDM[Sys_localindex('I'),Sys_localindex('J')][1,1,1,0]['Municipality_fin Age Males 2013 Females 2013 Males 2020 Females 2020 Males 2030 Females 2030','Espoo - Esbo 0-4 9218 8791 9509 9067 9414 8976','Espoo - Esbo 5-9 8461 8019 8881 8418 9064 8590','Espoo - Esbo 10-14 7651 7276 8392 7983 8733 8316','Espoo - Esbo 15 - 19 7878 7665 7942 7634 8689 8302','Espoo - Esbo 20 - 24 9703 8254 9166 7700 9825 8164','Espoo - Esbo 25 - 29 9221 8671 10075 9363 9319 8580','Espoo - Esbo 30 - 34 10158 9887 10229 9855 9967 9545','Espoo - Esbo 35 - 39 9996 9824 10385 10112 10850 10446','Espoo - Esbo 40 - 44 8736 8672 9910 9754 10095 9833','Espoo - Esbo 45 - 49 9360 9789 8846 8897 9846 9866','Espoo - Esbo 50 - 54 8366 8843 8759 9227 9231 9424','Espoo - Esbo 55 - 59 7045 7880 8205 8891 7947 8322','Espoo - Esbo 60 - 64 6384 7645 6740 7617 7590 8370','Espoo - Esbo >=65 14543 19580 18716 25250 24301 32210','Helsinki - Helsingfors 0-4 14140 13613 14296 13762 13869 13349','Helsinki - Helsingfors 5-9 12102 11791 12391 12025 12387 12017','Helsinki - Helsingfors 10-14 11734 11389 11942 11544 12172 11764','Helsinki - Helsingfors 15 - 19 13797 14187 12321 12858 12862 13419','Helsinki - Helsingfors 20 - 24 21478 25254 19377 22926 19565 23290','Helsinki - Helsingfors 25 - 29 25056 27208 26650 28556 23965 25708','Helsinki - Helsingfors 30 - 34 24082 23867 23944 23568 22855 22377','Helsinki - Helsingfors 35 - 39 21005 19952 21072 20381 21649 20718','Helsinki - Helsingfors 40 - 44 17917 17261 19664 18761 19607 18751','Helsinki - Helsingfors 45 - 49 19971 20571 17476 17035 18919 18668','Helsinki - Helsingfors 50 - 54 18613 20147 18035 19002 18068 18226','Helsinki - Helsingfors 55 - 59 16671 19310 18191 20058 16135 16722','Helsinki - Helsingfors 60 - 64 15464 19421 15627 18273 16109 17856','Helsinki - Helsingfors >=65 37669 60241 45258 69319 55248 80147','Kauniainen - Grankulla 0-4 222 195 226 198 222 195','Kauniainen - Grankulla 5-9 276 238 280 251 283 253','Kauniainen - Grankulla 10-14 311 279 318 265 324 275','Kauniainen - Grankulla 15 - 19 376 315 327 281 339 288','Kauniainen - Grankulla 20 - 24 305 247 267 222 277 227','Kauniainen - Grankulla 25 - 29 183 144 207 154 184 140','Kauniainen - Grankulla 30 - 34 153 171 155 171 150 165','Kauniainen - Grankulla 35 - 39 214 254 219 255 228 262','Kauniainen - Grankulla 40 - 44 268 267 289 288 290 288','Kauniainen - Grankulla 45 - 49 337 371 281 293 305 312','Kauniainen - Grankulla 50 - 54 307 326 290 316 284 290','Kauniainen - Grankulla 55 - 59 259 239 280 285 248 238','Kauniainen - Grankulla 60 - 64 230 245 248 240 246 254','Kauniainen - Grankulla >=65 740 1083 826 1219 971 1410','Vantaa - Vanda 0-4 6782 6498 6962 6669 6825 6537','Vantaa - Vanda 5-9 6228 5945 6502 6217 6577 6287','Vantaa - Vanda 10-14 5745 5561 6201 6022 6416 6253','Vantaa - Vanda 15 - 19 5970 6078 5905 5880 6397 6356','Vantaa - Vanda 20 - 24 6480 6548 5971 5993 6343 6284','Vantaa - Vanda 25 - 29 6797 6815 7354 7326 6735 6657','Vantaa - Vanda 30 - 34 7706 7428 7753 7434 7499 7153','Vantaa - Vanda 35 - 39 7766 7459 7910 7643 8249 7909','Vantaa - Vanda 40 - 44 7038 6770 7835 7445 7925 7520','Vantaa - Vanda 45 - 49 7909 7710 7156 6898 7880 7556','Vantaa - Vanda 50 - 54 7126 7130 7340 7266 7518 7323','Vantaa - Vanda 55 - 59 6129 6602 7029 7211 6558 6544','Vantaa - Vanda 60 - 64 5659 6536 5774 6124 6384 6514','Vantaa - Vanda >=65 12282 16668 15717 21344 19879 26286']Testvariablewho_country_code['item 1']64,368,148,24[1,0,0,0]['item 1']Testindex['item 1']64,400,148,12W CellsecSlices the fields that are needed in the Res table. Removes duplicate rows.(if w_cell.j = 'Mean' then '' else W_cell)536,256,148,162,782,213,476,3792,85,231,505,368,0,MIDM65535,45873,39321[Sys_localindex('J'),Sys_localindex('I')]2,D,4,2,0,0,4,0,$,0,"ABBREV",0[]Append to run''304,120,148,201,1,1,1,1,1,0,0,0,0[Formnode Append_to_run1]52425,39321,65535Parameter name'Age'176,160,148,201,1,1,1,1,1,0,0,0,0[Formnode Parameter_name1]52425,39321,65535Data table name'world_population1'64,256,148,22[Formnode Data_table4]52425,39321,65535LoccellsMakes a list of all locations in all results in all variables. The list is as long as is needed for the Loccell table. A subset is taken then for the Cell table.
1) Initialises local variables, and slices variables from Object1.
2)-4) Does the process for each variable one at a time. This happens in function Loccell.
5) Makes i the row index.
, @observation=@cell_id+1index j:= ['Dummy','Result','SD'];
var output:= 0;
output:= if data_table_or_model_ = 'Data table' then
Doloccell(array(j, [0, Data_table[@.j=size(data_table.j)],'']))
else (
var e:= 0;
var f:= 0;
var x:= 1;
while x<= size(variable1) do (
var a:= sample(evaluate(List_of_variables[@variable1=x, varinfo='Analytica identifier']));
var b:= sdeviation(a);
a:= mean(a);
index temp:= concat(indexnames(a),['Result']);
index i:= 1..size(a);
a:= mdarraytotable(a, i, temp);
b:= mdarraytotable(b, i, temp);
a:= array(j, [0,a[temp='Result'], b[temp='Result']]);
{ index j:= concat(temp,['SD']);
index temp2:= ['Result'];
a:= concat(a, b[temp=temp2], temp, temp2, j); }
a:= Doloccell(a, x, e, f);
e:= e+size(a.i);
f:= f+size(i);
output:= if x=1 then a else for y:= output.j do ( concat(output[.j=y], a[.j=y]) );
x:= x+1) ;
output);
{index i:= 1..size(output)/size(output.j);
for y:= output.j do (slice(output[.j=y],i))}304,256,148,162,54,15,526,6392,31,123,731,488,0,MIDM[Sys_localindex('J'),Sys_localindex('I'),Undefined,Undefined,Undefined,1]2,D,4,2,0,0,4,0,$,0,"ABBREV",0[][Undefined][Sys_localindex('CONV2'),1,Parameter,1,Sys_localindex('L'),1]Data table or model?Choice(Self,1,False)56,648,148,24[Formnode Data_table_or_model1]52425,39321,65535['Data table','Analytica model'][1,1,0,0]Data table or model?0176,21,1160,131,0,0,1,0,0,0,142,0,1Data_table_or_model_Number of variables0156,372,1140,121,0,0,1,0,0,0,72,0,152425,39321,65535N_variablesVariables0156,396,1140,131,0,0,1,0,0,0,72,0,152425,39321,65535List_of_variablesReaderktluser3. Augta 2008 18:31jtue9. lokta 2008 14:01 48,24176,712,148,241,1,1,1,1,1,0,0,0,01,785,211,477,445,17Arial, 15(vident:text, runident:optional)Read meanReads the mean data about the vident variable from the Opasnet Base. Uses the runident run if specified; otherwise uses the newest run of that variable.
PARAMETERS:
* Vident: the Ident of the variable in the Opasnet Base.
* Runident: the Ident of the run from which the results will be brought. If omitted, the newest result will be brought.if isnotspecified(runident) then runident:= identfind(newestrun(vident));
var a:= '
SELECT Var.Ident as Vident, Var.Name as Vname, Var.Unit as Vunit, Cell.id, Ind.Ident as Iident, Location, Mean, N, Run.Name as Rname, Run.Ident AS Runident
FROM Obj as Var, Cell, Loccell, Loc, Obj as Ind, Obj as Run
WHERE Cell.Obj_id_r = Run.id
AND Cell.Obj_id_v = Var.id
AND Loccell.Cell_id = Cell.id
AND Loccell.Loc_id = Loc.id
AND Loc.Obj_id_i = Ind.id
AND Var.Ident = '&chr(39)&vident&chr(39)&'
AND Run.ident = '&chr(39)&runident&chr(39)
;
index i:= DBquery(Odbc,a);
index j:= dblabels(i);
dbtable(i,j)56,88,148,122,585,25,516,58939325,65535,39321vident,runident(vident:text)NewestrunThis function checks for the newest result (according to run_id) of the variable. The function is used if the user does not define the run_id as an optional parameter in functions Read_mean and Read_sample.
PARAMETERS:
* Vident: the Ident of the variable in the Opasnet Base.index i:= DBquery(Odbc,'
SELECT Obj_id_r
FROM Cell, Obj as Var
WHERE Var.id = Cell.Obj_id_v
AND Var.Ident = "'&vident&'"
GROUP BY Var.id, Obj_id_r
');
index j:= dblabels(i);
max(max(dbtable(i,j),i),j)56,16,148,122,678,59,476,56639325,65535,39321vident(vident:text, runident:optional)Read sampleReads the sample data about the vident variable from the Opasnet Base. Uses the runident run if specified; otherwise uses the newest run of that variable.
PARAMETERS:
* Vident: the name of the variable in the Opasnet Base.
* Runident: the Ident of the run from which the results will be brought. If omitted, the newest result will be brought.if isnotspecified(runident) then runident:= identfind(newestrun(vident));
var a:= '
SELECT Temp.id, Obs, Result, Restext
FROM
(SELECT Cell.id, Res.id AS Res_id, Obs, Result, Obj_id_r
FROM Cell, Res, Obj AS Run, Obj AS Var
WHERE Var.Ident = '&chr(39)&vident&chr(39)&'
AND Cell.Obj_id_v = Var.id
AND Cell.Obj_id_r = Run.id
AND Run.Ident = '&chr(39)&Runident&chr(39)&'
AND Res.Cell_id = Cell.id) AS Temp
LEFT JOIN Resinfo ON
Temp.Res_id = Resinfo.id
';
index i:= DBquery(Odbc,a);
index j:= dblabels(i);
dbtable(i,j)56,120,148,222,700,47,516,61239325,65535,39321vident,runidentEnter variable Ident'Op_en1912'168,83,148,27[Formnode Enter_variable1]52425,39321,65535Enter variable0288,24,1176,131,0,0,1,0,0,0,170,0,152425,39321,65535Enter_variableNewest runnewestrun(Enter_variable)288,60,148,12Var inforead_mean(Enter_variable)288,108,148,122,56,66,1205,308,0,MIDM[Sys_localindex('J'),Sys_localindex('I')](a,inde)MakeindThe input table a must have a structure that is also used as input for MDTable function. The function removes one column with location information and makes a dimension (index) with the locations in the column. Inde is the (local) index that will be added. Note that unlike MDTable function, this can use local indices in the output.if size(a.m)= 1 then a else (
a:= if inde = a[@.m=1] then a else 0;
index m:= slice(a.m,(2..size(a.m)));
a:= a[.m=m])56,176,148,122,283,62,476,224a,inde(a)Get res.idMakes a multi-dimensional array with the same structure as the original variable that was stored into the Opasnet Base. However, the indices do not have original names. They are named In1, In2,... The contents of the array are the res.ids of the variable. The input parameter must be a 2D table with the structure that comes from the Read_mean function.
1) Slices the necessary columns from the input table and converts that to a 2D table that has the same structure as is used for input to the function MDTable.
2) Defines the local indices (up to 10), and changes a location column to a dimension one at a time until all columns have been changed.index k:= ['Iident','Location','id'];
a:= a[.j=k];
index L:= a[@k=1]&'+'&textify(a[@k=3]);
index m:= concat(a[.i=unique(a[@k=1],a.i), @k=1],['Result']);
index n:= a[.i=unique(a[@k=3],a.i), @k=3];
a:= a[@.i=@L];
a:= a[L=(m)&'+'&textify(n), @k=2];
a:= if m='Result' then n else a;
index in1:= a[n=unique(a[@m=1],n),@m=1];
index in2:= a[n=unique(a[@m=2],n),@m=2];
index in3:= a[n=unique(a[@m=3],n),@m=3];
index In4:= a[n=unique(a[@m=4],n),@m=4];
index In5:= a[n=unique(a[@m=5],n),@m=5];
index in6:= a[n=unique(a[@m=6],n),@m=6];
index in7:= a[n=unique(a[@m=7],n),@m=7];
index in8:= a[n=unique(a[@m=8],n),@m=8];
index in9:= a[n=unique(a[@m=9],n),@m=9];
index in10:= a[n=unique(a[@m=10],n),@m=10];
a:= makeind(a, in1);
a:= makeind(a, in2);
a:= makeind(a, in3);
a:= makeind(a, in4);
a:= makeind(a, in5);
a:= makeind(a, in6);
a:= makeind(a, in7);
a:= makeind(a, in8);
a:= makeind(a, in9);
a:= makeind(a, in10);
sum(sum(a,a.m),a.n)56,152,148,122,669,44,476,545aVar meanget_mean(Enter_variable)288,132,148,122,547,35,416,622,0,MIDM[Sys_localindex('IN2'),Sys_localindex('IN3')][Sys_localindex('IN1'),1,Sys_localindex('IN4'),1,Sys_localindex('IN5'),1,Sys_localindex('IN3'),1,Sys_localindex('IN2'),1](vident:text, runident:optional)Get meanGives the mean result of a (multidimensional) variable stored in the Opasnet Base. The procedure is simple because it utilises the variable structure (with res_ids) derived by the get_res_id function.var a:= read_mean(vident, runident);
index o:= a[.j='id'];
var output:= a[@.i=@o, .j='Mean'];
a:= get_res_id(a);
output[o=a]56,200,148,122,665,82,476,428vident,runident(vident:text, runident:optional)Get sampleGives the sample result of a (multidimensional) variable stored in the Opasnet Base. The procedure is simple because it utilises the variable structure (with res_ids) derived by the get_res_id function.
Note that if the Analytica samplesize is smaller than the samplesize stored in the Opasnet Base, the extra samples will be discarded. If the samplesize is larger, the remaining rows will be null.
1) Brings the data into the right structure.
2) Chooses whether the actual result is numerical (in the Result column) or text (in the Description column).var a:= read_sample(vident, runident);
var b:= textify(get_res_id(read_mean(vident,runident)));
index k:= textify(a[.j='id'])&'+'&textify(a[.j='Obs']);
index runn:= textify(min(a[.j='Obs'])..max(a[.j='Obs']));
a:= a[@.i=@k];
a:= a[k=b&'+'&runn];
a:= if max(runn)=0 then a[@runn=1] else a[@runn=@run];
var c:= if a[.j='Restext']='' then 0 else 1;
c:= sum(sum(sum(sum(sum(sum(sum(sum(sum(sum(c))))))))));
if c=0 then a[.j='Result'] else a[.j='Restext']56,224,148,122,641,28,476,556vident,runidentVar sampleget_sample(Enter_variable)288,156,148,122,226,324,416,303,0,MEAN[Sys_localindex('IN5'),Sys_localindex('IN3')][Sys_localindex('IN1'),1,Sys_localindex('IN2'),1,Sys_localindex('IN4'),1,Sys_localindex('IN3'),1,Sys_localindex('J'),1,Sys_localindex('IN5'),1](runid)IdentfindFinds the Ident for the run (or another object) that has the id runid.index i:= DBquery(Odbc,'
SELECT Ident
FROM Obj
WHERE Obj.id = "'&runid&'"
');
index j:= dblabels(i);
var a:= dbtable(i,j);
a[@i=1, @j=1]56,64,148,122,732,65,516,58939325,65535,39321runidVar run infoDescribes the runs of the defined variable. This should be made a function.var_run_info(Enter_variable)288,84,148,122,136,146,1111,285,0,MIDM[Sys_localindex('J'),Sys_localindex('I')](vident:text)Var run infoThis function checks for the newest result (according to run_id) of the variable. The function is used if the user does not define the run_id as an optional parameter in functions Read_mean and Read_sample.
PARAMETERS:
* Vident: the Ident of the variable in the Opasnet Base.var a:= '
SELECT Var.Ident, Var.Name, Var.Unit, Run.Ident AS Runident, Act.When, Act.Who, Run.Name as Method
FROM Obj as Var, Obj as Run, Cell, Objinfo AS Act
WHERE Var.Ident = '&chr(39)&vident&chr(39)&'
AND Var.id = Cell.Obj_id_v
AND Run.id = Cell.Obj_id_r
AND Run.id = Act.id
GROUP BY Var.id, Run.id
';
index i:= DBquery(Odbc,a);
index j:= dblabels(i);
dbtable(i,j)56,40,148,132,678,59,476,56639325,65535,39321videntUse these functions to retireve data from the Opasnet base:
* Newest_run: finds the newest run of the object.
* Var_run_info: Finds the run information of the object.
* Read_mean: Reads the means of each cell.
* Get_mean
* Get_sample: Reads the whole sample.
Note! These should be updated when we get experience about what we actually want out.280,285,-1168,101(a)TextifyChanges an integer of any length to a text value. This bypasses the number formatting problem that tends to convert e.g. 93341 to '93.34K'. If the number is not integer, up to three digits after the decimal point will be taken as well.a&''
{for y[]:= a do (
if istext(y) then y else (
var x:= 1;
var b:= '';
var c:= if y<1 then 1 else floor(logten(y))+1;
while x<= c do (
b:= (y-floor(y/10)*10)&b;
y:= floor(y/10);
x:= x+1);
b) )}56,248,148,122,102,90,476,371a2,F,4,14,0,0,4,0,$,0,"ABBREV",0Detailsktluser8. Decta 2008 3:01 48,2456,712,148,241,30,113,495,453,17(a; file:texttype)Tablefya:= '"'&a&'"';
a:= jointext(a,a.j,';');
Writetextfile('c:\temp\'&file, a)168,368,148,132,44,303,476,224a,file2,F,4,14,0,0,4,0,$,0,"ABBREV",0(a; x:optional = 1; e, f:optional=0)Doloccell1) Size(h) is size(a.j)-2 because j contains 'Result' and 'SD'.
2) Only the deterministic information about variables are considered (therefore mean). Makes a 2D table of the locres info.
3) Makes a table with fields required by the Loccell and Cell tables.
4) Reduces one dimension by expanding the length from the length of Cell to that of Loccell.index j:= ['id', 'Location', 'Cell_id', 'Loc_id', 'Obj_id_v', 'Obj_id_r', 'Mean', 'SD', 'N'];
index h:= a.j[@.j=1..size(a.j)-2];
index i:= 1..size(a.i)*size(h);
var c:= Objects[@.i=x];
a:= array(j,[
i[@i=@a.i+size(a.i)*(@h-1)]+e,
a[.j=h]&'',
a.i+f,
h,
c[.j='Ident'],
'',
a[.j='Result'],
a[.j='SD'],
if c[.j='Probabilistic?']=1 then samplesize else 0]);
concatrows(a,h,a.i,i)400,280,148,132,627,78,556,561a,x,e,f(a: prob; probabilistic; e, f: optional=0)Doresultindex runn:= if Probabilistic=1 then copyindex(run) else [0];
index i:= (1..size(max(a.i,run))*size(runn))+f;
a:= if Probabilistic=1 then a[run=runn] else (if runn=0 then a else a);
a:= a[.j='Result'];
index j:= ['id','Cell_id','Obs','Result','Restext'];
a:= array(j,[0, a.i+e, runn, (if istext(a) then 0 else a) , (if istext(a) then a else 0)]);
a:= concatrows(a,a.i,runn, i);
a:= if j='id' then i else a400,256,148,132,687,174,476,526a,probabilistic,e,f(a)Dolocationvar b:= [0];
var c:= [0];
var e:= [0];
var f:= [0];
var x:= 1;
while x<= size(a.j)-1 do (
var h:= a[@.j=x];
var d:= h[.i=unique(h,h.i)];
b:= concat(b,d);
c:= concat(c,(if d=0 then slice(a.j,x) else slice(a.j,x)));
e:= concat(e,1..size(d));
x:= x+1);
index i:= 1..size(b)-1;
index j:= ['id','Obj_id_i', 'Location', 'Roww', 'Description'];
array(j,[i, slice(c,i+1), slice(b,i+1)&'', slice(e,i+1), '']);400,232,148,122,671,164,503,486aConcatenation UDFsThis library contains functions to make various instances of concatenation more convenient. Concat3 thru Concat10 are generalizations of the built-in Concat function which concatenate from 3 to 10 arrays in a single call (while the built-in Concat concatenates two arrays). ConcatRows concatenates all the rows of a single array.David Kendall & Lonnie ChrismanMon, Jan 26, 2004 8:49 AMLonnieWed, Sep 05, 2007 3:23 PM48,24184,328,168,201,0,0,1,1,1,0,0,0,01,50,200,488,454,23(A1, A2, A3: ArrayType; I1, I2, I3, J: IndexType )Concat3Concatenates three arrays, A1, A2, and A3. I1, I2, and I3 are the indexes that are joined; J is the index of the new array; J usually is the concatenation of I1, I2, and I3Index I12 := Concat(I1,I2);
Concat( Concat( A1,A2,I1,I2,I12 ), A3, I12, I3, J )88,64,148,262,56,56,986,596A1,A2,A3,I1,I2,I3,J(A1, A2, A3, A4: ArrayType; I1, I2, I3, I4, J: IndexType )Concat4Concatenates four arrays, A1, A2, A3, and A4. I1, I2, I3, and I4 are the indexes that are joined; J is the index of the new array; J usually is the concatenation of I1, I2, I3, and I4.Index I12 := Concat(I1,I2);
Index I123:= Concat(I12, I3);
Concat(
Concat(
Concat( A1,A2,I1,I2,I12 ),
A3, I12, I3, I123),
A4, I123, I4, J);
192,64,148,242,30,30,986,596A1,A2,A3,A4,I1,I2,I3,I4,J0(A1, A2, A3, A4, A5, A6, A7, A8, A9: ArrayType; I1, I2, I3, I4, I5, I6, I7, I8, I9, J: IndexType)Concat9Concatenates nine arrays, A1, ..., A9. I1, ..., I9 are the indexes joined; J is the index of the new array; J usually is the concatenation of I1, ..., I9.Index I12 := Concat(I1,I2);
Index I123 := Concat(I12, I3);
Index I1234 := Concat(I123, I4);
Index I12345 := Concat(I1234, I5);
Index I123456 := Concat(I12345, I6);
Index I1234567 := Concat(I123456, I7);
Index I12345678 := Concat(I1234567, I8);
Concat(
Concat(
Concat(
Concat(
Concat(
Concat(
Concat(
Concat( A1,A2,I1,I2,I12 ),
A3, I12, I3, I123),
A4, I123, I4, I1234),
A5, I1234, I5, I12345),
A6, I12345, I6, I123456),
A7, I123456, I7, I1234567),
A8, I1234567, I8, I12345678),
A9, I12345678, I9, J);88,232,148,242,27,120,469,638A1,A2,A3,A4,A5,A6,A7,A8,A9,I1,I2,I3,I4,I5,I6,I7,I8,I9,J0(A1, A2, A3, A4, A5: ArrayType; I1, I2, I3, I4, I5, J: IndexType )Concat5Concatenates five arrays, A1, ..., A5. I1, ..., I5 are the indexes joined; J is the index of the new array; J usually is the concatenation of I1, ..., I5.Index I12 := Concat(I1,I2);
Index I123:= Concat(I12, I3);
Index I1234 := Concat(I123, I4);
Concat(
Concat(
Concat(
Concat( A1,A2,I1,I2,I12 ),
A3, I12, I3, I123),
A4, I123, I4, I1234),
A5, I1234, I5, J);88,120,148,242,160,160,986,596A1,A2,A3,A4,A5,I1,I2,I3,I4,I5,J(A1, A2, A3, A4, A5, A6: ArrayType; I1, I2, I3, I4, I5, I6, J: IndexType )Concat6Concatenates six arrays, A1, ..., A6. I1, ..., I6 are the indexes joined; J is the index of the new array; J usually is the concatenation of I1, ..., I6.Index I12 := Concat(I1,I2);
Index I123:= Concat(I12, I3);
Index I1234 := Concat(I123, I4);
Index I12345 := Concat(I1234, I5);
Concat(
Concat(
Concat(
Concat(
Concat( A1,A2,I1,I2,I12 ),
A3, I12, I3, I123),
A4, I123, I4, I1234),
A5, I1234, I5, I12345),
A6, I12345, I6, J);192,120,148,242,644,94,602,712A1,A2,A3,A4,A5,A6,I1,I2,I3,I4,I5,I6,J0(A1, A2, A3, A4, A5, A6, A7: ArrayType; I1, I2, I3, I4, I5, I6, I7, J: IndexType )Concat7Concatenates seven arrays, A1, ..., A7. I1, ..., I7 are the indexes joined; J is the index of the new array; J usually is the concatenation of I1, ..., I7.Index I12 := Concat(I1,I2);
Index I123:= Concat(I12, I3);
Index I1234 := Concat(I123, I4);
Index I12345 := Concat(I1234, I5);
Index I123456 := Concat(I12345, I6);
Concat(
Concat(
Concat(
Concat(
Concat(
Concat( A1,A2,I1,I2,I12 ),
A3, I12, I3, I123),
A4, I123, I4, I1234),
A5, I1234, I5, I12345),
A6, I12345, I6, I123456),
A7, I123456, I7, J);88,176,148,242,580,98,551,565A1,A2,A3,A4,A5,A6,A7,I1,I2,I3,I4,I5,I6,I7,J(A1, A2, A3, A4, A5, A6, A7, A8: ArrayType; I1, I2, I3, I4, I5, I6, I7, I8, J: IndexType )Concat8Concatenates eight arrays, A1, ..., A8. I1, ..., I8 are the indexes joined; J is the index of the new array; J usually is the concatenation of I1, ..., I8.Index I12 := Concat(I1,I2);
Index I123:= Concat(I12, I3);
Index I1234 := Concat(I123, I4);
Index I12345 := Concat(I1234, I5);
Index I123456 := Concat(I12345, I6);
Index I1234567 := Concat(I123456, I7);
Concat(
Concat(
Concat(
Concat(
Concat(
Concat(
Concat( A1,A2,I1,I2,I12 ),
A3, I12, I3, I123),
A4, I123, I4, I1234),
A5, I1234, I5, I12345),
A6, I12345, I6, I123456),
A7, I123456, I7, I1234567),
A8, I1234567, I8, J);192,176,148,242,12,98,561,737A1,A2,A3,A4,A5,A6,A7,A8,I1,I2,I3,I4,I5,I6,I7,I8,J0(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10: ArrayType; I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, J: IndexType)Concat10Concatenates ten arrays, A1, ..., A10. I1, ..., I10 are the indexes joined; J is the index of the new array; J usually is the concatenation of I1, ..., I10.Index I12 := Concat(I1,I2);
Index I123 := Concat(I12, I3);
Index I1234 := Concat(I123, I4);
Index I12345 := Concat(I1234, I5);
Index I123456 := Concat(I12345, I6);
Index I1234567 := Concat(I123456, I7);
Index I12345678 := Concat(I1234567, I8);
Index I123456789 := Concat(I12345678, I9);
Concat(
Concat(
Concat(
Concat(
Concat(
Concat(
Concat(
Concat(
Concat( A1,A2,I1,I2,I12 ),
A3, I12, I3, I123),
A4, I123, I4, I1234),
A5, I1234, I5, I12345),
A6, I12345, I6, I123456),
A7, I123456, I7, I1234567),
A8, I1234567, I8, I12345678),
A9, I12345678, I9, I123456789),
A10, I123456789, I10, J);192,232,148,242,542,93,632,744A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,I1,I2,I3,I4,I5,I6,I7,I8,I9,I10,J0(A : ArrayType ; RowIndex,ColIndex,ResultIndex : IndexType)ConcatRows (A,I,J,K)Takes an array, A indexed by RowIndex & ColIndex, and concatenates each row, henceforth flattening the array by one dimension. The result is indexed by ResultIndex, which must be an index with size(RowIndex) * size(ColIndex) elements.index L := [ identifier of RowIndex, identifier of ColIndex, "val"];
slice(Mdarraytotable(A,ResultIndex,L),L,3)320,64,164,242,499,85,478,348A,RowIndex,ColIndex,ResultIndexODBC LibraryLonnieThu, Sep 11, 1997 2:15 PMLonnieTue, Feb 05, 2008 10:03 AM48,2456,328,152,201,1,1,1,1,1,0,0,0,01,20,272,499,462,17Arial, 13(A:ArrayType;I:IndexType;L:IndexType;row:IndexType;dbTableName)InsertRecSqlGenerates the SQL "INSERT INTO" statement for one line of table A. A is a 2-D table indexed by rows I and columns L. L's domain serves as the column names in the database table. dbTableName is the name of the table in the database. The result begins with two semi-colons, since it will be used with an SQL statement preceeding it.
29.8.2008 Jouni Tuomisto
I added the parameter IGNORE because it ignores rows that would cause duplicate-key violations. This way, there is no need to check for e.g. existing locations of new indices.
6.1.2009 Jouni Tuomisto
I changed the A[I=row] to A[@I=@row] because the original function does not work correctly, if there are non-unique rows in the index.(';;INSERT IGNORE INTO ' & dbTableName & '(' & JoinText(L,L,',') & ') VALUES (' & Vallist(A[@I=@row],L)) & ') '184,32,152,242,591,203,487,469A,I,L,row,dbTableName(V:ArrayType;I:IndexType)ValListTakes a list of values, and returns a string which the concatenation of each value, separated by commas, and with each value quoted.JoinText( '''' & V & '''', I, ',')72,32,052,242,642,360,476,224V,I1,F,4,14,0,0(Tabl:ArrayType;RowIndex:IndexType;LabelIndex:IndexType;dbTableName)WriteTableSql(Table,Rows,Labels,dbTableName)Returns the SQL that will write the table to the database table.
This can be used as the second argument to DBWrite.
This SQL statement replaces the entire contents of an existing table with the new data.'DELETE FROM '& Dbtablename & JoinText(Insertrecsql(Tabl, Rowindex, Labelindex, Rowindex, Dbtablename),RowIndex)328,32,188,242,728,341,510,476Tabl,RowIndex,LabelIndex,dbTableName(Tabl:ArrayType;RowIndex:IndexType;LabelIndex:IndexType;dbTableName)AppendTableSql(Table,Rows,Labels,dbTableName)Returns the SQL that will write the table to the database table.
This can be used as the second argument to DBWrite.
This SQL statement replaces the entire contents of an existing table with the new data.JoinText(Insertrecsql(Tabl, Rowindex, Labelindex, Rowindex, Dbtablename),RowIndex)328,88,188,242,559,127,510,476Tabl,RowIndex,LabelIndex,dbTableName(table:texttype)CardBrings the largest id number from the table defined in the parameter.index i:= DBquery(odbc,'
SELECT MAX(id) AS id
FROM '&table&'
');
index j:= dblabels(i);
max(max(DBTable(i, j ),i),j)56,272,148,122,102,90,476,33139325,65535,39321tableTablesList of such tables in Opasnet Base that are being written to by this module.['Obj','Cell','Loc','Loccell','Sett','Item','Res']280,256,148,132,15,594,158,227,0,MIDM[]['Obj','Cell','Loc','Loccell','Sett','Item','Res']CardinalsThe largest id values for the selected Opasnet Base tables. The table is updated by pressing the R_cardinals button.Table(Table1)(
758,443.096K,13.686K,1.535012M,47,146,1.432167M
)280,232,148,122,634,394,476,3322,193,270,416,303,0,MIDM2,87,329,416,303,0,MIDM39325,65535,393212,I,4,2,0,0,4,0,$,0,"ABBREV",0[](in, table; cond:texttype)FindidThis function gets an id from a table.
in: the property for which the id is needed. In MUST be unique in cond and it must contain index i.
table: the table from where the id is brought. The table MUST have .j as the column index, .i as the row index, and a column named 'id'.
cond: the name of the field that is compared with in. Cond must be text.index L:= in[.i=unique(in, in.i)];
var a:= if (L&' ') = (table[.j=cond]&' ') then table[.j='id'] else 0;
a:= textify(sum(a, table.i));
a[.L=in]56,248,148,122,636,101,494,519in,table,cond[](type)TypesFinds the objects that are of the object type "type" (the only parameter of this function). Based on the information in Objects1.var a:= if Objects1[.j='Typ_id']=type then 1 else 0;
Objects1[Object_all=subset(a),.j='id']56,224,148,122,551,191,476,344type(var, table)WriteFor Lumina AWP use the following should be used:
'Driver={MySQL ODBC 3.51 Driver};Server=193.167.179.97;Database=opasnet_base;User=resultwriter; Password=;Option=3'
For internal THL use the following should be used:
'Driver={MySQL ODBC 5.1 Driver};Server=10.66.10.102;Database=opasnet_base;User=resultwriter; Password='&writerpsswd&';Option=3'if size(var)>0 then dbwrite((if platform = 'Lumina AWP' then 'Driver={MySQL ODBC 3.51 Driver};Server=193.167.179.97' else 'Driver={MySQL ODBC 5.1 Driver};Server=10.66.10.102')&';Database=opasnet_base;User=resultwriter; Password='&writerpsswd&';Option=3'
, appendtablesql(var,var.i, var.j, table&' '))56,296,148,122,776,65,476,457var,tableODBC writeFor Lumina AWP use the following should be used:
'Driver={MySQL ODBC 3.51 Driver};Server=193.167.179.97;Database=opasnet_base;User=resultwriter; Password=;Option=3'
For internal THL use the following should be used:
'Driver={MySQL ODBC 5.1 Driver};Server=10.66.10.102;Database=opasnet_base;User=resultwriter; Password='&writerpsswd&';Option=3'var a:= if platform='Lumina AWP' then 'Driver={MySQL ODBC 3.51 Driver};Server=193.167.179.97' else 'Driver={MySQL ODBC 5.1 Driver};Server=10.66.10.102';
a&';Database=opasnet_base;User=resultwriter; Password='&writerpsswd&';Option=3'168,232,148,121,1,0,1,1,1,0,,0,2,102,90,495,3462,168,178,833,303,0,MIDM[]Opasnet usernameThe username for Opasnet wiki'Add username'168,161,148,221,1,1,1,1,1,0,0,0,0[Formnode Username1]52425,39321,65535Opasnet passwordThe user's password for Opasnet wiki.'Add password'168,200,148,221,1,1,1,1,1,0,0,0,0[Formnode Password1]52425,39321,65535ODBCContains the parameters for the open database connectivity (ODBC).
For Lumina AWP use the following should be used:
'Driver={MySQL ODBC 3.51 Driver};Server=193.167.179.97;Database=opasnet_base;User=result_reader; Password=ora4ever;Option=3'
For THL internal use the following should be used:
'Driver={MySQL ODBC 5.1 Driver};Server=10.66.10.102;Database=opasnet_base;User=result_reader; Password=ora4ever;Option=3'var a:= if platform='Lumina AWP' then 'Driver={MySQL ODBC 3.51 Driver};Server=193.167.179.97' else 'Driver={MySQL ODBC 5.1 Driver};Server=10.66.10.102';
a&';Database=opasnet_base;User=result_reader; Password=ora4ever;Option=3'168,128,148,121,1,0,1,1,1,0,,0,2,102,90,508,4202,56,66,918,303,0,MIDMDimindex i:= copyindex(D_i);
index j:= copyindex(D_j);
Dim1[d_i=i, d_j=j]400,160,148,131,1,0,1,1,1,0,0,0,02,89,98,476,2242,635,328,556,489,0,MIDM19661,54073,65535[D_i,D_j][Sys_localindex('J'),Sys_localindex('I')]Indindex i:= copyindex(I_i);
index j:= copyindex(I_j);
Ind1[I_i=i, I_j=j]400,184,148,131,1,0,1,1,1,0,0,0,02,380,47,476,2962,490,110,649,655,0,MIDM19661,54073,65535[Sys_localindex('J'),Sys_localindex('I')]Locindex i:= copyindex(L_i);
index j:= copyindex(L_j);
Loc1[L_i=i, L_j=j]400,96,148,131,1,0,1,1,1,0,0,0,02,370,45,476,4452,43,42,1147,516,0,MIDM19661,54073,65535[Sys_localindex('J'),Sys_localindex('I')]2,I,4,2,0,0,4,0,$,0,"ABBREV",0ObjThis node checks the variables listed in Var_for_rdb and makes an index of those that are NOT found in the result database. This is then used as an index in Inp_var for adding variable information.index i:= copyindex(O_i);
index j:= copyindex(O_j);
Obj2[O_i=i, O_j=j]400,48,148,131,1,0,1,1,1,0,0,0,02,378,21,493,5012,21,103,977,421,0,MIDM19661,54073,65535[Sys_localindex('J'),Sys_localindex('I')][]['H1991'][Self,1,Sys_localindex('I'),1,Sys_localindex('J'),1]Standard versions400,112,-172,1001,0,0,1,0,1,0,,0,D_i[0]168,24,148,12[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]D_j['id','Ident','Name']168,48,148,12['id','Ident','Name']I_i[0]168,72,148,12[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34]I_j['id','Iident','Iname','Did','Dident','Dname']168,96,148,12['id','Iident','Iname','Did','Dident','Dname']L_i[0]56,120,148,12[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,1279,1280,1281,1282,1283,1284,1285,1286,1287,1288,1289,1290,1291,1292,1293,1294,1295,1296,1297,1298,1299,1300,1301,1302,1303,1304,1305,1306,1307,1308,1309,1310,1311,1312,1313,1314,1315,1316,1317,1318,1319,1320,1321,1322,1323,1324,1325,1326,1327,1328,1329,1330,1331,1332,1333,1334,1335,1336,1337,1338,1339,1340,1341,1342,1343,1344,1345,1346,1347,1348,1349,1350,1351,1352,1353,1354,1355,1356,1357,1358,1359,1360,1361,1362,1363,1364,1365,1366,1367,1368,1369,1370,1371,1372,1373,1374,1375,1376,1377,1378,1379,1380,1381,1382,1383,1384,1385,1386,1387,1388,1389,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399,1400,1401,1402,1403,1404,1405,1406,1407,1408,1409,1410,1411,1412,1413,1414,1415,1416,1417,1418,1419,1420,1421,1422,1423,1424,1425,1426,1427,1428,1429,1430,1431,1432,1433,1434,1435,1436,1437,1438,1439,1440,1441,1442,1443,1444,1445,1446,1447,1448,1449,1450,1451,1452,1453,1454,1455,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465,1466,1467,1468,1469,1470,1471,1472,1473,1474,1475,1476,1477,1478,1479,1480,1481,1482,1483,1484,1485,1486,1487,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,1515,1516,1517,1518,1519,1520,1521,1522,1523,1524,1525,1526,1527,1528,1529,1530,1531,1532,1533,1534,1535,1536,1537,1538,1539,1540,1541,1542,1543,1544,1545,1546,1547,1548,1549,1550,1551,1552,1553,1554,1555,1556,1557,1558,1559,1560,1561,1562,1563,1564,1565,1566,1567,1568,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,1595,1596,1597,1598,1599,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1611,1612,1613,1614,1615,1616,1617,1618,1619,1620,1621,1622,1623,1624,1625,1626,1627,1628,1629,1630,1631,1632,1633,1634,1635,1636,1637,1638,1639,1640,1641,1642,1643,1644,1645,1646,1647,1648,1649,1650,1651,1652,1653,1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1665,1666,1667,1668,1669,1670,1671,1672,1673,1674,1675,1676,1677,1678,1679,1680,1681,1682,1683,1684,1685,1686,1687,1688,1689,1690,1691,1692,1693,1694,1695,1696,1697,1698,1699,1700,1701,1702,1703,1704,1705,1706,1707,1708,1709,1710,1711,1712,1713,1714,1715,1716,1717,1718,1719,1720,1721,1722,1723,1724,1725,1726,1727,1728,1729,1730,1731,1732,1733,1734,1735,1736,1737,1738,1739,1740,1741,1742,1743,1744,1745,1746,1747,1748,1749,1750,1751,1752,1753,1754,1755,1756,1757,1758,1759,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1815,1816,1817,1818,1819,1820,1821,1822,1823,1824,1825,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,1839,1840,1841,1842,1843,1844,1845,1846,1847,1848,1849,1850,1851,1852,1853,1854,1855,1856,1857,1858,1859,1860,1861,1862,1863,1864,1865,1866,1867,1868,1869,1870,1871,1872,1873,1874,1875,1876,1877,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1890,1891,1892,1893,1894,1895,1896,1897,1898,1899,1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911,1912,1913,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956,1957,1958,1959,1960,1961,1962,1963,1964,1965,1966,1967,1968,1969,1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2068,2069,2070,2071,2072,2073,2074,2075,2076,2077,2078,2079,2080,2081,2082,2083,2084,2085,2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098,2099,2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,2137,2138,2139,2140,2141,2142,2143,2144,2145,2146,2147,2148,2149,2150,2151,2152,2153,2154,2155,2156,2157,2158,2159,2160,2161,2162,2163,2164,2165,2166,2167,2168,2169,2170,2171,2172,2173,2174,2175,2176,2177,2178,2179,2180,2181,2182,2183,2184,2185,2186,2187,2188,2189,2190,2191,2192,2193,2194,2195,2196,2197,2198,2199,2200,2201,2202,2203,2204,2205,2206,2207,2208,2209,2210,2211,2212,2213,2214,2215,2216,2217,2218,2219,2220,2221,2222,2223,2224,2225,2226,2227,2228,2229,2230,2231,2232,2233,2234,2235,2236,2237,2238,2239,2240,2241,2242,2243,2244,2245,2246,2247,2248,2249,2250,2251,2252,2253,2254,2255,2256,2257,2258,2259,2260,2261,2262,2263,2264,2265,2266,2267,2268,2269,2270,2271,2272,2273,2274,2275,2276,2277,2278,2279,2280,2281,2282,2283,2284,2285,2286,2287,2288,2289,2290,2291,2292,2293,2294,2295,2296,2297,2298,2299,2300,2301,2302,2303,2304,2305,2306,2307,2308,2309,2310,2311,2312,2313,2314,2315,2316,2317,2318,2319,2320,2321,2322,2323,2324,2325,2326,2327,2328,2329,2330,2331,2332,2333,2334,2335,2336,2337,2338,2339,2340,2341,2342,2343,2344,2345,2346,2347,2348,2349,2350,2351,2352,2353,2354,2355,2356,2357,2358,2359,2360,2361,2362,2363,2364,2365,2366,2367,2368,2369,2370,2371,2372,2373,2374,2375,2376,2377,2378,2379,2380,2381,2382,2383,2384,2385,2386,2387,2388,2389,2390,2391,2392,2393,2394,2395,2396,2397,2398,2399,2400,2401,2402,2403,2404,2405,2406,2407,2408,2409,2410,2411,2412,2413,2414,2415,2416,2417,2418,2419,2420,2421,2422,2423,2424,2425,2426,2427,2428,2429,2430,2431,2432,2433,2434,2435,2436,2437,2438,2439,2440,2441,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2453,2454,2455,2456,2457,2458,2459,2460,2461,2462,2463,2464,2465,2466,2467,2468,2469,2470,2471,2472,2473,2474,2475,2476,2477,2478,2479,2480,2481,2482,2483,2484,2485,2486,2487,2488,2489,2490,2491,2492,2493,2494,2495,2496,2497,2498,2499,2500,2501,2502,2503,2504,2505,2506,2507,2508,2509,2510,2511,2512,2513,2514,2515,2516,2517,2518,2519,2520,2521,2522,2523,2524,2525,2526,2527,2528,2529,2530,2531,2532,2533,2534,2535,2536,2537,2538,2539,2540,2541,2542,2543,2544,2545,2546,2547,2548,2549,2550,2551,2552,2553,2554,2555,2556,2557,2558,2559,2560,2561,2562,2563,2564,2565,2566,2567,2568,2569,2570,2571,2572,2573,2574,2575,2576,2577,2578,2579,2580,2581,2582,2583,2584,2585,2586,2587,2588,2589,2590,2591,2592,2593,2594,2595,2596,2597,2598,2599,2600,2601,2602,2603,2604,2605,2606,2607,2608,2609,2610,2611,2612,2613,2614,2615,2616,2617,2618,2619,2620,2621,2622,2623,2624,2625,2626,2627,2628,2629,2630,2631,2632,2633,2634,2635,2636,2637,2638,2639,2640,2641,2642,2643,2644,2645,2646,2647,2648,2649,2650,2651,2652,2653,2654,2655,2656,2657,2658,2659,2660,2661,2662,2663,2664,2665,2666,2667,2668,2669,2670,2671,2672,2673,2674,2675,2676,2677,2678,2679,2680,2681,2682,2683,2684,2685,2686,2687,2688,2689,2690,2691,2692,2693,2694,2695,2696,2697,2698,2699,2700,2701,2702,2703,2704,2705,2706,2707,2708,2709,2710,2711,2712,2713,2714,2715,2716,2717,2718,2719,2720,2721,2722,2723,2724,2725,2726,2727,2728,2729,2730,2731,2732,2733,2734,2735,2736,2737,2738,2739,2740,2741,2742,2743,2744,2745,2746,2747,2748,2749,2750,2751,2752,2753,2754,2755,2756,2757,2758,2759,2760,2761,2762,2763,2764,2765,2766,2767,2768,2769,2770,2771,2772,2773,2774,2775,2776,2777,2778,2779,2780,2781,2782,2783,2784,2785,2786,2787,2788,2789,2790,2791,2792,2793,2794,2795,2796,2797,2798,2799,2800,2801,2802,2803,2804,2805,2806,2807,2808,2809,2810,2811,2812,2813,2814,2815,2816,2817,2818,2819,2820,2821,2822,2823,2824,2825,2826,2827,2828,2829,2830,2831,2832,2833,2834,2835,2836,2837,2838,2839,2840,2841,2842,2843,2844,2845,2846,2847,2848,2849,2850,2851,2852,2853,2854,2855,2856,2857,2858,2859,2860,2861,2862,2863,2864,2865,2866,2867,2868,2869,2870,2871,2872,2873,2874,2875,2876,2877,2878,2879,2880,2881,2882,2883,2884,2885,2886,2887,2888,2889,2890,2891,2892,2893,2894,2895,2896,2897,2898,2899,2900,2901,2902,2903,2904,2905,2906,2907,2908,2909,2910,2911,2912,2913,2914,2915,2916,2917,2918,2919,2920,2921,2922,2923,2924,2925,2926,2927,2928,2929,2930,2931,2932,2933,2934,2935,2936,2937,2938,2939,2940,2941,2942,2943,2944,2945,2946,2947,2948,2949,2950,2951,2952,2953,2954,2955,2956,2957,2958,2959,2960,2961,2962,2963,2964,2965,2966,2967,2968,2969,2970,2971,2972,2973,2974,2975,2976,2977,2978,2979,2980,2981,2982,2983,2984,2985,2986,2987,2988,2989,2990,2991,2992,2993,2994,2995,2996,2997,2998,2999,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,3020,3021,3022,3023,3024,3025,3026,3027,3028,3029,3030,3031,3032,3033,3034,3035,3036,3037,3038,3039,3040,3041,3042,3043,3044,3045,3046,3047,3048,3049,3050,3051,3052,3053,3054,3055,3056,3057,3058,3059,3060,3061,3062,3063,3064,3065,3066,3067,3068,3069,3070,3071,3072,3073,3074,3075,3076,3077,3078,3079,3080,3081,3082,3083,3084,3085,3086,3087,3088,3089,3090,3091,3092,3093,3094,3095,3096,3097,3098,3099,3100,3101,3102,3103,3104,3105,3106,3107,3108,3109,3110,3111,3112,3113,3114,3115,3116,3117,3118,3119,3120,3121,3122,3123,3124,3125,3126,3127,3128,3129,3130,3131,3132,3133,3134,3135,3136,3137,3138,3139,3140,3141,3142,3143,3144,3145,3146,3147,3148,3149,3150,3151,3152,3153,3154,3155,3156,3157,3158,3159,3160,3161,3162,3163,3164,3165,3166,3167,3168,3169,3170,3171,3172,3173,3174,3175,3176,3177,3178,3179,3180,3181,3182,3183,3184,3185,3186,3187,3188,3189,3190,3191,3192,3193,3194,3195,3196,3197,3198,3199,3200,3201,3202,3203,3204,3205,3206,3207,3208,3209,3210,3211,3212,3213,3214,3215,3216,3217,3218,3219,3220,3221,3222,3223,3224,3225,3226,3227,3228,3229,3230,3231,3232,3233,3234,3235,3236,3237,3238,3239,3240,3241,3242,3243,3244,3245,3246,3247,3248,3249,3250,3251,3252,3253,3254,3255,3256,3257,3258,3259,3260,3261,3262,3263,3264,3265,3266,3267,3268,3269,3270,3271,3272,3273,3274,3275,3276,3277,3278,3279,3280,3281,3282,3283,3284,3285,3286,3287,3288,3289,3290,3291,3292,3293,3294,3295,3296,3297,3298,3299,3300,3301,3302,3303,3304,3305,3306,3307,3308,3309,3310,3311,3312,3313,3314,3315,3316,3317,3318,3319,3320,3321,3322,3323,3324,3325,3326,3327,3328,3329,3330,3331,3332,3333,3334,3335,3336,3337,3338,3339,3340,3341,3342,3343,3344,3345,3346,3347,3348,3349,3350,3351,3352,3353,3354,3355,3356,3357,3358,3359,3360,3361,3362,3363,3364,3365,3366,3367,3368,3369,3370,3371,3372,3373,3374,3375,3376,3377,3378,3379,3380,3381,3382,3383,3384,3385,3386,3387,3388,3389,3390,3391,3392,3393,3394,3395,3396,3397,3398,3399,3400,3401,3402,3403,3404,3405,3406,3407,3408,3409,3410,3411,3412,3413,3414,3415,3416,3417,3418,3419,3420,3421,3422,3423,3424,3425,3426,3427,3428,3429,3430,3431,3432,3433,3434,3435,3436,3437,3438,3439,3440,3441,3442,3443,3444,3445,3446,3447,3448,3449,3450,3451,3452,3453,3454,3455,3456,3457,3458,3459,3460,3461,3462,3463,3464,3465,3466,3467,3468,3469,3470,3471,3472,3473,3474,3475,3476,3477,3478,3479,3480,3481,3482,3483,3484,3485,3486,3487,3488,3489,3490,3491,3492,3493,3494,3495,3496,3497,3498,3499,3500,3501,3502,3503,3504,3505,3506,3507,3508,3509,3510,3511,3512,3513,3514,3515,3516,3517,3518,3519,3520,3521,3522,3523,3524,3525,3526,3527,3528,3529,3530,3531,3532,3533,3534,3535,3536,3537,3538,3539,3540,3541,3542,3543,3544,3545,3546,3547,3548,3549,3550,3551,3552,3553,3554,3555,3556,3557,3558,3559,3560,3561,3562,3563,3564,3565,3566,3567,3568,3569,3570,3571,3572,3573,3574,3575,3576,3577,3578,3579,3580,3581,3582,3583,3584,3585,3586,3587,3588,3589,3590,3591,3592,3593,3594,3595,3596,3597,3598,3599,3600,3601,3602,3603,3604,3605,3606,3607,3608,3609,3610,3611,3612,3613,3614,3615,3616,3617,3618,3619,3620,3621,3622,3623,3624,3625,3626,3627,3628,3629,3630,3631,3632,3633,3634,3635,3636,3637,3638,3639,3640,3641,3642,3643,3644,3645,3646,3647,3648,3649,3650,3651,3652,3653,3654,3655,3656,3657,3658,3659,3660,3661,3662,3663,3664,3665,3666,3667,3668,3669,3670,3671,3672,3673,3674,3675,3676,3677,3678,3679,3680,3681,3682,3683,3684,3685,3686,3687,3688,3689,3690,3691,3692,3693,3694,3695,3696,3697,3698,3699,3700,3701,3702,3703,3704,3705,3706,3707,3708,3709,3710,3711,3712,3713,3714,3715,3716,3717,3718,3719,3720,3721,3722,3723,3724,3725,3726,3727,3728,3729,3730,3731,3732,3733,3734,3735,3736,3737,3738,3739,3740,3741,3742,3743,3744,3745,3746,3747,3748,3749,3750,3751,3752,3753,3754,3755,3756,3757,3758,3759,3760,3761,3762,3763,3764,3765,3766,3767,3768,3769,3770,3771,3772,3773,3774,3775,3776,3777,3778,3779,3780,3781,3782,3783,3784,3785,3786,3787,3788,3789,3790,3791,3792,3793,3794,3795,3796,3797,3798,3799,3800,3801,3802,3803,3804,3805,3806,3807,3808,3809,3810,3811,3812,3813,3814,3815,3816,3817,3818,3819,3820,3821,3822,3823,3824,3825,3826,3827,3828,3829,3830,3831,3832,3833,3834,3835,3836,3837,3838,3839,3840,3841,3842,3843,3844,3845,3846,3847,3848,3849,3850,3851,3852,3853,3854,3855,3856,3857,3858,3859,3860,3861,3862,3863,3864,3865,3866,3867,3868,3869,3870,3871,3872,3873,3874,3875,3876,3877,3878,3879,3880,3881,3882,3883,3884,3885,3886,3887,3888,3889,3890,3891,3892,3893,3894,3895,3896,3897,3898,3899,3900,3901,3902,3903,3904,3905,3906,3907,3908,3909,3910,3911,3912,3913,3914,3915,3916,3917,3918,3919,3920,3921,3922,3923,3924,3925,3926,3927,3928,3929,3930,3931,3932,3933,3934,3935,3936,3937,3938,3939,3940,3941,3942,3943,3944,3945,3946,3947,3948,3949,3950,3951,3952,3953,3954,3955,3956,3957,3958,3959,3960,3961,3962,3963,3964,3965,3966,3967,3968,3969,3970,3971,3972,3973,3974,3975,3976,3977,3978,3979,3980,3981,3982,3983,3984,3985,3986,3987,3988,3989,3990,3991,3992,3993,3994,3995,3996,3997,3998,3999,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,4012,4013,4014,4015,4016,4017,4018,4019,4020,4021,4022,4023,4024,4025,4026,4027,4028,4029,4030,4031,4032,4033,4034,4035,4036,4037,4038,4039,4040,4041,4042,4043,4044,4045,4046,4047,4048,4049,4050,4051,4052,4053,4054,4055,4056,4057,4058,4059,4060,4061,4062,4063,4064,4065,4066,4067,4068,4069,4070,4071,4072,4073,4074,4075,4076,4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096,4097,4098,4099,4100,4101,4102,4103,4104,4105,4106,4107,4108,4109,4110,4111,4112,4113,4114,4115,4116,4117,4118,4119,4120,4121,4122,4123,4124,4125,4126,4127,4128,4129,4130,4131,4132,4133,4134,4135,4136,4137,4138,4139,4140,4141,4142,4143,4144,4145,4146,4147,4148,4149,4150,4151,4152,4153,4154,4155,4156,4157,4158,4159,4160,4161,4162,4163,4164,4165,4166,4167,4168,4169,4170,4171,4172,4173,4174,4175,4176,4177,4178,4179,4180,4181,4182,4183,4184,4185,4186,4187,4188,4189,4190,4191,4192,4193,4194,4195,4196,4197,4198,4199,4200,4201,4202,4203,4204,4205,4206,4207,4208,4209,4210,4211,4212,4213,4214,4215,4216,4217,4218,4219,4220,4221,4222,4223,4224,4225,4226,4227,4228,4229,4230,4231,4232,4233,4234,4235,4236,4237,4238,4239,4240,4241,4242,4243,4244,4245,4246,4247,4248,4249,4250,4251,4252,4253,4254,4255,4256,4257,4258,4259,4260,4261,4262,4263,4264,4265,4266,4267,4268,4269,4270,4271,4272,4273,4274,4275,4276,4277,4278,4279,4280,4281,4282,4283,4284,4285,4286,4287,4288,4289,4290,4291,4292,4293,4294,4295,4296,4297,4298,4299,4300,4301,4302,4303,4304,4305,4306,4307,4308,4309,4310,4311,4312,4313,4314,4315,4316,4317,4318,4319,4320,4321,4322,4323,4324,4325,4326,4327,4328,4329,4330,4331,4332,4333,4334,4335,4336,4337,4338,4339,4340,4341,4342,4343,4344,4345,4346,4347,4348,4349,4350,4351,4352,4353,4354,4355,4356,4357,4358,4359,4360,4361,4362,4363,4364,4365,4366,4367,4368,4369,4370,4371,4372,4373,4374,4375,4376,4377,4378,4379,4380,4381,4382,4383,4384,4385,4386,4387,4388,4389,4390,4391,4392,4393,4394,4395,4396,4397,4398,4399,4400,4401,4402,4403,4404,4405,4406,4407,4408,4409,4410,4411,4412,4413,4414,4415,4416,4417,4418,4419,4420,4421,4422,4423,4424,4425,4426,4427,4428,4429,4430,4431,4432,4433,4434,4435,4436,4437,4438,4439,4440,4441,4442,4443,4444,4445,4446,4447,4448,4449,4450,4451,4452,4453,4454,4455,4456,4457,4458,4459,4460,4461,4462,4463,4464,4465,4466,4467,4468,4469,4470,4471,4472,4473,4474,4475,4476,4477,4478,4479,4480,4481,4482,4483,4484,4485,4486,4487,4488,4489,4490,4491,4492,4493,4494,4495,4496,4497,4498,4499,4500,4501,4502,4503,4504,4505,4506,4507,4508,4509,4510,4511,4512,4513,4514,4515,4516,4517,4518,4519,4520,4521,4522,4523,4524,4525,4526,4527,4528,4529,4530,4531,4532,4533,4534,4535,4536,4537,4538,4539,4540,4541,4542,4543,4544,4545,4546,4547,4548,4549,4550,4551,4552,4553,4554,4555,4556,4557,4558,4559,4560,4561,4562,4563,4564,4565,4566,4567,4568,4569,4570,4571,4572,4573,4574,4575,4576,4577,4578,4579,4580,4581,4582,4583,4584,4585,4586,4587,4588,4589,4590,4591,4592,4593,4594,4595,4596,4597,4598,4599,4600,4601,4602,4603,4604,4605,4606,4607,4608,4609,4610,4611,4612,4613,4614,4615,4616,4617,4618,4619,4620,4621,4622,4623,4624,4625,4626,4627,4628,4629,4630,4631,4632,4633,4634,4635,4636,4637,4638,4639,4640,4641,4642,4643,4644,4645,4646,4647,4648,4649,4650,4651,4652,4653,4654,4655,4656,4657,4658,4659,4660,4661,4662,4663,4664,4665,4666,4667,4668,4669,4670,4671,4672,4673,4674,4675,4676,4677,4678,4679,4680,4681,4682,4683,4684,4685,4686,4687,4688,4689,4690,4691,4692,4693,4694,4695,4696,4697,4698,4699,4700,4701,4702,4703,4704,4705,4706,4707,4708,4709,4710,4711,4712,4713,4714,4715,4716,4717,4718,4719,4720,4721,4722,4723,4724,4725,4726,4727,4728,4729,4730,4731,4732,4733,4734,4735,4736,4737,4738,4739,4740,4741,4742,4743,4744,4745,4746,4747,4748,4749,4750,4751,4752,4753,4754,4755,4756,4757,4758,4759,4760,4761,4762,4763,4764,4765,4766,4767,4768,4769,4770,4771,4772,4773,4774,4775,4776,4777,4778,4779,4780,4781,4782,4783,4784,4785,4786,4787,4788,4789,4790,4791,4792,4793,4794,4795,4796,4797,4798,4799,4800,4801,4802,4803,4804,4805,4806,4807,4808,4809,4810,4811,4812,4813,4814,4815,4816,4817,4818,4819,4820,4821,4822,4823,4824,4825,4826,4827,4828,4829,4830,4831,4832,4833,4834,4835,4836,4837,4838,4839,4840,4841,4842,4843,4844,4845,4846,4847,4848,4849,4850,4851,4852,4853,4854,4855,4856,4857,4858,4859,4860,4861,4862,4863,4864,4865,4866,4867,4868,4869,4870,4871,4872,4873,4874,4875,4876,4877,4878,4879,4880,4881,4882,4883,4884,4885,4886,4887,4888,4889,4890,4891,4892,4893,4894,4895,4896,4897,4898,4899,4900,4901,4902,4903,4904,4905,4906,4907,4908,4909,4910,4911,4912,4913,4914,4915,4916,4917,4918,4919,4920,4921,4922,4923,4924,4925,4926,4927,4928,4929,4930,4931,4932,4933,4934,4935,4936,4937,4938,4939,4940,4941,4942,4943,4944,4945,4946,4947,4948,4949,4950,4951,4952,4953,4954,4955,4956,4957,4958,4959,4960,4961,4962,4963,4964,4965,4966,4967,4968,4969,4970,4971,4972,4973,4974,4975,4976,4977,4978,4979,4980,4981,4982,4983,4984,4985,4986,4987,4988,4989,4990,4991,4992,4993,4994,4995,4996,4997,4998,4999,5000,5001,5002,5003,5004,5005,5006,5007,5008,5009,5010,5011,5012,5013,5014,5015,5016,5017,5018,5019,5020,5021,5022,5023,5024,5025,5026,5027,5028,5029,5030,5031,5032,5033,5034,5035,5036,5037,5038,5039,5040,5041,5042,5043,5044,5045,5046,5047,5048,5049,5050,5051,5052,5053,5054,5055,5056,5057,5058,5059,5060,5061,5062,5063,5064,5065,5066,5067,5068,5069,5070,5071,5072,5073,5074,5075,5076,5077,5078,5079,5080,5081,5082,5083,5084,5085,5086,5087,5088,5089,5090,5091,5092,5093,5094,5095,5096,5097,5098,5099,5100,5101,5102,5103,5104,5105,5106,5107,5108,5109,5110,5111,5112,5113,5114,5115,5116,5117,5118,5119,5120,5121,5122,5123,5124,5125,5126,5127,5128,5129,5130,5131,5132,5133,5134,5135,5136,5137,5138,5139,5140,5141,5142,5143,5144,5145,5146,5147,5148,5149,5150,5151,5152,5153,5154,5155,5156,5157,5158,5159,5160,5161,5162,5163,5164,5165,5166,5167,5168,5169,5170,5171,5172,5173,5174,5175,5176,5177,5178,5179,5180,5181,5182,5183,5184,5185,5186,5187,5188,5189,5190,5191,5192,5193,5194,5195,5196,5197,5198,5199,5200,5201,5202,5203,5204,5205,5206,5207,5208,5209,5210,5211,5212,5213,5214,5215,5216,5217,5218,5219,5220,5221,5222,5223,5224,5225,5226,5227,5228,5229,5230,5231,5232,5233,5234,5235,5236,5237,5238,5239,5240,5241,5242,5243,5244,5245,5246,5247,5248,5249,5250,5251,5252,5253,5254,5255,5256,5257,5258,5259,5260,5261,5262,5263,5264,5265,5266,5267,5268,5269,5270,5271,5272,5273,5274,5275,5276,5277,5278,5279,5280,5281,5282,5283,5284,5285,5286,5287,5288,5289,5290,5291,5292,5293,5294,5295,5296,5297,5298,5299,5300,5301,5302,5303,5304,5305,5306,5307,5308,5309,5310,5311,5312,5313,5314,5315,5316,5317,5318,5319,5320,5321,5322,5323,5324,5325,5326,5327,5328,5329,5330,5331,5332,5333,5334,5335,5336,5337,5338,5339,5340,5341,5342,5343,5344,5345,5346,5347,5348,5349,5350,5351,5352,5353,5354,5355,5356,5357,5358,5359,5360,5361,5362,5363,5364,5365,5366,5367,5368,5369,5370,5371,5372,5373,5374,5375,5376,5377,5378,5379,5380,5381,5382,5383,5384,5385,5386,5387,5388,5389,5390,5391,5392,5393,5394,5395,5396,5397,5398,5399,5400,5401,5402,5403,5404,5405,5406,5407,5408,5409,5410,5411,5412,5413,5414,5415,5416,5417,5418,5419,5420,5421,5422,5423,5424,5425,5426,5427,5428,5429,5430,5431,5432,5433,5434,5435,5436,5437,5438,5439,5440,5441,5442,5443,5444,5445,5446,5447,5448,5449,5450,5451,5452,5453,5454,5455,5456,5457,5458,5459,5460,5461,5462,5463,5464,5465,5466,5467,5468,5469,5470,5471,5472,5473,5474,5475,5476,5477,5478,5479,5480,5481,5482,5483,5484,5485,5486,5487,5488,5489,5490,5491,5492,5493,5494,5495,5496,5497,5498,5499,5500,5501,5502,5503,5504,5505,5506,5507,5508,5509,5510,5511,5512,5513,5514,5515,5516,5517,5518,5519,5520,5521,5522,5523,5524,5525,5526,5527,5528,5529,5530,5531,5532,5533,5534,5535,5536,5537,5538,5539,5540,5541,5542,5543,5544,5545,5546,5547,5548,5549,5550,5551,5552,5553,5554,5555,5556,5557,5558,5559,5560,5561,5562,5563,5564,5565,5566,5567,5568,5569,5570,5571,5572,5573,5574,5575,5576,5577,5578,5579,5580,5581,5582,5583,5584,5585,5586,5587,5588,5589,5590,5591,5592,5593,5594,5595,5596,5597,5598,5599,5600,5601,5602,5603,5604,5605,5606,5607,5608,5609,5610,5611,5612,5613,5614,5615,5616,5617,5618,5619,5620,5621,5622,5623,5624,5625,5626,5627,5628,5629,5630,5631,5632,5633,5634,5635,5636,5637,5638,5639,5640,5641,5642,5643,5644,5645,5646,5647,5648,5649,5650,5651,5652,5653,5654,5655,5656,5657,5658,5659,5660,5661,5662,5663,5664,5665,5666,5667,5668,5669,5670,5671,5672,5673,5674,5675,5676,5677,5678,5679,5680,5681,5682,5683,5684,5685,5686,5687,5688,5689,5690,5691,5692,5693,5694,5695,5696,5697,5698,5699,5700,5701,5702,5703,5704,5705,5706,5707,5708,5709,5710,5711,5712,5713,5714,5715,5716,5717,5718,5719,5720,5721,5722,5723,5724,5725,5726,5727,5728,5729,5730,5731,5732,5733,5734,5735,5736,5737,5738,5739,5740,5741,5742,5743,5744,5745,5746,5747,5748,5749,5750,5751,5752,5753,5754,5755,5756,5757,5758,5759,5760,5761,5762,5763,5764,5765,5766,5767,5768,5769,5770,5771,5772,5773,5774,5775,5776,5777,5778,5779,5780,5781,5782,5783,5784,5785,5786,5787,5788,5789,5790,5791,5792,5793,5794,5795,5796,5797,5798,5799,5800,5801,5802,5803,5804,5805,5806,5807,5808,5809,5810,5811,5812,5813,5814,5815,5816,5817,5818,5819,5820,5821,5822,5823,5824,5825,5826,5827,5828,5829,5830,5831,5832,5833,5834,5835,5836,5837,5838,5839,5840,5841,5842,5843,5844,5845,5846,5847,5848,5849,5850,5851,5852,5853,5854,5855,5856,5857,5858,5859,5860,5861,5862,5863,5864,5865,5866,5867,5868,5869,5870,5871,5872,5873,5874,5875,5876,5877,5878,5879,5880,5881,5882,5883,5884,5885,5886,5887,5888,5889,5890,5891,5892,5893,5894,5895,5896,5897,5898,5899,5900,5901,5902,5903,5904,5905,5906,5907,5908,5909,5910,5911,5912,5913,5914,5915,5916,5917,5918,5919,5920,5921,5922,5923,5924,5925,5926,5927,5928,5929,5930,5931,5932,5933,5934,5935,5936,5937,5938,5939,5940,5941,5942,5943,5944,5945,5946,5947,5948,5949,5950,5951,5952,5953,5954,5955,5956,5957,5958,5959,5960,5961,5962,5963,5964,5965,5966,5967,5968,5969,5970,5971,5972,5973,5974,5975,5976,5977,5978,5979,5980,5981,5982,5983,5984,5985,5986,5987,5988,5989,5990,5991,5992,5993,5994,5995,5996,5997,5998,5999,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,6011,6012,6013,6014,6015,6016,6017,6018,6019,6020,6021,6022,6023,6024,6025,6026,6027,6028,6029,6030,6031,6032,6033,6034,6035,6036,6037,6038,6039,6040,6041,6042,6043,6044,6045,6046,6047,6048,6049,6050,6051,6052,6053,6054,6055,6056,6057,6058,6059,6060,6061,6062,6063,6064,6065,6066,6067,6068,6069,6070,6071,6072,6073,6074,6075,6076,6077,6078,6079,6080,6081,6082,6083,6084,6085,6086,6087,6088,6089,6090,6091,6092,6093,6094,6095,6096,6097,6098,6099,6100,6101,6102,6103,6104,6105,6106,6107,6108,6109,6110,6111,6112,6113,6114,6115,6116,6117,6118,6119,6120,6121,6122,6123,6124,6125,6126,6127,6128,6129,6130,6131,6132,6133,6134,6135,6136,6137,6138,6139,6140,6141,6142,6143,6144,6145,6146,6147,6148,6149,6150,6151,6152,6153,6154,6155,6156,6157,6158,6159,6160,6161,6162,6163,6164,6165,6166,6167,6168,6169,6170,6171,6172,6173,6174,6175,6176,6177,6178,6179,6180,6181,6182,6183,6184,6185,6186,6187,6188,6189,6190,6191,6192,6193,6194,6195,6196,6197,6198,6199,6200,6201,6202,6203,6204,6205,6206,6207,6208,6209,6210,6211,6212,6213,6214,6215,6216,6217,6218,6219,6220,6221,6222,6223,6224,6225,6226,6227,6228,6229,6230,6231,6232,6233,6234,6235,6236,6237,6238,6239,6240,6241,6242,6243,6244,6245,6246,6247,6248,6249,6250,6251,6252,6253,6254,6255,6256,6257,6258,6259,6260,6261,6262,6263,6264,6265,6266,6267,6268,6269,6270,6271,6272,6273,6274,6275,6276,6277,6278,6279,6280,6281,6282,6283,6284,6285,6286,6287,6288,6289,6290,6291,6292,6293,6294,6295,6296,6297,6298,6299,6300,6301,6302,6303,6304,6305,6306,6307,6308,6309,6310,6311,6312,6313,6314,6315,6316,6317,6318,6319,6320,6321,6322,6323,6324,6325,6326,6327,6328,6329,6330,6331,6332,6333,6334,6335,6336,6337,6338,6339,6340,6341,6342,6343,6344,6345,6346,6347,6348,6349,6350,6351,6352,6353,6354,6355,6356,6357,6358,6359,6360,6361,6362,6363,6364,6365,6366,6367,6368,6369,6370,6371,6372,6373,6374,6375,6376,6377,6378,6379,6380,6381,6382,6383,6384,6385,6386,6387,6388,6389,6390,6391,6392,6393,6394,6395,6396,6397,6398,6399,6400,6401,6402,6403,6404,6405,6406,6407,6408,6409,6410,6411,6412,6413,6414,6415,6416,6417,6418,6419,6420,6421,6422,6423,6424,6425,6426,6427,6428,6429,6430,6431,6432,6433,6434,6435,6436,6437,6438,6439,6440,6441,6442,6443,6444,6445,6446,6447,6448,6449,6450,6451,6452,6453,6454,6455,6456,6457,6458,6459,6460,6461,6462,6463,6464,6465,6466,6467,6468,6469,6470,6471,6472,6473,6474,6475,6476,6477,6478,6479,6480,6481,6482,6483,6484,6485,6486,6487,6488,6489,6490,6491,6492,6493,6494,6495,6496,6497,6498,6499,6500,6501,6502,6503,6504,6505,6506,6507,6508,6509,6510,6511,6512,6513,6514,6515,6516,6517,6518,6519,6520,6521,6522,6523,6524,6525,6526,6527,6528,6529,6530,6531,6532,6533,6534,6535,6536,6537,6538,6539,6540,6541,6542,6543,6544,6545,6546,6547,6548,6549,6550,6551,6552,6553,6554,6555,6556,6557,6558,6559,6560,6561,6562,6563,6564,6565,6566,6567,6568,6569,6570,6571,6572,6573,6574,6575,6576,6577,6578,6579,6580,6581,6582,6583,6584,6585,6586,6587,6588,6589,6590,6591,6592,6593,6594,6595,6596,6597,6598,6599,6600,6601,6602,6603,6604,6605,6606,6607,6608,6609,6610,6611,6612,6613,6614,6615,6616,6617,6618,6619,6620,6621,6622,6623,6624,6625,6626,6627,6628,6629,6630,6631,6632,6633,6634,6635,6636,6637,6638,6639,6640,6641,6642,6643,6644,6645,6646,6647,6648,6649,6650,6651,6652,6653,6654,6655,6656,6657,6658,6659,6660,6661,6662,6663,6664,6665,6666,6667,6668,6669,6670,6671,6672,6673,6674,6675,6676,6677,6678,6679,6680,6681,6682,6683,6684,6685,6686,6687,6688,6689,6690,6691,6692,6693,6694,6695,6696,6697,6698,6699,6700,6701,6702,6703,6704,6705,6706,6707,6708,6709,6710,6711,6712,6713,6714,6715,6716,6717,6718,6719,6720,6721,6722,6723,6724,6725,6726,6727,6728,6729,6730,6731,6732,6733,6734,6735,6736,6737,6738,6739,6740,6741,6742,6743,6744,6745,6746,6747,6748,6749,6750,6751,6752,6753,6754,6755,6756,6757,6758,6759,6760,6761,6762,6763,6764,6765,6766,6767,6768,6769,6770,6771,6772,6773,6774,6775,6776,6777,6778,6779,6780,6781,6782,6783,6784,6785,6786,6787,6788,6789,6790,6791,6792,6793,6794,6795,6796,6797,6798,6799,6800,6801,6802,6803,6804,6805,6806,6807,6808,6809,6810,6811,6812,6813,6814,6815,6816,6817,6818,6819,6820,6821,6822,6823,6824,6825,6826,6827,6828,6829,6830,6831,6832,6833,6834,6835,6836,6837,6838,6839,6840,6841,6842,6843,6844,6845,6846,6847,6848,6849,6850,6851,6852,6853,6854,6855,6856,6857,6858,6859,6860,6861,6862,6863,6864,6865,6866,6867,6868,6869,6870,6871,6872,6873,6874,6875,6876,6877,6878,6879,6880,6881,6882,6883,6884,6885,6886,6887,6888,6889,6890,6891,6892,6893,6894,6895,6896,6897,6898,6899,6900,6901,6902,6903,6904,6905,6906,6907,6908,6909,6910,6911,6912,6913,6914,6915,6916,6917,6918,6919,6920,6921,6922,6923,6924,6925,6926,6927,6928,6929,6930,6931,6932,6933,6934,6935,6936,6937,6938,6939,6940,6941,6942,6943,6944,6945,6946,6947,6948,6949,6950,6951,6952,6953,6954,6955,6956,6957,6958,6959,6960,6961,6962,6963,6964,6965,6966,6967,6968,6969,6970,6971,6972,6973,6974,6975,6976,6977,6978,6979,6980,6981,6982,6983,6984,6985,6986,6987,6988,6989,6990,6991,6992,6993,6994,6995,6996,6997,6998,6999,7000,7001,7002,7003,7004,7005,7006,7007,7008,7009,7010,7011,7012,7013,7014,7015,7016,7017,7018,7019,7020,7021,7022,7023,7024,7025,7026,7027,7028,7029,7030,7031,7032,7033,7034,7035,7036,7037,7038,7039,7040,7041,7042,7043,7044,7045,7046,7047,7048,7049,7050,7051,7052,7053,7054,7055,7056,7057,7058,7059,7060,7061,7062,7063,7064,7065,7066,7067,7068,7069,7070,7071,7072,7073,7074,7075,7076,7077,7078,7079,7080,7081,7082,7083,7084,7085,7086,7087,7088,7089,7090,7091,7092,7093,7094,7095,7096,7097,7098,7099,7100,7101,7102,7103,7104,7105,7106,7107,7108,7109,7110,7111,7112,7113,7114,7115,7116,7117,7118,7119,7120,7121,7122,7123,7124,7125,7126,7127,7128,7129,7130,7131,7132,7133,7134,7135,7136,7137,7138,7139,7140,7141,7142,7143,7144,7145,7146,7147,7148,7149,7150,7151,7152,7153,7154,7155,7156,7157,7158,7159,7160,7161,7162,7163,7164,7165,7166,7167,7168,7169,7170,7171,7172,7173,7174,7175,7176,7177,7178,7179,7180,7181,7182,7183,7184,7185,7186,7187,7188,7189,7190,7191,7192,7193,7194,7195,7196,7197,7198,7199,7200,7201,7202,7203,7204,7205,7206,7207,7208,7209,7210,7211,7212,7213,7214,7215,7216,7217,7218,7219,7220,7221,7222,7223,7224,7225,7226,7227,7228,7229,7230,7231,7232,7233,7234,7235,7236,7237,7238,7239,7240,7241,7242,7243,7244,7245,7246,7247,7248,7249,7250,7251,7252,7253,7254,7255,7256,7257,7258,7259,7260,7261,7262,7263,7264,7265,7266,7267,7268,7269,7270,7271,7272,7273,7274,7275,7276,7277,7278,7279,7280,7281,7282,7283,7284,7285,7286,7287,7288,7289,7290,7291,7292,7293,7294,7295,7296,7297,7298,7299,7300,7301,7302,7303,7304,7305,7306,7307,7308,7309,7310,7311,7312,7313,7314,7315,7316,7317,7318,7319,7320,7321,7322,7323,7324,7325,7326,7327,7328,7329,7330,7331,7332,7333,7334,7335,7336,7337,7338,7339,7340,7341,7342,7343,7344,7345,7346,7347,7348,7349,7350,7351,7352,7353,7354,7355,7356,7357,7358,7359,7360,7361,7362,7363,7364,7365,7366,7367,7368,7369,7370,7371,7372,7373,7374,7375,7376,7377,7378,7379,7380,7381,7382,7383,7384,7385,7386,7387,7388,7389,7390,7391,7392,7393,7394,7395,7396,7397,7398,7399,7400,7401,7402,7403,7404,7405,7406,7407,7408,7409,7410,7411,7412,7413,7414,7415,7416,7417,7418,7419,7420,7421,7422,7423,7424,7425,7426,7427,7428,7429,7430,7431,7432,7433,7434,7435,7436,7437,7438,7439,7440,7441,7442,7443,7444,7445,7446,7447,7448,7449,7450,7451,7452,7453,7454,7455,7456,7457,7458,7459,7460,7461,7462,7463,7464,7465,7466,7467,7468,7469,7470,7471,7472,7473,7474,7475,7476,7477,7478,7479,7480,7481,7482,7483,7484,7485,7486,7487,7488,7489,7490,7491,7492,7493,7494,7495,7496,7497,7498,7499,7500,7501,7502,7503,7504,7505,7506,7507,7508,7509,7510,7511,7512,7513,7514,7515,7516,7517,7518,7519,7520,7521,7522,7523,7524,7525,7526,7527,7528,7529,7530,7531,7532,7533,7534,7535,7536,7537,7538,7539,7540,7541,7542,7543,7544,7545,7546,7547,7548,7549,7550,7551,7552,7553,7554,7555,7556,7557,7558,7559,7560,7561,7562,7563,7564,7565,7566,7567,7568,7569,7570,7571,7572,7573,7574,7575,7576,7577,7578,7579,7580,7581,7582,7583,7584,7585,7586,7587,7588,7589,7590,7591,7592,7593,7594,7595,7596,7597,7598,7599,7600,7601,7602,7603,7604,7605,7606,7607,7608,7609,7610,7611,7612,7613,7614,7615,7616,7617,7618,7619,7620,7621,7622,7623,7624,7625,7626,7627,7628,7629,7630,7631,7632,7633,7634,7635,7636,7637,7638,7639,7640,7641,7642,7643,7644,7645,7646,7647,7648,7649,7650,7651,7652,7653,7654,7655,7656,7657,7658,7659,7660,7661,7662,7663,7664,7665,7666,7667,7668,7669,7670,7671,7672,7673,7674,7675,7676,7677,7678,7679,7680,7681,7682,7683,7684,7685,7686,7687,7688,7689,7690,7691,7692,7693,7694,7695,7696,7697,7698,7699,7700,7701,7702,7703,7704,7705,7706,7707,7708,7709,7710,7711,7712,7713,7714,7715,7716,7717,7718,7719,7720,7721,7722,7723,7724,7725,7726,7727,7728,7729,7730,7731,7732,7733,7734,7735,7736,7737,7738,7739,7740,7741,7742,7743,7744,7745,7746,7747,7748,7749,7750,7751,7752,7753,7754,7755,7756,7757,7758,7759,7760,7761,7762,7763,7764,7765,7766,7767,7768,7769,7770,7771,7772,7773,7774,7775,7776,7777,7778,7779,7780,7781,7782,7783,7784,7785,7786,7787,7788,7789,7790,7791,7792,7793,7794,7795,7796,7797,7798,7799,7800,7801,7802,7803,7804,7805,7806,7807,7808,7809,7810,7811,7812,7813,7814,7815,7816,7817,7818,7819,7820,7821,7822,7823,7824,7825,7826,7827,7828,7829,7830,7831,7832,7833,7834,7835,7836,7837,7838,7839,7840,7841,7842,7843,7844,7845,7846,7847,7848,7849,7850,7851,7852,7853,7854,7855,7856,7857,7858,7859,7860,7861,7862,7863,7864,7865,7866,7867,7868,7869,7870,7871,7872,7873,7874,7875,7876,7877,7878,7879,7880,7881,7882,7883,7884,7885,7886,7887,7888,7889,7890,7891,7892,7893,7894,7895,7896,7897,7898,7899,7900,7901,7902,7903,7904,7905,7906,7907,7908,7909,7910,7911,7912,7913,7914,7915,7916,7917,7918,7919,7920,7921,7922,7923,7924,7925,7926,7927,7928,7929,7930,7931,7932,7933,7934,7935,7936,7937,7938,7939,7940,7941,7942,7943,7944,7945,7946,7947,7948,7949,7950,7951,7952,7953,7954,7955,7956,7957,7958,7959,7960,7961,7962,7963,7964,7965,7966,7967,7968,7969,7970,7971,7972,7973,7974,7975,7976,7977,7978,7979,7980,7981,7982,7983,7984,7985,7986,7987,7988,7989,7990,7991,7992,7993,7994,7995,7996,7997,7998,7999,8000,8001,8002,8003,8004,8005,8006,8007,8008,8009,8010,8011,8012,8013,8014,8015,8016,8017,8018,8019,8020,8021,8022,8023,8024,8025,8026,8027,8028,8029,8030,8031,8032,8033,8034,8035,8036,8037,8038,8039,8040,8041,8042,8043,8044,8045,8046,8047,8048,8049,8050,8051,8052,8053,8054,8055,8056,8057,8058,8059,8060,8061,8062,8063,8064,8065,8066,8067,8068,8069,8070,8071,8072,8073,8074,8075,8076,8077,8078,8079,8080,8081,8082,8083,8084,8085,8086,8087,8088,8089,8090,8091,8092,8093,8094,8095,8096,8097,8098,8099,8100,8101,8102,8103,8104,8105,8106,8107,8108,8109,8110,8111,8112,8113,8114,8115,8116,8117,8118,8119,8120,8121,8122,8123,8124,8125,8126,8127,8128,8129,8130,8131,8132,8133,8134,8135,8136,8137,8138,8139,8140,8141,8142,8143,8144,8145,8146,8147,8148,8149,8150,8151,8152,8153,8154,8155,8156,8157,8158,8159,8160,8161,8162,8163,8164,8165,8166,8167,8168,8169,8170,8171,8172,8173,8174,8175,8176,8177,8178,8179,8180,8181,8182,8183,8184,8185,8186,8187,8188,8189,8190,8191,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8203,8204,8205,8206,8207,8208,8209,8210,8211,8212,8213,8214,8215,8216,8217,8218,8219,8220,8221,8222,8223,8224,8225,8226,8227,8228,8229,8230,8231,8232,8233,8234,8235,8236,8237,8238,8239,8240,8241,8242,8243,8244,8245,8246,8247,8248,8249,8250,8251,8252,8253,8254,8255,8256,8257,8258,8259,8260,8261,8262,8263,8264,8265,8266,8267,8268,8269,8270,8271,8272,8273,8274,8275,8276,8277,8278,8279,8280,8281,8282,8283,8284,8285,8286,8287,8288,8289,8290,8291,8292,8293,8294,8295,8296,8297,8298,8299,8300,8301,8302,8303,8304,8305,8306,8307,8308,8309,8310,8311,8312,8313,8314,8315,8316,8317,8318,8319,8320,8321,8322,8323,8324,8325,8326,8327,8328,8329,8330,8331,8332,8333,8334,8335,8336,8337,8338,8339,8340,8341,8342,8343,8344,8345,8346,8347,8348,8349,8350,8351,8352,8353,8354,8355,8356,8357,8358,8359,8360,8361,8362,8363,8364,8365,8366,8367,8368,8369,8370,8371,8372,8373,8374,8375,8376,8377,8378,8379,8380,8381,8382,8383,8384,8385,8386,8387,8388,8389,8390,8391,8392,8393,8394,8395,8396,8397,8398,8399,8400,8401,8402,8403,8404,8405,8406,8407,8408,8409,8410,8411,8412,8413,8414,8415,8416,8417,8418,8419,8420,8421,8422,8423,8424,8425,8426,8427,8428,8429,8430,8431,8432,8433,8434,8435,8436,8437,8438,8439,8440,8441,8442,8443,8444,8445,8446,8447,8448,8449,8450,8451,8452,8453,8454,8455,8456,8457,8458,8459,8460,8461,8462,8463,8464,8465,8466,8467,8468,8469,8470,8471,8472,8473,8474,8475,8476,8477,8478,8479,8480,8481,8482,8483,8484,8485,8486,8487,8488,8489,8490,8491,8492,8493,8494,8495,8496,8497,8498,8499,8500,8501,8502,8503,8504,8505,8506,8507,8508,8509,8510,8511,8512,8513,8514,8515,8516,8517,8518,8519,8520,8521,8522,8523,8524,8525,8526,8527,8528,8529,8530,8531,8532,8533,8534,8535,8536,8537,8538,8539,8540,8541,8542,8543,8544,8545,8546,8547,8548,8549,8550,8551,8552,8553,8554,8555,8556,8557,8558,8559,8560,8561,8562,8563,8564,8565,8566,8567,8568,8569,8570,8571,8572,8573,8574,8575,8576,8577,8578,8579,8580,8581,8582,8583,8584,8585,8586,8587,8588,8589,8590,8591,8592,8593,8594,8595,8596,8597,8598,8599,8600,8601,8602,8603,8604,8605,8606,8607,8608,8609,8610,8611,8612,8613,8614,8615,8616,8617,8618,8619,8620,8621,8622,8623,8624,8625,8626,8627,8628,8629,8630,8631,8632,8633,8634,8635,8636,8637,8638,8639,8640,8641,8642,8643,8644,8645,8646,8647,8648,8649,8650,8651,8652,8653,8654,8655,8656,8657,8658,8659,8660,8661,8662,8663,8664,8665,8666,8667,8668,8669,8670,8671,8672,8673,8674,8675,8676,8677,8678,8679,8680,8681,8682,8683,8684,8685,8686,8687,8688,8689,8690,8691,8692,8693,8694,8695,8696,8697,8698,8699,8700,8701,8702,8703,8704,8705,8706,8707,8708,8709,8710,8711,8712,8713,8714,8715,8716,8717,8718,8719,8720,8721,8722,8723,8724,8725,8726,8727,8728,8729,8730,8731,8732,8733,8734,8735,8736,8737,8738,8739,8740,8741,8742,8743,8744,8745,8746,8747,8748,8749,8750,8751,8752,8753,8754,8755,8756,8757,8758,8759,8760,8761,8762,8763,8764,8765,8766,8767,8768,8769,8770,8771,8772,8773,8774,8775,8776,8777,8778,8779,8780,8781,8782,8783,8784,8785,8786,8787,8788,8789,8790,8791,8792,8793,8794,8795,8796,8797,8798,8799,8800,8801,8802,8803,8804,8805,8806,8807,8808,8809,8810,8811,8812,8813,8814,8815,8816,8817,8818,8819,8820,8821,8822,8823,8824,8825,8826,8827,8828,8829,8830,8831,8832,8833,8834,8835,8836,8837,8838,8839,8840,8841,8842,8843,8844,8845,8846,8847,8848,8849,8850,8851,8852,8853,8854,8855,8856,8857,8858,8859,8860,8861,8862,8863,8864,8865,8866,8867,8868,8869,8870,8871,8872,8873,8874,8875,8876,8877,8878,8879,8880,8881,8882,8883,8884,8885,8886,8887,8888,8889,8890,8891,8892,8893,8894,8895,8896,8897,8898,8899,8900,8901,8902,8903,8904,8905,8906,8907,8908,8909,8910,8911,8912,8913,8914,8915,8916,8917,8918,8919,8920,8921,8922,8923,8924,8925,8926,8927,8928,8929,8930,8931,8932,8933,8934,8935,8936,8937,8938,8939,8940,8941,8942,8943,8944,8945,8946,8947,8948,8949,8950,8951,8952,8953,8954,8955,8956,8957,8958,8959,8960,8961,8962,8963,8964,8965,8966,8967,8968,8969,8970,8971,8972,8973,8974,8975,8976,8977,8978,8979,8980,8981,8982,8983,8984,8985,8986,8987,8988,8989,8990,8991,8992,8993,8994,8995,8996,8997,8998,8999,9000,9001,9002,9003,9004,9005,9006,9007,9008,9009,9010,9011,9012,9013,9014,9015,9016,9017,9018,9019,9020,9021,9022,9023,9024,9025,9026,9027,9028,9029,9030,9031,9032,9033,9034,9035,9036,9037,9038,9039,9040,9041,9042,9043,9044,9045,9046,9047,9048,9049,9050,9051,9052,9053,9054,9055,9056,9057,9058,9059,9060,9061,9062,9063,9064,9065,9066,9067,9068,9069,9070,9071,9072,9073,9074,9075,9076,9077,9078,9079,9080,9081,9082,9083,9084,9085,9086,9087,9088,9089,9090,9091,9092,9093,9094,9095,9096,9097,9098,9099,9100,9101,9102,9103,9104,9105,9106,9107,9108,9109,9110,9111,9112,9113,9114,9115,9116,9117,9118,9119,9120,9121,9122,9123,9124,9125,9126,9127,9128,9129,9130,9131,9132,9133,9134,9135,9136,9137,9138,9139,9140,9141,9142,9143,9144,9145,9146,9147,9148,9149,9150,9151,9152,9153,9154,9155,9156,9157,9158,9159,9160,9161,9162,9163,9164,9165,9166,9167,9168,9169,9170,9171,9172,9173,9174,9175,9176,9177,9178,9179,9180,9181,9182,9183,9184,9185,9186,9187,9188,9189,9190,9191,9192,9193,9194,9195,9196,9197,9198,9199,9200,9201,9202,9203,9204,9205,9206,9207,9208,9209,9210,9211,9212,9213,9214,9215,9216,9217,9218,9219,9220,9221,9222,9223,9224,9225,9226,9227,9228,9229,9230,9231,9232,9233,9234,9235,9236,9237,9238,9239,9240,9241,9242,9243,9244,9245,9246,9247,9248,9249,9250,9251,9252,9253,9254,9255,9256,9257,9258,9259,9260,9261,9262,9263,9264,9265,9266,9267,9268,9269,9270,9271,9272,9273,9274,9275,9276,9277,9278,9279,9280,9281,9282,9283,9284,9285,9286,9287,9288,9289,9290,9291,9292,9293,9294,9295,9296,9297,9298,9299,9300,9301,9302,9303,9304,9305,9306,9307,9308,9309,9310,9311,9312,9313,9314,9315,9316,9317,9318,9319,9320,9321,9322,9323,9324,9325,9326,9327,9328,9329,9330,9331,9332,9333,9334,9335,9336,9337,9338,9339,9340,9341,9342,9343,9344,9345,9346,9347,9348,9349,9350,9351,9352,9353,9354,9355,9356,9357,9358,9359,9360,9361,9362,9363,9364,9365,9366,9367,9368,9369,9370,9371,9372,9373,9374,9375,9376,9377,9378,9379,9380,9381,9382,9383,9384,9385,9386,9387,9388,9389,9390,9391,9392,9393,9394,9395,9396,9397,9398,9399,9400,9401,9402,9403,9404,9405,9406,9407,9408,9409,9410,9411,9412,9413,9414,9415,9416,9417,9418,9419,9420,9421,9422,9423,9424,9425,9426,9427,9428,9429,9430,9431,9432,9433,9434,9435,9436,9437,9438,9439,9440,9441,9442,9443,9444,9445,9446,9447,9448,9449,9450,9451,9452,9453,9454,9455,9456,9457,9458,9459,9460,9461,9462,9463,9464,9465,9466,9467,9468,9469,9470,9471,9472,9473,9474,9475,9476,9477,9478,9479,9480,9481,9482,9483,9484,9485,9486,9487,9488,9489,9490,9491,9492,9493,9494,9495,9496,9497,9498,9499,9500,9501,9502,9503,9504,9505,9506,9507,9508,9509,9510,9511,9512,9513,9514,9515,9516,9517,9518,9519,9520,9521,9522,9523,9524,9525,9526,9527,9528,9529,9530,9531,9532,9533,9534,9535,9536,9537,9538,9539,9540,9541,9542,9543,9544,9545,9546,9547,9548,9549,9550,9551,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9581,9582,9583,9584,9585,9586,9587,9588,9589,9590,9591,9592,9593,9594,9595,9596,9597,9598,9599,9600,9601,9602,9603,9604,9605,9606,9607,9608,9609,9610,9611,9612,9613,9614,9615,9616,9617,9618,9619,9620,9621,9622,9623,9624,9625,9626,9627,9628,9629,9630,9631,9632,9633,9634,9635,9636,9637,9638,9639,9640,9641,9642,9643,9644,9645,9646,9647,9648,9649,9650,9651,9652,9653,9654,9655,9656,9657,9658,9659,9660,9661,9662,9663,9664,9665,9666,9667,9668,9669,9670,9671,9672,9673,9674,9675,9676,9677,9678,9679,9680,9681,9682,9683,9684,9685,9686,9687,9688,9689,9690,9691,9692,9693,9694,9695,9696,9697,9698,9699,9700,9701,9702,9703,9704,9705,9706,9707,9708,9709,9710,9711,9712,9713,9714,9715,9716,9717,9718,9719,9720,9721,9722,9723,9724,9725,9726,9727,9728,9729,9730,9731,9732,9733,9734,9735,9736,9737,9738,9739,9740,9741,9742,9743,9744,9745,9746,9747,9748,9749,9750,9751,9752,9753,9754,9755,9756,9757,9758,9759,9760,9761,9762,9763,9764,9765,9766,9767,9768,9769,9770,9771,9772,9773,9774,9775,9776,9777,9778,9779,9780,9781,9782,9783,9784,9785,9786,9787,9788,9789,9790,9791,9792,9793,9794,9795,9796,9797,9798,9799,9800,9801,9802,9803,9804,9805,9806,9807,9808,9809,9810,9811,9812,9813,9814,9815,9816,9817,9818,9819,9820,9821,9822,9823,9824,9825,9826,9827,9828,9829,9830,9831,9832,9833,9834,9835,9836,9837,9838,9839,9840,9841,9842,9843,9844,9845,9846,9847,9848,9849,9850,9851,9852,9853,9854,9855,9856,9857,9858,9859,9860,9861,9862,9863,9864,9865,9866,9867,9868,9869,9870,9871,9872,9873,9874,9875,9876,9877,9878,9879,9880,9881,9882,9883,9884,9885,9886,9887,9888,9889,9890,9891,9892,9893,9894,9895,9896,9897,9898,9899,9900,9901,9902,9903,9904,9905,9906,9907,9908,9909,9910,9911,9912,9913,9914,9915,9916,9917,9918,9919,9920,9921,9922,9923,9924,9925,9926,9927,9928,9929,9930,9931,9932,9933,9934,9935,9936,9937,9938,9939,9940,9941,9942,9943,9944,9945,9946,9947,9948,9949,9950,9951,9952,9953,9954,9955,9956,9957,9958,9959,9960,9961,9962,9963,9964,9965,9966,9967,9968,9969,9970,9971,9972,9973,9974,9975,9976,9977,9978,9979,9980,9981,9982,9983,9984,9985,9986,9987,9988,9989,9990,9991,9992,9993,9994,9995,9996,9997,9998,9999,10K,10.001K,10.002K,10.003K,10.004K,10.005K,10.006K,10.007K,10.008K,10.009K,10.01K,10.011K,10.012K,10.013K,10.014K,10.015K,10.016K,10.017K,10.018K,10.019K,10.02K,10.021K,10.022K,10.023K,10.024K,10.025K,10.026K,10.027K,10.028K,10.029K,10.03K,10.031K,10.032K,10.033K,10.034K,10.035K,10.036K,10.037K,10.038K,10.039K,10.04K,10.041K,10.042K,10.043K,10.044K,10.045K,10.046K,10.047K,10.048K,10.049K,10.05K,10.051K,10.052K,10.053K,10.054K,10.055K,10.056K,10.057K,10.058K,10.059K,10.06K,10.061K,10.062K,10.063K,10.064K,10.065K,10.066K,10.067K,10.068K,10.069K,10.07K,10.071K,10.072K,10.073K,10.074K,10.075K,10.076K,10.077K,10.078K,10.079K,10.08K,10.081K,10.082K,10.083K,10.084K,10.085K,10.086K,10.087K,10.088K,10.089K,10.09K,10.091K,10.092K,10.093K,10.094K,10.095K,10.096K,10.097K,10.098K,10.099K,10.1K,10.101K,10.102K,10.103K,10.104K,10.105K,10.106K,10.107K,10.108K,10.109K,10.11K,10.111K,10.112K,10.113K,10.114K,10.115K,10.116K,10.117K,10.118K,10.119K,10.12K,10.121K,10.122K,10.123K,10.124K,10.125K,10.126K,10.127K,10.128K,10.129K,10.13K,10.131K,10.132K,10.133K,10.134K,10.135K,10.136K,10.137K,10.138K,10.139K,10.14K,10.141K,10.142K,10.143K,10.144K,10.145K,10.146K,10.147K,10.148K,10.149K,10.15K,10.151K,10.152K,10.153K,10.154K,10.155K,10.156K,10.157K,10.158K,10.159K,10.16K,10.161K,10.162K,10.163K,10.164K,10.165K,10.166K,10.167K,10.168K,10.169K,10.17K,10.171K,10.172K,10.173K,10.174K,10.175K,10.176K,10.177K,10.178K,10.179K,10.18K,10.181K,10.182K,10.183K,10.184K,10.185K,10.186K,10.187K,10.188K,10.189K,10.19K,10.191K,10.192K,10.193K,10.194K,10.195K,10.196K,10.197K,10.198K,10.199K,10.2K,10.201K,10.202K,10.203K,10.204K,10.205K,10.206K,10.207K,10.208K,10.209K,10.21K,10.211K,10.212K,10.213K,10.214K,10.215K,10.216K,10.217K,10.218K,10.219K,10.22K,10.221K,10.222K,10.223K,10.224K,10.225K,10.226K,10.227K,10.228K,10.229K,10.23K,10.231K,10.232K,10.233K,10.234K,10.235K,10.236K,10.237K,10.238K,10.239K,10.24K,10.241K,10.242K,10.243K,10.244K,10.245K,10.246K,10.247K,10.248K,10.249K,10.25K,10.251K,10.252K,10.253K,10.254K,10.255K,10.256K,10.257K,10.258K,10.259K,10.26K,10.261K,10.262K,10.263K,10.264K,10.265K,10.266K,10.267K,10.268K,10.269K,10.27K,10.271K,10.272K,10.273K,10.274K,10.275K,10.276K,10.277K,10.278K,10.279K,10.28K,10.281K,10.282K,10.283K,10.284K,10.285K,10.286K,10.287K,10.288K,10.289K,10.29K,10.291K,10.292K,10.293K,10.294K,10.295K,10.296K,10.297K,10.298K,10.299K,10.3K,10.301K,10.302K,10.303K,10.304K,10.305K,10.306K,10.307K,10.308K,10.309K,10.31K,10.311K,10.312K,10.313K,10.314K,10.315K,10.316K,10.317K,10.318K,10.319K,10.32K,10.321K,10.322K,10.323K,10.324K,10.325K,10.326K,10.327K,10.328K,10.329K,10.33K,10.331K,10.332K,10.333K,10.334K,10.335K,10.336K,10.337K,10.338K,10.339K,10.34K,10.341K,10.342K,10.343K,10.344K,10.345K,10.346K,10.347K,10.348K,10.349K,10.35K,10.351K,10.352K,10.353K,10.354K,10.355K,10.356K,10.357K,10.358K,10.359K,10.36K,10.361K,10.362K,10.363K,10.364K,10.365K,10.366K,10.367K,10.368K,10.369K,10.37K,10.371K,10.372K,10.373K,10.374K,10.375K,10.376K,10.377K,10.378K,10.379K,10.38K,10.381K,10.382K,10.383K,10.384K,10.385K,10.386K,10.387K,10.388K,10.389K,10.39K,10.391K,10.392K,10.393K,10.394K,10.395K,10.396K,10.397K,10.398K,10.399K,10.4K,10.401K,10.402K,10.403K,10.404K,10.405K,10.406K,10.407K,10.408K,10.409K,10.41K,10.411K,10.412K,10.413K,10.414K,10.415K,10.416K,10.417K,10.418K,10.419K,10.42K,10.421K,10.422K,10.423K,10.424K,10.425K,10.426K,10.427K,10.428K,10.429K,10.43K,10.431K,10.432K,10.433K,10.434K,10.435K,10.436K,10.437K,10.438K,10.439K,10.44K,10.441K,10.442K,10.443K,10.444K,10.445K,10.446K,10.447K,10.448K,10.449K,10.45K,10.451K,10.452K,10.453K,10.454K,10.455K,10.456K,10.457K,10.458K,10.459K,10.46K,10.461K,10.462K,10.463K,10.464K,10.465K,10.466K,10.467K,10.468K,10.469K,10.47K,10.471K,10.472K,10.473K,10.474K,10.475K,10.476K,10.477K,10.478K,10.479K,10.48K,10.481K,10.482K,10.483K,10.484K,10.485K,10.486K,10.487K,10.488K,10.489K,10.49K,10.491K,10.492K,10.493K,10.494K,10.495K,10.496K,10.497K,10.498K,10.499K,10.5K,10.501K,10.502K,10.503K,10.504K,10.505K,10.506K,10.507K,10.508K,10.509K,10.51K,10.511K,10.512K,10.513K,10.514K,10.515K,10.516K,10.517K,10.518K,10.519K,10.52K,10.521K,10.522K,10.523K,10.524K,10.525K,10.526K,10.527K,10.528K,10.529K,10.53K,10.531K,10.532K,10.533K,10.534K,10.535K,10.536K,10.537K,10.538K,10.539K,10.54K,10.541K,10.542K,10.543K,10.544K,10.545K,10.546K,10.547K,10.548K,10.549K,10.55K,10.551K,10.552K,10.553K,10.554K,10.555K,10.556K,10.557K,10.558K,10.559K,10.56K,10.561K,10.562K,10.563K,10.564K,10.565K,10.566K,10.567K,10.568K,10.569K,10.57K,10.571K,10.572K,10.573K,10.574K,10.575K,10.576K,10.577K,10.578K,10.579K,10.58K,10.581K,10.582K,10.583K,10.584K,10.585K,10.586K,10.587K,10.588K,10.589K,10.59K,10.591K,10.592K,10.593K,10.594K,10.595K,10.596K,10.597K,10.598K,10.599K,10.6K,10.601K,10.602K,10.603K,10.604K,10.605K,10.606K,10.607K,10.608K,10.609K,10.61K,10.611K,10.612K,10.613K,10.614K,10.615K,10.616K,10.617K,10.618K,10.619K,10.62K,10.621K,10.622K,10.623K,10.624K,10.625K,10.626K,10.627K,10.628K,10.629K,10.63K,10.631K,10.632K,10.633K,10.634K,10.635K,10.636K,10.637K,10.638K,10.639K,10.64K,10.641K,10.642K,10.643K,10.644K,10.645K,10.646K,10.647K,10.648K,10.649K,10.65K,10.651K,10.652K,10.653K,10.654K,10.655K,10.656K,10.657K,10.658K,10.659K,10.66K,10.661K,10.662K,10.663K,10.664K,10.665K,10.666K,10.667K,10.668K,10.669K,10.67K,10.671K,10.672K,10.673K,10.674K,10.675K,10.676K,10.677K,10.678K,10.679K,10.68K,10.681K,10.682K,10.683K,10.684K,10.685K,10.686K,10.687K,10.688K,10.689K,10.69K,10.691K,10.692K,10.693K,10.694K,10.695K,10.696K,10.697K,10.698K,10.699K,10.7K,10.701K,10.702K,10.703K,10.704K,10.705K,10.706K,10.707K,10.708K,10.709K,10.71K,10.711K,10.712K,10.713K,10.714K,10.715K,10.716K,10.717K,10.718K,10.719K,10.72K,10.721K,10.722K,10.723K,10.724K,10.725K,10.726K,10.727K,10.728K,10.729K,10.73K,10.731K,10.732K,10.733K,10.734K,10.735K,10.736K,10.737K,10.738K,10.739K,10.74K,10.741K,10.742K,10.743K,10.744K,10.745K,10.746K,10.747K,10.748K,10.749K,10.75K,10.751K,10.752K,10.753K,10.754K,10.755K,10.756K,10.757K,10.758K,10.759K,10.76K,10.761K,10.762K,10.763K,10.764K,10.765K,10.766K,10.767K,10.768K,10.769K,10.77K,10.771K,10.772K,10.773K,10.774K,10.775K,10.776K,10.777K,10.778K,10.779K,10.78K,10.781K,10.782K,10.783K,10.784K,10.785K,10.786K,10.787K,10.788K,10.789K,10.79K,10.791K,10.792K,10.793K,10.794K,10.795K,10.796K,10.797K,10.798K,10.799K,10.8K,10.801K,10.802K,10.803K,10.804K,10.805K,10.806K,10.807K,10.808K,10.809K,10.81K,10.811K,10.812K,10.813K,10.814K,10.815K,10.816K,10.817K,10.818K,10.819K,10.82K,10.821K,10.822K,10.823K,10.824K,10.825K,10.826K,10.827K,10.828K,10.829K,10.83K,10.831K,10.832K,10.833K,10.834K,10.835K,10.836K,10.837K,10.838K,10.839K,10.84K,10.841K,10.842K,10.843K,10.844K,10.845K,10.846K,10.847K,10.848K,10.849K,10.85K,10.851K,10.852K,10.853K,10.854K,10.855K,10.856K,10.857K,10.858K,10.859K,10.86K,10.861K,10.862K,10.863K,10.864K,10.865K,10.866K,10.867K,10.868K,10.869K,10.87K,10.871K,10.872K,10.873K,10.874K,10.875K,10.876K,10.877K,10.878K,10.879K,10.88K,10.881K,10.882K,10.883K,10.884K,10.885K,10.886K,10.887K,10.888K,10.889K,10.89K,10.891K,10.892K,10.893K,10.894K,10.895K,10.896K,10.897K,10.898K,10.899K,10.9K,10.901K,10.902K,10.903K,10.904K,10.905K,10.906K,10.907K,10.908K,10.909K,10.91K,10.911K,10.912K,10.913K,10.914K,10.915K,10.916K,10.917K,10.918K,10.919K,10.92K,10.921K,10.922K,10.923K,10.924K,10.925K,10.926K,10.927K,10.928K,10.929K,10.93K,10.931K,10.932K,10.933K,10.934K,10.935K,10.936K,10.937K,10.938K,10.939K,10.94K,10.941K,10.942K,10.943K,10.944K,10.945K,10.946K,10.947K,10.948K,10.949K,10.95K,10.951K,10.952K,10.953K,10.954K,10.955K,10.956K,10.957K,10.958K,10.959K,10.96K,10.961K,10.962K,10.963K,10.964K,10.965K,10.966K,10.967K,10.968K,10.969K,10.97K,10.971K,10.972K,10.973K,10.974K,10.975K,10.976K,10.977K,10.978K,10.979K,10.98K,10.981K,10.982K,10.983K,10.984K,10.985K,10.986K,10.987K,10.988K,10.989K,10.99K,10.991K,10.992K,10.993K,10.994K,10.995K,10.996K,10.997K,10.998K,10.999K,11K,11.001K,11.002K,11.003K,11.004K,11.005K,11.006K,11.007K,11.008K,11.009K,11.01K,11.011K,11.012K,11.013K,11.014K,11.015K,11.016K,11.017K,11.018K,11.019K,11.02K,11.021K,11.022K,11.023K,11.024K,11.025K,11.026K,11.027K,11.028K,11.029K,11.03K,11.031K,11.032K,11.033K,11.034K,11.035K,11.036K,11.037K,11.038K,11.039K,11.04K,11.041K,11.042K,11.043K,11.044K,11.045K,11.046K,11.047K,11.048K,11.049K,11.05K,11.051K,11.052K,11.053K,11.054K,11.055K,11.056K,11.057K,11.058K,11.059K,11.06K,11.061K,11.062K,11.063K,11.064K,11.065K,11.066K,11.067K,11.068K,11.069K,11.07K,11.071K,11.072K,11.073K,11.074K,11.075K,11.076K,11.077K,11.078K,11.079K,11.08K,11.081K,11.082K,11.083K,11.084K,11.085K,11.086K,11.087K,11.088K,11.089K,11.09K,11.091K,11.092K,11.093K,11.094K,11.095K,11.096K,11.097K,11.098K,11.099K,11.1K,11.101K,11.102K,11.103K,11.104K,11.105K,11.106K,11.107K,11.108K,11.109K,11.11K,11.111K,11.112K,11.113K,11.114K,11.115K,11.116K,11.117K,11.118K,11.119K,11.12K,11.121K,11.122K,11.123K,11.124K,11.125K,11.126K,11.127K,11.128K,11.129K,11.13K,11.131K,11.132K,11.133K,11.134K,11.135K,11.136K,11.137K,11.138K,11.139K,11.14K,11.141K,11.142K,11.143K,11.144K,11.145K,11.146K,11.147K,11.148K,11.149K,11.15K,11.151K,11.152K,11.153K,11.154K,11.155K,11.156K,11.157K,11.158K,11.159K,11.16K,11.161K,11.162K,11.163K,11.164K,11.165K,11.166K,11.167K,11.168K,11.169K,11.17K,11.171K,11.172K,11.173K,11.174K,11.175K,11.176K,11.177K,11.178K,11.179K,11.18K,11.181K,11.182K,11.183K,11.184K,11.185K,11.186K,11.187K,11.188K,11.189K,11.19K,11.191K,11.192K,11.193K,11.194K,11.195K,11.196K,11.197K,11.198K,11.199K,11.2K,11.201K,11.202K,11.203K,11.204K,11.205K,11.206K,11.207K,11.208K,11.209K,11.21K,11.211K,11.212K,11.213K,11.214K,11.215K,11.216K,11.217K,11.218K,11.219K,11.22K,11.221K,11.222K,11.223K,11.224K,11.225K,11.226K,11.227K,11.228K,11.229K,11.23K,11.231K,11.232K,11.233K,11.234K,11.235K,11.236K,11.237K,11.238K,11.239K,11.24K,11.241K,11.242K,11.243K,11.244K,11.245K,11.246K,11.247K,11.248K,11.249K,11.25K,11.251K,11.252K,11.253K,11.254K,11.255K,11.256K,11.257K,11.258K,11.259K,11.26K,11.261K,11.262K,11.263K,11.264K,11.265K,11.266K,11.267K,11.268K,11.269K,11.27K,11.271K,11.272K,11.273K,11.274K,11.275K,11.276K,11.277K,11.278K,11.279K,11.28K,11.281K,11.282K,11.283K,11.284K,11.285K,11.286K,11.287K,11.288K,11.289K,11.29K,11.291K,11.292K,11.293K,11.294K,11.295K,11.296K,11.297K,11.298K,11.299K,11.3K,11.301K,11.302K,11.303K,11.304K,11.305K,11.306K,11.307K,11.308K,11.309K,11.31K,11.311K,11.312K,11.313K,11.314K,11.315K,11.316K,11.317K,11.318K,11.319K,11.32K,11.321K,11.322K,11.323K,11.324K,11.325K,11.326K,11.327K,11.328K,11.329K,11.33K,11.331K,11.332K,11.333K,11.334K,11.335K,11.336K,11.337K,11.338K,11.339K,11.34K,11.341K,11.342K,11.343K,11.344K,11.345K,11.346K,11.347K,11.348K,11.349K,11.35K,11.351K,11.352K,11.353K,11.354K,11.355K,11.356K,11.357K,11.358K,11.359K,11.36K,11.361K,11.362K,11.363K,11.364K,11.365K,11.366K,11.367K,11.368K,11.369K,11.37K,11.371K,11.372K,11.373K,11.374K,11.375K,11.376K,11.377K,11.378K,11.379K,11.38K,11.381K,11.382K,11.383K,11.384K,11.385K,11.386K,11.387K,11.388K,11.389K,11.39K,11.391K,11.392K,11.393K,11.394K,11.395K,11.396K,11.397K,11.398K,11.399K,11.4K,11.401K,11.402K,11.403K,11.404K,11.405K,11.406K,11.407K,11.408K,11.409K,11.41K,11.411K,11.412K,11.413K,11.414K,11.415K,11.416K,11.417K,11.418K,11.419K,11.42K,11.421K,11.422K,11.423K,11.424K,11.425K,11.426K,11.427K,11.428K,11.429K,11.43K,11.431K,11.432K,11.433K,11.434K,11.435K,11.436K,11.437K,11.438K,11.439K,11.44K,11.441K,11.442K,11.443K,11.444K,11.445K,11.446K,11.447K,11.448K,11.449K,11.45K,11.451K,11.452K,11.453K,11.454K,11.455K,11.456K,11.457K,11.458K,11.459K,11.46K,11.461K,11.462K,11.463K,11.464K,11.465K,11.466K,11.467K,11.468K,11.469K,11.47K,11.471K,11.472K,11.473K,11.474K,11.475K,11.476K,11.477K,11.478K,11.479K,11.48K,11.481K,11.482K,11.483K,11.484K,11.485K,11.486K,11.487K,11.488K,11.489K,11.49K,11.491K,11.492K,11.493K,11.494K,11.495K,11.496K,11.497K,11.498K,11.499K,11.5K,11.501K,11.502K,11.503K,11.504K,11.505K,11.506K,11.507K,11.508K,11.509K,11.51K,11.511K,11.512K,11.513K,11.514K,11.515K,11.516K,11.517K,11.518K,11.519K,11.52K,11.521K,11.522K,11.523K,11.524K,11.525K,11.526K,11.527K,11.528K,11.529K,11.53K,11.531K,11.532K,11.533K,11.534K,11.535K,11.536K,11.537K,11.538K,11.539K,11.54K,11.541K,11.542K,11.543K,11.544K,11.545K,11.546K,11.547K,11.548K,11.549K,11.55K,11.551K,11.552K,11.553K,11.554K,11.555K,11.556K,11.557K,11.558K,11.559K,11.56K,11.561K,11.562K,11.563K,11.564K,11.565K,11.566K,11.567K,11.568K,11.569K,11.57K,11.571K,11.572K,11.573K,11.574K,11.575K,11.576K,11.577K,11.578K,11.579K,11.58K,11.581K,11.582K,11.583K,11.584K,11.585K,11.586K,11.587K,11.588K,11.589K,11.59K,11.591K,11.592K,11.593K,11.594K,11.595K,11.596K,11.597K,11.598K,11.599K,11.6K,11.601K,11.602K,11.603K,11.604K,11.605K,11.606K,11.607K,11.608K,11.609K,11.61K,11.611K,11.612K,11.613K,11.614K,11.615K,11.616K,11.617K,11.618K,11.619K,11.62K,11.621K,11.622K,11.623K,11.624K,11.625K,11.626K,11.627K,11.628K,11.629K,11.63K,11.631K,11.632K,11.633K,11.634K,11.635K,11.636K,11.637K,11.638K,11.639K,11.64K,11.641K,11.642K,11.643K,11.644K,11.645K,11.646K,11.647K,11.648K,11.649K,11.65K,11.651K,11.652K,11.653K,11.654K,11.655K,11.656K,11.657K,11.658K,11.659K,11.66K,11.661K,11.662K,11.663K,11.664K,11.665K,11.666K,11.667K,11.668K,11.669K,11.67K,11.671K,11.672K,11.673K,11.674K,11.675K,11.676K,11.677K,11.678K,11.679K,11.68K,11.681K,11.682K,11.683K,11.684K,11.685K,11.686K,11.687K,11.688K,11.689K,11.69K,11.691K,11.692K,11.693K,11.694K,11.695K,11.696K,11.697K,11.698K,11.699K,11.7K,11.701K,11.702K,11.703K,11.704K,11.705K,11.706K,11.707K,11.708K,11.709K,11.71K,11.711K,11.712K,11.713K,11.714K,11.715K,11.716K,11.717K,11.718K,11.719K,11.72K,11.721K,11.722K,11.723K,11.724K,11.725K,11.726K,11.727K,11.728K,11.729K,11.73K,11.731K,11.732K,11.733K,11.734K,11.735K,11.736K,11.737K,11.738K,11.739K,11.74K,11.741K,11.742K,11.743K,11.744K,11.745K,11.746K,11.747K,11.748K,11.749K,11.75K,11.751K,11.752K,11.753K,11.754K,11.755K,11.756K,11.757K,11.758K,11.759K,11.76K,11.761K,11.762K,11.763K,11.764K,11.765K,11.766K,11.767K,11.768K,11.769K,11.77K,11.771K,11.772K,11.773K,11.774K,11.775K,11.776K,11.777K,11.778K,11.779K,11.78K,11.781K,11.782K,11.783K,11.784K,11.785K,11.786K,11.787K,11.788K,11.789K,11.79K,11.791K,11.792K,11.793K,11.794K,11.795K,11.796K,11.797K,11.798K,11.799K,11.8K,11.801K,11.802K,11.803K,11.804K,11.805K,11.806K,11.807K,11.808K,11.809K,11.81K,11.811K,11.812K,11.813K,11.814K,11.815K,11.816K,11.817K,11.818K,11.819K,11.82K,11.821K,11.822K,11.823K,11.824K,11.825K,11.826K,11.827K,11.828K,11.829K,11.83K,11.831K,11.832K,11.833K,11.834K,11.835K,11.836K,11.837K,11.838K,11.839K,11.84K,11.841K,11.842K,11.843K,11.844K,11.845K,11.846K,11.847K,11.848K,11.849K,11.85K,11.851K,11.852K,11.853K,11.854K,11.855K,11.856K,11.857K,11.858K,11.859K,11.86K,11.861K,11.862K,11.863K,11.864K,11.865K,11.866K,11.867K,11.868K,11.869K,11.87K,11.871K,11.872K,11.873K,11.874K,11.875K,11.876K,11.877K,11.878K,11.879K,11.88K,11.881K,11.882K,11.883K,11.884K,11.885K,11.886K,11.887K,11.888K,11.889K,11.89K,11.891K,11.892K,11.893K,11.894K,11.895K,11.896K,11.897K,11.898K,11.899K,11.9K,11.901K,11.902K,11.903K,11.904K,11.905K,11.906K,11.907K,11.908K,11.909K,11.91K,11.911K,11.912K,11.913K,11.914K,11.915K,11.916K,11.917K,11.918K,11.919K,11.92K,11.921K,11.922K,11.923K,11.924K,11.925K,11.926K,11.927K,11.928K,11.929K,11.93K,11.931K,11.932K,11.933K,11.934K,11.935K,11.936K,11.937K,11.938K,11.939K,11.94K,11.941K,11.942K,11.943K,11.944K,11.945K,11.946K,11.947K,11.948K,11.949K,11.95K,11.951K,11.952K,11.953K,11.954K,11.955K,11.956K,11.957K,11.958K,11.959K,11.96K,11.961K,11.962K,11.963K,11.964K,11.965K,11.966K,11.967K,11.968K,11.969K,11.97K,11.971K,11.972K,11.973K,11.974K,11.975K,11.976K,11.977K,11.978K,11.979K,11.98K,11.981K,11.982K,11.983K,11.984K,11.985K,11.986K,11.987K,11.988K,11.989K,11.99K,11.991K,11.992K,11.993K,11.994K,11.995K,11.996K,11.997K,11.998K,11.999K,12K,12.001K,12.002K,12.003K,12.004K,12.005K,12.006K,12.007K,12.008K,12.009K,12.01K,12.011K,12.012K,12.013K,12.014K,12.015K,12.016K,12.017K,12.018K,12.019K,12.02K,12.021K,12.022K,12.023K,12.024K,12.025K,12.026K,12.027K,12.028K,12.029K,12.03K,12.031K,12.032K,12.033K,12.034K,12.035K,12.036K,12.037K,12.038K,12.039K,12.04K,12.041K,12.042K,12.043K,12.044K,12.045K,12.046K,12.047K,12.048K,12.049K,12.05K,12.051K,12.052K,12.053K,12.054K,12.055K,12.056K,12.057K,12.058K,12.059K,12.06K,12.061K,12.062K,12.063K,12.064K,12.065K,12.066K,12.067K,12.068K,12.069K,12.07K,12.071K,12.072K,12.073K,12.074K,12.075K,12.076K,12.077K,12.078K,12.079K,12.08K,12.081K,12.082K,12.083K,12.084K,12.085K,12.086K,12.087K,12.088K,12.089K,12.09K,12.091K,12.092K,12.093K,12.094K,12.095K,12.096K,12.097K,12.098K,12.099K,12.1K,12.101K,12.102K,12.103K,12.104K,12.105K,12.106K,12.107K,12.108K,12.109K,12.11K,12.111K,12.112K,12.113K,12.114K,12.115K,12.116K,12.117K,12.118K,12.119K,12.12K,12.121K,12.122K,12.123K,12.124K,12.125K,12.126K,12.127K,12.128K,12.129K,12.13K,12.131K,12.132K,12.133K,12.134K,12.135K,12.136K,12.137K,12.138K,12.139K,12.14K,12.141K,12.142K,12.143K,12.144K,12.145K,12.146K,12.147K,12.148K,12.149K,12.15K,12.151K,12.152K,12.153K,12.154K,12.155K,12.156K,12.157K,12.158K,12.159K,12.16K,12.161K,12.162K,12.163K,12.164K,12.165K,12.166K,12.167K,12.168K,12.169K,12.17K,12.171K,12.172K,12.173K,12.174K,12.175K,12.176K,12.177K,12.178K,12.179K,12.18K,12.181K,12.182K,12.183K,12.184K,12.185K,12.186K,12.187K,12.188K,12.189K,12.19K,12.191K,12.192K,12.193K,12.194K,12.195K,12.196K,12.197K,12.198K,12.199K,12.2K,12.201K,12.202K,12.203K,12.204K,12.205K,12.206K,12.207K,12.208K,12.209K,12.21K,12.211K,12.212K,12.213K,12.214K,12.215K,12.216K,12.217K,12.218K,12.219K,12.22K,12.221K,12.222K,12.223K,12.224K,12.225K,12.226K,12.227K,12.228K,12.229K,12.23K,12.231K,12.232K,12.233K,12.234K,12.235K,12.236K,12.237K,12.238K,12.239K,12.24K,12.241K,12.242K,12.243K,12.244K,12.245K,12.246K,12.247K,12.248K,12.249K,12.25K,12.251K,12.252K,12.253K,12.254K,12.255K,12.256K,12.257K,12.258K,12.259K,12.26K,12.261K,12.262K,12.263K,12.264K,12.265K,12.266K,12.267K,12.268K,12.269K,12.27K,12.271K,12.272K,12.273K,12.274K,12.275K,12.276K,12.277K,12.278K,12.279K,12.28K,12.281K,12.282K,12.283K,12.284K,12.285K,12.286K,12.287K,12.288K,12.289K,12.29K,12.291K,12.292K,12.293K,12.294K,12.295K,12.296K,12.297K,12.298K,12.299K,12.3K,12.301K,12.302K,12.303K,12.304K,12.305K,12.306K,12.307K,12.308K,12.309K,12.31K,12.311K,12.312K,12.313K,12.314K,12.315K,12.316K,12.317K,12.318K,12.319K,12.32K,12.321K,12.322K,12.323K,12.324K,12.325K,12.326K,12.327K,12.328K,12.329K,12.33K,12.331K,12.332K,12.333K,12.334K,12.335K,12.336K,12.337K,12.338K,12.339K,12.34K,12.341K,12.342K,12.343K,12.344K,12.345K,12.346K,12.347K,12.348K,12.349K,12.35K,12.351K,12.352K,12.353K,12.354K,12.355K,12.356K,12.357K,12.358K,12.359K,12.36K,12.361K,12.362K,12.363K,12.364K,12.365K,12.366K,12.367K,12.368K,12.369K,12.37K,12.371K,12.372K,12.373K,12.374K,12.375K,12.376K,12.377K,12.378K,12.379K,12.38K,12.381K,12.382K,12.383K,12.384K,12.385K,12.386K,12.387K,12.388K,12.389K,12.39K,12.391K,12.392K,12.393K,12.394K,12.395K,12.396K,12.397K,12.398K,12.399K]L_j['id','Std_id','Obj_id_i','Location','Roww','Description','id','Ident','Name','Unit','Objtype_id','Page','Wiki_id']56,144,148,12['id','Std_id','Obj_id_i','Location','Roww','Description','id','Ident','Name','Unit','Objtype_id','Page','Wiki_id']O_i[0]56,24,148,13[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338]O_j['id','Ident','Name','Unit','Objtype_id','Page','Wiki_id']56,48,148,13['id','Ident','Name','Unit','Objtype_id','Page','Wiki_id']SettThis node checks the variables listed in Var_for_rdb and makes an index of those that are NOT found in the result database. This is then used as an index in Inp_var for adding variable information.index i:= copyindex(S_i);
index j:= copyindex(S_j);
Sett1[S_i=i, S_j=j]400,72,148,131,1,0,1,1,1,0,0,0,02,378,21,493,5012,227,134,319,515,0,MIDM19661,54073,65535[Sys_localindex('J'),Sys_localindex('I')]['H1991'][Self,1,Sys_localindex('I'),1,Sys_localindex('J'),1]ItemThis node checks the variables listed in Var_for_rdb and makes an index of those that are NOT found in the result database. This is then used as an index in Inp_var for adding variable information.index i:= copyindex(It_i);
index j:= copyindex(It_j);
Item1[it_i=i, it_j=j]400,120,148,131,1,0,1,1,1,0,0,0,02,378,21,493,5012,298,216,382,519,0,MIDM19661,54073,65535[Sys_localindex('J'),Sys_localindex('I')]['H1991'][Self,1,Sys_localindex('I'),1,Sys_localindex('J'),1]It_i[0]56,168,148,13[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]It_j['id','Sett_id','Obj_id','Fail']56,192,148,13['id','Sett_id','Obj_id','Fail']S_i[0]56,72,148,13[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28]S_j['id','Obj_id','Settype_id']56,96,148,13['id','Obj_id','Settype_id']Dim0280,160,148,131,1,1,1,1,1,0,0,0,02,89,98,476,2242,604,56,556,489,0,MIDM39325,65535,39321[D_i,D_j][D_j,D_i]Ind0280,184,148,131,1,1,1,1,1,0,0,0,02,380,47,476,2962,232,242,874,303,0,MIDM2,12,22,876,493,0,MIDM39325,65535,39321[I_j,I_i][I_j,I_i]Loc0280,96,148,131,1,1,1,1,1,0,0,0,02,370,45,476,4452,518,523,725,303,0,MIDM2,404,34,750,516,0,MIDM39325,65535,39321[L_j,L_i][L_j,L_i]ObjThis node checks the variables listed in Var_for_rdb and makes an index of those that are NOT found in the result database. This is then used as an index in Inp_var for adding variable information.0280,48,148,131,1,1,1,1,1,0,0,0,02,378,21,493,5012,152,162,1057,343,0,MIDM2,573,21,700,421,0,MIDM39325,65535,39321[O_j,O_i][O_j,O_i]['H1991'][Self,1,Sys_localindex('I'),1,Sys_localindex('J'),1]SettThis node checks the variables listed in Var_for_rdb and makes an index of those that are NOT found in the result database. This is then used as an index in Inp_var for adding variable information.0280,72,148,131,1,1,1,1,1,0,0,0,02,378,21,493,5012,529,143,700,421,0,MIDM39325,65535,39321[S_j,S_i][S_i,S_j]['H1991'][Self,1,Sys_localindex('I'),1,Sys_localindex('J'),1]ItemThis node checks the variables listed in Var_for_rdb and makes an index of those that are NOT found in the result database. This is then used as an index in Inp_var for adding variable information.0280,120,148,131,1,1,1,1,1,0,0,0,02,378,21,493,5012,529,143,700,421,0,MIDM39325,65535,39321[It_j,It_i][It_i,It_j]['H1991'][Self,1,Sys_localindex('I'),1,Sys_localindex('J'),1](var, table)Write1if size(var)>0 then appendtablesql(var,var.i, var.j, table&' ')56,368,148,132,284,58,476,224var,table''168,280,052,121,1,1,1,1,1,0,0,0,02,163,375,476,224[Formnode Writerpsswd1]52425,39321,65535PlatformChoice(Self,2,False,1)320,328,148,12[Formnode Platform1]52425,39321,65535['Lumina AWP','THL computer']study_ident;
n_indices;
n_variables56,400,148,121,1,1,1,1,1,0,0,0,0Platform0176,44,1160,121,0,0,1,0,0,0,142,0,152425,39321,65535PlatformWriterpsswd0176,68,1160,121,0,0,1,0,0,0,142,0,152425,39321,65535WriterpsswdData table0176,237,1160,131,0,0,1,0,0,0,142,0,152425,39321,65535Data_table_name2) Tell the identifier of the node that contains the observations. This is an alternative to filling in 'Observations'. The node is used if it is non-empty. The node must have index .j for columns and .i for rows.320,212,-1304,441,0,0,1,0,1,0,,0,Parameter name0176,116,1160,121,0,0,1,0,0,0,142,0,152425,39321,65535Parameter_nameAppend to run0176,92,1160,121,0,0,1,0,0,0,142,0,152425,39321,65535Append_to_runUpload data1120,564,148,12Upload_dataAdvanced options for providing upload data:176,156,-1160,121,0,0,1,0,1,0,,0,65535,65532,19661'Analytica model' for upload option 3.480,20,-1144,12Selects the ODBC version.480,44,-1144,12Not needed for an encrypted version.480,68,-1144,12Add data to an existing upload (or run).480,92,-1144,12Name for the dependent variable columns.480,124,-1144,20Advanced options for uploading data:176,460,-1160,121,0,0,1,0,1,0,,0,65535,65532,19661A) The default: Upload all data directly to Opasnet Base. This is the same as on the first page.124,536,-1108,641,0,0,1,0,1,0,,0,B) For very large variables: Upload only the object and location information. Create csv files of other data to c:\temp\ and upload them separately (you need a direct access to the Opasnet Base).440,536,-1184,641,0,0,1,0,1,0,,0,Upload an Analytica model. This functionality does not work with the web version. It requires that you have Analytica Enterprise and an editable version of Opasnet Base Connection.152,736,-1144,801,0,0,1,0,1,0,,0,2,693,146,476,224For advanced users: you may upload whole models, or non-public data that can only be seen by people with a special permission.276,628,-1268,20In case you want to upload data in a way that it is not visible without a password, press this button instead of "Upload data".424,736,-1120,801,0,0,1,0,1,0,,0,2,693,146,476,224Observations0272,440,1152,121,0,0,1,0,0,0,158,0,152425,39321,65535Observations2Copy your data table into Observations. NOTE! 1) You must have field names in the first row. 2) Paste between 'exclamation marks'.272,390,-1152,38