r4276 formatPortLink: moved from interfaces.php to functions.php
[racktables] / wwwroot / install.php
1 <?php
2
3 // This script is intended for execution through a web-browser, e.g.:
4 // https://example.com/racktables/install.php
5 // See README file for more information.
6
7 $stepfunc[1] = 'not_already_installed';
8 $stepfunc[2] = 'platform_is_ok';
9 $stepfunc[3] = 'init_config';
10 $stepfunc[4] = 'init_database_static';
11 $stepfunc[5] = 'init_database_dynamic';
12 $stepfunc[6] = 'congrats';
13 $dbxlink = NULL;
14
15 if (isset ($_REQUEST['step']))
16 $step = $_REQUEST['step'];
17 else
18 $step = 1;
19
20 if ($step > count ($stepfunc))
21 {
22 $root = (empty($_SERVER['HTTPS']) or $_SERVER['HTTPS'] == 'off') ? 'http://' : 'https://';
23 $root .= isset ($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : ($_SERVER['SERVER_NAME'].($_SERVER['SERVER_PORT']=='80'?'':$_SERVER['SERVER_PORT']));
24 // "Since PHP 4.3.0, you will often get a slash or a dot back from
25 // dirname() in situations where the older functionality would have given
26 // you the empty string."
27 // "On Windows, both slash (/) and backslash (\) are used as directory
28 // separator character."
29 $root .= strtr (dirname ($_SERVER['PHP_SELF']), '\\', '/');
30 if (substr ($root, -1) != '/')
31 $root .= '/';
32 header ("Location: ${root}");
33 exit;
34 }
35 $title = "RackTables installation: step ${step} of " . count ($stepfunc);
36 require_once ('inc/dictionary.php');
37 header ('Content-Type: text/html; charset=UTF-8');
38 ?>
39 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
40 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
41 <head><title><?php echo $title; ?></title>
42 <link rel=stylesheet type='text/css' href='css/pi.css' />
43 </head>
44 <body>
45 <center>
46 <?php
47 echo "<h1>${title}</h1><p>";
48
49 echo "</p><form method=post>\n";
50 $testres = $stepfunc[$step] ();
51 if ($testres)
52 {
53 $next_step = $step + 1;
54 echo "<br><input type=submit value='proceed'>";
55 }
56 else
57 {
58 $next_step = $step;
59 echo "<br><input type=submit value='retry'>";
60 }
61 echo "<input type=hidden name=step value='${next_step}'>\n";
62
63 ?>
64 </form>
65 </center>
66 </body>
67 </html>
68
69 <?php
70 // Check if the software is already installed.
71 function not_already_installed()
72 {
73 @include ('inc/secret.php');
74 if (isset ($pdo_dsn))
75 {
76 echo 'Your configuration file exists and seems to hold necessary data already.<br>';
77 return FALSE;
78 }
79 else
80 {
81 echo 'There seem to be no existing installation here, I am going to setup one now.<br>';
82 return TRUE;
83 }
84 }
85
86 // Check that we can write to configuration file.
87 // If so, ask for DB connection paramaters and test
88 // the connection. Neither save the parameters nor allow
89 // going further until we succeed with the given
90 // credentials.
91 function init_config ()
92 {
93 if (!is_writable ('inc/secret.php'))
94 {
95 echo "The inc/secret.php file is not writable by web-server. Make sure it is.";
96 echo "The following commands should suffice:<pre>touch inc/secret.php; chmod 666 inc/secret.php</pre>";
97 echo 'Fedora Linux with SELinux may require this file to be owned by specific user (apache) and/or executing "setenforce 0" for the time of installation. ';
98 echo 'SELinux may be turned back on with "setenforce 1" command.<br>';
99 return FALSE;
100 }
101 if
102 (
103 !isset ($_REQUEST['save_config']) or
104 empty ($_REQUEST['mysql_host']) or
105 empty ($_REQUEST['mysql_db']) or
106 empty ($_REQUEST['mysql_username']) or
107 empty ($_REQUEST['mysql_password'])
108 )
109 {
110 echo "<input type=hidden name=save_config value=1>\n";
111 echo '<h3>Hint on setting up a database:</h3><pre>';
112 echo "mysql&gt;\nCREATE DATABASE racktables_db CHARACTER SET utf8 COLLATE utf8_general_ci;\n";
113 echo "GRANT ALL PRIVILEGES ON racktables_db.* TO racktables_user@localhost IDENTIFIED BY 'MY_SECRET_PASSWORD';\n</pre>";
114 echo '<table>';
115 echo "<tr><td><label for=mysql_host>MySQL host:</label></td>";
116 echo "<td><input type=text name=mysql_host id=mysql_host value=localhost></td></tr>\n";
117 echo "<tr><td><label for=mysql_host>database:</label></td>";
118 echo "<td><input type=text name=mysql_db id=mysql_db value=racktables_db></td></tr>\n";
119 echo "<tr><td><label for=mysql_username>username:</label></td>";
120 echo "<td><input type=text name=mysql_username value=racktables_user></td></tr>\n";
121 echo "<tr><td><label for=mysql_password>password:</label></td>";
122 echo "<td><input type=password name=mysql_password></td></tr>\n";
123 echo '</table>';
124 return FALSE;
125 }
126 $pdo_dsn = 'mysql:host=' . $_REQUEST['mysql_host'] . ';dbname=' . $_REQUEST['mysql_db'];
127 try
128 {
129 $dbxlink = new PDO ($pdo_dsn, $_REQUEST['mysql_username'], $_REQUEST['mysql_password']);
130 }
131 catch (PDOException $e)
132 {
133 echo "<input type=hidden name=save_config value=1>\n";
134 echo '<table>';
135 echo "<tr><td><label for=mysql_host>MySQL host:</label></td>";
136 echo "<td><input type=text name=mysql_host id=mysql_host value='" . $_REQUEST['mysql_host'] . "'></td></tr>\n";
137 echo "<tr><td><label for=mysql_host>database:</label></td>";
138 echo "<td><input type=text name=mysql_db id=mysql_db value='" . $_REQUEST['mysql_db'] . "'></td></tr>\n";
139 echo "<tr><td><label for=mysql_username>username:</label></td>";
140 echo "<td><input type=text name=mysql_username value='" . $_REQUEST['mysql_username'] . "'></td></tr>\n";
141 echo "<tr><td><label for=mysql_password>password:</label></td>";
142 echo "<td><input type=password name=mysql_password value='" . $_REQUEST['mysql_password'] . "'></td></tr>\n";
143 echo "<tr><td colspan=2>The above parameters did not work. Check and try again.</td></tr>\n";
144 echo '</table>';
145 return FALSE;
146 }
147
148 $conf = fopen ('inc/secret.php', 'w+');
149 if ($conf === FALSE)
150 {
151 echo "Error: failed to open inc/secret.php for writing";
152 return FALSE;
153 }
154 fwrite ($conf, "<?php\n/* This file has been generated automatically by RackTables installer.\n");
155 fwrite ($conf, " * you shouldn't normally edit it unless your database setup has changed.\n");
156 fwrite ($conf, " */\n");
157 fwrite ($conf, "\$pdo_dsn = '${pdo_dsn}';\n");
158 fwrite ($conf, "\$db_username = '" . $_REQUEST['mysql_username'] . "';\n");
159 fwrite ($conf, "\$db_password = '" . $_REQUEST['mysql_password'] . "';\n\n");
160 fwrite ($conf, <<<ENDOFTEXT
161 // Default setting is to authenticate users locally, but it is possible to
162 // employ existing LDAP or Apache userbase. Uncommenting below two lines MAY
163 // help in switching authentication to LDAP completely.
164 // More info: http://sourceforge.net/apps/mediawiki/racktables/index.php?title=RackTablesAdminGuide
165 #\$user_auth_src = 'ldap';
166 #\$require_local_account = FALSE;
167
168 // This is only necessary for 'ldap' authentication source
169 \$LDAP_options = array
170 (
171 'server' => 'some.server',
172 'domain' => 'some.domain',
173 # 'search_dn' => 'ou=people,O=YourCompany',
174 'search_attr' => 'uid',
175 # 'displayname_attrs' => 'givenname familyname',
176
177 // LDAP cache, values in seconds. Refresh, retry and expiry values are
178 // treated exactly as those for DNS SOA record. Example values 300-15-600:
179 // unconditionally remeber successful auth for 5 minutes, after that still
180 // permit user access, but try to revalidate username and password on the
181 // server (not more often, than once in 15 seconds). After 10 minutes of
182 // unsuccessful retries give up and deny access, so someone goes to fix
183 // LDAP server.
184 //
185 // Like in DNS, the following condition must be always met:
186 // cache_retry <= cache_refresh <= cache_expiry
187 //
188 // To disable LDAP cache completely, set cache_refresh, cache_retry and
189 // cache_expiry to 0.
190 'cache_refresh' => 300,
191 'cache_retry' => 15,
192 'cache_expiry' => 600,
193 // Uncomment line below to work around ActiveDirectory+PHP problem to perform
194 // search right in the base DN (not in one of OUs/CNs below).
195 # 'options' => array (LDAP_OPT_PROTOCOL_VERSION => 3, LDAP_OPT_REFERRALS => 0),
196 );
197
198
199 ENDOFTEXT
200 );
201 fwrite ($conf, "?>\n");
202 fclose ($conf);
203 echo "The configuration file has been written successfully.<br>";
204 return TRUE;
205 }
206
207 function connect_to_db ()
208 {
209 require ('inc/secret.php');
210 global $dbxlink;
211 try
212 {
213 $dbxlink = new PDO ($pdo_dsn, $db_username, $db_password);
214 }
215 catch (PDOException $e)
216 {
217 die ('Error connecting to the database');
218 }
219 }
220
221 function init_database_static ()
222 {
223 connect_to_db ();
224 global $dbxlink;
225 if (!isInnoDBSupported())
226 {
227 echo 'InnoDB test failed! Please configure MySQL server properly and retry.';
228 return FALSE;
229 }
230 $result = $dbxlink->query ('show tables');
231 $tables = $result->fetchAll (PDO::FETCH_NUM);
232 $result->closeCursor();
233 unset ($result);
234 if (count ($tables))
235 {
236 echo 'Your database is already holding ' . count ($tables);
237 echo ' tables, so I will stop here and let you check it yourself.<br>';
238 echo 'There is some important data there probably.<br>';
239 return FALSE;
240 }
241 echo 'Initializing the database...<br>';
242 echo '<table border=1>';
243 echo "<tr><th>section</th><th>queries</th><th>errors</th></tr>";
244 $errlist = array();
245 foreach (array ('structure', 'dictbase') as $part)
246 {
247 echo "<tr><td>${part}</td>";
248 $nq = $nerrs = 0;
249 foreach (preg_split ("/;\s*\n/", get_pseudo_file ($part)) as $query)
250 {
251 $query = trim($query);
252 if (empty ($query) or '--' == substr ($query, 0, 2))
253 continue;
254 $nq++;
255 if ($dbxlink->exec ($query) === FALSE)
256 {
257 $nerrs++;
258 $errlist[] = $query;
259 }
260 }
261 echo "<td>${nq}</td><td>${nerrs}</td></tr>\n";
262 }
263 // (re)load dictionary by pure PHP means w/o any external file
264 echo "<tr><td>dictionary</td>";
265 $nq = $nerrs = 0;
266 $dictq = array();
267 foreach (reloadDictionary() as $query)
268 {
269 $nq++;
270 if ($dbxlink->exec ($query) === FALSE)
271 {
272 $nerrs++;
273 $errlist[] = $query;
274 }
275 }
276 echo "<td>${nq}</td><td>${nerrs}</td></tr>\n";
277
278 echo '</table>';
279 if (count ($errlist))
280 {
281 echo '<pre>The following queries failed:\n';
282 foreach ($errlist as $q)
283 echo "${q}\n\n";
284 echo '</pre>';
285 return FALSE;
286 }
287 return TRUE;
288 }
289
290 function init_database_dynamic ()
291 {
292 connect_to_db();
293 global $dbxlink;
294 if (!isset ($_REQUEST['password']) or empty ($_REQUEST['password']))
295 {
296 $result = $dbxlink->query ('select count(user_id) from UserAccount where user_id = 1');
297 $row = $result->fetch (PDO::FETCH_NUM);
298 $nrecs = $row[0];
299 $result->closeCursor();
300 if (!$nrecs)
301 {
302 echo '<table border=1>';
303 echo '<caption>Administrator password not set</caption>';
304 echo '<tr><td><input type=password name=password></td></tr>';
305 echo '</table>';
306 }
307 return FALSE;
308 }
309 else
310 {
311 // Never send cleartext password over the wire.
312 $hash = sha1 ($_REQUEST['password']);
313 $query = "INSERT INTO `UserAccount` (`user_id`, `user_name`, `user_password_hash`, `user_realname`) " .
314 "VALUES (1,'admin','${hash}','RackTables Administrator')";
315 $result = $dbxlink->exec ($query);
316 echo "Administrator password has been set successfully.<br>";
317 return TRUE;
318 }
319 }
320
321 function congrats ()
322 {
323 echo 'Congratulations! RackTables installation is complete. After pressing Proceed you will ';
324 echo 'enter the system. Authenticate with <strong>admin</strong> username.<br>RackTables project has a ';
325 echo "<a href='http://sourceforge.net/apps/mediawiki/racktables/index.php?title=RackTablesAdminGuide'>";
326 echo "wiki</a> and a ";
327 echo "<a href='http://www.freelists.org/list/racktables-users'>mailing list</a> for users. Have fun.<br>";
328 return TRUE;
329 }
330
331 function get_pseudo_file ($name)
332 {
333 switch ($name)
334 {
335 case 'structure':
336 return <<<END_OF_FILE
337 alter database character set utf8;
338 set names 'utf8';
339 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
340
341 CREATE TABLE `Atom` (
342 `molecule_id` int(10) unsigned default NULL,
343 `rack_id` int(10) unsigned default NULL,
344 `unit_no` int(10) unsigned default NULL,
345 `atom` enum('front','interior','rear') default NULL
346 ) ENGINE=InnoDB;
347
348 CREATE TABLE `Attribute` (
349 `id` int(10) unsigned NOT NULL auto_increment,
350 `type` enum('string','uint','float','dict') default NULL,
351 `name` char(64) default NULL,
352 PRIMARY KEY (`id`),
353 UNIQUE KEY `name` (`name`)
354 ) ENGINE=MyISAM AUTO_INCREMENT=10000;
355
356 CREATE TABLE `AttributeMap` (
357 `objtype_id` int(10) unsigned NOT NULL default '1',
358 `attr_id` int(10) unsigned NOT NULL default '1',
359 `chapter_id` int(10) unsigned default NULL,
360 UNIQUE KEY `objtype_id` (`objtype_id`,`attr_id`)
361 ) ENGINE=InnoDB;
362
363 CREATE TABLE `AttributeValue` (
364 `object_id` int(10) unsigned default NULL,
365 `attr_id` int(10) unsigned default NULL,
366 `string_value` char(128) default NULL,
367 `uint_value` int(10) unsigned default NULL,
368 `float_value` float default NULL,
369 UNIQUE KEY `object_id` (`object_id`,`attr_id`),
370 CONSTRAINT `AttributeValue-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `RackObject` (`id`) ON DELETE CASCADE
371 ) ENGINE=InnoDB;
372
373 CREATE TABLE `CachedPAV` (
374 `object_id` int(10) unsigned NOT NULL,
375 `port_name` char(255) NOT NULL,
376 `vlan_id` int(10) unsigned NOT NULL default '0',
377 PRIMARY KEY (`object_id`,`port_name`,`vlan_id`),
378 KEY `vlan_id` (`vlan_id`),
379 CONSTRAINT `CachedPAV-FK-object-port` FOREIGN KEY (`object_id`, `port_name`) REFERENCES `CachedPVM` (`object_id`, `port_name`) ON DELETE CASCADE,
380 CONSTRAINT `CachedPAV-FK-vlan_id` FOREIGN KEY (`vlan_id`) REFERENCES `VLANValidID` (`vlan_id`)
381 ) ENGINE=InnoDB;
382
383 CREATE TABLE `CachedPNV` (
384 `object_id` int(10) unsigned NOT NULL,
385 `port_name` char(255) NOT NULL,
386 `vlan_id` int(10) unsigned NOT NULL default '0',
387 PRIMARY KEY (`object_id`,`port_name`,`vlan_id`),
388 UNIQUE KEY `port_id` (`object_id`,`port_name`),
389 CONSTRAINT `CachedPNV-FK-compound` FOREIGN KEY (`object_id`, `port_name`, `vlan_id`) REFERENCES `CachedPAV` (`object_id`, `port_name`, `vlan_id`) ON DELETE CASCADE
390 ) ENGINE=InnoDB;
391
392 CREATE TABLE `CachedPVM` (
393 `object_id` int(10) unsigned NOT NULL,
394 `port_name` char(255) NOT NULL,
395 `vlan_mode` enum('access','trunk') NOT NULL default 'access',
396 PRIMARY KEY (`object_id`,`port_name`),
397 CONSTRAINT `CachedPVM-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `RackObject` (`id`) ON DELETE CASCADE
398 ) ENGINE=InnoDB;
399
400 CREATE TABLE `Chapter` (
401 `id` int(10) unsigned NOT NULL auto_increment,
402 `sticky` enum('yes','no') default 'no',
403 `name` char(128) NOT NULL,
404 PRIMARY KEY (`id`),
405 UNIQUE KEY `name` (`name`)
406 ) ENGINE=MyISAM AUTO_INCREMENT=10000;
407
408 CREATE TABLE `Config` (
409 `varname` char(32) NOT NULL,
410 `varvalue` text NOT NULL,
411 `vartype` enum('string','uint') NOT NULL default 'string',
412 `emptyok` enum('yes','no') NOT NULL default 'no',
413 `is_hidden` enum('yes','no') NOT NULL default 'yes',
414 `is_userdefined` enum('yes','no') NOT NULL default 'no',
415 `description` text,
416 PRIMARY KEY (`varname`)
417 ) ENGINE=InnoDB;
418
419 CREATE TABLE `Dictionary` (
420 `chapter_id` int(10) unsigned NOT NULL,
421 `dict_key` int(10) unsigned NOT NULL auto_increment,
422 `dict_value` char(255) default NULL,
423 PRIMARY KEY (`dict_key`),
424 UNIQUE KEY `chap_to_val` (`chapter_id`,`dict_value`)
425 ) ENGINE=MyISAM AUTO_INCREMENT=50000;
426
427 CREATE TABLE `EntityLink` (
428 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
429 `parent_entity_type` enum('ipv4net','ipv4rspool','ipv4vs','ipv6net','object','rack','user') NOT NULL,
430 `parent_entity_id` int(10) unsigned NOT NULL,
431 `child_entity_type` enum('file','object') NOT NULL,
432 `child_entity_id` int(10) unsigned NOT NULL,
433 PRIMARY KEY (`id`),
434 UNIQUE KEY `EntityLink-unique` (`parent_entity_type`,`parent_entity_id`,`child_entity_type`,`child_entity_id`)
435 ) ENGINE=InnoDB;
436
437 CREATE TABLE `File` (
438 `id` int(10) unsigned NOT NULL auto_increment,
439 `name` char(255) NOT NULL,
440 `type` char(255) NOT NULL,
441 `size` int(10) unsigned NOT NULL,
442 `ctime` datetime NOT NULL,
443 `mtime` datetime NOT NULL,
444 `atime` datetime NOT NULL,
445 `thumbnail` longblob,
446 `contents` longblob NOT NULL,
447 `comment` text,
448 PRIMARY KEY (`id`),
449 UNIQUE KEY `name` (`name`)
450 ) ENGINE=InnoDB;
451
452 CREATE TABLE `FileLink` (
453 `id` int(10) unsigned NOT NULL auto_increment,
454 `file_id` int(10) unsigned NOT NULL,
455 `entity_type` enum('ipv4net','ipv4rspool','ipv4vs','object','rack','user','ipv6net') NOT NULL default 'object',
456 `entity_id` int(10) NOT NULL,
457 PRIMARY KEY (`id`),
458 KEY `FileLink-file_id` (`file_id`),
459 UNIQUE KEY `FileLink-unique` (`file_id`,`entity_type`,`entity_id`),
460 CONSTRAINT `FileLink-File_fkey` FOREIGN KEY (`file_id`) REFERENCES `File` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
461 ) ENGINE=InnoDB;
462
463 CREATE TABLE `IPv4Address` (
464 `ip` int(10) unsigned NOT NULL default '0',
465 `name` char(255) NOT NULL default '',
466 `reserved` enum('yes','no') default NULL,
467 PRIMARY KEY (`ip`)
468 ) ENGINE=InnoDB;
469
470 CREATE TABLE `IPv4Allocation` (
471 `object_id` int(10) unsigned NOT NULL default '0',
472 `ip` int(10) unsigned NOT NULL default '0',
473 `name` char(255) NOT NULL default '',
474 `type` enum('regular','shared','virtual','router') default NULL,
475 PRIMARY KEY (`object_id`,`ip`),
476 KEY `ip` (`ip`),
477 CONSTRAINT `IPv4Allocation-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `RackObject` (`id`) ON DELETE CASCADE
478 ) ENGINE=InnoDB;
479
480 CREATE TABLE `IPv4LB` (
481 `object_id` int(10) unsigned default NULL,
482 `rspool_id` int(10) unsigned default NULL,
483 `vs_id` int(10) unsigned default NULL,
484 `prio` int(10) unsigned default NULL,
485 `vsconfig` text,
486 `rsconfig` text,
487 UNIQUE KEY `LB-VS` (`object_id`,`vs_id`),
488 KEY `IPv4LB-FK-rspool_id` (`rspool_id`),
489 KEY `IPv4LB-FK-vs_id` (`vs_id`),
490 CONSTRAINT `IPv4LB-FK-vs_id` FOREIGN KEY (`vs_id`) REFERENCES `IPv4VS` (`id`),
491 CONSTRAINT `IPv4LB-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `RackObject` (`id`),
492 CONSTRAINT `IPv4LB-FK-rspool_id` FOREIGN KEY (`rspool_id`) REFERENCES `IPv4RSPool` (`id`)
493 ) ENGINE=InnoDB;
494
495 CREATE TABLE `IPv4NAT` (
496 `object_id` int(10) unsigned NOT NULL default '0',
497 `proto` enum('TCP','UDP') NOT NULL default 'TCP',
498 `localip` int(10) unsigned NOT NULL default '0',
499 `localport` smallint(5) unsigned NOT NULL default '0',
500 `remoteip` int(10) unsigned NOT NULL default '0',
501 `remoteport` smallint(5) unsigned NOT NULL default '0',
502 `description` char(255) default NULL,
503 PRIMARY KEY (`object_id`,`proto`,`localip`,`localport`,`remoteip`,`remoteport`),
504 KEY `localip` (`localip`),
505 KEY `remoteip` (`remoteip`),
506 KEY `object_id` (`object_id`),
507 CONSTRAINT `IPv4NAT-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `RackObject` (`id`)
508 ) ENGINE=InnoDB;
509
510 CREATE TABLE `IPv4Network` (
511 `id` int(10) unsigned NOT NULL auto_increment,
512 `ip` int(10) unsigned NOT NULL default '0',
513 `mask` int(10) unsigned NOT NULL default '0',
514 `name` char(255) default NULL,
515 `comment` text,
516 PRIMARY KEY (`id`),
517 UNIQUE KEY `base-len` (`ip`,`mask`)
518 ) ENGINE=InnoDB;
519
520 CREATE TABLE `IPv4RS` (
521 `id` int(10) unsigned NOT NULL auto_increment,
522 `inservice` enum('yes','no') NOT NULL default 'no',
523 `rsip` int(10) unsigned default NULL,
524 `rsport` smallint(5) unsigned default NULL,
525 `rspool_id` int(10) unsigned default NULL,
526 `rsconfig` text,
527 PRIMARY KEY (`id`),
528 KEY `rsip` (`rsip`),
529 UNIQUE KEY `pool-endpoint` (`rspool_id`,`rsip`,`rsport`),
530 CONSTRAINT `IPv4RS-FK` FOREIGN KEY (`rspool_id`) REFERENCES `IPv4RSPool` (`id`) ON DELETE CASCADE
531 ) ENGINE=InnoDB;
532
533 CREATE TABLE `IPv4RSPool` (
534 `id` int(10) unsigned NOT NULL auto_increment,
535 `name` char(255) default NULL,
536 `vsconfig` text,
537 `rsconfig` text,
538 PRIMARY KEY (`id`)
539 ) ENGINE=InnoDB;
540
541 CREATE TABLE `IPv4VS` (
542 `id` int(10) unsigned NOT NULL auto_increment,
543 `vip` int(10) unsigned default NULL,
544 `vport` smallint(5) unsigned default NULL,
545 `proto` enum('TCP','UDP') NOT NULL default 'TCP',
546 `name` char(255) default NULL,
547 `vsconfig` text,
548 `rsconfig` text,
549 PRIMARY KEY (`id`),
550 KEY `vip` (`vip`)
551 ) ENGINE=InnoDB;
552
553 CREATE TABLE `IPv6Address` (
554 `ip` binary(16) NOT NULL,
555 `name` char(255) NOT NULL default '',
556 `reserved` enum('yes','no') default NULL,
557 PRIMARY KEY (`ip`)
558 ) ENGINE=InnoDB;
559
560 CREATE TABLE `IPv6Allocation` (
561 `object_id` int(10) unsigned NOT NULL default '0',
562 `ip` binary(16) NOT NULL,
563 `name` char(255) NOT NULL default '',
564 `type` enum('regular','shared','virtual','router') default NULL,
565 PRIMARY KEY (`object_id`,`ip`),
566 KEY `ip` (`ip`),
567 CONSTRAINT `IPv6Allocation-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `RackObject` (`id`) ON DELETE CASCADE
568 ) ENGINE=InnoDB;
569
570 CREATE TABLE `IPv6Network` (
571 `id` int(10) unsigned NOT NULL auto_increment,
572 `ip` binary(16) NOT NULL,
573 `mask` int(10) unsigned NOT NULL,
574 `last_ip` binary(16) NOT NULL,
575 `name` char(255) default NULL,
576 `comment` text,
577 PRIMARY KEY (`id`),
578 UNIQUE KEY `ip` (`ip`,`mask`)
579 ) ENGINE=InnoDB;
580
581 CREATE TABLE `LDAPCache` (
582 `presented_username` char(64) NOT NULL,
583 `successful_hash` char(40) NOT NULL,
584 `first_success` timestamp NOT NULL default CURRENT_TIMESTAMP,
585 `last_retry` timestamp NOT NULL default '0000-00-00 00:00:00',
586 `displayed_name` char(128) default NULL,
587 `memberof` text,
588 UNIQUE KEY `presented_username` (`presented_username`),
589 KEY `scanidx` (`presented_username`,`successful_hash`)
590 ) ENGINE=InnoDB;
591
592 CREATE TABLE `Link` (
593 `porta` int(10) unsigned NOT NULL default '0',
594 `portb` int(10) unsigned NOT NULL default '0',
595 `cable` char(64) DEFAULT NULL,
596 PRIMARY KEY (`porta`,`portb`),
597 UNIQUE KEY `porta` (`porta`),
598 UNIQUE KEY `portb` (`portb`),
599 CONSTRAINT `Link-FK-a` FOREIGN KEY (`porta`) REFERENCES `Port` (`id`) ON DELETE CASCADE,
600 CONSTRAINT `Link-FK-b` FOREIGN KEY (`portb`) REFERENCES `Port` (`id`) ON DELETE CASCADE
601 ) ENGINE=InnoDB;
602
603 CREATE TABLE `Molecule` (
604 `id` int(10) unsigned NOT NULL auto_increment,
605 PRIMARY KEY (`id`)
606 ) ENGINE=InnoDB;
607
608 CREATE TABLE `MountOperation` (
609 `id` int(10) unsigned NOT NULL auto_increment,
610 `object_id` int(10) unsigned NOT NULL default '0',
611 `ctime` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
612 `user_name` char(64) default NULL,
613 `old_molecule_id` int(10) unsigned default NULL,
614 `new_molecule_id` int(10) unsigned default NULL,
615 `comment` text,
616 PRIMARY KEY (`id`),
617 KEY `object_id` (`object_id`),
618 CONSTRAINT `MountOperation-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `RackObject` (`id`) ON DELETE CASCADE
619 ) ENGINE=InnoDB;
620
621 CREATE TABLE `ObjectLog` (
622 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
623 `object_id` int(10) unsigned NOT NULL,
624 `user` char(64) NOT NULL,
625 `date` datetime NOT NULL,
626 `content` text NOT NULL,
627 PRIMARY KEY (`id`),
628 KEY `object_id` (`object_id`),
629 KEY `date` (`date`),
630 CONSTRAINT `ObjectLog-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `RackObject` (`id`) ON DELETE CASCADE
631 ) ENGINE=InnoDB;
632
633 CREATE TABLE `ObjectParentCompat` (
634 `parent_objtype_id` int(10) unsigned NOT NULL,
635 `child_objtype_id` int(10) unsigned NOT NULL,
636 UNIQUE KEY `parent_child` (`parent_objtype_id`,`child_objtype_id`)
637 ) ENGINE=InnoDB;
638
639 CREATE TABLE `Port` (
640 `id` int(10) unsigned NOT NULL auto_increment,
641 `object_id` int(10) unsigned NOT NULL default '0',
642 `name` char(255) NOT NULL default '',
643 `iif_id` int(10) unsigned NOT NULL,
644 `type` int(10) unsigned NOT NULL default '0',
645 `l2address` char(64) default NULL,
646 `reservation_comment` char(255) default NULL,
647 `label` char(255) default NULL,
648 PRIMARY KEY (`id`),
649 UNIQUE KEY `object_iif_oif_name` (`object_id`,`iif_id`,`type`,`name`),
650 KEY `type` (`type`),
651 KEY `comment` (`reservation_comment`),
652 KEY `l2address` (`l2address`),
653 KEY `Port-FK-iif-oif` (`iif_id`,`type`),
654 CONSTRAINT `Port-FK-iif-oif` FOREIGN KEY (`iif_id`, `type`) REFERENCES `PortInterfaceCompat` (`iif_id`, `oif_id`),
655 CONSTRAINT `Port-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `RackObject` (`id`) ON DELETE CASCADE
656 ) ENGINE=InnoDB;
657
658 CREATE TABLE `PortAllowedVLAN` (
659 `object_id` int(10) unsigned NOT NULL,
660 `port_name` char(255) NOT NULL,
661 `vlan_id` int(10) unsigned NOT NULL default '0',
662 PRIMARY KEY (`object_id`,`port_name`,`vlan_id`),
663 KEY `vlan_id` (`vlan_id`),
664 CONSTRAINT `PortAllowedVLAN-FK-object-port` FOREIGN KEY (`object_id`, `port_name`) REFERENCES `PortVLANMode` (`object_id`, `port_name`) ON DELETE CASCADE,
665 CONSTRAINT `PortAllowedVLAN-FK-vlan_id` FOREIGN KEY (`vlan_id`) REFERENCES `VLANValidID` (`vlan_id`)
666 ) ENGINE=InnoDB;
667
668 CREATE TABLE `PortCompat` (
669 `type1` int(10) unsigned NOT NULL default '0',
670 `type2` int(10) unsigned NOT NULL default '0',
671 UNIQUE KEY `type1_2` (`type1`,`type2`),
672 KEY `type2` (`type2`)
673 ) ENGINE=InnoDB;
674
675 CREATE TABLE `PortInnerInterface` (
676 `id` int(10) unsigned NOT NULL,
677 `iif_name` char(16) NOT NULL,
678 PRIMARY KEY (`id`),
679 UNIQUE KEY `iif_name` (`iif_name`)
680 ) ENGINE=InnoDB;
681
682 CREATE TABLE `PortInterfaceCompat` (
683 `iif_id` int(10) unsigned NOT NULL,
684 `oif_id` int(10) unsigned NOT NULL,
685 UNIQUE KEY `pair` (`iif_id`,`oif_id`),
686 CONSTRAINT `PortInterfaceCompat-FK-iif_id` FOREIGN KEY (`iif_id`) REFERENCES `PortInnerInterface` (`id`)
687 ) ENGINE=InnoDB;
688
689 CREATE TABLE `PortNativeVLAN` (
690 `object_id` int(10) unsigned NOT NULL,
691 `port_name` char(255) NOT NULL,
692 `vlan_id` int(10) unsigned NOT NULL default '0',
693 PRIMARY KEY (`object_id`,`port_name`,`vlan_id`),
694 UNIQUE KEY `port_id` (`object_id`,`port_name`),
695 CONSTRAINT `PortNativeVLAN-FK-compound` FOREIGN KEY (`object_id`, `port_name`, `vlan_id`) REFERENCES `PortAllowedVLAN` (`object_id`, `port_name`, `vlan_id`) ON DELETE CASCADE
696 ) ENGINE=InnoDB;
697
698 CREATE TABLE `PortVLANMode` (
699 `object_id` int(10) unsigned NOT NULL,
700 `port_name` char(255) NOT NULL,
701 `vlan_mode` enum('access','trunk') NOT NULL default 'access',
702 PRIMARY KEY (`object_id`,`port_name`),
703 CONSTRAINT `PortVLANMode-FK-object-port` FOREIGN KEY (`object_id`, `port_name`) REFERENCES `CachedPVM` (`object_id`, `port_name`)
704 ) ENGINE=InnoDB;
705
706 CREATE TABLE `Rack` (
707 `id` int(10) unsigned NOT NULL auto_increment,
708 `name` char(255) default NULL,
709 `row_id` int(10) unsigned NOT NULL default '1',
710 `height` tinyint(3) unsigned NOT NULL default '42',
711 `comment` text,
712 `thumb_data` blob,
713 PRIMARY KEY (`id`),
714 UNIQUE KEY `name_in_row` (`row_id`,`name`),
715 CONSTRAINT `Rack-FK-row_id` FOREIGN KEY (`row_id`) REFERENCES `RackRow` (`id`)
716 ) ENGINE=InnoDB;
717
718 CREATE TABLE `RackHistory` (
719 `id` int(10) unsigned default NULL,
720 `name` char(255) default NULL,
721 `row_id` int(10) unsigned default NULL,
722 `height` tinyint(3) unsigned default NULL,
723 `comment` text,
724 `thumb_data` blob,
725 `ctime` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
726 `user_name` char(64) default NULL
727 ) ENGINE=InnoDB;
728
729 CREATE TABLE `RackObject` (
730 `id` int(10) unsigned NOT NULL auto_increment,
731 `name` char(255) default NULL,
732 `label` char(255) default NULL,
733 `objtype_id` int(10) unsigned NOT NULL default '1',
734 `asset_no` char(64) default NULL,
735 `has_problems` enum('yes','no') NOT NULL default 'no',
736 `comment` text,
737 PRIMARY KEY (`id`),
738 UNIQUE KEY `RackObject_asset_no` (`asset_no`),
739 UNIQUE KEY `name` (`name`)
740 ) ENGINE=InnoDB;
741
742 CREATE TABLE `RackObjectHistory` (
743 `id` int(10) unsigned default NULL,
744 `name` char(255) default NULL,
745 `label` char(255) default NULL,
746 `objtype_id` int(10) unsigned default NULL,
747 `asset_no` char(64) default NULL,
748 `has_problems` enum('yes','no') NOT NULL default 'no',
749 `comment` text,
750 `ctime` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
751 `user_name` char(64) default NULL,
752 KEY `id` (`id`),
753 CONSTRAINT `RackObjectHistory-FK-object_id` FOREIGN KEY (`id`) REFERENCES `RackObject` (`id`) ON DELETE CASCADE
754 ) ENGINE=InnoDB;
755
756 CREATE TABLE `RackRow` (
757 `id` int(10) unsigned NOT NULL auto_increment,
758 `name` char(255) NOT NULL,
759 PRIMARY KEY (`id`),
760 UNIQUE KEY `name` (`name`)
761 ) ENGINE=InnoDB;
762
763 CREATE TABLE `RackSpace` (
764 `rack_id` int(10) unsigned NOT NULL default '0',
765 `unit_no` int(10) unsigned NOT NULL default '0',
766 `atom` enum('front','interior','rear') NOT NULL default 'interior',
767 `state` enum('A','U','T','W') NOT NULL default 'A',
768 `object_id` int(10) unsigned default NULL,
769 PRIMARY KEY (`rack_id`,`unit_no`,`atom`),
770 KEY `RackSpace_object_id` (`object_id`),
771 CONSTRAINT `RackSpace-FK-rack_id` FOREIGN KEY (`rack_id`) REFERENCES `Rack` (`id`),
772 CONSTRAINT `RackSpace-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `RackObject` (`id`) ON DELETE CASCADE
773 ) ENGINE=InnoDB;
774
775 CREATE TABLE `Script` (
776 `script_name` char(64) NOT NULL,
777 `script_text` longtext,
778 PRIMARY KEY (`script_name`)
779 ) ENGINE=InnoDB;
780
781 CREATE TABLE `TagStorage` (
782 `entity_realm` enum('file','ipv4net','ipv4vs','ipv4rspool','object','rack','user','ipv6net') NOT NULL default 'object',
783 `entity_id` int(10) unsigned NOT NULL,
784 `tag_id` int(10) unsigned NOT NULL default '0',
785 UNIQUE KEY `entity_tag` (`entity_realm`,`entity_id`,`tag_id`),
786 KEY `entity_id` (`entity_id`),
787 KEY `TagStorage-FK-tag_id` (`tag_id`),
788 CONSTRAINT `TagStorage-FK-tag_id` FOREIGN KEY (`tag_id`) REFERENCES `TagTree` (`id`)
789 ) ENGINE=InnoDB;
790
791 CREATE TABLE `TagTree` (
792 `id` int(10) unsigned NOT NULL auto_increment,
793 `parent_id` int(10) unsigned default NULL,
794 `tag` char(255) default NULL,
795 PRIMARY KEY (`id`),
796 UNIQUE KEY `tag` (`tag`),
797 KEY `TagTree-K-parent_id` (`parent_id`),
798 CONSTRAINT `TagTree-K-parent_id` FOREIGN KEY (`parent_id`) REFERENCES `TagTree` (`id`)
799 ) ENGINE=InnoDB;
800
801 CREATE TABLE `UserAccount` (
802 `user_id` int(10) unsigned NOT NULL auto_increment,
803 `user_name` char(64) NOT NULL default '',
804 `user_password_hash` char(40) default NULL,
805 `user_realname` char(64) default NULL,
806 PRIMARY KEY (`user_id`),
807 UNIQUE KEY `user_name` (`user_name`)
808 ) ENGINE=MyISAM AUTO_INCREMENT=10000;
809
810 CREATE TABLE `UserConfig` (
811 `varname` char(32) NOT NULL,
812 `varvalue` text NOT NULL,
813 `user` char(64) NOT NULL,
814 UNIQUE KEY `user_varname` (`user`,`varname`)
815 ) ENGINE=InnoDB;
816
817 CREATE TABLE `VLANDescription` (
818 `domain_id` int(10) unsigned NOT NULL,
819 `vlan_id` int(10) unsigned NOT NULL default '0',
820 `vlan_type` enum('ondemand','compulsory','alien') NOT NULL default 'ondemand',
821 `vlan_descr` char(255) default NULL,
822 PRIMARY KEY (`domain_id`,`vlan_id`),
823 KEY `vlan_id` (`vlan_id`),
824 CONSTRAINT `VLANDescription-FK-domain_id` FOREIGN KEY (`domain_id`) REFERENCES `VLANDomain` (`id`) ON DELETE CASCADE,
825 CONSTRAINT `VLANDescription-FK-vlan_id` FOREIGN KEY (`vlan_id`) REFERENCES `VLANValidID` (`vlan_id`)
826 ) ENGINE=InnoDB;
827
828 CREATE TABLE `VLANDomain` (
829 `id` int(10) unsigned NOT NULL auto_increment,
830 `description` char(255) default NULL,
831 PRIMARY KEY (`id`),
832 UNIQUE KEY `description` (`description`)
833 ) ENGINE=InnoDB;
834
835 CREATE TABLE `VLANIPv4` (
836 `domain_id` int(10) unsigned NOT NULL,
837 `vlan_id` int(10) unsigned NOT NULL,
838 `ipv4net_id` int(10) unsigned NOT NULL,
839 UNIQUE KEY `network-domain` (`ipv4net_id`,`domain_id`),
840 KEY `VLANIPv4-FK-compound` (`domain_id`,`vlan_id`),
841 CONSTRAINT `VLANIPv4-FK-compound` FOREIGN KEY (`domain_id`, `vlan_id`) REFERENCES `VLANDescription` (`domain_id`, `vlan_id`) ON DELETE CASCADE,
842 CONSTRAINT `VLANIPv4-FK-ipv4net_id` FOREIGN KEY (`ipv4net_id`) REFERENCES `IPv4Network` (`id`) ON DELETE CASCADE
843 ) ENGINE=InnoDB;
844
845 CREATE TABLE `VLANIPv6` (
846 `domain_id` int(10) unsigned NOT NULL,
847 `vlan_id` int(10) unsigned NOT NULL,
848 `ipv6net_id` int(10) unsigned NOT NULL,
849 UNIQUE KEY `network-domain` (`ipv6net_id`,`domain_id`),
850 KEY `VLANIPv6-FK-compound` (`domain_id`,`vlan_id`),
851 CONSTRAINT `VLANIPv6-FK-compound` FOREIGN KEY (`domain_id`, `vlan_id`) REFERENCES `VLANDescription` (`domain_id`, `vlan_id`) ON DELETE CASCADE,
852 CONSTRAINT `VLANIPv6-FK-ipv6net_id` FOREIGN KEY (`ipv6net_id`) REFERENCES `IPv6Network` (`id`) ON DELETE CASCADE
853 ) ENGINE=InnoDB;
854
855 CREATE TABLE `VLANSTRule` (
856 `vst_id` int(10) unsigned NOT NULL,
857 `rule_no` int(10) unsigned NOT NULL,
858 `port_pcre` char(255) NOT NULL,
859 `port_role` enum('access','trunk','anymode','uplink','downlink','none') NOT NULL default 'none',
860 `wrt_vlans` char(255) default NULL,
861 `description` char(255) default NULL,
862 UNIQUE KEY `vst-rule` (`vst_id`,`rule_no`),
863 CONSTRAINT `VLANSTRule-FK-vst_id` FOREIGN KEY (`vst_id`) REFERENCES `VLANSwitchTemplate` (`id`) ON DELETE CASCADE
864 ) ENGINE=InnoDB;
865
866 CREATE TABLE `VLANSwitch` (
867 `object_id` int(10) unsigned NOT NULL,
868 `domain_id` int(10) unsigned NOT NULL,
869 `template_id` int(10) unsigned NOT NULL,
870 `mutex_rev` int(10) unsigned NOT NULL default '0',
871 `out_of_sync` enum('yes','no') NOT NULL default 'yes',
872 `last_errno` int(10) unsigned NOT NULL default '0',
873 `last_change` timestamp NOT NULL default '0000-00-00 00:00:00',
874 `last_push_started` timestamp NOT NULL default '0000-00-00 00:00:00',
875 `last_push_finished` timestamp NOT NULL default '0000-00-00 00:00:00',
876 `last_error_ts` timestamp NOT NULL default '0000-00-00 00:00:00',
877 UNIQUE KEY `object_id` (`object_id`),
878 KEY `domain_id` (`domain_id`),
879 KEY `template_id` (`template_id`),
880 KEY `out_of_sync` (`out_of_sync`),
881 KEY `last_errno` (`last_errno`),
882 CONSTRAINT `VLANSwitch-FK-domain_id` FOREIGN KEY (`domain_id`) REFERENCES `VLANDomain` (`id`),
883 CONSTRAINT `VLANSwitch-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `RackObject` (`id`),
884 CONSTRAINT `VLANSwitch-FK-template_id` FOREIGN KEY (`template_id`) REFERENCES `VLANSwitchTemplate` (`id`)
885 ) ENGINE=InnoDB;
886
887 CREATE TABLE `VLANSwitchTemplate` (
888 `id` int(10) unsigned NOT NULL auto_increment,
889 `mutex_rev` int(10) NOT NULL,
890 `description` char(255) default NULL,
891 `saved_by` char(64) NOT NULL,
892 PRIMARY KEY (`id`),
893 UNIQUE KEY `description` (`description`)
894 ) ENGINE=InnoDB;
895
896 CREATE TABLE `VLANValidID` (
897 `vlan_id` int(10) unsigned NOT NULL default '1',
898 PRIMARY KEY (`vlan_id`)
899 ) ENGINE=InnoDB;
900
901 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
902 END_OF_FILE;
903 ##########################################################################
904 case 'dictbase':
905 return <<<END_OF_FILE
906 INSERT INTO `Attribute` (`id`, `type`, `name`) VALUES
907 (1,'string','OEM S/N 1'),
908 (2,'dict','HW type'),
909 (3,'string','FQDN'),
910 (4,'dict','SW type'),
911 (5,'string','SW version'),
912 (6,'uint','number of ports'),
913 (7,'float','max. current, Ampers'),
914 (8,'float','power load, percents'),
915 (14,'string','contact person'),
916 (13,'float','max power, Watts'),
917 (16,'uint','flash memory, MB'),
918 (17,'uint','DRAM, MB'),
919 (18,'uint','CPU, MHz'),
920 (20,'string','OEM S/N 2'),
921 (21,'string','support contract expiration'),
922 (22,'string','HW warranty expiration'),
923 (24,'string','SW warranty expiration'),
924 (25,'string','UUID'),
925 (26,'dict','Hypervisor');
926
927 INSERT INTO `AttributeMap` (`objtype_id`, `attr_id`, `chapter_id`) VALUES
928 (2,1,NULL),
929 (2,2,27),
930 (2,3,NULL),
931 (2,5,NULL),
932 (4,1,NULL),
933 (4,2,11),
934 (4,3,NULL),
935 (4,4,13),
936 (4,14,NULL),
937 (4,21,NULL),
938 (4,22,NULL),
939 (4,24,NULL),
940 (4,25,NULL),
941 (4,26,29),
942 (5,1,NULL),
943 (5,2,18),
944 (6,1,NULL),
945 (6,2,19),
946 (6,20,NULL),
947 (7,1,NULL),
948 (7,2,17),
949 (7,3,NULL),
950 (7,4,16),
951 (7,5,NULL),
952 (7,14,NULL),
953 (7,16,NULL),
954 (7,17,NULL),
955 (7,18,NULL),
956 (7,21,NULL),
957 (7,22,NULL),
958 (7,24,NULL),
959 (8,1,NULL),
960 (8,2,12),
961 (8,3,NULL),
962 (8,4,14),
963 (8,5,NULL),
964 (8,14,NULL),
965 (8,16,NULL),
966 (8,17,NULL),
967 (8,18,NULL),
968 (8,20,NULL),
969 (8,21,NULL),
970 (8,22,NULL),
971 (8,24,NULL),
972 (9,6,NULL),
973 (12,1,NULL),
974 (12,3,NULL),
975 (12,7,NULL),
976 (12,8,NULL),
977 (12,13,NULL),
978 (12,20,NULL),
979 (445,1,NULL),
980 (445,2,21),
981 (445,3,NULL),
982 (445,5,NULL),
983 (445,14,NULL),
984 (445,22,NULL),
985 (447,1,NULL),
986 (447,2,22),
987 (447,3,NULL),
988 (447,5,NULL),
989 (447,14,NULL),
990 (447,22,NULL),
991 (15,2,23),
992 (798,1,NULL),
993 (798,2,24),
994 (798,3,NULL),
995 (798,5,NULL),
996 (798,14,NULL),
997 (798,16,NULL),
998 (798,17,NULL),
999 (798,18,NULL),
1000 (798,20,NULL),
1001 (798,21,NULL),
1002 (798,22,NULL),
1003 (798,24,NULL),
1004 (965,1,NULL),
1005 (965,3,NULL),
1006 (965,2,25),
1007 (1055,2,26),
1008 (1323,1,NULL),
1009 (1323,2,28),
1010 (1323,3,NULL),
1011 (1323,5,NULL),
1012 (1502,1,NULL),
1013 (1502,2,31),
1014 (1502,3,NULL),
1015 (1502,14,NULL),
1016 (1502,20,NULL),
1017 (1502,21,NULL),
1018 (1502,22,NULL),
1019 (1503,1,NULL),
1020 (1503,2,30),
1021 (1503,3,NULL),
1022 (1503,4,14),
1023 (1503,5,NULL),
1024 (1503,14,NULL),
1025 (1503,16,NULL),
1026 (1503,17,NULL),
1027 (1503,18,NULL),
1028 (1503,20,NULL),
1029 (1503,21,NULL),
1030 (1503,22,NULL),
1031 (1503,24,NULL),
1032 (1504,3,NULL),
1033 (1504,4,13),
1034 (1504,14,NULL),
1035 (1504,24,NULL),
1036 (1505,14,NULL),
1037 (1506,14,NULL),
1038 (1506,17,NULL),
1039 (1506,18,NULL),
1040 (1507,1,NULL),
1041 (1507,2,32),
1042 (1507,3,NULL),
1043 (1507,4,33),
1044 (1507,5,NULL),
1045 (1507,14,NULL),
1046 (1507,20,NULL),
1047 (1507,21,NULL),
1048 (1507,22,NULL);
1049
1050 INSERT INTO `Chapter` (`id`, `sticky`, `name`) VALUES
1051 (1,'yes','RackObjectType'),
1052 (2,'yes','PortOuterInterface'),
1053 (11,'no','server models'),
1054 (12,'no','network switch models'),
1055 (13,'no','server OS type'),
1056 (14,'no','switch OS type'),
1057 (16,'no','router OS type'),
1058 (17,'no','router models'),
1059 (18,'no','disk array models'),
1060 (19,'no','tape library models'),
1061 (21,'no','KVM switch models'),
1062 (22,'no','multiplexer models'),
1063 (23,'no','console models'),
1064 (24,'no','network security models'),
1065 (25,'no','wireless models'),
1066 (26,'no','fibre channel switch models'),
1067 (27,'no','PDU models'),
1068 (28,'no','Voice/video hardware'),
1069 (29,'no','Yes/No'),
1070 (30,'no','network chassis models'),
1071 (31,'no','server chassis models'),
1072 (32,'no','virtual switch models'),
1073 (33,'no','virtual switch OS type');
1074
1075 INSERT INTO `PortInnerInterface` VALUES
1076 (1,'hardwired'),
1077 (2,'SFP-100'),
1078 (3,'GBIC'),
1079 (4,'SFP-1000'),
1080 (5,'XENPAK'),
1081 (6,'X2'),
1082 (7,'XPAK'),
1083 (8,'XFP'),
1084 (9,'SFP+');
1085
1086 INSERT INTO `ObjectParentCompat` VALUES
1087 (3,13),
1088 (4,1504),
1089 (4,1507),
1090 (1502,4),
1091 (1503,8),
1092 (1505,4),
1093 (1505,1504),
1094 (1505,1506),
1095 (1505,1507),
1096 (1506,1504);
1097
1098 INSERT INTO `PortInterfaceCompat` VALUES
1099 (2,1208),(2,1195),(2,1196),(2,1197),(2,1198),(2,1199),(2,1200),(2,1201),
1100 (3,1078),(3,24),(3,34),(3,1202),(3,1203),(3,1204),(3,1205),(3,1206),(3,1207),
1101 (4,1077),(4,24),(4,34),(4,1202),(4,1203),(4,1204),(4,1205),(4,1206),(4,1207),
1102 (5,1079),(5,30),(5,35),(5,36),(5,37),(5,38),(5,39),(5,40),
1103 (6,1080),(6,30),(6,35),(6,36),(6,37),(6,38),(6,39),(6,40),
1104 (7,1081),(7,30),(7,35),(7,36),(7,37),(7,38),(7,39),(7,40),
1105 (8,1082),(8,30),(8,35),(8,36),(8,37),(8,38),(8,39),(8,40),
1106 (9,1084),(9,30),(9,35),(9,36),(9,37),(9,38),(9,39),(9,40),
1107 (1,16),(1,19),(1,24),(1,29),(1,31),(1,33),(1,446),(1,681),(1,682),(1,1322);
1108
1109 INSERT INTO `PortCompat` (`type1`, `type2`) VALUES
1110 (17,17),
1111 (18,18),
1112 (19,19),
1113 (20,20),
1114 (21,21),
1115 (21,1195),
1116 (22,22),
1117 (22,1196),
1118 (23,23),
1119 (23,1196),
1120 (24,24),
1121 (25,25),
1122 (26,26),
1123 (27,27),
1124 (28,28),
1125 (18,19),
1126 (19,18),
1127 (18,24),
1128 (24,18),
1129 (19,24),
1130 (24,19),
1131 (29,29),
1132 (20,21),
1133 (20,1083),
1134 (20,1195),
1135 (21,20),
1136 (21,1083),
1137 (22,23),
1138 (23,22),
1139 (25,26),
1140 (25,1202),
1141 (26,25),
1142 (26,1202),
1143 (27,28),
1144 (27,1204),
1145 (28,27),
1146 (28,1204),
1147 (30,30),
1148 (16,1322),
1149 (1322,16),
1150 (29,681),
1151 (29,682),
1152 (32,32),
1153 (33,446),
1154 (34,34),
1155 (35,35),
1156 (36,36),
1157 (37,37),
1158 (38,38),
1159 (39,39),
1160 (40,40),
1161 (41,41),
1162 (439,439),
1163 (446,33),
1164 (681,29),
1165 (681,681),
1166 (681,682),
1167 (682,29),
1168 (682,681),
1169 (682,682),
1170 (1077,1077),
1171 (1083,20),
1172 (1083,21),
1173 (1083,1083),
1174 (1083,1195),
1175 (1084,1084),
1176 (1087,1087),
1177 (1195,20),
1178 (1195,21),
1179 (1195,1083),
1180 (1195,1195),
1181 (1196,22),
1182 (1196,23),
1183 (1196,1196),
1184 (1197,1197),
1185 (1198,1199),
1186 (1199,1198),
1187 (1200,1200),
1188 (1201,1201),
1189 (1202,25),
1190 (1202,26),
1191 (1202,1202),
1192 (1203,1203),
1193 (1204,27),
1194 (1204,28),
1195 (1204,1204),
1196 (1205,1205),
1197 (1206,1207),
1198 (1207,1206),
1199 (1209,1209),
1200 (1210,1210),
1201 (1211,1211),
1202 (1212,1212),
1203 (1213,1213),
1204 (1214,1214),
1205 (1215,1215),
1206 (1216,1216),
1207 (1217,1217),
1208 (1218,1218),
1209 (1219,1219),
1210 (1220,1220),
1211 (1221,1221),
1212 (1222,1222),
1213 (1223,1223),
1214 (1224,1224),
1215 (1225,1225),
1216 (1226,1226),
1217 (1227,1227),
1218 (1228,1228),
1219 (1229,1229),
1220 (1230,1230),
1221 (1231,1231),
1222 (1232,1232),
1223 (1233,1233),
1224 (1234,1234),
1225 (1235,1235),
1226 (1236,1236),
1227 (1237,1237),
1228 (1238,1238),
1229 (1239,1239),
1230 (1240,1240),
1231 (1241,1241),
1232 (1242,1242),
1233 (1243,1243),
1234 (1244,1244),
1235 (1245,1245),
1236 (1246,1246),
1237 (1247,1247),
1238 (1248,1248),
1239 (1249,1249),
1240 (1250,1250),
1241 (1251,1251),
1242 (1252,1252),
1243 (1253,1253),
1244 (1254,1254),
1245 (1255,1255),
1246 (1256,1256),
1247 (1257,1257),
1248 (1258,1258),
1249 (1259,1259),
1250 (1260,1260),
1251 (1261,1261),
1252 (1262,1262),
1253 (1263,1263),
1254 (1264,1264),
1255 (1265,1265),
1256 (1266,1266),
1257 (1267,1267),
1258 (1268,1268),
1259 (1269,1269),
1260 (1270,1270),
1261 (1271,1271),
1262 (1272,1272),
1263 (1273,1273),
1264 (1274,1274),
1265 (1275,1275),
1266 (1276,1276),
1267 (1277,1277),
1268 (1278,1278),
1269 (1279,1279),
1270 (1280,1280),
1271 (1281,1281),
1272 (1282,1282),
1273 (1283,1283),
1274 (1284,1284),
1275 (1285,1285),
1276 (1286,1286),
1277 (1287,1287),
1278 (1288,1288),
1279 (1289,1289),
1280 (1290,1290),
1281 (1291,1291),
1282 (1292,1292),
1283 (1293,1293),
1284 (1294,1294),
1285 (1295,1295),
1286 (1296,1296),
1287 (1297,1297),
1288 (1298,1298),
1289 (1299,1299),
1290 (1300,1300),
1291 (1316,1316);
1292
1293 INSERT INTO `Config` (varname, varvalue, vartype, emptyok, is_hidden, is_userdefined, description) VALUES
1294 ('color_F','8fbfbf','string','no','yes','no','HSV: 180-25-75. Free atoms, they are available for allocation to objects.'),
1295 ('color_A','bfbfbf','string','no','yes','no','HSV: 0-0-75. Absent atoms.'),
1296 ('color_U','bf8f8f','string','no','yes','no','HSV: 0-25-75. Unusable atoms. Some problems keep them from being free.'),
1297 ('color_T','408080','string','no','yes','no','HSV: 180-50-50. Taken atoms, object_id should be set for such.'),
1298 ('color_Th','80ffff','string','no','yes','no','HSV: 180-50-100. Taken atoms with highlight. They are not stored in the database and are only used for highlighting.'),
1299 ('color_Tw','804040','string','no','yes','no','HSV: 0-50-50. Taken atoms with object problem. This is detected at runtime.'),
1300 ('color_Thw','ff8080','string','no','yes','no','HSV: 0-50-100. An object can be both current and problematic. We run highlightObject() first and markupObjectProblems() second.'),
1301 ('MASSCOUNT','8','uint','no','no','yes','&quot;Fast&quot; form is this many records tall'),
1302 ('MAXSELSIZE','30','uint','no','no','yes','&lt;SELECT&gt; lists height'),
1303 ('enterprise','MyCompanyName','string','no','no','no','Organization name'),
1304 ('ROW_SCALE','2','uint','no','no','yes','Picture scale for rack row display'),
1305 ('PORTS_PER_ROW','12','uint','no','no','yes','Ports per row in VLANs tab'),
1306 ('IPV4_ADDRS_PER_PAGE','256','uint','no','no','yes','IPv4 addresses per page'),
1307 ('DEFAULT_RACK_HEIGHT','42','uint','yes','no','yes','Default rack height'),
1308 ('DEFAULT_SLB_VS_PORT','','uint','yes','no','yes','Default port of SLB virtual service'),
1309 ('DEFAULT_SLB_RS_PORT','','uint','yes','no','yes','Default port of SLB real server'),
1310 ('DETECT_URLS','no','string','yes','no','yes','Detect URLs in text fields'),
1311 ('RACK_PRESELECT_THRESHOLD','1','uint','no','no','yes','Rack pre-selection threshold'),
1312 ('DEFAULT_IPV4_RS_INSERVICE','no','string','no','no','yes','Inservice status for new SLB real servers'),
1313 ('AUTOPORTS_CONFIG','4 = 1*33*kvm + 2*24*eth%u;15 = 1*446*kvm','string','yes','no','no','AutoPorts configuration'),
1314 ('DEFAULT_OBJECT_TYPE','4','uint','yes','no','yes','Default object type for new objects'),
1315 ('SHOW_EXPLICIT_TAGS','yes','string','no','no','yes','Show explicit tags'),
1316 ('SHOW_IMPLICIT_TAGS','yes','string','no','no','yes','Show implicit tags'),
1317 ('SHOW_AUTOMATIC_TAGS','no','string','no','no','yes','Show automatic tags'),
1318 ('IPV4_AUTO_RELEASE','1','uint','no','no','yes','Auto-release IPv4 addresses on allocation'),
1319 ('SHOW_LAST_TAB','no','string','yes','no','yes','Remember last tab shown for each page'),
1320 ('EXT_IPV4_VIEW','yes','string','no','no','yes','Extended IPv4 view'),
1321 ('TREE_THRESHOLD','25','uint','yes','no','yes','Tree view auto-collapse threshold'),
1322 ('IPV4_JAYWALK','no','string','no','no','no','Enable IPv4 address allocations w/o covering network'),
1323 ('ADDNEW_AT_TOP','yes','string','no','no','yes','Render "add new" line at top of the list'),
1324 ('IPV4_TREE_SHOW_USAGE','yes','string','no','no','yes','Show address usage in IPv4 tree'),
1325 ('PREVIEW_TEXT_MAXCHARS','10240','uint','yes','no','yes','Max chars for text file preview'),
1326 ('PREVIEW_TEXT_ROWS','25','uint','yes','no','yes','Rows for text file preview'),
1327 ('PREVIEW_TEXT_COLS','80','uint','yes','no','yes','Columns for text file preview'),
1328 ('PREVIEW_IMAGE_MAXPXS','320','uint','yes','no','yes','Max pixels per axis for image file preview'),
1329 ('VENDOR_SIEVE','','string','yes','no','yes','Vendor sieve configuration'),
1330 ('IPV4LB_LISTSRC','{\$typeid_4}','string','yes','no','no','List source: IPv4 load balancers'),
1331 ('IPV4OBJ_LISTSRC','{\$typeid_4} or {\$typeid_7} or {\$typeid_8} or {\$typeid_12} or {\$typeid_445} or {\$typeid_447} or {\$typeid_798} or {\$typeid_1502} or {\$typeid_1503} or {\$typeid_1504} or {\$typeid_1507}','string','yes','no','no','List source: IPv4-enabled objects'),
1332 ('IPV4NAT_LISTSRC','{\$typeid_4} or {\$typeid_7} or {\$typeid_8} or {\$typeid_798}','string','yes','no','no','List source: IPv4 NAT performers'),
1333 ('ASSETWARN_LISTSRC','{\$typeid_4} or {\$typeid_7} or {\$typeid_8}','string','yes','no','no','List source: object, for which asset tag should be set'),
1334 ('NAMEWARN_LISTSRC','{\$typeid_4} or {\$typeid_7} or {\$typeid_8}','string','yes','no','no','List source: object, for which common name should be set'),
1335 ('RACKS_PER_ROW','12','uint','yes','no','yes','Racks per row'),
1336 ('FILTER_PREDICATE_SIEVE','','string','yes','no','no','Predicate sieve regex(7)'),
1337 ('FILTER_DEFAULT_ANDOR','or','string','no','no','no','Default list filter boolean operation (or/and)'),
1338 ('FILTER_SUGGEST_ANDOR','yes','string','no','no','no','Suggest and/or selector in list filter'),
1339 ('FILTER_SUGGEST_TAGS','yes','string','no','no','no','Suggest tags in list filter'),
1340 ('FILTER_SUGGEST_PREDICATES','yes','string','no','no','no','Suggest predicates in list filter'),
1341 ('FILTER_SUGGEST_EXTRA','no','string','no','no','no','Suggest extra expression in list filter'),
1342 ('DEFAULT_SNMP_COMMUNITY','public','string','no','no','no','Default SNMP Community string'),
1343 ('IPV4_ENABLE_KNIGHT','yes','string','no','no','no','Enable IPv4 knight feature'),
1344 ('TAGS_TOPLIST_SIZE','50','uint','yes','no','no','Tags top list size'),
1345 ('TAGS_QUICKLIST_SIZE','20','uint','no','no','no','Tags quick list size'),
1346 ('TAGS_QUICKLIST_THRESHOLD','50','uint','yes','no','no','Tags quick list threshold'),
1347 ('ENABLE_MULTIPORT_FORM','no','string','no','no','no','Enable "Add/update multiple ports" form'),
1348 ('DEFAULT_PORT_IIF_ID','1','uint','no','no','no','Default port inner interface ID'),
1349 ('DEFAULT_PORT_OIF_IDS','1=24; 3=1078; 4=1077; 5=1079; 6=1080; 8=1082; 9=1084','string','no','no','no','Default port outer interface IDs'),
1350 ('IPV4_TREE_RTR_AS_CELL','yes','string','no','no','no','Show full router info for each network in IPv4 tree view'),
1351 ('PROXIMITY_RANGE','0','uint','yes','no','no','Proximity range (0 is current rack only)'),
1352 ('VLANSWITCH_LISTSRC', '', 'string', 'yes', 'no', 'yes', 'List of VLAN running switches'),
1353 ('VLANIPV4NET_LISTSRC', '', 'string', 'yes', 'no', 'yes', 'List of VLAN-based IPv4 networks'),
1354 ('IPV4_TREE_SHOW_VLAN','yes','string','no','no','yes','Show VLAN for each network in IPv4 tree'),
1355 ('DEFAULT_VDOM_ID','','uint','yes','no','yes','Default VLAN domain ID'),
1356 ('DEFAULT_VST_ID','','uint','yes','no','yes','Default VLAN switch template ID'),
1357 ('8021Q_DEPLOY_MINAGE','300','uint','no','no','no','802.1Q deploy minimum age'),
1358 ('8021Q_DEPLOY_MAXAGE','3600','uint','no','no','no','802.1Q deploy maximum age'),
1359 ('8021Q_DEPLOY_RETRY','10800','uint','no','no','no','802.1Q deploy retry timer'),
1360 ('8021Q_WRI_AFTER_CONFT_LISTSRC','false','string','no','no','no','802.1Q: save device configuration after deploy (RackCode)'),
1361 ('8021Q_INSTANT_DEPLOY','no','string','no','no','yes','802.1Q: instant deploy'),
1362 ('STATIC_FILTER','yes','string','no','no','yes','Enable Filter Caching'),
1363 ('ENABLE_BULKPORT_FORM','yes','string','no','no','yes','Enable "Bulk Port" form'),
1364 ('CDP_RUNNERS_LISTSRC', '', 'string', 'yes', 'no', 'no', 'List of devices running CDP'),
1365 ('LLDP_RUNNERS_LISTSRC', '', 'string', 'yes', 'no', 'no', 'List of devices running LLDP'),
1366 ('HNDP_RUNNERS_LISTSRC', '', 'string', 'yes', 'no', 'no', 'List of devices running HNDP (RackCode)'),
1367 ('SHRINK_TAG_TREE_ON_CLICK','yes','string','no','no','yes','Dynamically hide useless tags in tagtree'),
1368 ('MAX_UNFILTERED_ENTITIES','0','uint','no','no','yes','Max item count to display on unfiltered result page'),
1369 ('SYNCDOMAIN_MAX_PROCESSES','0','uint','yes','no', 'no', 'How many worker proceses syncdomain cron script should create'),
1370 ('PORT_EXCLUSION_LISTSRC','{\$typeid_3} or {\$typeid_10} or {\$typeid_11} or {\$typeid_1505} or {\$typeid_1506}','string','yes','no','no','List source: objects without ports'),
1371 ('FILTER_RACKLIST_BY_TAGS','yes','string','yes','no','yes','Rackspace: show only racks matching the current object\'s tags'),
1372 ('DB_VERSION','0.19.1','string','no','yes','no','Database version.');
1373
1374 INSERT INTO `Script` VALUES ('RackCode','allow {\$userid_1}');
1375
1376 INSERT INTO VLANValidID (vlan_id) VALUES
1377 (1),
1378 (2),
1379 (3),
1380 (4),
1381 (5),
1382 (6),
1383 (7),
1384 (8),
1385 (9),
1386 (10),
1387 (11),
1388 (12),
1389 (13),
1390 (14),
1391 (15),
1392 (16),
1393 (17),
1394 (18),
1395 (19),
1396 (20),
1397 (21),
1398 (22),
1399 (23),
1400 (24),
1401 (25),
1402 (26),
1403 (27),
1404 (28),
1405 (29),
1406 (30),
1407 (31),
1408 (32),
1409 (33),
1410 (34),
1411 (35),
1412 (36),
1413 (37),
1414 (38),
1415 (39),
1416 (40),
1417 (41),
1418 (42),
1419 (43),
1420 (44),
1421 (45),
1422 (46),
1423 (47),
1424 (48),
1425 (49),
1426 (50),
1427 (51),
1428 (52),
1429 (53),
1430 (54),
1431 (55),
1432 (56),
1433 (57),
1434 (58),
1435 (59),
1436 (60),
1437 (61),
1438 (62),
1439 (63),
1440 (64),
1441 (65),
1442 (66),
1443 (67),
1444 (68),
1445 (69),
1446 (70),
1447 (71),
1448 (72),
1449 (73),
1450 (74),
1451 (75),
1452 (76),
1453 (77),
1454 (78),
1455 (79),
1456 (80),
1457 (81),
1458 (82),
1459 (83),
1460 (84),
1461 (85),
1462 (86),
1463 (87),
1464 (88),
1465 (89),
1466 (90),
1467 (91),
1468 (92),
1469 (93),
1470 (94),
1471 (95),
1472 (96),
1473 (97),
1474 (98),
1475 (99),
1476 (100),
1477 (101),
1478 (102),
1479 (103),
1480 (104),
1481 (105),
1482 (106),
1483 (107),
1484 (108),
1485 (109),
1486 (110),
1487 (111),
1488 (112),
1489 (113),
1490 (114),
1491 (115),
1492 (116),
1493 (117),
1494 (118),
1495 (119),
1496 (120),
1497 (121),
1498 (122),
1499 (123),
1500 (124),
1501 (125),
1502 (126),
1503 (127),
1504 (128),
1505 (129),
1506 (130),
1507 (131),
1508 (132),
1509 (133),
1510 (134),
1511 (135),
1512 (136),
1513 (137),
1514 (138),
1515 (139),
1516 (140),
1517 (141),
1518 (142),
1519 (143),
1520 (144),
1521 (145),
1522 (146),
1523 (147),
1524 (148),
1525 (149),
1526 (150),
1527 (151),
1528 (152),
1529 (153),
1530 (154),
1531 (155),
1532 (156),
1533 (157),
1534 (158),
1535 (159),
1536 (160),
1537 (161),
1538 (162),
1539 (163),
1540 (164),
1541 (165),
1542 (166),
1543 (167),
1544 (168),
1545 (169),
1546 (170),
1547 (171),
1548 (172),
1549 (173),
1550 (174),
1551 (175),
1552 (176),
1553 (177),
1554 (178),
1555 (179),
1556 (180),
1557 (181),
1558 (182),
1559 (183),
1560 (184),
1561 (185),
1562 (186),
1563 (187),
1564 (188),
1565 (189),
1566 (190),
1567 (191),
1568 (192),
1569 (193),
1570 (194),
1571 (195),
1572 (196),
1573 (197),
1574 (198),
1575 (199),
1576 (200),
1577 (201),
1578 (202),
1579 (203),
1580 (204),
1581 (205),
1582 (206),
1583 (207),
1584 (208),
1585 (209),
1586 (210),
1587 (211),
1588 (212),
1589 (213),
1590 (214),
1591 (215),
1592 (216),
1593 (217),
1594 (218),
1595 (219),
1596 (220),
1597 (221),
1598 (222),
1599 (223),
1600 (224),
1601 (225),
1602 (226),
1603 (227),
1604 (228),
1605 (229),
1606 (230),
1607 (231),
1608 (232),
1609 (233),
1610 (234),
1611 (235),
1612 (236),
1613 (237),
1614 (238),
1615 (239),
1616 (240),
1617 (241),
1618 (242),
1619 (243),
1620 (244),
1621 (245),
1622 (246),
1623 (247),
1624 (248),
1625 (249),
1626 (250),
1627 (251),
1628 (252),
1629 (253),
1630 (254),
1631 (255),
1632 (256),
1633 (257),
1634 (258),
1635 (259),
1636 (260),
1637 (261),
1638 (262),
1639 (263),
1640 (264),
1641 (265),
1642 (266),
1643 (267),
1644 (268),
1645 (269),
1646 (270),
1647 (271),
1648 (272),
1649 (273),
1650 (274),
1651 (275),
1652 (276),
1653 (277),
1654 (278),
1655 (279),
1656 (280),
1657 (281),
1658 (282),
1659 (283),
1660 (284),
1661 (285),
1662 (286),
1663 (287),
1664 (288),
1665 (289),
1666 (290),
1667 (291),
1668 (292),
1669 (293),
1670 (294),
1671 (295),
1672 (296),
1673 (297),
1674 (298),
1675 (299),
1676 (300),
1677 (301),
1678 (302),
1679 (303),
1680 (304),
1681 (305),
1682 (306),
1683 (307),
1684 (308),
1685 (309),
1686 (310),
1687 (311),
1688 (312),
1689 (313),
1690 (314),
1691 (315),
1692 (316),
1693 (317),
1694 (318),
1695 (319),
1696 (320),
1697 (321),
1698 (322),
1699 (323),
1700 (324),
1701 (325),
1702 (326),
1703 (327),
1704 (328),
1705 (329),
1706 (330),
1707 (331),
1708 (332),
1709 (333),
1710 (334),
1711 (335),
1712 (336),
1713 (337),
1714 (338),
1715 (339),
1716 (340),
1717 (341),
1718 (342),
1719 (343),
1720 (344),
1721 (345),
1722 (346),
1723 (347),
1724 (348),
1725 (349),
1726 (350),
1727 (351),
1728 (352),
1729 (353),
1730 (354),
1731 (355),
1732 (356),
1733 (357),
1734 (358),
1735 (359),
1736 (360),
1737 (361),
1738 (362),
1739 (363),
1740 (364),
1741 (365),
1742 (366),
1743 (367),
1744 (368),
1745 (369),
1746 (370),
1747 (371),
1748 (372),
1749 (373),
1750 (374),
1751 (375),
1752 (376),
1753 (377),
1754 (378),
1755 (379),
1756 (380),
1757 (381),
1758 (382),
1759 (383),
1760 (384),
1761 (385),
1762 (386),
1763 (387),
1764 (388),
1765 (389),
1766 (390),
1767 (391),
1768 (392),
1769 (393),
1770 (394),
1771 (395),
1772 (396),
1773 (397),
1774 (398),
1775 (399),
1776 (400),
1777 (401),
1778 (402),
1779 (403),
1780 (404),
1781 (405),
1782 (406),
1783 (407),
1784 (408),
1785 (409),
1786 (410),
1787 (411),
1788 (412),
1789 (413),
1790 (414),
1791 (415),
1792 (416),
1793 (417),
1794 (418),
1795 (419),
1796 (420),
1797 (421),
1798 (422),
1799 (423),
1800 (424),
1801 (425),
1802 (426),
1803 (427),
1804 (428),
1805 (429),
1806 (430),
1807 (431),
1808 (432),
1809 (433),
1810 (434),
1811 (435),
1812 (436),
1813 (437),
1814 (438),
1815 (439),
1816 (440),
1817 (441),
1818 (442),
1819 (443),
1820 (444),
1821 (445),
1822 (446),
1823 (447),
1824 (448),
1825 (449),
1826 (450),
1827 (451),
1828 (452),
1829 (453),
1830 (454),
1831 (455),
1832 (456),
1833 (457),
1834 (458),
1835 (459),
1836 (460),
1837 (461),
1838 (462),
1839 (463),
1840 (464),
1841 (465),
1842 (466),
1843 (467),
1844 (468),
1845 (469),
1846 (470),
1847 (471),
1848 (472),
1849 (473),
1850 (474),
1851 (475),
1852 (476),
1853 (477),
1854 (478),
1855 (479),
1856 (480),
1857 (481),
1858 (482),
1859 (483),
1860 (484),
1861 (485),
1862 (486),
1863 (487),
1864 (488),
1865 (489),
1866 (490),
1867 (491),
1868 (492),
1869 (493),
1870 (494),
1871 (495),
1872 (496),
1873 (497),
1874 (498),
1875 (499),
1876 (500),
1877 (501),
1878 (502),
1879 (503),
1880 (504),
1881 (505),
1882 (506),
1883 (507),
1884 (508),
1885 (509),
1886 (510),
1887 (511),
1888 (512),
1889 (513),
1890 (514),
1891 (515),
1892 (516),
1893 (517),
1894 (518),
1895 (519),
1896 (520),
1897 (521),
1898 (522),
1899 (523),
1900 (524),
1901 (525),
1902 (526),
1903 (527),
1904 (528),
1905 (529),
1906 (530),
1907 (531),
1908 (532),
1909 (533),
1910 (534),
1911 (535),
1912 (536),
1913 (537),
1914 (538),
1915 (539),
1916 (540),
1917 (541),
1918 (542),
1919 (543),
1920 (544),
1921 (545),
1922 (546),
1923 (547),
1924 (548),
1925 (549),
1926 (550),
1927 (551),
1928 (552),
1929 (553),
1930 (554),
1931 (555),
1932 (556),
1933 (557),
1934 (558),
1935 (559),
1936 (560),
1937 (561),
1938 (562),
1939 (563),
1940 (564),
1941 (565),
1942 (566),
1943 (567),
1944 (568),
1945 (569),
1946 (570),
1947 (571),
1948 (572),
1949 (573),
1950 (574),
1951 (575),
1952 (576),
1953 (577),
1954 (578),
1955 (579),
1956 (580),
1957 (581),
1958 (582),
1959 (583),
1960 (584),
1961 (585),
1962 (586),
1963 (587),
1964 (588),
1965 (589),
1966 (590),
1967 (591),
1968 (592),
1969 (593),
1970 (594),
1971 (595),
1972 (596),
1973 (597),
1974 (598),
1975 (599),
1976 (600),
1977 (601),
1978 (602),
1979 (603),
1980 (604),
1981 (605),
1982 (606),
1983 (607),
1984 (608),
1985 (609),
1986 (610),
1987 (611),
1988 (612),
1989 (613),
1990 (614),
1991 (615),
1992 (616),
1993 (617),
1994 (618),
1995 (619),
1996 (620),
1997 (621),
1998 (622),
1999 (623),
2000 (624),
2001 (625),
2002 (626),
2003 (627),
2004 (628),
2005 (629),
2006 (630),
2007 (631),
2008 (632),
2009 (633),
2010 (634),
2011 (635),
2012 (636),
2013 (637),
2014 (638),
2015 (639),
2016 (640),
2017 (641),
2018 (642),
2019 (643),
2020 (644),
2021 (645),
2022 (646),
2023 (647),
2024 (648),
2025 (649),
2026 (650),
2027 (651),
2028 (652),
2029 (653),
2030 (654),
2031 (655),
2032 (656),
2033 (657),
2034 (658),
2035 (659),
2036 (660),
2037 (661),
2038 (662),
2039 (663),
2040 (664),
2041 (665),
2042 (666),
2043 (667),
2044 (668),
2045 (669),
2046 (670),
2047 (671),
2048 (672),
2049 (673),
2050 (674),
2051 (675),
2052 (676),
2053 (677),
2054 (678),
2055 (679),
2056 (680),
2057 (681),
2058 (682),
2059 (683),
2060 (684),
2061 (685),
2062 (686),
2063 (687),
2064 (688),
2065 (689),
2066 (690),
2067 (691),
2068 (692),
2069 (693),
2070 (694),
2071 (695),
2072 (696),
2073 (697),
2074 (698),
2075 (699),
2076 (700),
2077 (701),
2078 (702),
2079 (703),
2080 (704),
2081 (705),
2082 (706),
2083 (707),
2084 (708),
2085 (709),
2086 (710),
2087 (711),
2088 (712),
2089 (713),
2090 (714),
2091 (715),
2092 (716),
2093 (717),
2094 (718),
2095 (719),
2096 (720),
2097 (721),
2098 (722),
2099 (723),
2100 (724),
2101 (725),
2102 (726),
2103 (727),
2104 (728),
2105 (729),
2106 (730),
2107 (731),
2108 (732),
2109 (733),
2110 (734),
2111 (735),
2112 (736),
2113 (737),
2114 (738),
2115 (739),
2116 (740),
2117 (741),
2118 (742),
2119 (743),
2120 (744),
2121 (745),
2122 (746),
2123 (747),
2124 (748),
2125 (749),
2126 (750),
2127 (751),
2128 (752),
2129 (753),
2130 (754),
2131 (755),
2132 (756),
2133 (757),
2134 (758),
2135 (759),
2136 (760),
2137 (761),
2138 (762),
2139 (763),
2140 (764),
2141 (765),
2142 (766),
2143 (767),
2144 (768),
2145 (769),
2146 (770),
2147 (771),
2148 (772),
2149 (773),
2150 (774),
2151 (775),
2152 (776),
2153 (777),
2154 (778),
2155 (779),
2156 (780),
2157 (781),
2158 (782),
2159 (783),
2160 (784),
2161 (785),
2162 (786),
2163 (787),
2164 (788),
2165 (789),
2166 (790),
2167 (791),
2168 (792),
2169 (793),
2170 (794),
2171 (795),
2172 (796),
2173 (797),
2174 (798),
2175 (799),
2176 (800),
2177 (801),
2178 (802),
2179 (803),
2180 (804),
2181 (805),
2182 (806),
2183 (807),
2184 (808),
2185 (809),
2186 (810),
2187 (811),
2188 (812),
2189 (813),
2190 (814),
2191 (815),
2192 (816),
2193 (817),
2194 (818),
2195 (819),
2196 (820),
2197 (821),
2198 (822),
2199 (823),
2200 (824),
2201 (825),
2202 (826),
2203 (827),
2204 (828),
2205 (829),
2206 (830),
2207 (831),
2208 (832),
2209 (833),
2210 (834),
2211 (835),
2212 (836),
2213 (837),
2214 (838),
2215 (839),
2216 (840),
2217 (841),
2218 (842),
2219 (843),
2220 (844),
2221 (845),
2222 (846),
2223 (847),
2224 (848),
2225 (849),
2226 (850),
2227 (851),
2228 (852),
2229 (853),
2230 (854),
2231 (855),
2232 (856),
2233 (857),
2234 (858),
2235 (859),
2236 (860),
2237 (861),
2238 (862),
2239 (863),
2240 (864),
2241 (865),
2242 (866),
2243 (867),
2244 (868),
2245 (869),
2246 (870),
2247 (871),
2248 (872),
2249 (873),
2250 (874),
2251 (875),
2252 (876),
2253 (877),
2254 (878),
2255 (879),
2256 (880),
2257 (881),
2258 (882),
2259 (883),
2260 (884),
2261 (885),
2262 (886),
2263 (887),
2264 (888),
2265 (889),
2266 (890),
2267 (891),
2268 (892),
2269 (893),
2270 (894),
2271 (895),
2272 (896),
2273 (897),
2274 (898),
2275 (899),
2276 (900),
2277 (901),
2278 (902),
2279 (903),
2280 (904),
2281 (905),
2282 (906),
2283 (907),
2284 (908),
2285 (909),
2286 (910),
2287 (911),
2288 (912),
2289 (913),
2290 (914),
2291 (915),
2292 (916),
2293 (917),
2294 (918),
2295 (919),
2296 (920),
2297 (921),
2298 (922),
2299 (923),
2300 (924),
2301 (925),
2302 (926),
2303 (927),
2304 (928),
2305 (929),
2306 (930),
2307 (931),
2308 (932),
2309 (933),
2310 (934),
2311 (935),
2312 (936),
2313 (937),
2314 (938),
2315 (939),
2316 (940),
2317 (941),
2318 (942),
2319 (943),
2320 (944),
2321 (945),
2322 (946),
2323 (947),
2324 (948),
2325 (949),
2326 (950),
2327 (951),
2328 (952),
2329 (953),
2330 (954),
2331 (955),
2332 (956),
2333 (957),
2334 (958),
2335 (959),
2336 (960),
2337 (961),
2338 (962),
2339 (963),
2340 (964),
2341 (965),
2342 (966),
2343 (967),
2344 (968),
2345 (969),
2346 (970),
2347 (971),
2348 (972),
2349 (973),
2350 (974),
2351 (975),
2352 (976),
2353 (977),
2354 (978),
2355 (979),
2356 (980),
2357 (981),
2358 (982),
2359 (983),
2360 (984),
2361 (985),
2362 (986),
2363 (987),
2364 (988),
2365 (989),
2366 (990),
2367 (991),
2368 (992),
2369 (993),
2370 (994),
2371 (995),
2372 (996),
2373 (997),
2374 (998),
2375 (999),
2376 (1000),
2377 (1001),
2378 (1002),
2379 (1003),
2380 (1004),
2381 (1005),
2382 (1006),
2383 (1007),
2384 (1008),
2385 (1009),
2386 (1010),
2387 (1011),
2388 (1012),
2389 (1013),
2390 (1014),
2391 (1015),
2392 (1016),
2393 (1017),
2394 (1018),
2395 (1019),
2396 (1020),
2397 (1021),
2398 (1022),
2399 (1023),
2400 (1024),
2401 (1025),
2402 (1026),
2403 (1027),
2404 (1028),
2405 (1029),
2406 (1030),
2407 (1031),
2408 (1032),
2409 (1033),
2410 (1034),
2411 (1035),
2412 (1036),
2413 (1037),
2414 (1038),
2415 (1039),
2416 (1040),
2417 (1041),
2418 (1042),
2419 (1043),
2420 (1044),
2421 (1045),
2422 (1046),
2423 (1047),
2424 (1048),
2425 (1049),
2426 (1050),
2427 (1051),
2428 (1052),
2429 (1053),
2430 (1054),
2431 (1055),
2432 (1056),
2433 (1057),
2434 (1058),
2435 (1059),
2436 (1060),
2437 (1061),
2438 (1062),
2439 (1063),
2440 (1064),
2441 (1065),
2442 (1066),
2443 (1067),
2444 (1068),
2445 (1069),
2446 (1070),
2447 (1071),
2448 (1072),
2449 (1073),
2450 (1074),
2451 (1075),
2452 (1076),
2453 (1077),
2454 (1078),
2455 (1079),
2456 (1080),
2457 (1081),
2458 (1082),
2459 (1083),
2460 (1084),
2461 (1085),
2462 (1086),
2463 (1087),
2464 (1088),
2465 (1089),
2466 (1090),
2467 (1091),
2468 (1092),
2469 (1093),
2470 (1094),
2471 (1095),
2472 (1096),
2473 (1097),
2474 (1098),
2475 (1099),
2476 (1100),
2477 (1101),
2478 (1102),
2479 (1103),
2480 (1104),
2481 (1105),
2482 (1106),
2483 (1107),
2484 (1108),
2485 (1109),
2486 (1110),
2487 (1111),
2488 (1112),
2489 (1113),
2490 (1114),
2491 (1115),
2492 (1116),
2493 (1117),
2494 (1118),
2495 (1119),
2496 (1120),
2497 (1121),
2498 (1122),
2499 (1123),
2500 (1124),
2501 (1125),
2502 (1126),
2503 (1127),
2504 (1128),
2505 (1129),
2506 (1130),
2507 (1131),
2508 (1132),
2509 (1133),
2510 (1134),
2511 (1135),
2512 (1136),
2513 (1137),
2514 (1138),
2515 (1139),
2516 (1140),
2517 (1141),
2518 (1142),
2519 (1143),
2520 (1144),
2521 (1145),
2522 (1146),
2523 (1147),
2524 (1148),
2525 (1149),
2526 (1150),
2527 (1151),
2528 (1152),
2529 (1153),
2530 (1154),
2531 (1155),
2532 (1156),
2533 (1157),
2534 (1158),
2535 (1159),
2536 (1160),
2537 (1161),
2538 (1162),
2539 (1163),
2540 (1164),
2541 (1165),
2542 (1166),
2543 (1167),
2544 (1168),
2545 (1169),
2546 (1170),
2547 (1171),
2548 (1172),
2549 (1173),
2550 (1174),
2551 (1175),
2552 (1176),
2553 (1177),
2554 (1178),
2555 (1179),
2556 (1180),
2557 (1181),
2558 (1182),
2559 (1183),
2560 (1184),
2561 (1185),
2562 (1186),
2563 (1187),
2564 (1188),
2565 (1189),
2566 (1190),
2567 (1191),
2568 (1192),
2569 (1193),
2570 (1194),
2571 (1195),
2572 (1196),
2573 (1197),
2574 (1198),
2575 (1199),
2576 (1200),
2577 (1201),
2578 (1202),
2579 (1203),
2580 (1204),
2581 (1205),
2582 (1206),
2583 (1207),
2584 (1208),
2585 (1209),
2586 (1210),
2587 (1211),
2588 (1212),
2589 (1213),
2590 (1214),
2591 (1215),
2592 (1216),
2593 (1217),
2594 (1218),
2595 (1219),
2596 (1220),
2597 (1221),
2598 (1222),
2599 (1223),
2600 (1224),
2601 (1225),
2602 (1226),
2603 (1227),
2604 (1228),
2605 (1229),
2606 (1230),
2607 (1231),
2608 (1232),
2609 (1233),
2610 (1234),
2611 (1235),
2612 (1236),
2613 (1237),
2614 (1238),
2615 (1239),
2616 (1240),
2617 (1241),
2618 (1242),
2619 (1243),
2620 (1244),
2621 (1245),
2622 (1246),
2623 (1247),
2624 (1248),
2625 (1249),
2626 (1250),
2627 (1251),
2628 (1252),
2629 (1253),
2630 (1254),
2631 (1255),
2632 (1256),
2633 (1257),
2634 (1258),
2635 (1259),
2636 (1260),
2637 (1261),
2638 (1262),
2639 (1263),
2640 (1264),
2641 (1265),
2642 (1266),
2643 (1267),
2644 (1268),
2645 (1269),
2646 (1270),
2647 (1271),
2648 (1272),
2649 (1273),
2650 (1274),
2651 (1275),
2652 (1276),
2653 (1277),
2654 (1278),
2655 (1279),
2656 (1280),
2657 (1281),
2658 (1282),
2659 (1283),
2660 (1284),
2661 (1285),
2662 (1286),
2663 (1287),
2664 (1288),
2665 (1289),
2666 (1290),
2667 (1291),
2668 (1292),
2669 (1293),
2670 (1294),
2671 (1295),
2672 (1296),
2673 (1297),
2674 (1298),
2675 (1299),
2676 (1300),
2677 (1301),
2678 (1302),
2679 (1303),
2680 (1304),
2681 (1305),
2682 (1306),
2683 (1307),
2684 (1308),
2685 (1309),
2686 (1310),
2687 (1311),
2688 (1312),
2689 (1313),
2690 (1314),
2691 (1315),
2692 (1316),
2693 (1317),
2694 (1318),
2695 (1319),
2696 (1320),
2697 (1321),
2698 (1322),
2699 (1323),
2700 (1324),
2701 (1325),
2702 (1326),
2703 (1327),
2704 (1328),
2705 (1329),
2706 (1330),
2707 (1331),
2708 (1332),
2709 (1333),
2710 (1334),
2711 (1335),
2712 (1336),
2713 (1337),
2714 (1338),
2715 (1339),
2716 (1340),
2717 (1341),
2718 (1342),
2719 (1343),
2720 (1344),
2721 (1345),
2722 (1346),
2723 (1347),
2724 (1348),
2725 (1349),
2726 (1350),
2727 (1351),
2728 (1352),
2729 (1353),
2730 (1354),
2731 (1355),
2732 (1356),
2733 (1357),
2734 (1358),
2735 (1359),
2736 (1360),
2737 (1361),
2738 (1362),
2739 (1363),
2740 (1364),
2741 (1365),
2742 (1366),
2743 (1367),
2744 (1368),
2745 (1369),
2746 (1370),
2747 (1371),
2748 (1372),
2749 (1373),
2750 (1374),
2751 (1375),
2752 (1376),
2753 (1377),
2754 (1378),
2755 (1379),
2756 (1380),
2757 (1381),
2758 (1382),
2759 (1383),
2760 (1384),
2761 (1385),
2762 (1386),
2763 (1387),
2764 (1388),
2765 (1389),
2766 (1390),
2767 (1391),
2768 (1392),
2769 (1393),
2770 (1394),
2771 (1395),
2772 (1396),
2773 (1397),
2774 (1398),
2775 (1399),
2776 (1400),
2777 (1401),
2778 (1402),
2779 (1403),
2780 (1404),
2781 (1405),
2782 (1406),
2783 (1407),
2784 (1408),
2785 (1409),
2786 (1410),
2787 (1411),
2788 (1412),
2789 (1413),
2790 (1414),
2791 (1415),
2792 (1416),
2793 (1417),
2794 (1418),
2795 (1419),
2796 (1420),
2797 (1421),
2798 (1422),
2799 (1423),
2800 (1424),
2801 (1425),
2802 (1426),
2803 (1427),
2804 (1428),
2805 (1429),
2806 (1430),
2807 (1431),
2808 (1432),
2809 (1433),
2810 (1434),
2811 (1435),
2812 (1436),
2813 (1437),
2814 (1438),
2815 (1439),
2816 (1440),
2817 (1441),
2818 (1442),
2819 (1443),
2820 (1444),
2821 (1445),
2822 (1446),
2823 (1447),
2824 (1448),
2825 (1449),
2826 (1450),
2827 (1451),
2828 (1452),
2829 (1453),
2830 (1454),
2831 (1455),
2832 (1456),
2833 (1457),
2834 (1458),
2835 (1459),
2836 (1460),
2837 (1461),
2838 (1462),
2839 (1463),
2840 (1464),
2841 (1465),
2842 (1466),
2843 (1467),
2844 (1468),
2845 (1469),
2846 (1470),
2847 (1471),
2848 (1472),
2849 (1473),
2850 (1474),
2851 (1475),
2852 (1476),
2853 (1477),
2854 (1478),
2855 (1479),
2856 (1480),
2857 (1481),
2858 (1482),
2859 (1483),
2860 (1484),
2861 (1485),
2862 (1486),
2863 (1487),
2864 (1488),
2865 (1489),
2866 (1490),
2867 (1491),
2868 (1492),
2869 (1493),
2870 (1494),
2871 (1495),
2872 (1496),
2873 (1497),
2874 (1498),
2875 (1499),
2876 (1500),
2877 (1501),
2878 (1502),
2879 (1503),
2880 (1504),
2881 (1505),
2882 (1506),
2883 (1507),
2884 (1508),
2885 (1509),
2886 (1510),
2887 (1511),
2888 (1512),
2889 (1513),
2890 (1514),
2891 (1515),
2892 (1516),
2893 (1517),
2894 (1518),
2895 (1519),
2896 (1520),
2897 (1521),
2898 (1522),
2899 (1523),
2900 (1524),
2901 (1525),
2902 (1526),
2903 (1527),
2904 (1528),
2905 (1529),
2906 (1530),
2907 (1531),
2908 (1532),
2909 (1533),
2910 (1534),
2911 (1535),
2912 (1536),
2913 (1537),
2914 (1538),
2915 (1539),
2916 (1540),
2917 (1541),
2918 (1542),
2919 (1543),
2920 (1544),
2921 (1545),
2922 (1546),
2923 (1547),
2924 (1548),
2925 (1549),
2926 (1550),
2927 (1551),
2928 (1552),
2929 (1553),
2930 (1554),
2931 (1555),
2932 (1556),
2933 (1557),
2934 (1558),
2935 (1559),
2936 (1560),
2937 (1561),
2938 (1562),
2939 (1563),
2940 (1564),
2941 (1565),
2942 (1566),
2943 (1567),
2944 (1568),
2945 (1569),
2946 (1570),
2947 (1571),
2948 (1572),
2949 (1573),
2950 (1574),
2951 (1575),
2952 (1576),
2953 (1577),
2954 (1578),
2955 (1579),
2956 (1580),
2957 (1581),
2958 (1582),
2959 (1583),
2960 (1584),
2961 (1585),
2962 (1586),
2963 (1587),
2964 (1588),
2965 (1589),
2966 (1590),
2967 (1591),
2968 (1592),
2969 (1593),
2970 (1594),
2971 (1595),
2972 (1596),
2973 (1597),
2974 (1598),
2975 (1599),
2976 (1600),
2977 (1601),
2978 (1602),
2979 (1603),
2980 (1604),
2981 (1605),
2982 (1606),
2983 (1607),
2984 (1608),
2985 (1609),
2986 (1610),
2987 (1611),
2988 (1612),
2989 (1613),
2990 (1614),
2991 (1615),
2992 (1616),
2993 (1617),
2994 (1618),
2995 (1619),
2996 (1620),
2997 (1621),
2998 (1622),
2999 (1623),
3000 (1624),
3001 (1625),
3002 (1626),
3003 (1627),
3004 (1628),
3005 (1629),
3006 (1630),
3007 (1631),
3008 (1632),
3009 (1633),
3010 (1634),
3011 (1635),
3012 (1636),
3013 (1637),
3014 (1638),
3015 (1639),
3016 (1640),
3017 (1641),
3018 (1642),
3019 (1643),
3020 (1644),
3021 (1645),
3022 (1646),
3023 (1647),
3024 (1648),
3025 (1649),
3026 (1650),
3027 (1651),
3028 (1652),
3029 (1653),
3030 (1654),
3031 (1655),
3032 (1656),
3033 (1657),
3034 (1658),
3035 (1659),
3036 (1660),
3037 (1661),
3038 (1662),
3039 (1663),
3040 (1664),
3041 (1665),
3042 (1666),
3043 (1667),
3044 (1668),
3045 (1669),
3046 (1670),
3047 (1671),
3048 (1672),
3049 (1673),
3050 (1674),
3051 (1675),
3052 (1676),
3053 (1677),
3054 (1678),
3055 (1679),
3056 (1680),
3057 (1681),
3058 (1682),
3059 (1683),
3060 (1684),
3061 (1685),
3062 (1686),
3063 (1687),
3064 (1688),
3065 (1689),
3066 (1690),
3067 (1691),
3068 (1692),
3069 (1693),
3070 (1694),
3071 (1695),
3072 (1696),
3073 (1697),
3074 (1698),
3075 (1699),
3076 (1700),
3077 (1701),
3078 (1702),
3079 (1703),
3080 (1704),
3081 (1705),
3082 (1706),
3083 (1707),
3084 (1708),
3085 (1709),
3086 (1710),
3087 (1711),
3088 (1712),
3089 (1713),
3090 (1714),
3091 (1715),
3092 (1716),
3093 (1717),
3094 (1718),
3095 (1719),
3096 (1720),
3097 (1721),
3098 (1722),
3099 (1723),
3100 (1724),
3101 (1725),
3102 (1726),
3103 (1727),
3104 (1728),
3105 (1729),
3106 (1730),
3107 (1731),
3108 (1732),
3109 (1733),
3110 (1734),
3111 (1735),
3112 (1736),
3113 (1737),
3114 (1738),
3115 (1739),
3116 (1740),
3117 (1741),
3118 (1742),
3119 (1743),
3120 (1744),
3121 (1745),
3122 (1746),
3123 (1747),
3124 (1748),
3125 (1749),
3126 (1750),
3127 (1751),
3128 (1752),
3129 (1753),
3130 (1754),
3131 (1755),
3132 (1756),
3133 (1757),
3134 (1758),
3135 (1759),
3136 (1760),
3137 (1761),
3138 (1762),
3139 (1763),
3140 (1764),
3141 (1765),
3142 (1766),
3143 (1767),
3144 (1768),
3145 (1769),
3146 (1770),
3147 (1771),
3148 (1772),
3149 (1773),
3150 (1774),
3151 (1775),
3152 (1776),
3153 (1777),
3154 (1778),
3155 (1779),
3156 (1780),
3157 (1781),
3158 (1782),
3159 (1783),
3160 (1784),
3161 (1785),
3162 (1786),
3163 (1787),
3164 (1788),
3165 (1789),
3166 (1790),
3167 (1791),
3168 (1792),
3169 (1793),
3170 (1794),
3171 (1795),
3172 (1796),
3173 (1797),
3174 (1798),
3175 (1799),
3176 (1800),
3177 (1801),
3178 (1802),
3179 (1803),
3180 (1804),
3181 (1805),
3182 (1806),
3183 (1807),
3184 (1808),
3185 (1809),
3186 (1810),
3187 (1811),
3188 (1812),
3189 (1813),
3190 (1814),
3191 (1815),
3192 (1816),
3193 (1817),
3194 (1818),
3195 (1819),
3196 (1820),
3197 (1821),
3198 (1822),
3199 (1823),
3200 (1824),
3201 (1825),
3202 (1826),
3203 (1827),
3204 (1828),
3205 (1829),
3206 (1830),
3207 (1831),
3208 (1832),
3209 (1833),
3210 (1834),
3211 (1835),
3212 (1836),
3213 (1837),
3214 (1838),
3215 (1839),
3216 (1840),
3217 (1841),
3218 (1842),
3219 (1843),
3220 (1844),
3221 (1845),
3222 (1846),
3223 (1847),
3224 (1848),
3225 (1849),
3226 (1850),
3227 (1851),
3228 (1852),
3229 (1853),
3230 (1854),
3231 (1855),
3232 (1856),
3233 (1857),
3234 (1858),
3235 (1859),
3236 (1860),
3237 (1861),
3238 (1862),
3239 (1863),
3240 (1864),
3241 (1865),
3242 (1866),
3243 (1867),
3244 (1868),
3245 (1869),
3246 (1870),
3247 (1871),
3248 (1872),
3249 (1873),
3250 (1874),
3251 (1875),
3252 (1876),
3253 (1877),
3254 (1878),
3255 (1879),
3256 (1880),
3257 (1881),
3258 (1882),
3259 (1883),
3260 (1884),
3261 (1885),
3262 (1886),
3263 (1887),
3264 (1888),
3265 (1889),
3266 (1890),
3267 (1891),
3268 (1892),
3269 (1893),
3270 (1894),
3271 (1895),
3272 (1896),
3273 (1897),
3274 (1898),
3275 (1899),
3276 (1900),
3277 (1901),
3278 (1902),
3279 (1903),
3280 (1904),
3281 (1905),
3282 (1906),
3283 (1907),
3284 (1908),
3285 (1909),
3286 (1910),
3287 (1911),
3288 (1912),
3289 (1913),
3290 (1914),
3291 (1915),
3292 (1916),
3293 (1917),
3294 (1918),
3295 (1919),
3296 (1920),
3297 (1921),
3298 (1922),
3299 (1923),
3300 (1924),
3301 (1925),
3302 (1926),
3303 (1927),
3304 (1928),
3305 (1929),
3306 (1930),
3307 (1931),
3308 (1932),
3309 (1933),
3310 (1934),
3311 (1935),
3312 (1936),
3313 (1937),
3314 (1938),
3315 (1939),
3316 (1940),
3317 (1941),
3318 (1942),
3319 (1943),
3320 (1944),
3321 (1945),
3322 (1946),
3323 (1947),
3324 (1948),
3325 (1949),
3326 (1950),
3327 (1951),
3328 (1952),
3329 (1953),
3330 (1954),
3331 (1955),
3332 (1956),
3333 (1957),
3334 (1958),
3335 (1959),
3336 (1960),
3337 (1961),
3338 (1962),
3339 (1963),
3340 (1964),
3341 (1965),
3342 (1966),
3343 (1967),
3344 (1968),
3345 (1969),
3346 (1970),
3347 (1971),
3348 (1972),
3349 (1973),
3350 (1974),
3351 (1975),
3352 (1976),
3353 (1977),
3354 (1978),
3355 (1979),
3356 (1980),
3357 (1981),
3358 (1982),
3359 (1983),
3360 (1984),
3361 (1985),
3362 (1986),
3363 (1987),
3364 (1988),
3365 (1989),
3366 (1990),
3367 (1991),
3368 (1992),
3369 (1993),
3370 (1994),
3371 (1995),
3372 (1996),
3373 (1997),
3374 (1998),
3375 (1999),
3376 (2000),
3377 (2001),
3378 (2002),
3379 (2003),
3380 (2004),
3381 (2005),
3382 (2006),
3383 (2007),
3384 (2008),
3385 (2009),
3386 (2010),
3387 (2011),
3388 (2012),
3389 (2013),
3390 (2014),
3391 (2015),
3392 (2016),
3393 (2017),
3394 (2018),
3395 (2019),
3396 (2020),
3397 (2021),
3398 (2022),
3399 (2023),
3400 (2024),
3401 (2025),
3402 (2026),
3403 (2027),
3404 (2028),
3405 (2029),
3406 (2030),
3407 (2031),
3408 (2032),
3409 (2033),
3410 (2034),
3411 (2035),
3412 (2036),
3413 (2037),
3414 (2038),
3415 (2039),
3416 (2040),
3417 (2041),
3418 (2042),
3419 (2043),
3420 (2044),
3421 (2045),
3422 (2046),
3423 (2047),
3424 (2048),
3425 (2049),
3426 (2050),
3427 (2051),
3428 (2052),
3429 (2053),
3430 (2054),
3431 (2055),
3432 (2056),
3433 (2057),
3434 (2058),
3435 (2059),
3436 (2060),
3437 (2061),
3438 (2062),
3439 (2063),
3440 (2064),
3441 (2065),
3442 (2066),
3443 (2067),
3444 (2068),
3445 (2069),
3446 (2070),
3447 (2071),
3448 (2072),
3449 (2073),
3450 (2074),
3451 (2075),
3452 (2076),
3453 (2077),
3454 (2078),
3455 (2079),
3456 (2080),
3457 (2081),
3458 (2082),
3459 (2083),
3460 (2084),
3461 (2085),
3462 (2086),
3463 (2087),
3464 (2088),
3465 (2089),
3466 (2090),
3467 (2091),
3468 (2092),
3469 (2093),
3470 (2094),
3471 (2095),
3472 (2096),
3473 (2097),
3474 (2098),
3475 (2099),
3476 (2100),
3477 (2101),
3478 (2102),
3479 (2103),
3480 (2104),
3481 (2105),
3482 (2106),
3483 (2107),
3484 (2108),
3485 (2109),
3486 (2110),
3487 (2111),
3488 (2112),
3489 (2113),
3490 (2114),
3491 (2115),
3492 (2116),
3493 (2117),
3494 (2118),
3495 (2119),
3496 (2120),
3497 (2121),
3498 (2122),
3499 (2123),
3500 (2124),
3501 (2125),
3502 (2126),
3503 (2127),
3504 (2128),
3505 (2129),
3506 (2130),
3507 (2131),
3508 (2132),
3509 (2133),
3510 (2134),
3511 (2135),
3512 (2136),
3513 (2137),
3514 (2138),
3515 (2139),
3516 (2140),
3517 (2141),
3518 (2142),
3519 (2143),
3520 (2144),
3521 (2145),
3522 (2146),
3523 (2147),
3524 (2148),
3525 (2149),
3526 (2150),
3527 (2151),
3528 (2152),
3529 (2153),
3530 (2154),
3531 (2155),
3532 (2156),
3533 (2157),
3534 (2158),
3535 (2159),
3536 (2160),
3537 (2161),
3538 (2162),
3539 (2163),
3540 (2164),
3541 (2165),
3542 (2166),
3543 (2167),
3544 (2168),
3545 (2169),
3546 (2170),
3547 (2171),
3548 (2172),
3549 (2173),
3550 (2174),
3551 (2175),
3552 (2176),
3553 (2177),
3554 (2178),
3555 (2179),
3556 (2180),
3557 (2181),
3558 (2182),
3559 (2183),
3560 (2184),
3561 (2185),
3562 (2186),
3563 (2187),
3564 (2188),
3565 (2189),
3566 (2190),
3567 (2191),
3568 (2192),
3569 (2193),
3570 (2194),
3571 (2195),
3572 (2196),
3573 (2197),
3574 (2198),
3575 (2199),
3576 (2200),
3577 (2201),
3578 (2202),
3579 (2203),
3580 (2204),
3581 (2205),
3582 (2206),
3583 (2207),
3584 (2208),
3585 (2209),
3586 (2210),
3587 (2211),
3588 (2212),
3589 (2213),
3590 (2214),
3591 (2215),
3592 (2216),
3593 (2217),
3594 (2218),
3595 (2219),
3596 (2220),
3597 (2221),
3598 (2222),
3599 (2223),
3600 (2224),
3601 (2225),
3602 (2226),
3603 (2227),
3604 (2228),
3605 (2229),
3606 (2230),
3607 (2231),
3608 (2232),
3609 (2233),
3610 (2234),
3611 (2235),
3612 (2236),
3613 (2237),
3614 (2238),
3615 (2239),
3616 (2240),
3617 (2241),
3618 (2242),
3619 (2243),
3620 (2244),
3621 (2245),
3622 (2246),
3623 (2247),
3624 (2248),
3625 (2249),
3626 (2250),
3627 (2251),
3628 (2252),
3629 (2253),
3630 (2254),
3631 (2255),
3632 (2256),
3633 (2257),
3634 (2258),
3635 (2259),
3636 (2260),
3637 (2261),
3638 (2262),
3639 (2263),
3640 (2264),
3641 (2265),
3642 (2266),
3643 (2267),
3644 (2268),
3645 (2269),
3646 (2270),
3647 (2271),
3648 (2272),
3649 (2273),
3650 (2274),
3651 (2275),
3652 (2276),
3653 (2277),
3654 (2278),
3655 (2279),
3656 (2280),
3657 (2281),
3658 (2282),
3659 (2283),
3660 (2284),
3661 (2285),
3662 (2286),
3663 (2287),
3664 (2288),
3665 (2289),
3666 (2290),
3667 (2291),
3668 (2292),
3669 (2293),
3670 (2294),
3671 (2295),
3672 (2296),
3673 (2297),
3674 (2298),
3675 (2299),
3676 (2300),
3677 (2301),
3678 (2302),
3679 (2303),
3680 (2304),
3681 (2305),
3682 (2306),
3683 (2307),
3684 (2308),
3685 (2309),
3686 (2310),
3687 (2311),
3688 (2312),
3689 (2313),
3690 (2314),
3691 (2315),
3692 (2316),
3693 (2317),
3694 (2318),
3695 (2319),
3696 (2320),
3697 (2321),
3698 (2322),
3699 (2323),
3700 (2324),
3701 (2325),
3702 (2326),
3703 (2327),
3704 (2328),
3705 (2329),
3706 (2330),
3707 (2331),
3708 (2332),
3709 (2333),
3710 (2334),
3711 (2335),
3712 (2336),
3713 (2337),
3714 (2338),
3715 (2339),
3716 (2340),
3717 (2341),
3718 (2342),
3719 (2343),
3720 (2344),
3721 (2345),
3722 (2346),
3723 (2347),
3724 (2348),
3725 (2349),
3726 (2350),
3727 (2351),
3728 (2352),
3729 (2353),
3730 (2354),
3731 (2355),
3732 (2356),
3733 (2357),
3734 (2358),
3735 (2359),
3736 (2360),
3737 (2361),
3738 (2362),
3739 (2363),
3740 (2364),
3741 (2365),
3742 (2366),
3743 (2367),
3744 (2368),
3745 (2369),
3746 (2370),
3747 (2371),
3748 (2372),
3749 (2373),
3750 (2374),
3751 (2375),
3752 (2376),
3753 (2377),
3754 (2378),
3755 (2379),
3756 (2380),
3757 (2381),
3758 (2382),
3759 (2383),
3760 (2384),
3761 (2385),
3762 (2386),
3763 (2387),
3764 (2388),
3765 (2389),
3766 (2390),
3767 (2391),
3768 (2392),
3769 (2393),
3770 (2394),
3771 (2395),
3772 (2396),
3773 (2397),
3774 (2398),
3775 (2399),
3776 (2400),
3777 (2401),
3778 (2402),
3779 (2403),
3780 (2404),
3781 (2405),
3782 (2406),
3783 (2407),
3784 (2408),
3785 (2409),
3786 (2410),
3787 (2411),
3788 (2412),
3789 (2413),
3790 (2414),
3791 (2415),
3792 (2416),
3793 (2417),
3794 (2418),
3795 (2419),
3796 (2420),
3797 (2421),
3798 (2422),
3799 (2423),
3800 (2424),
3801 (2425),
3802 (2426),
3803 (2427),
3804 (2428),
3805 (2429),
3806 (2430),
3807 (2431),
3808 (2432),
3809 (2433),
3810 (2434),
3811 (2435),
3812 (2436),
3813 (2437),
3814 (2438),
3815 (2439),
3816 (2440),
3817 (2441),
3818 (2442),
3819 (2443),
3820 (2444),
3821 (2445),
3822 (2446),
3823 (2447),
3824 (2448),
3825 (2449),
3826 (2450),
3827 (2451),
3828 (2452),
3829 (2453),
3830 (2454),
3831 (2455),
3832 (2456),
3833 (2457),
3834 (2458),
3835 (2459),
3836 (2460),
3837 (2461),
3838 (2462),
3839 (2463),
3840 (2464),
3841 (2465),
3842 (2466),
3843 (2467),
3844 (2468),
3845 (2469),
3846 (2470),
3847 (2471),
3848 (2472),
3849 (2473),
3850 (2474),
3851 (2475),
3852 (2476),
3853 (2477),
3854 (2478),
3855 (2479),
3856 (2480),
3857 (2481),
3858 (2482),
3859 (2483),
3860 (2484),
3861 (2485),
3862 (2486),
3863 (2487),
3864 (2488),
3865 (2489),
3866 (2490),
3867 (2491),
3868 (2492),
3869 (2493),
3870 (2494),
3871 (2495),
3872 (2496),
3873 (2497),
3874 (2498),
3875 (2499),
3876 (2500),
3877 (2501),
3878 (2502),
3879 (2503),
3880 (2504),
3881 (2505),
3882 (2506),
3883 (2507),
3884 (2508),
3885 (2509),
3886 (2510),
3887 (2511),
3888 (2512),
3889 (2513),
3890 (2514),
3891 (2515),
3892 (2516),
3893 (2517),
3894 (2518),
3895 (2519),
3896 (2520),
3897 (2521),
3898 (2522),
3899 (2523),
3900 (2524),
3901 (2525),
3902 (2526),
3903 (2527),
3904 (2528),
3905 (2529),
3906 (2530),
3907 (2531),
3908 (2532),
3909 (2533),
3910 (2534),
3911 (2535),
3912 (2536),
3913 (2537),
3914 (2538),
3915 (2539),
3916 (2540),
3917 (2541),
3918 (2542),
3919 (2543),
3920 (2544),
3921 (2545),
3922 (2546),
3923 (2547),
3924 (2548),
3925 (2549),
3926 (2550),
3927 (2551),
3928 (2552),
3929 (2553),
3930 (2554),
3931 (2555),
3932 (2556),
3933 (2557),
3934 (2558),
3935 (2559),
3936 (2560),
3937 (2561),
3938 (2562),
3939 (2563),
3940 (2564),
3941 (2565),
3942 (2566),
3943 (2567),
3944 (2568),
3945 (2569),
3946 (2570),
3947 (2571),
3948 (2572),
3949 (2573),
3950 (2574),
3951 (2575),
3952 (2576),
3953 (2577),
3954 (2578),
3955 (2579),
3956 (2580),
3957 (2581),
3958 (2582),
3959 (2583),
3960 (2584),
3961 (2585),
3962 (2586),
3963 (2587),
3964 (2588),
3965 (2589),
3966 (2590),
3967 (2591),
3968 (2592),
3969 (2593),
3970 (2594),
3971 (2595),
3972 (2596),
3973 (2597),
3974 (2598),
3975 (2599),
3976 (2600),
3977 (2601),
3978 (2602),
3979 (2603),
3980 (2604),
3981 (2605),
3982 (2606),
3983 (2607),
3984 (2608),
3985 (2609),
3986 (2610),
3987 (2611),
3988 (2612),
3989 (2613),
3990 (2614),
3991 (2615),
3992 (2616),
3993 (2617),
3994 (2618),
3995 (2619),
3996 (2620),
3997 (2621),
3998 (2622),
3999 (2623),
4000 (2624),
4001 (2625),
4002 (2626),
4003 (2627),
4004 (2628),
4005 (2629),
4006 (2630),
4007 (2631),
4008 (2632),
4009 (2633),
4010 (2634),
4011 (2635),
4012 (2636),
4013 (2637),
4014 (2638),
4015 (2639),
4016 (2640),
4017 (2641),
4018 (2642),
4019 (2643),
4020 (2644),
4021 (2645),
4022 (2646),
4023 (2647),
4024 (2648),
4025 (2649),
4026 (2650),
4027 (2651),
4028 (2652),
4029 (2653),
4030 (2654),
4031 (2655),
4032 (2656),
4033 (2657),
4034 (2658),
4035 (2659),
4036 (2660),
4037 (2661),
4038 (2662),
4039 (2663),
4040 (2664),
4041 (2665),
4042 (2666),
4043 (2667),
4044 (2668),
4045 (2669),
4046 (2670),
4047 (2671),
4048 (2672),
4049 (2673),
4050 (2674),
4051 (2675),
4052 (2676),
4053 (2677),
4054 (2678),
4055 (2679),
4056 (2680),
4057 (2681),
4058 (2682),
4059 (2683),
4060 (2684),
4061 (2685),
4062 (2686),
4063 (2687),
4064 (2688),
4065 (2689),
4066 (2690),
4067 (2691),
4068 (2692),
4069 (2693),
4070 (2694),
4071 (2695),
4072 (2696),
4073 (2697),
4074 (2698),
4075 (2699),
4076 (2700),
4077 (2701),
4078 (2702),
4079 (2703),
4080 (2704),
4081 (2705),
4082 (2706),
4083 (2707),
4084 (2708),
4085 (2709),
4086 (2710),
4087 (2711),
4088 (2712),
4089 (2713),
4090 (2714),
4091 (2715),
4092 (2716),
4093 (2717),
4094 (2718),
4095 (2719),
4096 (2720),
4097 (2721),
4098 (2722),
4099 (2723),
4100 (2724),
4101 (2725),
4102 (2726),
4103 (2727),
4104 (2728),
4105 (2729),
4106 (2730),
4107 (2731),
4108 (2732),
4109 (2733),
4110 (2734),
4111 (2735),
4112 (2736),
4113 (2737),
4114 (2738),
4115 (2739),
4116 (2740),
4117 (2741),
4118 (2742),
4119 (2743),
4120 (2744),
4121 (2745),
4122 (2746),
4123 (2747),
4124 (2748),
4125 (2749),
4126 (2750),
4127 (2751),
4128 (2752),
4129 (2753),
4130 (2754),
4131 (2755),
4132 (2756),
4133 (2757),
4134 (2758),
4135 (2759),
4136 (2760),
4137 (2761),
4138 (2762),
4139 (2763),
4140 (2764),
4141 (2765),
4142 (2766),
4143 (2767),
4144 (2768),
4145 (2769),
4146 (2770),
4147 (2771),
4148 (2772),
4149 (2773),
4150 (2774),
4151 (2775),
4152 (2776),
4153 (2777),
4154 (2778),
4155 (2779),
4156 (2780),
4157 (2781),
4158 (2782),
4159 (2783),
4160 (2784),
4161 (2785),
4162 (2786),
4163 (2787),
4164 (2788),
4165 (2789),
4166 (2790),
4167 (2791),
4168 (2792),
4169 (2793),
4170 (2794),
4171 (2795),
4172 (2796),
4173 (2797),
4174 (2798),
4175 (2799),
4176 (2800),
4177 (2801),
4178 (2802),
4179 (2803),
4180 (2804),
4181 (2805),
4182 (2806),
4183 (2807),
4184 (2808),
4185 (2809),
4186 (2810),
4187 (2811),
4188 (2812),
4189 (2813),
4190 (2814),
4191 (2815),
4192 (2816),
4193 (2817),
4194 (2818),
4195 (2819),
4196 (2820),
4197 (2821),
4198 (2822),
4199 (2823),
4200 (2824),
4201 (2825),
4202 (2826),
4203 (2827),
4204 (2828),
4205 (2829),
4206 (2830),
4207 (2831),
4208 (2832),
4209 (2833),
4210 (2834),
4211 (2835),
4212 (2836),
4213 (2837),
4214 (2838),
4215 (2839),
4216 (2840),
4217 (2841),
4218 (2842),
4219 (2843),
4220 (2844),
4221 (2845),
4222 (2846),
4223 (2847),
4224 (2848),
4225 (2849),
4226 (2850),
4227 (2851),
4228 (2852),
4229 (2853),
4230 (2854),
4231 (2855),
4232 (2856),
4233 (2857),
4234 (2858),
4235 (2859),
4236 (2860),
4237 (2861),
4238 (2862),
4239 (2863),
4240 (2864),
4241 (2865),
4242 (2866),
4243 (2867),
4244 (2868),
4245 (2869),
4246 (2870),
4247 (2871),
4248 (2872),
4249 (2873),
4250 (2874),
4251 (2875),
4252 (2876),
4253 (2877),
4254 (2878),
4255 (2879),
4256 (2880),
4257 (2881),
4258 (2882),
4259 (2883),
4260 (2884),
4261 (2885),
4262 (2886),
4263 (2887),
4264 (2888),
4265 (2889),
4266 (2890),
4267 (2891),
4268 (2892),
4269 (2893),
4270 (2894),
4271 (2895),
4272 (2896),
4273 (2897),
4274 (2898),
4275 (2899),
4276 (2900),
4277 (2901),
4278 (2902),
4279 (2903),
4280 (2904),
4281 (2905),
4282 (2906),
4283 (2907),
4284 (2908),
4285 (2909),
4286 (2910),
4287 (2911),
4288 (2912),
4289 (2913),
4290 (2914),
4291 (2915),
4292 (2916),
4293 (2917),
4294 (2918),
4295 (2919),
4296 (2920),
4297 (2921),
4298 (2922),
4299 (2923),
4300 (2924),
4301 (2925),
4302 (2926),
4303 (2927),
4304 (2928),
4305 (2929),
4306 (2930),
4307 (2931),
4308 (2932),
4309 (2933),
4310 (2934),
4311 (2935),
4312 (2936),
4313 (2937),
4314 (2938),
4315 (2939),
4316 (2940),
4317 (2941),
4318 (2942),
4319 (2943),
4320 (2944),
4321 (2945),
4322 (2946),
4323 (2947),
4324 (2948),
4325 (2949),
4326 (2950),
4327 (2951),
4328 (2952),
4329 (2953),
4330 (2954),
4331 (2955),
4332 (2956),
4333 (2957),
4334 (2958),
4335 (2959),
4336 (2960),
4337 (2961),
4338 (2962),
4339 (2963),
4340 (2964),
4341 (2965),
4342 (2966),
4343 (2967),
4344 (2968),
4345 (2969),
4346 (2970),
4347 (2971),
4348 (2972),
4349 (2973),
4350 (2974),
4351 (2975),
4352 (2976),
4353 (2977),
4354 (2978),
4355 (2979),
4356 (2980),
4357 (2981),
4358 (2982),
4359 (2983),
4360 (2984),
4361 (2985),
4362 (2986),
4363 (2987),
4364 (2988),
4365 (2989),
4366 (2990),
4367 (2991),
4368 (2992),
4369 (2993),
4370 (2994),
4371 (2995),
4372 (2996),
4373 (2997),
4374 (2998),
4375 (2999),
4376 (3000),
4377 (3001),
4378 (3002),
4379 (3003),
4380 (3004),
4381 (3005),
4382 (3006),
4383 (3007),
4384 (3008),
4385 (3009),
4386 (3010),
4387 (3011),
4388 (3012),
4389 (3013),
4390 (3014),
4391 (3015),
4392 (3016),
4393 (3017),
4394 (3018),
4395 (3019),
4396 (3020),
4397 (3021),
4398 (3022),
4399 (3023),
4400 (3024),
4401 (3025),
4402 (3026),
4403 (3027),
4404 (3028),
4405 (3029),
4406 (3030),
4407 (3031),
4408 (3032),
4409 (3033),
4410 (3034),
4411 (3035),
4412 (3036),
4413 (3037),
4414 (3038),
4415 (3039),
4416 (3040),
4417 (3041),
4418 (3042),
4419 (3043),
4420 (3044),
4421 (3045),
4422 (3046),
4423 (3047),
4424 (3048),
4425 (3049),
4426 (3050),
4427 (3051),
4428 (3052),
4429 (3053),
4430 (3054),
4431 (3055),
4432 (3056),
4433 (3057),
4434 (3058),
4435 (3059),
4436 (3060),
4437 (3061),
4438 (3062),
4439 (3063),
4440 (3064),
4441 (3065),
4442 (3066),
4443 (3067),
4444 (3068),
4445 (3069),
4446 (3070),
4447 (3071),
4448 (3072),
4449 (3073),
4450 (3074),
4451 (3075),
4452 (3076),
4453 (3077),
4454 (3078),
4455 (3079),
4456 (3080),
4457 (3081),
4458 (3082),
4459 (3083),
4460 (3084),
4461 (3085),
4462 (3086),
4463 (3087),
4464 (3088),
4465 (3089),
4466 (3090),
4467 (3091),
4468 (3092),
4469 (3093),
4470 (3094),
4471 (3095),
4472 (3096),
4473 (3097),
4474 (3098),
4475 (3099),
4476 (3100),
4477 (3101),
4478 (3102),
4479 (3103),
4480 (3104),
4481 (3105),
4482 (3106),
4483 (3107),
4484 (3108),
4485 (3109),
4486 (3110),
4487 (3111),
4488 (3112),
4489 (3113),
4490 (3114),
4491 (3115),
4492 (3116),
4493 (3117),
4494 (3118),
4495 (3119),
4496 (3120),
4497 (3121),
4498 (3122),
4499 (3123),
4500 (3124),
4501 (3125),
4502 (3126),
4503 (3127),
4504 (3128),
4505 (3129),
4506 (3130),
4507 (3131),
4508 (3132),
4509 (3133),
4510 (3134),
4511 (3135),
4512 (3136),
4513 (3137),
4514 (3138),
4515 (3139),
4516 (3140),
4517 (3141),
4518 (3142),
4519 (3143),
4520 (3144),
4521 (3145),
4522 (3146),
4523 (3147),
4524 (3148),
4525 (3149),
4526 (3150),
4527 (3151),
4528 (3152),
4529 (3153),
4530 (3154),
4531 (3155),
4532 (3156),
4533 (3157),
4534 (3158),
4535 (3159),
4536 (3160),
4537 (3161),
4538 (3162),
4539 (3163),
4540 (3164),
4541 (3165),
4542 (3166),
4543 (3167),
4544 (3168),
4545 (3169),
4546 (3170),
4547 (3171),
4548 (3172),
4549 (3173),
4550 (3174),
4551 (3175),
4552 (3176),
4553 (3177),
4554 (3178),
4555 (3179),
4556 (3180),
4557 (3181),
4558 (3182),
4559 (3183),
4560 (3184),
4561 (3185),
4562 (3186),
4563 (3187),
4564 (3188),
4565 (3189),
4566 (3190),
4567 (3191),
4568 (3192),
4569 (3193),
4570 (3194),
4571 (3195),
4572 (3196),
4573 (3197),
4574 (3198),
4575 (3199),
4576 (3200),
4577 (3201),
4578 (3202),
4579 (3203),
4580 (3204),
4581 (3205),
4582 (3206),
4583 (3207),
4584 (3208),
4585 (3209),
4586 (3210),
4587 (3211),
4588 (3212),
4589 (3213),
4590 (3214),
4591 (3215),
4592 (3216),
4593 (3217),
4594 (3218),
4595 (3219),
4596 (3220),
4597 (3221),
4598 (3222),
4599 (3223),
4600 (3224),
4601 (3225),
4602 (3226),
4603 (3227),
4604 (3228),
4605 (3229),
4606 (3230),
4607 (3231),
4608 (3232),
4609 (3233),
4610 (3234),
4611 (3235),
4612 (3236),
4613 (3237),
4614 (3238),
4615 (3239),
4616 (3240),
4617 (3241),
4618 (3242),
4619 (3243),
4620 (3244),
4621 (3245),
4622 (3246),
4623 (3247),
4624 (3248),
4625 (3249),
4626 (3250),
4627 (3251),
4628 (3252),
4629 (3253),
4630 (3254),
4631 (3255),
4632 (3256),
4633 (3257),
4634 (3258),
4635 (3259),
4636 (3260),
4637 (3261),
4638 (3262),
4639 (3263),
4640 (3264),
4641 (3265),
4642 (3266),
4643 (3267),
4644 (3268),
4645 (3269),
4646 (3270),
4647 (3271),
4648 (3272),
4649 (3273),
4650 (3274),
4651 (3275),
4652 (3276),
4653 (3277),
4654 (3278),
4655 (3279),
4656 (3280),
4657 (3281),
4658 (3282),
4659 (3283),
4660 (3284),
4661 (3285),
4662 (3286),
4663 (3287),
4664 (3288),
4665 (3289),
4666 (3290),
4667 (3291),
4668 (3292),
4669 (3293),
4670 (3294),
4671 (3295),
4672 (3296),
4673 (3297),
4674 (3298),
4675 (3299),
4676 (3300),
4677 (3301),
4678 (3302),
4679 (3303),
4680 (3304),
4681 (3305),
4682 (3306),
4683 (3307),
4684 (3308),
4685 (3309),
4686 (3310),
4687 (3311),
4688 (3312),
4689 (3313),
4690 (3314),
4691 (3315),
4692 (3316),
4693 (3317),
4694 (3318),
4695 (3319),
4696 (3320),
4697 (3321),
4698 (3322),
4699 (3323),
4700 (3324),
4701 (3325),
4702 (3326),
4703 (3327),
4704 (3328),
4705 (3329),
4706 (3330),
4707 (3331),
4708 (3332),
4709 (3333),
4710 (3334),
4711 (3335),
4712 (3336),
4713 (3337),
4714 (3338),
4715 (3339),
4716 (3340),
4717 (3341),
4718 (3342),
4719 (3343),
4720 (3344),
4721 (3345),
4722 (3346),
4723 (3347),
4724 (3348),
4725 (3349),
4726 (3350),
4727 (3351),
4728 (3352),
4729 (3353),
4730 (3354),
4731 (3355),
4732 (3356),
4733 (3357),
4734 (3358),
4735 (3359),
4736 (3360),
4737 (3361),
4738 (3362),
4739 (3363),
4740 (3364),
4741 (3365),
4742 (3366),
4743 (3367),
4744 (3368),
4745 (3369),
4746 (3370),
4747 (3371),
4748 (3372),
4749 (3373),
4750 (3374),
4751 (3375),
4752 (3376),
4753 (3377),
4754 (3378),
4755 (3379),
4756 (3380),
4757 (3381),
4758 (3382),
4759 (3383),
4760 (3384),
4761 (3385),
4762 (3386),
4763 (3387),
4764 (3388),
4765 (3389),
4766 (3390),
4767 (3391),
4768 (3392),
4769 (3393),
4770 (3394),
4771 (3395),
4772 (3396),
4773 (3397),
4774 (3398),
4775 (3399),
4776 (3400),
4777 (3401),
4778 (3402),
4779 (3403),
4780 (3404),
4781 (3405),
4782 (3406),
4783 (3407),
4784 (3408),
4785 (3409),
4786 (3410),
4787 (3411),
4788 (3412),
4789 (3413),
4790 (3414),
4791 (3415),
4792 (3416),
4793 (3417),
4794 (3418),
4795 (3419),
4796 (3420),
4797 (3421),
4798 (3422),
4799 (3423),
4800 (3424),
4801 (3425),
4802 (3426),
4803 (3427),
4804 (3428),
4805 (3429),
4806 (3430),
4807 (3431),
4808 (3432),
4809 (3433),
4810 (3434),
4811 (3435),
4812 (3436),
4813 (3437),
4814 (3438),
4815 (3439),
4816 (3440),
4817 (3441),
4818 (3442),
4819 (3443),
4820 (3444),
4821 (3445),
4822 (3446),
4823 (3447),
4824 (3448),
4825 (3449),
4826 (3450),
4827 (3451),
4828 (3452),
4829 (3453),
4830 (3454),
4831 (3455),
4832 (3456),
4833 (3457),
4834 (3458),
4835 (3459),
4836 (3460),
4837 (3461),
4838 (3462),
4839 (3463),
4840 (3464),
4841 (3465),
4842 (3466),
4843 (3467),
4844 (3468),
4845 (3469),
4846 (3470),
4847 (3471),
4848 (3472),
4849 (3473),
4850 (3474),
4851 (3475),
4852 (3476),
4853 (3477),
4854 (3478),
4855 (3479),
4856 (3480),
4857 (3481),
4858 (3482),
4859 (3483),
4860 (3484),
4861 (3485),
4862 (3486),
4863 (3487),
4864 (3488),
4865 (3489),
4866 (3490),
4867 (3491),
4868 (3492),
4869 (3493),
4870 (3494),
4871 (3495),
4872 (3496),
4873 (3497),
4874 (3498),
4875 (3499),
4876 (3500),
4877 (3501),
4878 (3502),
4879 (3503),
4880 (3504),
4881 (3505),
4882 (3506),
4883 (3507),
4884 (3508),
4885 (3509),
4886 (3510),
4887 (3511),
4888 (3512),
4889 (3513),
4890 (3514),
4891 (3515),
4892 (3516),
4893 (3517),
4894 (3518),
4895 (3519),
4896 (3520),
4897 (3521),
4898 (3522),
4899 (3523),
4900 (3524),
4901 (3525),
4902 (3526),
4903 (3527),
4904 (3528),
4905 (3529),
4906 (3530),
4907 (3531),
4908 (3532),
4909 (3533),
4910 (3534),
4911 (3535),
4912 (3536),
4913 (3537),
4914 (3538),
4915 (3539),
4916 (3540),
4917 (3541),
4918 (3542),
4919 (3543),
4920 (3544),
4921 (3545),
4922 (3546),
4923 (3547),
4924 (3548),
4925 (3549),
4926 (3550),
4927 (3551),
4928 (3552),
4929 (3553),
4930 (3554),
4931 (3555),
4932 (3556),
4933 (3557),
4934 (3558),
4935 (3559),
4936 (3560),
4937 (3561),
4938 (3562),
4939 (3563),
4940 (3564),
4941 (3565),
4942 (3566),
4943 (3567),
4944 (3568),
4945 (3569),
4946 (3570),
4947 (3571),
4948 (3572),
4949 (3573),
4950 (3574),
4951 (3575),
4952 (3576),
4953 (3577),
4954 (3578),
4955 (3579),
4956 (3580),
4957 (3581),
4958 (3582),
4959 (3583),
4960 (3584),
4961 (3585),
4962 (3586),
4963 (3587),
4964 (3588),
4965 (3589),
4966 (3590),
4967 (3591),
4968 (3592),
4969 (3593),
4970 (3594),
4971 (3595),
4972 (3596),
4973 (3597),
4974 (3598),
4975 (3599),
4976 (3600),
4977 (3601),
4978 (3602),
4979 (3603),
4980 (3604),
4981 (3605),
4982 (3606),
4983 (3607),
4984 (3608),
4985 (3609),
4986 (3610),
4987 (3611),
4988 (3612),
4989 (3613),
4990 (3614),
4991 (3615),
4992 (3616),
4993 (3617),
4994 (3618),
4995 (3619),
4996 (3620),
4997 (3621),
4998 (3622),
4999 (3623),
5000 (3624),
5001 (3625),
5002 (3626),
5003 (3627),
5004 (3628),
5005 (3629),
5006 (3630),
5007 (3631),
5008 (3632),
5009 (3633),
5010 (3634),
5011 (3635),
5012 (3636),
5013 (3637),
5014 (3638),
5015 (3639),
5016 (3640),
5017 (3641),
5018 (3642),
5019 (3643),
5020 (3644),
5021 (3645),
5022 (3646),
5023 (3647),
5024 (3648),
5025 (3649),
5026 (3650),
5027 (3651),
5028 (3652),
5029 (3653),
5030 (3654),
5031 (3655),
5032 (3656),
5033 (3657),
5034 (3658),
5035 (3659),
5036 (3660),
5037 (3661),
5038 (3662),
5039 (3663),
5040 (3664),
5041 (3665),
5042 (3666),
5043 (3667),
5044 (3668),
5045 (3669),
5046 (3670),
5047 (3671),
5048 (3672),
5049 (3673),
5050 (3674),
5051 (3675),
5052 (3676),
5053 (3677),
5054 (3678),
5055 (3679),
5056 (3680),
5057 (3681),
5058 (3682),
5059 (3683),
5060 (3684),
5061 (3685),
5062 (3686),
5063 (3687),
5064 (3688),
5065 (3689),
5066 (3690),
5067 (3691),
5068 (3692),
5069 (3693),
5070 (3694),
5071 (3695),
5072 (3696),
5073 (3697),
5074 (3698),
5075 (3699),
5076 (3700),
5077 (3701),
5078 (3702),
5079 (3703),
5080 (3704),
5081 (3705),
5082 (3706),
5083 (3707),
5084 (3708),
5085 (3709),
5086 (3710),
5087 (3711),
5088 (3712),
5089 (3713),
5090 (3714),
5091 (3715),
5092 (3716),
5093 (3717),
5094 (3718),
5095 (3719),
5096 (3720),
5097 (3721),
5098 (3722),
5099 (3723),
5100 (3724),
5101 (3725),
5102 (3726),
5103 (3727),
5104 (3728),
5105 (3729),
5106 (3730),
5107 (3731),
5108 (3732),
5109 (3733),
5110 (3734),
5111 (3735),
5112 (3736),
5113 (3737),
5114 (3738),
5115 (3739),
5116 (3740),
5117 (3741),
5118 (3742),
5119 (3743),
5120 (3744),
5121 (3745),
5122 (3746),
5123 (3747),
5124 (3748),
5125 (3749),
5126 (3750),
5127 (3751),
5128 (3752),
5129 (3753),
5130 (3754),
5131 (3755),
5132 (3756),
5133 (3757),
5134 (3758),
5135 (3759),
5136 (3760),
5137 (3761),
5138 (3762),
5139 (3763),
5140 (3764),
5141 (3765),
5142 (3766),
5143 (3767),
5144 (3768),
5145 (3769),
5146 (3770),
5147 (3771),
5148 (3772),
5149 (3773),
5150 (3774),
5151 (3775),
5152 (3776),
5153 (3777),
5154 (3778),