COPY TO只能用于普通表,而不能用于视图,并且不能从子表或子分区复制行。 例如,COPY table TO 复制与SELECT * FROM ONLY table 相同的行。 语法COPY (SELECT * FROM table) TO … 可用于转储一个继承层次结构、分区表或视图中的所有行。
COPY TO只能用于普通表,而不能用于视图,并且不能从子表或子分区复制行。 例如,COPY table TO 复制与SELECT * FROM ONLY table 相同的行。 语法COPY (SELECT * FROM table) TO … 可用于转储一个继承层次结构、分区表或视图中的所有行。
pg_stat_monitor is a Query Performance Monitoring tool for PostgreSQL. pg_stat_monitor collects performance statistics and provides query performance insights in a single view and graphically in histogram.
+
+
+
These insights allow database users to understand query origins, execution, planning statistics and details, query information, and metadata. This significantly improves observability, enabling users to debug and tune query performance.
+
+
+
+
+
2. Installation
+
+
+
The IvorySQL installation package already includes the pg_stat_monitor plugin. If you installed IvorySQL using the installation package, you typically don’t need to manually install pg_stat_monitor. If you installed IvorySQL from source code, you can proceed to install the pg_stat_monitor plugin also from source. The IvorySQL community provides step-by-step instructions for source code installation:
+
+
+
To build pg_stat_monitor from source code, you require the following:
+
+
+
+
+
git
+
+
+
make
+
+
+
gcc
+
+
+
pg_config
+
+
+
+
+
You can download the source code of the latest release of pg_stat_monitor from the releases page on GitHub or using git:
Compile and install the extension. Assuming IvorySQL is already installed in the environment with the installation path at /usr/ivory-5.
+
+
+
+
cd pg_stat_monitor
+export PG_CONFIG=/usr/ivory-5/bin/pg_config
+make USE_PGXS=1
+make USE_PGXS=1 install
+
+
+
+
+
+
3. Load the module
+
+
+
Load pg_stat_monitor at the start time by adding it to the shared_preload_libraries configuration parameter. This is because pg_stat_monitor requires additional shared memory.
+
+
+
modify the shared_preload_libraries parameter:
+
+
+
+
shared_preload_libraries = 'pg_stat_monitor';
+
+
+
+
+
+
+
+
+
+If you’ve added other modules to the shared_preload_libraries parameter (for example, pg_stat_statements), list all of them separated by commas for the ALTER SYSTEM command.
+
Start or restart the IvorySQL instance to apply the changes.
+
+
+
+
pg_ctl restart -D data
+
+
+
+
After you have added pg_stat_monitor to the shared_preload_libraries, it starts collecting statistics data for all existing databases. To access this data, you need to create the view on every database that you wish to monitor.
+
+
+
+
+
4. Create the extension view
+
+
+
Create the extension view with the user that has the privileges of a superuser or a database owner. Connect to psql as a superuser for a database and run the CREATE EXTENSION command:
+
+
+
+
CREATE EXTENSION pg_stat_monitor;
+
+
+
+
After the setup is complete, you can see the stats collected by pg_stat_monitor.
+
+
+
+
+
5. Usage
+
+
+
To obtain query execution time information as an example, connect to the database and execute the following SQL:
+
+
+
+
SELECT userid, total_exec_time, min_exec_time, max_exec_time, mean_exec_time, query FROM pg_stat_monitor;
2. Use pg_upgrade to upgrade PostgreSQL to IvorySQL
+
+
+
pg_upgrade supports upgrading native PostgreSQL clusters to IvorySQL. When the source cluster is native PostgreSQL and the target is an IvorySQL cluster, the -g(--using-ora-pg)parameter must be used.
+
+
+
Upgrading from PostgreSQL to IvorySQL is considered a "cross-product" migration. It is recommended to complete comprehensive testing and validation before performing the operation in a production environment, and to develop a detailed rollback plan.
+
+
+
2.1. Parameter description
+
+
+
+
+
+
+
+
parameter
+
description
+
+
+
+
+
-g / --using-ora-pg
+
Indicates that the source cluster is PostgreSQL and the target is an IvorySQL cluster. When this option is enabled, pg_upgrade uniformly uses the PostgreSQL standard port when connecting to both clusters, ensuring proper handling of the upgrade.
+
+
+
+
+
+
2.2. Upgrade steps
+
+
2.2.1. Step 1: Initialize the new IvorySQL cluster
+
+
+
# Use IvorySQL's initdb to initialize the new cluster
+/opt/ivorysql/bin/initdb -D /data/ivorysql/data
/opt/ivorysql/bin/pg_ctl -D /data/ivorysql/data start
+
+# Verify if the database is functioning properly
+/opt/ivorysql/bin/psql -p 5432 -c "SELECT version();"
+
+
+
+
+
2.2.6. Step 6: Clean up the old cluster
+
+
After the upgrade is completed,pg_upgrade will generate a cleanup script:
+
+
+
+
./delete_old_cluster.sh
+
+
+
+
+
+
2.3. Quick reference for common parameters
+
+
+
+
+
+
+
+
+
Parameters
+
Long options
+
Description
+
+
+
+
+
-b
+
--old-bindir
+
Source cluster executable directory
+
+
+
-B
+
--new-bindir
+
Target cluster executable directory
+
+
+
-d
+
--old-datadir
+
Source cluster data directory
+
+
+
-D
+
--new-datadir
+
Target cluster data directory
+
+
+
-g
+
--using-ora-pg
+
Upgrade from PostgreSQL to IvorySQL
+
+
+
-p
+
--old-port
+
Source cluster port
+
+
+
-P
+
--new-port
+
Target cluster PG port
+
+
+
-q
+
--old-oraport
+
Source cluster Oracle port
+
+
+
-Q
+
--new-oraport
+
Target cluster Oracle port
+
+
+
-j
+
--jobs
+
Number of parallel processes
+
+
+
-k
+
--link
+
Use hard links instead of file copying
+
+
+
-c
+
--check
+
Check compatibility only, do not perform the upgrade
+
+
+
-v
+
--verbose
+
Output detailed logs
+
+
+
+
+
+
2.4. Precautions
+
+
+
+
The -g parameter is only used when the source is a pure PostgreSQL cluster、and the target is IvorySQL . If the source cluster is already IvorySQL, this parameter is not needed.
+
+
+
Both the source and target clusters must be in a stopped state during the upgrade.
+
+
+
Be sure to perform a complete backup of the source cluster before upgrading.
+
+
+
+
+
+
+
+
3. Managing IvorySQL Versions
IvorySQL is based on PostgreSQL and is updated at the same frequency as PostgreSQL, with one major release per year and one minor release per quarter. IvorySQL 5.0 is based on PostgreSQL 18.0, and all versions of IvorySQL are backward compatible.The relevant version features can be viewed by looking at Official Website。
IvorySQL uses the concept of Roles to manage database access rights. A role can be thought of as a database user or a group of database users, depending on how the role is set. Roles can own database objects (for example, tables and functions) and can delegate permissions on those objects to other roles to control who can access which objects. In addition, membership in one role can be granted to another role, allowing member roles to use the permissions granted to another role.
IvorySQL is based on PostgreSQL and has a full SQL with defined data objects that can be referred to doc.On top of that, IvorySQL has done some Oracle proprietary data object compatibility for Oracle compatibility.
-
4.1. VARCHAR2
+
5.1. VARCHAR2
-
4.1.1. Overview
+
5.1.1. Overview
Variable length strings with maximum length bytes or characters. You must specify the size for VARCHAR2. The minimum size is 1 byte or 1 character.
IvorySQL is developed based on PostgreSQL, with full SQL, query data specific operations can be referred to doc.
@@ -801,7 +1008,7 @@
5. Search Data
-
6. Use of foreign data
+
7. Use of foreign data
IvorySQL implements portions of the SQL/MED specification, allowing you to access data that resides outside IvorySQL using regular SQL queries. Such data is referred to as foreign data. (Note that this usage is not to be confused with foreign keys, which are a type of constraint within the database.)
@@ -818,7 +1025,7 @@
6
-
7. Backup and Restore
+
8. Backup and Restore
As with everything that contains valuable data, IvorySQL databases should be backed up regularly. While the procedure is essentially simple, it is important to have a clear understanding of the underlying techniques and assumptions.
@@ -840,7 +1047,7 @@
7.
-
7.1. SQL Dump
+
8.1. SQL Dump
The idea behind this dump method is to generate a file with SQL commands that, when fed back to the server, will recreate the database in the same state as it was at the time of the dump. IvorySQL provides the utility program pg_dumpfor this purpose. The basic usage of this command is:
@@ -868,7 +1075,7 @@
7.1. SQL Dump
Dumps created by pg_dump are internally consistent, meaning, the dump represents a snapshot of the database at the time pg_dump began running. pg_dump does not block other operations on the database while it is working. (Exceptions are those operations that need to operate with an exclusive lock, such as most forms of ALTER TABLE.)
-
7.1.1. Restoring the Dump
+
8.1.1. Restoring the Dump
Text files created by pg_dump are intended to be read in by the psql program. The general command form to restore a dump is
@@ -910,7 +1117,7 @@
7.1
-
7.1.2. Using pg_dumpall
+
8.1.2. Using pg_dumpall
pg_dump dumps only a single database at a time, and it does not dump information about roles or tablespaces (because those are cluster-wide rather than per-database). To support convenient dumping of the entire contents of a database cluster, the pg_dumpall program is provided. pg_dumpall backs up each database in a given cluster, and also preserves cluster-wide data such as role and tablespace definitions. The basic usage of this command is:
@@ -938,7 +1145,7 @@
7.1.2.
-
7.1.3. Handling Large Databases
+
8.1.3. Handling Large Databases
Some operating systems have maximum file size limits that cause problems when creating large pg_dump output files. Fortunately, pg_dump can write to the standard output, so you can use standard Unix tools to work around this potential problem. There are several possible methods:
An alternative backup strategy is to directly copy the files that IvorySQL uses to store the data in the database,You can use whatever method you prefer for doing file system backups; for example:
7.3. Continuous Archiving and Point-in-Time Recovery (PITR)
+
8.3. Continuous Archiving and Point-in-Time Recovery (PITR)
At all times,IvorySQLmaintains a write ahead log (WAL) in the pg_wal/ subdirectory of the cluster’s data directory. The log records every change made to the database’s data files. This log exists primarily for crash-safety purposes: if the system crashes, the database can be restored to consistency by “replaying” the log entries made since the last checkpoint. However, the existence of the log makes it possible to use a third strategy for backing up databases: we can combine a file-system-level backup with backup of the WAL files. If recovery is needed, we restore the file system backup and then replay from the backed-up WAL files to bring the system to a current state. This approach is more complex to administer than either of the previous approaches, but it has some significant benefits:
@@ -1103,7 +1310,7 @@
-
8. Loading and unloading data
+
9. Loading and unloading data
COPY moves data between IvorySQL tables and standard file-system files. COPY TO copies the contents of a table to a file, while COPY FROM copies data from a file to a table (appending the data to whatever is in the table already). COPY TO can also copy the results of a SELECT query.
On successful completion, a COPY command returns a command tag of the form
@@ -1167,7 +1374,7 @@
8.2. Outputs
-
8.3. Notes
+
9.3. Notes
COPY TO can be used only with plain tables, not views, and does not copy rows from child tables or child partitions. For example, COPY `table TO` copies the same rows as SELECT * FROM ONLY `table. The syntax `COPY (SELECT * FROM `table) TO …` can be used to dump all of the rows in an inheritance hierarchy, partitioned table, or view.
@@ -1212,9 +1419,9 @@
8.3. Notes
-
8.4. File Formats
+
9.4. File Formats
-
8.4.1. Text Format
+
9.4.1. Text Format
When the text format is used, the data read or written is a text file with one line per table row. Columns in a row are separated by the delimiter character. The column values themselves are strings generated by the output function, or acceptable to the input function, of each attribute’s data type. The specified null string is used in place of columns that are null. COPY FROM will raise an error if any line of the input file contains more or fewer columns than are expected.
@@ -1291,7 +1498,7 @@
8.4.1. Text Forma
-
8.4.2. CSV Format
+
9.4.2. CSV Format
This format option is used for importing and exporting the Comma Separated Value (CSV) file format used by many other programs, such as spreadsheets. Instead of the escaping rules used by IvorySQL’s standard text format, it produces and recognizes the common CSV escaping mechanism.
@@ -1330,7 +1537,7 @@
8.4.2. CSV Format
-
8.4.3. Binary Format
+
9.4.3. Binary Format
The binary format option causes all data to be stored/read as binary format rather than as text. It is somewhat faster than the text and CSV formats, but a binary-format file is less portable across machine architectures and IvorySQL versions. Also, the binary format is very data type specific; for example it will not work to output binary data from a smallint column and read it into an integer column, even though that would work fine in text format.
@@ -1396,7 +1603,7 @@
8.4.3. Binary
-
8.4.4. File Trailer
+
9.4.4. File Trailer
The file trailer consists of a 16-bit integer word containing -1. This is easily distinguished from a tuple’s field-count word.
@@ -1406,7 +1613,7 @@
8.4.4. File Tra
-
8.5. Examples
+
9.5. Examples
The following example copies a table to the client using the vertical bar (|) as the field delimiter:
@@ -1483,13 +1690,13 @@
8.5. Examples
-
9. Performance Tips
+
10. Performance Tips
Query performance can be affected by a variety of factors. Some of these factors can be controlled by the user, while others are fundamentals of the system’s lower-level design.
-
9.1. Using EXPLAIN
+
10.1. Using EXPLAIN
IvorySQL devises a query plan for each query it receives. Choosing the right plan to match the query structure and the properties of the data is absolutely critical for good performance, so the system includes a complex planner that tries to choose good plans. You can use the EXPLAIN command to see what query plan the planner creates for any query. Plan-reading is an art that requires some experience to master, but this section attempts to cover the basics.
@@ -1497,7 +1704,7 @@
9.1. Using EX
The examples use `EXPLAIN’s default “text” output format, which is compact and convenient for humans to read. If you want to feed `EXPLAIN’s output to a program for further analysis, you should use one of its machine-readable output formats (XML, JSON, or YAML) instead.
-
9.1.1. EXPLAIN Basics
+
10.1.1. EXPLAIN Basics
The structure of a query plan is a tree of plan nodes. Nodes at the bottom level of the tree are scan nodes: they return raw rows from a table. There are different types of scan nodes for different table access methods: sequential scans, index scans, and bitmap index scans. There are also non-table row sources, such as VALUES clauses and set-returning functions in FROM, which have their own scan node types. If the query requires joining, aggregation, sorting, or other operations on the raw rows, then there will be additional nodes above the scan nodes to perform these operations. Again, there is usually more than one possible way to do these operations, so different node types can appear here too. The output of EXPLAIN has one line for each node in the plan tree, showing the basic node type plus the cost estimates that the planner made for the execution of that plan node. Additional lines might appear, indented from the node’s summary line, to show additional properties of the node. The very first line (the summary line for the topmost node) has the estimated total execution cost for the plan; it is this number that the planner seeks to minimize.
@@ -1834,7 +2041,7 @@
9.1.1. EXPL
-
9.1.2. EXPLAIN ANALYZE
+
10.1.2. EXPLAIN ANALYZE
It is possible to check the accuracy of the planner’s estimates by using EXPLAIN’s `ANALYZE option. With this option, EXPLAIN actually executes the query, and then displays the true row counts and true run time accumulated within each plan node, along with the same estimates that a plain EXPLAIN shows. For example, we might get a result like this:
@@ -2044,7 +2251,7 @@
9.1.2. EX
-
9.1.3. Caveats
+
10.1.3. Caveats
There are two significant ways in which run times measured by EXPLAIN ANALYZE can deviate from normal execution of the same query. First, since no output rows are delivered to the client, network transmission costs and I/O conversion costs are not included. Second, the measurement overhead added by EXPLAIN ANALYZE can be significant, especially on machines with slow gettimeofday() operating-system calls. You can use the pg_test_timing tool to measure the overhead of timing on your system.
@@ -2084,9 +2291,9 @@
9.1.3. Caveats
-
9.2. Statistics Used by the Planner
+
10.2. Statistics Used by the Planner
-
9.2.1. Single-Column Statistics
+
10.2.1. Single-Column Statistics
As we saw in the previous section, the query planner needs to estimate the number of rows retrieved by a query in order to make good choices of query plans. This section provides a quick look at the statistics that the system uses for these estimates.
It is common to see slow queries running bad execution plans because multiple columns used in the query clauses are correlated. The planner normally assumes that multiple conditions are independent of each other, an assumption that does not hold when column values are correlated. Regular statistics, because of their per-individual-column nature, cannot capture any knowledge about cross-column correlation. However, IvorySQL has the ability to compute multivariate statistics, which can capture such information.
@@ -2171,7 +2378,7 @@
9
The following subsections describe the kinds of extended statistics that are currently supported.
-
9.2.2.1. Functional Dependencies
+
10.2.2.1. Functional Dependencies
The simplest kind of extended statistics tracks functional dependencies, a concept used in definitions of database normal forms. We say that column b is functionally dependent on column a if knowledge of the value of a is sufficient to determine the value of b, that is there are no two rows having the same value of a but different values of b. In a fully normalized database, functional dependencies should exist only on primary keys and superkeys. However, in practice many data sets are not fully normalized for various reasons; intentional denormalization for performance reasons is a common example. Even in a fully normalized database, there may be partial correlation between some columns, which can be expressed as partial functional dependency.
10.2.2.1.1. Limitations of Functional Dependencies
Functional dependencies are currently only applied when considering simple equality conditions that compare columns to constant values, and IN clauses with constant values. They are not used to improve estimates for equality conditions comparing two columns or comparing a column to an expression, nor for range clauses, LIKE or any other type of condition.
Single-column statistics store the number of distinct values in each column. Estimates of the number of distinct values when combining more than one column (for example, for GROUP BY a, b) are frequently wrong when the planner only has single-column statistical data, causing it to select bad plans.
Another type of statistic stored for each column are most-common value lists. This allows very accurate estimates for individual columns, but may result in significant misestimates for queries with conditions on multiple columns.
@@ -2313,7 +2520,7 @@
-
9.3. Controlling the Planner with Explicit JOIN Clauses
+
10.3. Controlling the Planner with Explicit JOIN Clauses
It is possible to control the query planner to some extent by using the explicit JOIN syntax. To see why this matters, we first need some background.
@@ -2410,18 +2617,18 @@
-
9.4. Populating a Database
+
10.4. Populating a Database
One might need to insert a large amount of data when first populating a database. This section contains some suggestions on how to make this process as efficient as possible.
-
9.4.1. Disable Autocommit
+
10.4.1. Disable Autocommit
When using multiple INSERT`s, turn off autocommit and just do one commit at the end. (In plain SQL, this means issuing `BEGIN at the start and COMMIT at the end. Some client libraries might do this behind your back, in which case you need to make sure the library does it when you want it done.) If you allow each insertion to be committed separately, IvorySQL is doing a lot of work for each row that is added. An additional benefit of doing all insertions in one transaction is that if the insertion of one row were to fail then the insertion of all rows inserted up to that point would be rolled back, so you won’t be stuck with partially loaded data.
-
9.4.2. Use COPY
+
10.4.2. Use COPY
Use COPY to load all the rows in one command, instead of using a series of INSERT commands. The COPY command is optimized for loading large numbers of rows; it is less flexible than INSERT, but incurs significantly less overhead for large data loads. Since COPY is a single command, there is no need to disable autocommit if you use this method to populate a table.
@@ -2436,7 +2643,7 @@
9.4.2. Use COPY
-
9.4.3. Remove Indexes
+
10.4.3. Remove Indexes
If you are loading a freshly created table, the fastest method is to create the table, bulk load the table’s data using COPY, then create any indexes needed for the table. Creating an index on pre-existing data is quicker than updating it incrementally as each row is loaded.
@@ -2445,7 +2652,7 @@
9.4.3. Remo
-
9.4.4. Remove Foreign Key Constraints
+
10.4.4. Remove Foreign Key Constraints
Just as with indexes, a foreign key constraint can be checked “in bulk” more efficiently than row-by-row. So it might be useful to drop foreign key constraints, load data, and re-create the constraints. Again, there is a trade-off between data load speed and loss of error checking while the constraint is missing.
Temporarily increasing the maintenance_work_mem configuration variable when loading large amounts of data can lead to improved performance. This will help to speed up CREATE INDEX commands and ALTER TABLE ADD FOREIGN KEY commands. It won’t do much for COPY itself, so this advice is only useful when you are using one or both of the above techniques.
-
9.4.6. Increase max_wal_size
+
10.4.6. Increase max_wal_size
Temporarily increasing the max_wal_size configuration variable can also make large data loads faster. This is because loading a large amount of data into IvorySQL will cause checkpoints to occur more often than the normal checkpoint frequency (specified by the checkpoint_timeout configuration variable). Whenever a checkpoint occurs, all dirty pages must be flushed to disk. By increasing max_wal_size temporarily during bulk data loads, the number of checkpoints that are required can be reduced.
-
9.4.7. Disable WAL Archival and Streaming Replication
+
10.4.7. Disable WAL Archival and Streaming Replication
When loading large amounts of data into an installation that uses WAL archiving or streaming replication, it might be faster to take a new base backup after the load has completed than to process a large amount of incremental WAL data. To prevent incremental WAL logging while loading, disable archiving and streaming replication, by setting wal_level to minimal, archive_mode to off, and max_wal_senders to zero. But note that changing these settings requires a server restart, and makes any base backups taken before unavailable for archive recovery and standby server, which may lead to data loss.
Whenever you have significantly altered the distribution of data within a table, running ANALYZE is strongly recommended. This includes bulk loading large amounts of data into the table. Running ANALYZE (or VACUUM ANALYZE) ensures that the planner has up-to-date statistics about the table. With no statistics or obsolete statistics, the planner might make poor decisions during query planning, leading to poor performance on any tables with inaccurate or nonexistent statistics. Note that if the autovacuum daemon is enabled, it might run ANALYZE automatically.
-
9.4.9. Some Notes about pg_dump
+
10.4.9. Some Notes about pg_dump
Dump scripts generated by pg_dump automatically apply several, but not all, of the above guidelines. To restore a pg_dump dump as quickly as possible, you need to do a few extra things manually. (Note that these points apply while restoring a dump, not while creating it. The same points apply whether loading a text dump with psql or using pg_restore to load from a pg_dump archive file.)
Durability is a database feature that guarantees the recording of committed transactions even if the server crashes or loses power. However, durability adds significant database overhead, so if your site does not require such a guarantee, IvorySQL can be configured to run much faster. The following are configuration changes you can make to improve performance in such cases. Except as noted below, durability is still guaranteed in case of a crash of the database software; only an abrupt operating system crash creates a risk of data loss or corruption when these settings are used.
2. Use pg_upgrade to upgrade PostgreSQL to IvorySQL
+
+
+
pg_upgrade supports upgrading native PostgreSQL clusters to IvorySQL. When the source cluster is native PostgreSQL and the target is an IvorySQL cluster, the -g(--using-ora-pg)parameter must be used.
+
+
+
Upgrading from PostgreSQL to IvorySQL is considered a "cross-product" migration. It is recommended to complete comprehensive testing and validation before performing the operation in a production environment, and to develop a detailed rollback plan.
+
+
+
2.1. Parameter description
+
+
+
+
+
+
+
+
parameter
+
description
+
+
+
+
+
-g / --using-ora-pg
+
Indicates that the source cluster is PostgreSQL and the target is an IvorySQL cluster. When this option is enabled, pg_upgrade uniformly uses the PostgreSQL standard port when connecting to both clusters, ensuring proper handling of the upgrade.
+
+
+
+
+
+
2.2. Upgrade steps
+
+
2.2.1. Step 1: Initialize the new IvorySQL cluster
+
+
+
# Use IvorySQL's initdb to initialize the new cluster
+/opt/ivorysql/bin/initdb -D /data/ivorysql/data
/opt/ivorysql/bin/pg_ctl -D /data/ivorysql/data start
+
+# Verify if the database is functioning properly
+/opt/ivorysql/bin/psql -p 5432 -c "SELECT version();"
+
+
+
+
+
2.2.6. Step 6: Clean up the old cluster
+
+
After the upgrade is completed,pg_upgrade will generate a cleanup script:
+
+
+
+
./delete_old_cluster.sh
+
+
+
+
+
+
2.3. Quick reference for common parameters
+
+
+
+
+
+
+
+
+
Parameters
+
Long options
+
Description
+
+
+
+
+
-b
+
--old-bindir
+
Source cluster executable directory
+
+
+
-B
+
--new-bindir
+
Target cluster executable directory
+
+
+
-d
+
--old-datadir
+
Source cluster data directory
+
+
+
-D
+
--new-datadir
+
Target cluster data directory
+
+
+
-g
+
--using-ora-pg
+
Upgrade from PostgreSQL to IvorySQL
+
+
+
-p
+
--old-port
+
Source cluster port
+
+
+
-P
+
--new-port
+
Target cluster PG port
+
+
+
-q
+
--old-oraport
+
Source cluster Oracle port
+
+
+
-Q
+
--new-oraport
+
Target cluster Oracle port
+
+
+
-j
+
--jobs
+
Number of parallel processes
+
+
+
-k
+
--link
+
Use hard links instead of file copying
+
+
+
-c
+
--check
+
Check compatibility only, do not perform the upgrade
+
+
+
-v
+
--verbose
+
Output detailed logs
+
+
+
+
+
+
2.4. Precautions
+
+
+
+
The -g parameter is only used when the source is a pure PostgreSQL cluster、and the target is IvorySQL . If the source cluster is already IvorySQL, this parameter is not needed.
+
+
+
Both the source and target clusters must be in a stopped state during the upgrade.
+
+
+
Be sure to perform a complete backup of the source cluster before upgrading.
+
+
+
+
+
+
+
+
3. Managing IvorySQL Versions
IvorySQL is based on PostgreSQL and is updated at the same frequency as PostgreSQL, with one major release per year and one minor release per quarter. IvorySQL 5.3 is based on PostgreSQL 18.3, and all versions of IvorySQL are backward compatible.The relevant version features can be viewed by looking at Official Website。
IvorySQL uses the concept of Roles to manage database access rights. A role can be thought of as a database user or a group of database users, depending on how the role is set. Roles can own database objects (for example, tables and functions) and can delegate permissions on those objects to other roles to control who can access which objects. In addition, membership in one role can be granted to another role, allowing member roles to use the permissions granted to another role.
IvorySQL is based on PostgreSQL and has a full SQL with defined data objects that can be referred to doc.On top of that, IvorySQL has done some Oracle proprietary data object compatibility for Oracle compatibility.
-
4.1. VARCHAR2
+
5.1. VARCHAR2
-
4.1.1. Overview
+
5.1.1. Overview
Variable length strings with maximum length bytes or characters. You must specify the size for VARCHAR2. The minimum size is 1 byte or 1 character.
IvorySQL is developed based on PostgreSQL, with full SQL, query data specific operations can be referred to doc.
@@ -828,7 +1032,7 @@
5. Search Data
-
6. Use of foreign data
+
7. Use of foreign data
IvorySQL implements portions of the SQL/MED specification, allowing you to access data that resides outside IvorySQL using regular SQL queries. Such data is referred to as foreign data. (Note that this usage is not to be confused with foreign keys, which are a type of constraint within the database.)
@@ -845,7 +1049,7 @@
6
-
7. Backup and Restore
+
8. Backup and Restore
As with everything that contains valuable data, IvorySQL databases should be backed up regularly. While the procedure is essentially simple, it is important to have a clear understanding of the underlying techniques and assumptions.
@@ -867,7 +1071,7 @@
7.
-
7.1. SQL Dump
+
8.1. SQL Dump
The idea behind this dump method is to generate a file with SQL commands that, when fed back to the server, will recreate the database in the same state as it was at the time of the dump. IvorySQL provides the utility program pg_dumpfor this purpose. The basic usage of this command is:
@@ -895,7 +1099,7 @@
7.1. SQL Dump
Dumps created by pg_dump are internally consistent, meaning, the dump represents a snapshot of the database at the time pg_dump began running. pg_dump does not block other operations on the database while it is working. (Exceptions are those operations that need to operate with an exclusive lock, such as most forms of ALTER TABLE.)
-
7.1.1. Restoring the Dump
+
8.1.1. Restoring the Dump
Text files created by pg_dump are intended to be read in by the psql program. The general command form to restore a dump is
@@ -937,7 +1141,7 @@
7.1
-
7.1.2. Using pg_dumpall
+
8.1.2. Using pg_dumpall
pg_dump dumps only a single database at a time, and it does not dump information about roles or tablespaces (because those are cluster-wide rather than per-database). To support convenient dumping of the entire contents of a database cluster, the pg_dumpall program is provided. pg_dumpall backs up each database in a given cluster, and also preserves cluster-wide data such as role and tablespace definitions. The basic usage of this command is:
@@ -965,7 +1169,7 @@
7.1.2.
-
7.1.3. Handling Large Databases
+
8.1.3. Handling Large Databases
Some operating systems have maximum file size limits that cause problems when creating large pg_dump output files. Fortunately, pg_dump can write to the standard output, so you can use standard Unix tools to work around this potential problem. There are several possible methods:
An alternative backup strategy is to directly copy the files that IvorySQL uses to store the data in the database,You can use whatever method you prefer for doing file system backups; for example:
7.3. Continuous Archiving and Point-in-Time Recovery (PITR)
+
8.3. Continuous Archiving and Point-in-Time Recovery (PITR)
At all times,IvorySQLmaintains a write ahead log (WAL) in the pg_wal/ subdirectory of the cluster’s data directory. The log records every change made to the database’s data files. This log exists primarily for crash-safety purposes: if the system crashes, the database can be restored to consistency by “replaying” the log entries made since the last checkpoint. However, the existence of the log makes it possible to use a third strategy for backing up databases: we can combine a file-system-level backup with backup of the WAL files. If recovery is needed, we restore the file system backup and then replay from the backed-up WAL files to bring the system to a current state. This approach is more complex to administer than either of the previous approaches, but it has some significant benefits:
@@ -1130,7 +1334,7 @@
-
8. Loading and unloading data
+
9. Loading and unloading data
COPY moves data between IvorySQL tables and standard file-system files. COPY TO copies the contents of a table to a file, while COPY FROM copies data from a file to a table (appending the data to whatever is in the table already). COPY TO can also copy the results of a SELECT query.
On successful completion, a COPY command returns a command tag of the form
@@ -1194,7 +1398,7 @@
8.2. Outputs
-
8.3. Notes
+
9.3. Notes
COPY TO can be used only with plain tables, not views, and does not copy rows from child tables or child partitions. For example, COPY `table TO` copies the same rows as SELECT * FROM ONLY `table. The syntax `COPY (SELECT * FROM `table) TO …` can be used to dump all of the rows in an inheritance hierarchy, partitioned table, or view.
@@ -1239,9 +1443,9 @@
8.3. Notes
-
8.4. File Formats
+
9.4. File Formats
-
8.4.1. Text Format
+
9.4.1. Text Format
When the text format is used, the data read or written is a text file with one line per table row. Columns in a row are separated by the delimiter character. The column values themselves are strings generated by the output function, or acceptable to the input function, of each attribute’s data type. The specified null string is used in place of columns that are null. COPY FROM will raise an error if any line of the input file contains more or fewer columns than are expected.
@@ -1318,7 +1522,7 @@
8.4.1. Text Forma
-
8.4.2. CSV Format
+
9.4.2. CSV Format
This format option is used for importing and exporting the Comma Separated Value (CSV) file format used by many other programs, such as spreadsheets. Instead of the escaping rules used by IvorySQL’s standard text format, it produces and recognizes the common CSV escaping mechanism.
@@ -1357,7 +1561,7 @@
8.4.2. CSV Format
-
8.4.3. Binary Format
+
9.4.3. Binary Format
The binary format option causes all data to be stored/read as binary format rather than as text. It is somewhat faster than the text and CSV formats, but a binary-format file is less portable across machine architectures and IvorySQL versions. Also, the binary format is very data type specific; for example it will not work to output binary data from a smallint column and read it into an integer column, even though that would work fine in text format.
@@ -1423,7 +1627,7 @@
8.4.3. Binary
-
8.4.4. File Trailer
+
9.4.4. File Trailer
The file trailer consists of a 16-bit integer word containing -1. This is easily distinguished from a tuple’s field-count word.
@@ -1433,7 +1637,7 @@
8.4.4. File Tra
-
8.5. Examples
+
9.5. Examples
The following example copies a table to the client using the vertical bar (|) as the field delimiter:
@@ -1510,13 +1714,13 @@
8.5. Examples
-
9. Performance Tips
+
10. Performance Tips
Query performance can be affected by a variety of factors. Some of these factors can be controlled by the user, while others are fundamentals of the system’s lower-level design.
-
9.1. Using EXPLAIN
+
10.1. Using EXPLAIN
IvorySQL devises a query plan for each query it receives. Choosing the right plan to match the query structure and the properties of the data is absolutely critical for good performance, so the system includes a complex planner that tries to choose good plans. You can use the EXPLAIN command to see what query plan the planner creates for any query. Plan-reading is an art that requires some experience to master, but this section attempts to cover the basics.
@@ -1524,7 +1728,7 @@
9.1. Using EX
The examples use `EXPLAIN’s default “text” output format, which is compact and convenient for humans to read. If you want to feed `EXPLAIN’s output to a program for further analysis, you should use one of its machine-readable output formats (XML, JSON, or YAML) instead.
-
9.1.1. EXPLAIN Basics
+
10.1.1. EXPLAIN Basics
The structure of a query plan is a tree of plan nodes. Nodes at the bottom level of the tree are scan nodes: they return raw rows from a table. There are different types of scan nodes for different table access methods: sequential scans, index scans, and bitmap index scans. There are also non-table row sources, such as VALUES clauses and set-returning functions in FROM, which have their own scan node types. If the query requires joining, aggregation, sorting, or other operations on the raw rows, then there will be additional nodes above the scan nodes to perform these operations. Again, there is usually more than one possible way to do these operations, so different node types can appear here too. The output of EXPLAIN has one line for each node in the plan tree, showing the basic node type plus the cost estimates that the planner made for the execution of that plan node. Additional lines might appear, indented from the node’s summary line, to show additional properties of the node. The very first line (the summary line for the topmost node) has the estimated total execution cost for the plan; it is this number that the planner seeks to minimize.
@@ -1861,7 +2065,7 @@
9.1.1. EXPL
-
9.1.2. EXPLAIN ANALYZE
+
10.1.2. EXPLAIN ANALYZE
It is possible to check the accuracy of the planner’s estimates by using EXPLAIN’s `ANALYZE option. With this option, EXPLAIN actually executes the query, and then displays the true row counts and true run time accumulated within each plan node, along with the same estimates that a plain EXPLAIN shows. For example, we might get a result like this:
@@ -2071,7 +2275,7 @@
9.1.2. EX
-
9.1.3. Caveats
+
10.1.3. Caveats
There are two significant ways in which run times measured by EXPLAIN ANALYZE can deviate from normal execution of the same query. First, since no output rows are delivered to the client, network transmission costs and I/O conversion costs are not included. Second, the measurement overhead added by EXPLAIN ANALYZE can be significant, especially on machines with slow gettimeofday() operating-system calls. You can use the pg_test_timing tool to measure the overhead of timing on your system.
@@ -2111,9 +2315,9 @@
9.1.3. Caveats
-
9.2. Statistics Used by the Planner
+
10.2. Statistics Used by the Planner
-
9.2.1. Single-Column Statistics
+
10.2.1. Single-Column Statistics
As we saw in the previous section, the query planner needs to estimate the number of rows retrieved by a query in order to make good choices of query plans. This section provides a quick look at the statistics that the system uses for these estimates.
It is common to see slow queries running bad execution plans because multiple columns used in the query clauses are correlated. The planner normally assumes that multiple conditions are independent of each other, an assumption that does not hold when column values are correlated. Regular statistics, because of their per-individual-column nature, cannot capture any knowledge about cross-column correlation. However, IvorySQL has the ability to compute multivariate statistics, which can capture such information.
@@ -2198,7 +2402,7 @@
9
The following subsections describe the kinds of extended statistics that are currently supported.
-
9.2.2.1. Functional Dependencies
+
10.2.2.1. Functional Dependencies
The simplest kind of extended statistics tracks functional dependencies, a concept used in definitions of database normal forms. We say that column b is functionally dependent on column a if knowledge of the value of a is sufficient to determine the value of b, that is there are no two rows having the same value of a but different values of b. In a fully normalized database, functional dependencies should exist only on primary keys and superkeys. However, in practice many data sets are not fully normalized for various reasons; intentional denormalization for performance reasons is a common example. Even in a fully normalized database, there may be partial correlation between some columns, which can be expressed as partial functional dependency.
10.2.2.1.1. Limitations of Functional Dependencies
Functional dependencies are currently only applied when considering simple equality conditions that compare columns to constant values, and IN clauses with constant values. They are not used to improve estimates for equality conditions comparing two columns or comparing a column to an expression, nor for range clauses, LIKE or any other type of condition.
Single-column statistics store the number of distinct values in each column. Estimates of the number of distinct values when combining more than one column (for example, for GROUP BY a, b) are frequently wrong when the planner only has single-column statistical data, causing it to select bad plans.
Another type of statistic stored for each column are most-common value lists. This allows very accurate estimates for individual columns, but may result in significant misestimates for queries with conditions on multiple columns.
@@ -2340,7 +2544,7 @@
-
9.3. Controlling the Planner with Explicit JOIN Clauses
+
10.3. Controlling the Planner with Explicit JOIN Clauses
It is possible to control the query planner to some extent by using the explicit JOIN syntax. To see why this matters, we first need some background.
@@ -2437,18 +2641,18 @@
-
9.4. Populating a Database
+
10.4. Populating a Database
One might need to insert a large amount of data when first populating a database. This section contains some suggestions on how to make this process as efficient as possible.
-
9.4.1. Disable Autocommit
+
10.4.1. Disable Autocommit
When using multiple INSERT`s, turn off autocommit and just do one commit at the end. (In plain SQL, this means issuing `BEGIN at the start and COMMIT at the end. Some client libraries might do this behind your back, in which case you need to make sure the library does it when you want it done.) If you allow each insertion to be committed separately, IvorySQL is doing a lot of work for each row that is added. An additional benefit of doing all insertions in one transaction is that if the insertion of one row were to fail then the insertion of all rows inserted up to that point would be rolled back, so you won’t be stuck with partially loaded data.
-
9.4.2. Use COPY
+
10.4.2. Use COPY
Use COPY to load all the rows in one command, instead of using a series of INSERT commands. The COPY command is optimized for loading large numbers of rows; it is less flexible than INSERT, but incurs significantly less overhead for large data loads. Since COPY is a single command, there is no need to disable autocommit if you use this method to populate a table.
@@ -2463,7 +2667,7 @@
9.4.2. Use COPY
-
9.4.3. Remove Indexes
+
10.4.3. Remove Indexes
If you are loading a freshly created table, the fastest method is to create the table, bulk load the table’s data using COPY, then create any indexes needed for the table. Creating an index on pre-existing data is quicker than updating it incrementally as each row is loaded.
@@ -2472,7 +2676,7 @@
9.4.3. Remo
-
9.4.4. Remove Foreign Key Constraints
+
10.4.4. Remove Foreign Key Constraints
Just as with indexes, a foreign key constraint can be checked “in bulk” more efficiently than row-by-row. So it might be useful to drop foreign key constraints, load data, and re-create the constraints. Again, there is a trade-off between data load speed and loss of error checking while the constraint is missing.
Temporarily increasing the maintenance_work_mem configuration variable when loading large amounts of data can lead to improved performance. This will help to speed up CREATE INDEX commands and ALTER TABLE ADD FOREIGN KEY commands. It won’t do much for COPY itself, so this advice is only useful when you are using one or both of the above techniques.
-
9.4.6. Increase max_wal_size
+
10.4.6. Increase max_wal_size
Temporarily increasing the max_wal_size configuration variable can also make large data loads faster. This is because loading a large amount of data into IvorySQL will cause checkpoints to occur more often than the normal checkpoint frequency (specified by the checkpoint_timeout configuration variable). Whenever a checkpoint occurs, all dirty pages must be flushed to disk. By increasing max_wal_size temporarily during bulk data loads, the number of checkpoints that are required can be reduced.
-
9.4.7. Disable WAL Archival and Streaming Replication
+
10.4.7. Disable WAL Archival and Streaming Replication
When loading large amounts of data into an installation that uses WAL archiving or streaming replication, it might be faster to take a new base backup after the load has completed than to process a large amount of incremental WAL data. To prevent incremental WAL logging while loading, disable archiving and streaming replication, by setting wal_level to minimal, archive_mode to off, and max_wal_senders to zero. But note that changing these settings requires a server restart, and makes any base backups taken before unavailable for archive recovery and standby server, which may lead to data loss.
Whenever you have significantly altered the distribution of data within a table, running ANALYZE is strongly recommended. This includes bulk loading large amounts of data into the table. Running ANALYZE (or VACUUM ANALYZE) ensures that the planner has up-to-date statistics about the table. With no statistics or obsolete statistics, the planner might make poor decisions during query planning, leading to poor performance on any tables with inaccurate or nonexistent statistics. Note that if the autovacuum daemon is enabled, it might run ANALYZE automatically.
-
9.4.9. Some Notes about pg_dump
+
10.4.9. Some Notes about pg_dump
Dump scripts generated by pg_dump automatically apply several, but not all, of the above guidelines. To restore a pg_dump dump as quickly as possible, you need to do a few extra things manually. (Note that these points apply while restoring a dump, not while creating it. The same points apply whether loading a text dump with psql or using pg_restore to load from a pg_dump archive file.)
Durability is a database feature that guarantees the recording of committed transactions even if the server crashes or loses power. However, durability adds significant database overhead, so if your site does not require such a guarantee, IvorySQL can be configured to run much faster. The following are configuration changes you can make to improve performance in such cases. Except as noted below, durability is still guaranteed in case of a crash of the database software; only an abrupt operating system crash creates a risk of data loss or corruption when these settings are used.
3.4. Reference bind variables in parameters or INTO clauses
-
-- Set input bind variables
+
-- Create functions stand_alone_func
+CREATE OR REPLACE FUNCTION stand_alone_func(p_input NUMBER)
+RETURN NUMBER
+IS
+BEGIN
+ RETURN p_input * 2;
+END;
+/
+-- Set input bind variables
ivorysql=# VARIABLE input_num NUMBER = 7;
-- Call a function using bind variables as parameters
ivorysql=# VARIABLE func_result NUMBER;
diff --git a/docs/en/ivorysql-doc/v5.3/_exports/index.pdf b/docs/en/ivorysql-doc/v5.3/_exports/index.pdf
index 646ce65f..286e3fbc 100644
Binary files a/docs/en/ivorysql-doc/v5.3/_exports/index.pdf and b/docs/en/ivorysql-doc/v5.3/_exports/index.pdf differ
diff --git a/docs/en/ivorysql-doc/v5.3/ivorysql.pdf b/docs/en/ivorysql-doc/v5.3/ivorysql.pdf
index 646ce65f..286e3fbc 100644
Binary files a/docs/en/ivorysql-doc/v5.3/ivorysql.pdf and b/docs/en/ivorysql-doc/v5.3/ivorysql.pdf differ
diff --git a/docs/en/search-index.js b/docs/en/search-index.js
index f455e25c..17b71a60 100644
--- a/docs/en/search-index.js
+++ b/docs/en/search-index.js
@@ -1 +1 @@
-antoraSearch.initSearch(lunr, {"index":{"version":"2.3.9","fields":["title","name","text","component","keyword"],"fieldVectors":[["title/1-1",[0,24.354,1,54.997,2,21.154]],["name/1-1",[]],["text/1-1",[]],["component/1-1",[]],["keyword/1-1",[]],["title/1-2",[3,53.812,4,44.643]],["name/1-2",[]],["text/1-2",[]],["component/1-2",[]],["keyword/1-2",[]],["title/1-3",[5,41.34,6,41.989,7,51.962,8,48.624]],["name/1-3",[]],["text/1-3",[]],["component/1-3",[]],["keyword/1-3",[]],["title/1-4",[9,50.073,10,45.431,11,36.468]],["name/1-4",[]],["text/1-4",[]],["component/1-4",[]],["keyword/1-4",[]],["title/1-5",[12,54.997,13,70.055,14,51.1]],["name/1-5",[]],["text/1-5",[]],["component/1-5",[]],["keyword/1-5",[]],["title/1-6",[15,56.713,16,58.773,17,70.055]],["name/1-6",[]],["text/1-6",[]],["component/1-6",[]],["keyword/1-6",[]],["title/1-7",[10,40.167,18,54.244,19,36.215,20,41.989]],["name/1-7",[]],["text/1-7",[]],["component/1-7",[]],["keyword/1-7",[]],["title/1-8",[11,32.242,21,23.674,22,44.27,23,41.989]],["name/1-8",[]],["text/1-8",[]],["component/1-8",[]],["keyword/1-8",[]],["title/1-9",[24,30.232,25,29.415,26,32.261]],["name/1-9",[]],["text/1-9",[]],["component/1-9",[]],["keyword/1-9",[]],["title/1",[]],["name/1",[27,0.832]],["text/1",[2,3.392,10,2.639,11,3.765,19,3.143,20,3.644,22,1.682,25,4.458,26,4.89,28,1.622,29,1.506,30,5.363,31,3.726,32,4.976,33,2.354,34,2.571,35,1.651,36,1.682,37,2.909,38,1.622,39,1.39,40,1.596,41,2.182,42,2.805,43,3.444,44,2.089,45,4.892,46,1.469,47,3.46,48,2.454,49,1.984,50,2.354,51,2.313,52,5.146,53,3.673,54,2.977,55,2.829,56,4.892,57,2.676,58,4.069,59,1.526,60,3.613,61,2.902,62,4.619,63,2.869,64,1.874,65,1.452,66,2.354,67,1.506,68,2.034,69,1.338,70,2.571,71,1.622,72,1.404,73,1.315,74,3.615,75,1.293,76,3.414,77,3.765,78,2.178,79,3.109,80,3.294,81,1.272,82,2.798,83,3.242,84,2.997,85,3.765,86,2.199,87,1.755,88,2.454,89,1.526,90,1.208,91,1.622,92,2.854,93,1.571,94,1.571,95,2.061,96,2.354,97,3.143,98,2.178,99,2.178,100,3.486,101,2.178,102,2.854,103,1.799,104,1.799,105,2.061,106,1.487,107,2.061,108,2.217,109,2.805,110,1.906,111,1.39,112,1.506,113,2.178,114,2.354,115,1.376,116,2.061,117,3.904,118,2.118,119,2.178,120,3.109,121,1.526,122,2.53,123,2.676,124,1.651,125,2.061,126,1.755,127,2.922,128,2.354,129,2.354,130,1.571,131,1.596,132,3.996,133,2.178,134,1.682,135,1.571,136,2.604,137,1.596,138,1.651,139,2.968,140,2.805,141,2.178,142,2.805,143,1.622,144,1.651,145,3.287,146,2.716,147,1.596,148,2.354,149,1.596,150,1.906,151,1.526,152,1.651,153,1.848,154,1.363,155,1.526,156,2.354,157,1.282,158,4.069,159,4.827,160,1.717,161,1.487,162,2.075,163,2.354,164,2.178,165,1.682,166,1.975,167,1.848,168,1.548,169,1.975,170,1.906,171,0.914,172,2.354,173,1.376,174,2.354,175,1.651,176,2.354,177,1.293,178,1.848,179,4.892,180,3.113,181,3.705,182,1.651,183,1.717,184,1.452,185,2.539,186,1.404,187,1.39,188,2.354,189,1.487,190,1.526,191,4.069,192,1.651,193,1.755,194,2.354,195,2.354,196,2.217,197,1.717,198,1.526,199,2.354,200,2.061,201,1.376,202,1.452,203,1.651,204,1.755,205,2.061,206,2.089,207,2.235,208,1.326,209,1.435,210,1.272,211,1.35,212,2.354,213,3.055,214,1.906,215,1.651,216,2.854,217,1.108,218,2.354,219,2.354,220,3.414,221,1.596,222,1.848,223,1.906,224,2.061,225,1.596,226,1.526,227,2.075,228,3.035,229,2.178,230,2.178,231,2.253,232,1.571,233,2.061,234,1.435,235,1.548,236,1.326,237,2.354,238,2.061,239,1.571,240,1.799,241,1.506,242,1.571,243,1.243,244,1.234,245,1.419,246,1.526,247,1.338,248,1.419,249,1.596,250,1.906,251,1.506,252,1.225,253,1.717,254,2.273,255,1.717,256,1.303,257,1.799,258,1.682,259,1.469,260,1.571,261,1.799,262,1.799,263,1.469,264,1.376,265,1.435]],["component/1",[2,0.251,266,0.348]],["keyword/1",[]],["title/2-1",[0,24.354,267,41.8,268,40.566]],["name/2-1",[]],["text/2-1",[]],["component/2-1",[]],["keyword/2-1",[]],["title/2-2",[3,41.34,62,25.891,269,25.338,270,32.474]],["name/2-2",[]],["text/2-2",[]],["component/2-2",[]],["keyword/2-2",[]],["title/2-3",[5,46.758,271,50.073,272,56.713]],["name/2-3",[]],["text/2-3",[]],["component/2-3",[]],["keyword/2-3",[]],["title/2-4",[9,44.27,64,28.522,273,28.676,274,31.793]],["name/2-4",[]],["text/2-4",[]],["component/2-4",[]],["keyword/2-4",[]],["title/2-5",[2,18.702,12,48.624,275,39.128,276,57.299]],["name/2-5",[]],["text/2-5",[]],["component/2-5",[]],["keyword/2-5",[]],["title/2-6",[21,26.776,268,40.566,277,41.372]],["name/2-6",[]],["text/2-6",[]],["component/2-6",[]],["keyword/2-6",[]],["title/2-7",[62,29.285,269,28.659,278,38.471]],["name/2-7",[]],["text/2-7",[]],["component/2-7",[]],["keyword/2-7",[]],["title/2-8",[271,50.073,272,56.713,279,40.961]],["name/2-8",[]],["text/2-8",[]],["component/2-8",[]],["keyword/2-8",[]],["title/2-9",[97,36.215,280,39.128,281,40.167,282,36.215]],["name/2-9",[]],["text/2-9",[]],["component/2-9",[]],["keyword/2-9",[]],["title/2-10",[64,28.522,273,28.676,274,31.793,283,44.27]],["name/2-10",[]],["text/2-10",[]],["component/2-10",[]],["keyword/2-10",[]],["title/2-11",[2,18.702,270,32.474,276,57.299,284,46.189]],["name/2-11",[]],["text/2-11",[]],["component/2-11",[]],["keyword/2-11",[]],["title/2-12",[2,18.702,24,26.728,285,43.444,286,31.577]],["name/2-12",[]],["text/2-12",[]],["component/2-12",[]],["keyword/2-12",[]],["title/2-13",[286,31.577,287,38.196,288,32.474,289,36.956]],["name/2-13",[]],["text/2-13",[]],["component/2-13",[]],["keyword/2-13",[]],["title/2-14",[127,28.301,286,35.716,290,42.713]],["name/2-14",[]],["text/2-14",[]],["component/2-14",[]],["keyword/2-14",[]],["title/2",[2,21.154,97,40.961,286,35.716]],["name/2",[291,0.832]],["text/2",[0,0.593,2,3.385,31,1.443,37,1.22,41,0.915,52,1.404,53,3.365,54,1.697,55,5.664,59,1.107,62,3.526,84,1.953,90,0.876,97,0.998,100,1.988,108,0.93,118,0.889,145,1.574,157,1.67,171,1.19,185,4.432,196,2.273,208,2.35,210,2.255,213,2.371,217,0.804,227,0.87,231,0.945,232,1.139,248,1.029,249,1.157,263,1.065,267,4.537,268,5.269,269,3.451,270,2.188,271,3.639,272,2.482,273,0.79,275,1.078,277,4.195,281,4.234,282,2.977,286,2.127,289,1.019,292,3.509,293,2.342,294,3.618,295,3.098,296,1.863,297,1.34,298,1.742,299,3.571,300,2.836,301,3.065,302,2.169,303,2.613,304,3.111,305,3.378,306,2.099,307,2.113,308,1.459,309,2.604,310,1.712,311,1.495,312,1.495,313,1.382,314,1.304,315,1.382,316,0.922,317,1.495,318,2.604,319,3.065,320,2.407,321,1.707,322,1.34,323,0.848,324,2.932,325,1.829,326,1.139,327,1.139,328,1.139,329,2.191,330,3.258,331,1.631,332,1.177,333,1.139,334,3.5,335,1.139,336,2.706,337,1.22,338,1.245,339,1.22,340,1.273,341,1.707,342,1.707,343,1.22,344,3.706,345,2.286,346,3.654,347,2.357,348,1.304,349,1.644,350,1.432,351,3.804,352,1.34,353,1.382,354,1.382,355,0.882,356,1.304,357,2.22,358,0.859,359,1.34,360,2.464,361,1.041,362,1.22,363,1.123,364,1.913,365,1.712,366,0.97,367,2.685,368,1.495,369,1.495,370,1.937,371,0.945,372,1.707,373,1.304,374,1.139,375,2.572,376,2.236,377,2.482,378,2.236,379,3.258,380,3.065,381,1.707,382,2.273,383,3.065,384,2.482,385,1.707,386,3.065,387,3.654,388,1.707,389,1.707,390,1.008,391,3.449,392,2.828,393,0.832,394,1.432,395,1.495,396,1.579,397,1.579,398,1.495,399,1.579,400,1.579,401,1.579,402,1.579,403,1.707,404,1.579,405,1.123,406,1.495,407,1.579,408,1.579,409,1.579,410,1.579,411,1.579,412,1.579,413,1.579,414,1.579,415,1.579,416,1.029,417,3.065,418,1.707,419,2.685,420,2.078,421,2.342,422,1.707,423,2.482,424,5.091,425,2.685,426,1.707,427,2.127,428,1.157,429,1.139,430,1.123,431,2.078,432,1.041,433,1.34,434,1.107,435,1.078,436,0.979,437,2.191,438,1.758,439,2.342,440,2.191,441,2.15,442,2.685,443,4.271,444,1.937,445,1.988,446,6.659,447,6.659,448,10.093,449,6.459,450,2.572,451,4.71,452,4.71,453,2.407,454,1.542]],["component/2",[2,0.251,266,0.348]],["keyword/2",[]],["title/3-1",[0,28.028,4,44.643]],["name/3-1",[]],["text/3-1",[]],["component/3-1",[]],["keyword/3-1",[]],["title/3-2",[3,46.758,4,38.792,455,48.282]],["name/3-2",[]],["text/3-2",[]],["component/3-2",[]],["keyword/3-2",[]],["title/3-3",[5,46.758,456,49.139,457,37.001]],["name/3-3",[]],["text/3-3",[]],["component/3-3",[]],["keyword/3-3",[]],["title/3-4",[21,26.776,62,29.285,458,54.997]],["name/3-4",[]],["text/3-4",[]],["component/3-4",[]],["keyword/3-4",[]],["title/3-5",[62,29.285,278,38.471,302,25.904]],["name/3-5",[]],["text/3-5",[]],["component/3-5",[]],["keyword/3-5",[]],["title/3-6",[90,31.793,279,36.215,302,22.902,459,29.154]],["name/3-6",[]],["text/3-6",[]],["component/3-6",[]],["keyword/3-6",[]],["title/3-7",[24,30.232,52,32.09,360,41.372]],["name/3-7",[]],["text/3-7",[]],["component/3-7",[]],["keyword/3-7",[]],["title/3-8",[52,32.09,210,37.857,454,35.244]],["name/3-8",[]],["text/3-8",[]],["component/3-8",[]],["keyword/3-8",[]],["title/3-9",[210,27.173,460,35.27,461,35.94,462,44.038,463,46.518,464,35.27]],["name/3-9",[]],["text/3-9",[]],["component/3-9",[]],["keyword/3-9",[]],["title/3-10",[210,37.857,465,51.1,466,46.073]],["name/3-10",[]],["text/3-10",[]],["component/3-10",[]],["keyword/3-10",[]],["title/3-11",[210,33.47,466,40.734,467,57.299,468,40.167]],["name/3-11",[]],["text/3-11",[]],["component/3-11",[]],["keyword/3-11",[]],["title/3-12",[127,25.021,210,33.47,466,40.734,469,57.299]],["name/3-12",[]],["text/3-12",[]],["component/3-12",[]],["keyword/3-12",[]],["title/3-13",[466,46.073,470,64.809,471,46.073]],["name/3-13",[]],["text/3-13",[]],["component/3-13",[]],["keyword/3-13",[]],["title/3-14",[466,46.073,472,70.055,473,51.1]],["name/3-14",[]],["text/3-14",[]],["component/3-14",[]],["keyword/3-14",[]],["title/3-15",[466,46.073,474,70.055,475,50.073]],["name/3-15",[]],["text/3-15",[]],["component/3-15",[]],["keyword/3-15",[]],["title/3-16",[466,46.073,476,70.055,477,52.243]],["name/3-16",[]],["text/3-16",[]],["component/3-16",[]],["keyword/3-16",[]],["title/3-17",[307,48.282,466,46.073,478,70.055]],["name/3-17",[]],["text/3-17",[]],["component/3-17",[]],["keyword/3-17",[]],["title/3-18",[466,40.734,471,40.734,479,61.936,480,48.624]],["name/3-18",[]],["text/3-18",[]],["component/3-18",[]],["keyword/3-18",[]],["title/3-19",[173,47.14,316,43.568]],["name/3-19",[]],["text/3-19",[]],["component/3-19",[]],["keyword/3-19",[]],["title/3-20",[55,19.668,81,27.173,173,29.401,481,42.185,482,56.176]],["name/3-20",[]],["text/3-20",[]],["component/3-20",[]],["keyword/3-20",[]],["title/3-21",[483,80.622,484,40.297]],["name/3-21",[]],["text/3-21",[]],["component/3-21",[]],["keyword/3-21",[]],["title/3-22",[485,80.622,486,39.543]],["name/3-22",[]],["text/3-22",[]],["component/3-22",[]],["keyword/3-22",[]],["title/3-23",[43,30.933,487,80.622]],["name/3-23",[]],["text/3-23",[]],["component/3-23",[]],["keyword/3-23",[]],["title/3-24",[488,80.622,489,40.297]],["name/3-24",[]],["text/3-24",[]],["component/3-24",[]],["keyword/3-24",[]],["title/3-25",[171,31.291,490,80.622]],["name/3-25",[]],["text/3-25",[]],["component/3-25",[]],["keyword/3-25",[]],["title/3-26",[25,33.852,491,80.622]],["name/3-26",[]],["text/3-26",[]],["component/3-26",[]],["keyword/3-26",[]],["title/3-27",[55,19.668,173,29.401,247,28.581,270,26.364,492,42.185,493,30.323]],["name/3-27",[]],["text/3-27",[]],["component/3-27",[]],["keyword/3-27",[]],["title/3-28",[484,40.297,494,74.585]],["name/3-28",[]],["text/3-28",[]],["component/3-28",[]],["keyword/3-28",[]],["title/3-29",[486,39.543,495,74.585]],["name/3-29",[]],["text/3-29",[]],["component/3-29",[]],["keyword/3-29",[]],["title/3-30",[43,30.933,496,80.622]],["name/3-30",[]],["text/3-30",[]],["component/3-30",[]],["keyword/3-30",[]],["title/3-31",[489,40.297,497,80.622]],["name/3-31",[]],["text/3-31",[]],["component/3-31",[]],["keyword/3-31",[]],["title/3-32",[171,31.291,498,80.622]],["name/3-32",[]],["text/3-32",[]],["component/3-32",[]],["keyword/3-32",[]],["title/3-33",[25,33.852,499,80.622]],["name/3-33",[]],["text/3-33",[]],["component/3-33",[]],["keyword/3-33",[]],["title/3-34",[34,47.588,55,19.668,81,27.173,173,29.401,500,44.038]],["name/3-34",[]],["text/3-34",[]],["component/3-34",[]],["keyword/3-34",[]],["title/3-35",[484,40.297,501,80.622]],["name/3-35",[]],["text/3-35",[]],["component/3-35",[]],["keyword/3-35",[]],["title/3-36",[486,39.543,502,80.622]],["name/3-36",[]],["text/3-36",[]],["component/3-36",[]],["keyword/3-36",[]],["title/3-37",[43,30.933,503,80.622]],["name/3-37",[]],["text/3-37",[]],["component/3-37",[]],["keyword/3-37",[]],["title/3-38",[489,40.297,504,80.622]],["name/3-38",[]],["text/3-38",[]],["component/3-38",[]],["keyword/3-38",[]],["title/3-39",[171,31.291,505,80.622]],["name/3-39",[]],["text/3-39",[]],["component/3-39",[]],["keyword/3-39",[]],["title/3-40",[25,33.852,506,80.622]],["name/3-40",[]],["text/3-40",[]],["component/3-40",[]],["keyword/3-40",[]],["title/3-41",[34,44.522,48,20.622,55,13.376,173,19.995,507,29.95,508,32.896,509,24.944,510,22.825]],["name/3-41",[]],["text/3-41",[]],["component/3-41",[]],["keyword/3-41",[]],["title/3-42",[484,40.297,511,74.585]],["name/3-42",[]],["text/3-42",[]],["component/3-42",[]],["keyword/3-42",[]],["title/3-43",[486,39.543,512,74.585]],["name/3-43",[]],["text/3-43",[]],["component/3-43",[]],["keyword/3-43",[]],["title/3-44",[43,30.933,513,74.585]],["name/3-44",[]],["text/3-44",[]],["component/3-44",[]],["keyword/3-44",[]],["title/3-45",[489,40.297,514,80.622]],["name/3-45",[]],["text/3-45",[]],["component/3-45",[]],["keyword/3-45",[]],["title/3-46",[171,31.291,515,80.622]],["name/3-46",[]],["text/3-46",[]],["component/3-46",[]],["keyword/3-46",[]],["title/3-47",[25,33.852,516,80.622]],["name/3-47",[]],["text/3-47",[]],["component/3-47",[]],["keyword/3-47",[]],["title/3-48",[34,31.766,55,19.668,81,27.173,173,29.401,310,28.081,517,46.518]],["name/3-48",[]],["text/3-48",[]],["component/3-48",[]],["keyword/3-48",[]],["title/3-49",[484,40.297,518,74.585]],["name/3-49",[]],["text/3-49",[]],["component/3-49",[]],["keyword/3-49",[]],["title/3-50",[486,39.543,519,74.585]],["name/3-50",[]],["text/3-50",[]],["component/3-50",[]],["keyword/3-50",[]],["title/3-51",[43,30.933,520,80.622]],["name/3-51",[]],["text/3-51",[]],["component/3-51",[]],["keyword/3-51",[]],["title/3-52",[489,40.297,521,80.622]],["name/3-52",[]],["text/3-52",[]],["component/3-52",[]],["keyword/3-52",[]],["title/3-53",[171,31.291,522,80.622]],["name/3-53",[]],["text/3-53",[]],["component/3-53",[]],["keyword/3-53",[]],["title/3-54",[25,33.852,523,80.622]],["name/3-54",[]],["text/3-54",[]],["component/3-54",[]],["keyword/3-54",[]],["title/3-55",[34,23.08,48,22.032,55,14.291,81,19.743,173,34.36,508,34.704,510,24.385,524,31.997]],["name/3-55",[]],["text/3-55",[]],["component/3-55",[]],["keyword/3-55",[]],["title/3-56",[484,40.297,525,80.622]],["name/3-56",[]],["text/3-56",[]],["component/3-56",[]],["keyword/3-56",[]],["title/3-57",[486,39.543,526,80.622]],["name/3-57",[]],["text/3-57",[]],["component/3-57",[]],["keyword/3-57",[]],["title/3-58",[43,30.933,527,80.622]],["name/3-58",[]],["text/3-58",[]],["component/3-58",[]],["keyword/3-58",[]],["title/3-59",[489,40.297,528,80.622]],["name/3-59",[]],["text/3-59",[]],["component/3-59",[]],["keyword/3-59",[]],["title/3-60",[529,80.622,530,67.639]],["name/3-60",[]],["text/3-60",[]],["component/3-60",[]],["keyword/3-60",[]],["title/3-61",[171,31.291,531,80.622]],["name/3-61",[]],["text/3-61",[]],["component/3-61",[]],["keyword/3-61",[]],["title/3-62",[25,33.852,532,80.622]],["name/3-62",[]],["text/3-62",[]],["component/3-62",[]],["keyword/3-62",[]],["title/3-63",[55,19.668,81,27.173,173,29.401,482,37.498,533,46.518,534,38.42]],["name/3-63",[]],["text/3-63",[]],["component/3-63",[]],["keyword/3-63",[]],["title/3-64",[484,40.297,535,80.622]],["name/3-64",[]],["text/3-64",[]],["component/3-64",[]],["keyword/3-64",[]],["title/3-65",[486,39.543,536,80.622]],["name/3-65",[]],["text/3-65",[]],["component/3-65",[]],["keyword/3-65",[]],["title/3-66",[43,30.933,537,80.622]],["name/3-66",[]],["text/3-66",[]],["component/3-66",[]],["keyword/3-66",[]],["title/3-67",[489,40.297,538,80.622]],["name/3-67",[]],["text/3-67",[]],["component/3-67",[]],["keyword/3-67",[]],["title/3-68",[171,31.291,539,80.622]],["name/3-68",[]],["text/3-68",[]],["component/3-68",[]],["keyword/3-68",[]],["title/3-69",[25,33.852,540,80.622]],["name/3-69",[]],["text/3-69",[]],["component/3-69",[]],["keyword/3-69",[]],["title/3-70",[34,21.604,48,20.622,55,13.376,173,19.995,508,32.896,509,24.944,510,22.825,534,26.129,541,34.197,542,26.847]],["name/3-70",[]],["text/3-70",[]],["component/3-70",[]],["keyword/3-70",[]],["title/3-71",[484,40.297,543,80.622]],["name/3-71",[]],["text/3-71",[]],["component/3-71",[]],["keyword/3-71",[]],["title/3-72",[486,39.543,544,80.622]],["name/3-72",[]],["text/3-72",[]],["component/3-72",[]],["keyword/3-72",[]],["title/3-73",[43,30.933,545,80.622]],["name/3-73",[]],["text/3-73",[]],["component/3-73",[]],["keyword/3-73",[]],["title/3-74",[489,40.297,546,80.622]],["name/3-74",[]],["text/3-74",[]],["component/3-74",[]],["keyword/3-74",[]],["title/3-75",[171,31.291,547,80.622]],["name/3-75",[]],["text/3-75",[]],["component/3-75",[]],["keyword/3-75",[]],["title/3-76",[25,33.852,548,80.622]],["name/3-76",[]],["text/3-76",[]],["component/3-76",[]],["keyword/3-76",[]],["title/3-77",[55,15.339,81,21.192,90,20.13,115,22.929,173,22.929,549,39.215,550,54.46,551,25.431]],["name/3-77",[]],["text/3-77",[]],["component/3-77",[]],["keyword/3-77",[]],["title/3-78",[484,40.297,552,80.622]],["name/3-78",[]],["text/3-78",[]],["component/3-78",[]],["keyword/3-78",[]],["title/3-79",[486,39.543,553,80.622]],["name/3-79",[]],["text/3-79",[]],["component/3-79",[]],["keyword/3-79",[]],["title/3-80",[43,30.933,554,80.622]],["name/3-80",[]],["text/3-80",[]],["component/3-80",[]],["keyword/3-80",[]],["title/3-81",[489,40.297,555,80.622]],["name/3-81",[]],["text/3-81",[]],["component/3-81",[]],["keyword/3-81",[]],["title/3-82",[171,31.291,556,80.622]],["name/3-82",[]],["text/3-82",[]],["component/3-82",[]],["keyword/3-82",[]],["title/3-83",[25,33.852,557,80.622]],["name/3-83",[]],["text/3-83",[]],["component/3-83",[]],["keyword/3-83",[]],["title/3-84",[55,14.291,64,27.061,73,20.403,81,19.743,173,21.362,288,19.156,558,36.534,559,38.109]],["name/3-84",[]],["text/3-84",[]],["component/3-84",[]],["keyword/3-84",[]],["title/3-85",[484,40.297,560,80.622]],["name/3-85",[]],["text/3-85",[]],["component/3-85",[]],["keyword/3-85",[]],["title/3-86",[486,39.543,561,80.622]],["name/3-86",[]],["text/3-86",[]],["component/3-86",[]],["keyword/3-86",[]],["title/3-87",[489,40.297,562,80.622]],["name/3-87",[]],["text/3-87",[]],["component/3-87",[]],["keyword/3-87",[]],["title/3-88",[25,33.852,563,80.622]],["name/3-88",[]],["text/3-88",[]],["component/3-88",[]],["keyword/3-88",[]],["title/3-89",[55,16.554,64,30.404,81,22.87,173,38.604,564,42.32,565,33.224]],["name/3-89",[]],["text/3-89",[]],["component/3-89",[]],["keyword/3-89",[]],["title/3-90",[484,40.297,566,80.622]],["name/3-90",[]],["text/3-90",[]],["component/3-90",[]],["keyword/3-90",[]],["title/3-91",[486,39.543,567,80.622]],["name/3-91",[]],["text/3-91",[]],["component/3-91",[]],["keyword/3-91",[]],["title/3-92",[489,40.297,568,80.622]],["name/3-92",[]],["text/3-92",[]],["component/3-92",[]],["keyword/3-92",[]],["title/3-93",[171,31.291,569,80.622]],["name/3-93",[]],["text/3-93",[]],["component/3-93",[]],["keyword/3-93",[]],["title/3-94",[25,33.852,570,80.622]],["name/3-94",[]],["text/3-94",[]],["component/3-94",[]],["keyword/3-94",[]],["title/3-95",[55,17.977,173,41.146,247,26.123,270,36.896,571,45.959]],["name/3-95",[]],["text/3-95",[]],["component/3-95",[]],["keyword/3-95",[]],["title/3-96",[484,40.297,572,80.622]],["name/3-96",[]],["text/3-96",[]],["component/3-96",[]],["keyword/3-96",[]],["title/3-97",[486,39.543,573,80.622]],["name/3-97",[]],["text/3-97",[]],["component/3-97",[]],["keyword/3-97",[]],["title/3-98",[43,30.933,574,80.622]],["name/3-98",[]],["text/3-98",[]],["component/3-98",[]],["keyword/3-98",[]],["title/3-99",[25,33.852,575,80.622]],["name/3-99",[]],["text/3-99",[]],["component/3-99",[]],["keyword/3-99",[]],["title/3-100",[162,35.716,295,37.001,576,42.713]],["name/3-100",[]],["text/3-100",[]],["component/3-100",[]],["keyword/3-100",[]],["title/3-101",[577,61.354,578,53.528,579,40.186]],["name/3-101",[]],["text/3-101",[]],["component/3-101",[]],["keyword/3-101",[]],["title/3-102",[580,61.936,581,35.205,582,37.764,583,47.325]],["name/3-102",[]],["text/3-102",[]],["component/3-102",[]],["keyword/3-102",[]],["title/3-103",[584,80.622,585,54.656]],["name/3-103",[]],["text/3-103",[]],["component/3-103",[]],["keyword/3-103",[]],["title/3-104",[264,40.961,585,47.492,586,70.055]],["name/3-104",[]],["text/3-104",[]],["component/3-104",[]],["keyword/3-104",[]],["title/3-105",[264,29.401,585,34.088,587,50.283,588,30.003,589,34.088,590,38.42]],["name/3-105",[]],["text/3-105",[]],["component/3-105",[]],["keyword/3-105",[]],["title/3-106",[264,32.454,585,37.628,590,42.41,591,55.504,592,46.566]],["name/3-106",[]],["text/3-106",[]],["component/3-106",[]],["keyword/3-106",[]],["title/3-107",[264,32.454,585,37.628,593,55.504,594,48.611,595,41.392]],["name/3-107",[]],["text/3-107",[]],["component/3-107",[]],["keyword/3-107",[]],["title/3-108",[264,36.215,585,41.989,596,61.936,597,42.687]],["name/3-108",[]],["text/3-108",[]],["component/3-108",[]],["keyword/3-108",[]],["title/3-109",[585,47.492,598,70.055,599,50.073]],["name/3-109",[]],["text/3-109",[]],["component/3-109",[]],["keyword/3-109",[]],["title/3-110",[84,32.792,585,47.492,600,70.055]],["name/3-110",[]],["text/3-110",[]],["component/3-110",[]],["keyword/3-110",[]],["title/3-111",[227,41.103,601,80.622]],["name/3-111",[]],["text/3-111",[]],["component/3-111",[]],["keyword/3-111",[]],["title/3-112",[602,70.055,603,45.431,604,44.827]],["name/3-112",[]],["text/3-112",[]],["component/3-112",[]],["keyword/3-112",[]],["title/3-113",[605,80.622,606,50.933]],["name/3-113",[]],["text/3-113",[]],["component/3-113",[]],["keyword/3-113",[]],["title/3-114",[227,35.716,607,70.055,608,56.713]],["name/3-114",[]],["text/3-114",[]],["component/3-114",[]],["keyword/3-114",[]],["title/3-115",[49,34.15,609,61.354,610,46.758]],["name/3-115",[]],["text/3-115",[]],["component/3-115",[]],["keyword/3-115",[]],["title/3-116",[254,39.123,295,37.001,611,64.809]],["name/3-116",[]],["text/3-116",[]],["component/3-116",[]],["keyword/3-116",[]],["title/3-117",[43,26.878,612,70.055,613,48.282]],["name/3-117",[]],["text/3-117",[]],["component/3-117",[]],["keyword/3-117",[]],["title/3-118",[614,80.622,615,61.602]],["name/3-118",[]],["text/3-118",[]],["component/3-118",[]],["keyword/3-118",[]],["title/3-119",[393,34.15,616,70.055,617,42.713]],["name/3-119",[]],["text/3-119",[]],["component/3-119",[]],["keyword/3-119",[]],["title/3-120",[227,35.716,618,70.055,619,52.243]],["name/3-120",[]],["text/3-120",[]],["component/3-120",[]],["keyword/3-120",[]],["title/3-121",[44,35.96,63,21.39,620,70.055]],["name/3-121",[]],["text/3-121",[]],["component/3-121",[]],["keyword/3-121",[]],["title/3-122",[477,52.243,610,46.758,621,70.055]],["name/3-122",[]],["text/3-122",[]],["component/3-122",[]],["keyword/3-122",[]],["title/3-123",[44,31.793,63,18.912,622,61.936,623,46.189]],["name/3-123",[]],["text/3-123",[]],["component/3-123",[]],["keyword/3-123",[]],["title/3-124",[84,32.792,624,70.055,625,61.354]],["name/3-124",[]],["text/3-124",[]],["component/3-124",[]],["keyword/3-124",[]],["title/3-125",[441,49.139,610,46.758,626,70.055]],["name/3-125",[]],["text/3-125",[]],["component/3-125",[]],["keyword/3-125",[]],["title/3-126",[627,70.055,628,64.809,629,61.354]],["name/3-126",[]],["text/3-126",[]],["component/3-126",[]],["keyword/3-126",[]],["title/3-127",[630,70.055,631,51.1,632,58.773]],["name/3-127",[]],["text/3-127",[]],["component/3-127",[]],["keyword/3-127",[]],["title/3-128",[427,35.716,632,58.773,633,70.055]],["name/3-128",[]],["text/3-128",[]],["component/3-128",[]],["keyword/3-128",[]],["title/3-129",[444,39.128,610,41.34,634,61.936,635,48.624]],["name/3-129",[]],["text/3-129",[]],["component/3-129",[]],["keyword/3-129",[]],["title/3-130",[44,35.96,63,21.39,636,61.354]],["name/3-130",[]],["text/3-130",[]],["component/3-130",[]],["keyword/3-130",[]],["title/3-131",[127,25.021,613,42.687,637,57.299,638,48.624]],["name/3-131",[]],["text/3-131",[]],["component/3-131",[]],["keyword/3-131",[]],["title/3-132",[127,25.021,347,28.676,638,48.624,639,57.299]],["name/3-132",[]],["text/3-132",[]],["component/3-132",[]],["keyword/3-132",[]],["title/3-133",[127,25.021,638,48.624,640,61.936,641,50.141]],["name/3-133",[]],["text/3-133",[]],["component/3-133",[]],["keyword/3-133",[]],["title/3-134",[11,32.242,25,26.006,26,28.522,642,41.34]],["name/3-134",[]],["text/3-134",[]],["component/3-134",[]],["keyword/3-134",[]],["title/3-135",[457,37.001,459,32.975,643,58.773]],["name/3-135",[]],["text/3-135",[]],["component/3-135",[]],["keyword/3-135",[]],["title/3-136",[61,36.546,644,70.609]],["name/3-136",[]],["text/3-136",[]],["component/3-136",[]],["keyword/3-136",[]],["title/3-137",[43,30.933,645,74.585]],["name/3-137",[]],["text/3-137",[]],["component/3-137",[]],["keyword/3-137",[]],["title/3-138",[171,31.291,646,74.585]],["name/3-138",[]],["text/3-138",[]],["component/3-138",[]],["keyword/3-138",[]],["title/3-139",[459,32.975,647,58.773,648,41.372]],["name/3-139",[]],["text/3-139",[]],["component/3-139",[]],["keyword/3-139",[]],["title/3-140",[61,36.546,649,80.622]],["name/3-140",[]],["text/3-140",[]],["component/3-140",[]],["keyword/3-140",[]],["title/3-141",[43,30.933,650,80.622]],["name/3-141",[]],["text/3-141",[]],["component/3-141",[]],["keyword/3-141",[]],["title/3-142",[127,32.57,651,80.622]],["name/3-142",[]],["text/3-142",[]],["component/3-142",[]],["keyword/3-142",[]],["title/3-143",[459,32.975,652,58.773,653,37.279]],["name/3-143",[]],["text/3-143",[]],["component/3-143",[]],["keyword/3-143",[]],["title/3-144",[61,36.546,654,80.622]],["name/3-144",[]],["text/3-144",[]],["component/3-144",[]],["keyword/3-144",[]],["title/3-145",[43,30.933,655,80.622]],["name/3-145",[]],["text/3-145",[]],["component/3-145",[]],["keyword/3-145",[]],["title/3-146",[171,31.291,656,80.622]],["name/3-146",[]],["text/3-146",[]],["component/3-146",[]],["keyword/3-146",[]],["title/3-147",[657,70.609,658,60.123]],["name/3-147",[]],["text/3-147",[]],["component/3-147",[]],["keyword/3-147",[]],["title/3-148",[171,31.291,659,74.585]],["name/3-148",[]],["text/3-148",[]],["component/3-148",[]],["keyword/3-148",[]],["title/3-149",[462,70.609,660,74.585]],["name/3-149",[]],["text/3-149",[]],["component/3-149",[]],["keyword/3-149",[]],["title/3-150",[171,31.291,661,80.622]],["name/3-150",[]],["text/3-150",[]],["component/3-150",[]],["keyword/3-150",[]],["title/3-151",[227,35.716,662,64.809,663,61.354]],["name/3-151",[]],["text/3-151",[]],["component/3-151",[]],["keyword/3-151",[]],["title/3-152",[61,36.546,664,74.585]],["name/3-152",[]],["text/3-152",[]],["component/3-152",[]],["keyword/3-152",[]],["title/3-153",[43,30.933,665,74.585]],["name/3-153",[]],["text/3-153",[]],["component/3-153",[]],["keyword/3-153",[]],["title/3-154",[171,31.291,666,80.622]],["name/3-154",[]],["text/3-154",[]],["component/3-154",[]],["keyword/3-154",[]],["title/3-155",[590,53.528,604,44.827,667,64.809]],["name/3-155",[]],["text/3-155",[]],["component/3-155",[]],["keyword/3-155",[]],["title/3-156",[4,44.643,668,74.585]],["name/3-156",[]],["text/3-156",[]],["component/3-156",[]],["keyword/3-156",[]],["title/3-157",[171,31.291,669,80.622]],["name/3-157",[]],["text/3-157",[]],["component/3-157",[]],["keyword/3-157",[]],["title/3-158",[251,51.589,670,74.585]],["name/3-158",[]],["text/3-158",[]],["component/3-158",[]],["keyword/3-158",[]],["title/3-159",[61,36.546,671,80.622]],["name/3-159",[]],["text/3-159",[]],["component/3-159",[]],["keyword/3-159",[]],["title/3-160",[43,30.933,672,80.622]],["name/3-160",[]],["text/3-160",[]],["component/3-160",[]],["keyword/3-160",[]],["title/3-161",[171,31.291,673,80.622]],["name/3-161",[]],["text/3-161",[]],["component/3-161",[]],["keyword/3-161",[]],["title/3-162",[25,23.306,63,16.948,73,30.997,674,55.504,675,35.517]],["name/3-162",[]],["text/3-162",[]],["component/3-162",[]],["keyword/3-162",[]],["title/3-163",[676,80.622,677,67.639]],["name/3-163",[]],["text/3-163",[]],["component/3-163",[]],["keyword/3-163",[]],["title/3-164",[323,40.04,678,80.622]],["name/3-164",[]],["text/3-164",[]],["component/3-164",[]],["keyword/3-164",[]],["title/3-165",[43,30.933,679,80.622]],["name/3-165",[]],["text/3-165",[]],["component/3-165",[]],["keyword/3-165",[]],["title/3-166",[171,31.291,680,80.622]],["name/3-166",[]],["text/3-166",[]],["component/3-166",[]],["keyword/3-166",[]],["title/3-167",[681,80.622,682,67.639]],["name/3-167",[]],["text/3-167",[]],["component/3-167",[]],["keyword/3-167",[]],["title/3-168",[323,40.04,683,80.622]],["name/3-168",[]],["text/3-168",[]],["component/3-168",[]],["keyword/3-168",[]],["title/3-169",[171,31.291,684,80.622]],["name/3-169",[]],["text/3-169",[]],["component/3-169",[]],["keyword/3-169",[]],["title/3-170",[685,80.622,686,67.639]],["name/3-170",[]],["text/3-170",[]],["component/3-170",[]],["keyword/3-170",[]],["title/3-171",[323,40.04,687,80.622]],["name/3-171",[]],["text/3-171",[]],["component/3-171",[]],["keyword/3-171",[]],["title/3-172",[43,26.878,486,34.36,688,70.055]],["name/3-172",[]],["text/3-172",[]],["component/3-172",[]],["keyword/3-172",[]],["title/3-173",[171,31.291,689,80.622]],["name/3-173",[]],["text/3-173",[]],["component/3-173",[]],["keyword/3-173",[]],["title/3-174",[690,80.622,691,67.639]],["name/3-174",[]],["text/3-174",[]],["component/3-174",[]],["keyword/3-174",[]],["title/3-175",[323,40.04,692,80.622]],["name/3-175",[]],["text/3-175",[]],["component/3-175",[]],["keyword/3-175",[]],["title/3-176",[171,31.291,693,80.622]],["name/3-176",[]],["text/3-176",[]],["component/3-176",[]],["keyword/3-176",[]],["title/3-177",[694,80.622,695,67.639]],["name/3-177",[]],["text/3-177",[]],["component/3-177",[]],["keyword/3-177",[]],["title/3-178",[323,40.04,696,80.622]],["name/3-178",[]],["text/3-178",[]],["component/3-178",[]],["keyword/3-178",[]],["title/3-179",[697,80.622,698,63.293]],["name/3-179",[]],["text/3-179",[]],["component/3-179",[]],["keyword/3-179",[]],["title/3-180",[171,31.291,699,80.622]],["name/3-180",[]],["text/3-180",[]],["component/3-180",[]],["keyword/3-180",[]],["title/3-181",[700,80.622,701,67.639]],["name/3-181",[]],["text/3-181",[]],["component/3-181",[]],["keyword/3-181",[]],["title/3-182",[323,40.04,702,80.622]],["name/3-182",[]],["text/3-182",[]],["component/3-182",[]],["keyword/3-182",[]],["title/3-183",[698,63.293,703,80.622]],["name/3-183",[]],["text/3-183",[]],["component/3-183",[]],["keyword/3-183",[]],["title/3-184",[171,31.291,704,80.622]],["name/3-184",[]],["text/3-184",[]],["component/3-184",[]],["keyword/3-184",[]],["title/3-185",[705,80.622,706,67.639]],["name/3-185",[]],["text/3-185",[]],["component/3-185",[]],["keyword/3-185",[]],["title/3-186",[323,40.04,707,80.622]],["name/3-186",[]],["text/3-186",[]],["component/3-186",[]],["keyword/3-186",[]],["title/3-187",[698,63.293,708,80.622]],["name/3-187",[]],["text/3-187",[]],["component/3-187",[]],["keyword/3-187",[]],["title/3-188",[171,31.291,709,80.622]],["name/3-188",[]],["text/3-188",[]],["component/3-188",[]],["keyword/3-188",[]],["title/3-189",[710,80.622,711,67.639]],["name/3-189",[]],["text/3-189",[]],["component/3-189",[]],["keyword/3-189",[]],["title/3-190",[323,40.04,712,80.622]],["name/3-190",[]],["text/3-190",[]],["component/3-190",[]],["keyword/3-190",[]],["title/3-191",[171,31.291,713,80.622]],["name/3-191",[]],["text/3-191",[]],["component/3-191",[]],["keyword/3-191",[]],["title/3-192",[714,80.622,715,67.639]],["name/3-192",[]],["text/3-192",[]],["component/3-192",[]],["keyword/3-192",[]],["title/3-193",[323,40.04,716,80.622]],["name/3-193",[]],["text/3-193",[]],["component/3-193",[]],["keyword/3-193",[]],["title/3-194",[698,63.293,717,80.622]],["name/3-194",[]],["text/3-194",[]],["component/3-194",[]],["keyword/3-194",[]],["title/3-195",[171,31.291,718,80.622]],["name/3-195",[]],["text/3-195",[]],["component/3-195",[]],["keyword/3-195",[]],["title/3-196",[719,80.622,720,67.639]],["name/3-196",[]],["text/3-196",[]],["component/3-196",[]],["keyword/3-196",[]],["title/3-197",[323,40.04,721,80.622]],["name/3-197",[]],["text/3-197",[]],["component/3-197",[]],["keyword/3-197",[]],["title/3-198",[698,63.293,722,80.622]],["name/3-198",[]],["text/3-198",[]],["component/3-198",[]],["keyword/3-198",[]],["title/3-199",[171,31.291,723,80.622]],["name/3-199",[]],["text/3-199",[]],["component/3-199",[]],["keyword/3-199",[]],["title/3-200",[724,80.622,725,70.609]],["name/3-200",[]],["text/3-200",[]],["component/3-200",[]],["keyword/3-200",[]],["title/3-201",[323,40.04,726,80.622]],["name/3-201",[]],["text/3-201",[]],["component/3-201",[]],["keyword/3-201",[]],["title/3-202",[698,63.293,727,80.622]],["name/3-202",[]],["text/3-202",[]],["component/3-202",[]],["keyword/3-202",[]],["title/3-203",[171,31.291,728,80.622]],["name/3-203",[]],["text/3-203",[]],["component/3-203",[]],["keyword/3-203",[]],["title/3-204",[25,19.298,63,14.033,235,30.226,245,27.716,265,28.022,729,45.959,730,34.273]],["name/3-204",[]],["text/3-204",[]],["component/3-204",[]],["keyword/3-204",[]],["title/3-205",[731,80.622,732,67.639]],["name/3-205",[]],["text/3-205",[]],["component/3-205",[]],["keyword/3-205",[]],["title/3-206",[323,40.04,733,80.622]],["name/3-206",[]],["text/3-206",[]],["component/3-206",[]],["keyword/3-206",[]],["title/3-207",[43,30.933,734,80.622]],["name/3-207",[]],["text/3-207",[]],["component/3-207",[]],["keyword/3-207",[]],["title/3-208",[171,31.291,735,80.622]],["name/3-208",[]],["text/3-208",[]],["component/3-208",[]],["keyword/3-208",[]],["title/3-209",[736,80.622,737,65.268]],["name/3-209",[]],["text/3-209",[]],["component/3-209",[]],["keyword/3-209",[]],["title/3-210",[323,40.04,738,80.622]],["name/3-210",[]],["text/3-210",[]],["component/3-210",[]],["keyword/3-210",[]],["title/3-211",[43,30.933,739,80.622]],["name/3-211",[]],["text/3-211",[]],["component/3-211",[]],["keyword/3-211",[]],["title/3-212",[171,31.291,740,80.622]],["name/3-212",[]],["text/3-212",[]],["component/3-212",[]],["keyword/3-212",[]],["title/3-213",[741,80.622,742,67.639]],["name/3-213",[]],["text/3-213",[]],["component/3-213",[]],["keyword/3-213",[]],["title/3-214",[323,40.04,743,80.622]],["name/3-214",[]],["text/3-214",[]],["component/3-214",[]],["keyword/3-214",[]],["title/3-215",[43,30.933,744,80.622]],["name/3-215",[]],["text/3-215",[]],["component/3-215",[]],["keyword/3-215",[]],["title/3-216",[171,31.291,745,80.622]],["name/3-216",[]],["text/3-216",[]],["component/3-216",[]],["keyword/3-216",[]],["title/3-217",[746,80.622,747,67.639]],["name/3-217",[]],["text/3-217",[]],["component/3-217",[]],["keyword/3-217",[]],["title/3-218",[323,40.04,748,80.622]],["name/3-218",[]],["text/3-218",[]],["component/3-218",[]],["keyword/3-218",[]],["title/3-219",[43,30.933,749,80.622]],["name/3-219",[]],["text/3-219",[]],["component/3-219",[]],["keyword/3-219",[]],["title/3-220",[171,31.291,750,80.622]],["name/3-220",[]],["text/3-220",[]],["component/3-220",[]],["keyword/3-220",[]],["title/3-221",[751,80.622,752,67.639]],["name/3-221",[]],["text/3-221",[]],["component/3-221",[]],["keyword/3-221",[]],["title/3-222",[323,40.04,753,80.622]],["name/3-222",[]],["text/3-222",[]],["component/3-222",[]],["keyword/3-222",[]],["title/3-223",[43,30.933,754,80.622]],["name/3-223",[]],["text/3-223",[]],["component/3-223",[]],["keyword/3-223",[]],["title/3-224",[171,31.291,755,80.622]],["name/3-224",[]],["text/3-224",[]],["component/3-224",[]],["keyword/3-224",[]],["title/3-225",[756,80.622,757,67.639]],["name/3-225",[]],["text/3-225",[]],["component/3-225",[]],["keyword/3-225",[]],["title/3-226",[323,40.04,758,80.622]],["name/3-226",[]],["text/3-226",[]],["component/3-226",[]],["keyword/3-226",[]],["title/3-227",[43,30.933,759,80.622]],["name/3-227",[]],["text/3-227",[]],["component/3-227",[]],["keyword/3-227",[]],["title/3-228",[171,31.291,760,80.622]],["name/3-228",[]],["text/3-228",[]],["component/3-228",[]],["keyword/3-228",[]],["title/3-229",[761,80.622,762,67.639]],["name/3-229",[]],["text/3-229",[]],["component/3-229",[]],["keyword/3-229",[]],["title/3-230",[323,40.04,763,80.622]],["name/3-230",[]],["text/3-230",[]],["component/3-230",[]],["keyword/3-230",[]],["title/3-231",[43,30.933,764,80.622]],["name/3-231",[]],["text/3-231",[]],["component/3-231",[]],["keyword/3-231",[]],["title/3-232",[171,31.291,765,80.622]],["name/3-232",[]],["text/3-232",[]],["component/3-232",[]],["keyword/3-232",[]],["title/3-233",[766,80.622,767,70.609]],["name/3-233",[]],["text/3-233",[]],["component/3-233",[]],["keyword/3-233",[]],["title/3-234",[323,40.04,768,80.622]],["name/3-234",[]],["text/3-234",[]],["component/3-234",[]],["keyword/3-234",[]],["title/3-235",[43,30.933,769,80.622]],["name/3-235",[]],["text/3-235",[]],["component/3-235",[]],["keyword/3-235",[]],["title/3-236",[171,31.291,770,80.622]],["name/3-236",[]],["text/3-236",[]],["component/3-236",[]],["keyword/3-236",[]],["title/3-237",[771,94.944]],["name/3-237",[]],["text/3-237",[]],["component/3-237",[]],["keyword/3-237",[]],["title/3-238",[323,40.04,772,80.622]],["name/3-238",[]],["text/3-238",[]],["component/3-238",[]],["keyword/3-238",[]],["title/3-239",[43,30.933,773,80.622]],["name/3-239",[]],["text/3-239",[]],["component/3-239",[]],["keyword/3-239",[]],["title/3-240",[171,31.291,774,80.622]],["name/3-240",[]],["text/3-240",[]],["component/3-240",[]],["keyword/3-240",[]],["title/3-241",[775,80.622,776,80.622]],["name/3-241",[]],["text/3-241",[]],["component/3-241",[]],["keyword/3-241",[]],["title/3-242",[4,44.643,777,80.622]],["name/3-242",[]],["text/3-242",[]],["component/3-242",[]],["keyword/3-242",[]],["title/3-243",[61,36.546,778,80.622]],["name/3-243",[]],["text/3-243",[]],["component/3-243",[]],["keyword/3-243",[]],["title/3-244",[49,30.193,489,30.958,779,61.936,780,41.989]],["name/3-244",[]],["text/3-244",[]],["component/3-244",[]],["keyword/3-244",[]],["title/3-245",[171,31.291,781,80.622]],["name/3-245",[]],["text/3-245",[]],["component/3-245",[]],["keyword/3-245",[]],["title/3-246",[324,35.015,782,70.055,783,46.758]],["name/3-246",[]],["text/3-246",[]],["component/3-246",[]],["keyword/3-246",[]],["title/3-247",[324,35.015,784,70.055,785,47.492]],["name/3-247",[]],["text/3-247",[]],["component/3-247",[]],["keyword/3-247",[]],["title/3-248",[786,80.622,787,70.609]],["name/3-248",[]],["text/3-248",[]],["component/3-248",[]],["keyword/3-248",[]],["title/3-249",[4,44.643,788,80.622]],["name/3-249",[]],["text/3-249",[]],["component/3-249",[]],["keyword/3-249",[]],["title/3-250",[61,36.546,789,80.622]],["name/3-250",[]],["text/3-250",[]],["component/3-250",[]],["keyword/3-250",[]],["title/3-251",[171,31.291,790,80.622]],["name/3-251",[]],["text/3-251",[]],["component/3-251",[]],["keyword/3-251",[]],["title/3-252",[67,51.589,791,80.622]],["name/3-252",[]],["text/3-252",[]],["component/3-252",[]],["keyword/3-252",[]],["title/3-253",[67,39.633,190,40.167,579,35.529,792,61.936]],["name/3-253",[]],["text/3-253",[]],["component/3-253",[]],["keyword/3-253",[]],["title/3-254",[60,23.623,67,35.517,190,35.995,391,29.316,793,55.504]],["name/3-254",[]],["text/3-254",[]],["component/3-254",[]],["keyword/3-254",[]],["title/3-255",[61,28.076,67,39.633,190,40.167,794,61.936]],["name/3-255",[]],["text/3-255",[]],["component/3-255",[]],["keyword/3-255",[]],["title/3-256",[68,40.297,795,80.622]],["name/3-256",[]],["text/3-256",[]],["component/3-256",[]],["keyword/3-256",[]],["title/3-257",[63,24.617,796,80.622]],["name/3-257",[]],["text/3-257",[]],["component/3-257",[]],["keyword/3-257",[]],["title/3-258",[252,41.969,797,80.622]],["name/3-258",[]],["text/3-258",[]],["component/3-258",[]],["keyword/3-258",[]],["title/3-259",[252,36.468,798,70.055,799,51.1]],["name/3-259",[]],["text/3-259",[]],["component/3-259",[]],["keyword/3-259",[]],["title/3-260",[252,36.468,800,70.055,801,45.431]],["name/3-260",[]],["text/3-260",[]],["component/3-260",[]],["keyword/3-260",[]],["title/3-261",[802,70.055,803,58.773,804,47.492]],["name/3-261",[]],["text/3-261",[]],["component/3-261",[]],["keyword/3-261",[]],["title/3-262",[61,36.546,805,80.622]],["name/3-262",[]],["text/3-262",[]],["component/3-262",[]],["keyword/3-262",[]],["title/3-263",[88,42.247,254,39.123,806,70.055]],["name/3-263",[]],["text/3-263",[]],["component/3-263",[]],["keyword/3-263",[]],["title/3-264",[807,80.622,808,52.285]],["name/3-264",[]],["text/3-264",[]],["component/3-264",[]],["keyword/3-264",[]],["title/3-265",[449,39.633,809,38.65,810,37.351,811,36.956]],["name/3-265",[]],["text/3-265",[]],["component/3-265",[]],["keyword/3-265",[]],["title/3-266",[302,20.524,809,34.636,810,33.472,811,33.118,812,46.566]],["name/3-266",[]],["text/3-266",[]],["component/3-266",[]],["keyword/3-266",[]],["title/3-267",[61,36.546,813,80.622]],["name/3-267",[]],["text/3-267",[]],["component/3-267",[]],["keyword/3-267",[]],["title/3-268",[171,31.291,814,80.622]],["name/3-268",[]],["text/3-268",[]],["component/3-268",[]],["keyword/3-268",[]],["title/3-269",[809,38.65,810,37.351,815,61.936,816,61.936]],["name/3-269",[]],["text/3-269",[]],["component/3-269",[]],["keyword/3-269",[]],["title/3-270",[653,37.279,817,56.713,818,37.279]],["name/3-270",[]],["text/3-270",[]],["component/3-270",[]],["keyword/3-270",[]],["title/3-271",[653,26.757,809,31.378,810,30.323,818,26.757,819,50.283,820,36.678]],["name/3-271",[]],["text/3-271",[]],["component/3-271",[]],["keyword/3-271",[]],["title/3-272",[171,31.291,821,80.622]],["name/3-272",[]],["text/3-272",[]],["component/3-272",[]],["keyword/3-272",[]],["title/3-273",[307,48.282,822,58.773,823,61.354]],["name/3-273",[]],["text/3-273",[]],["component/3-273",[]],["keyword/3-273",[]],["title/3-274",[307,34.655,809,31.378,810,30.323,820,36.678,824,50.283,825,26.175]],["name/3-274",[]],["text/3-274",[]],["component/3-274",[]],["keyword/3-274",[]],["title/3-275",[171,31.291,826,80.622]],["name/3-275",[]],["text/3-275",[]],["component/3-275",[]],["keyword/3-275",[]],["title/3",[117,49.157,827,56.551]],["name/3",[828,0.832]],["text/3",[0,2.484,2,1.458,6,0.637,7,0.084,10,0.065,11,0.349,14,0.073,15,0.16,16,0.166,19,0.445,20,0.134,21,0.706,23,0.068,24,0.83,25,0.468,26,0.136,29,0.37,30,0.538,31,0.184,32,0.247,34,2.548,35,1.13,36,0.141,37,0.347,38,0.462,39,0.45,41,0.504,43,1.956,44,1.657,45,0.076,46,0.303,47,1.392,48,1.34,49,3.625,51,0.381,52,1.696,53,0.114,54,2.648,55,4.899,60,0.819,61,1.947,62,1.425,63,2.301,64,2.866,65,3.5,67,0.37,68,0.47,69,0.73,70,0.063,71,0.069,72,2.593,73,2.099,74,0.243,75,0.368,79,0.076,81,2.755,82,0.961,83,0.349,84,3.319,85,1.481,86,0.313,87,0.635,88,0.824,89,0.253,90,1.14,91,1.531,92,0.207,93,0.066,97,0.445,102,0.139,103,0.076,105,0.173,106,1.215,108,0.512,109,0.069,111,1.641,112,0.601,115,1.169,116,0.087,117,0.061,118,0.103,120,0.076,121,0.191,122,0.682,123,0.257,124,0.07,126,0.568,127,3.392,130,0.197,131,0.2,132,0.123,134,0.413,136,0.189,137,0.813,138,0.274,140,0.525,142,0.399,143,0.069,145,0.391,146,0.197,149,0.134,152,0.139,154,0.058,155,0.065,157,0.315,159,0.066,160,0.285,161,0.538,162,2.462,165,0.071,170,0.081,171,2.217,173,5.27,175,0.47,177,0.266,180,0.388,181,0.136,182,0.274,183,0.215,184,0.122,186,0.233,187,0.555,189,0.481,190,0.494,192,0.406,193,0.074,196,1.048,197,0.936,200,0.173,201,0.989,202,1.279,205,0.087,206,0.051,207,1.26,208,1.168,209,0.18,210,3.046,211,1.232,213,1.972,215,0.406,216,0.07,217,1.212,221,0.516,226,0.065,227,2.509,231,0.848,232,1.434,234,0.18,235,0.38,236,0.429,238,0.52,239,0.066,240,0.076,242,0.324,243,1.639,244,2.483,245,0.723,246,0.065,247,1.869,248,0.06,251,1.082,252,0.253,254,2.896,256,0.32,257,0.151,259,0.303,260,0.686,263,0.184,264,2.796,265,2.115,267,0.118,268,1.37,269,0.237,270,1.627,273,0.046,274,0.616,281,0.128,285,0.07,286,0.051,288,0.76,295,0.893,296,1.024,298,0.168,302,2.01,303,0.437,306,0.197,307,0.942,308,2.02,309,0.303,310,2.067,316,0.508,323,0.378,324,0.557,325,2.242,327,0.568,328,0.508,330,0.31,331,2.782,332,0.399,333,0.066,335,0.066,337,0.918,338,0.215,339,0.071,340,0.074,343,0.347,344,0.307,347,3.256,349,0.733,351,0.253,354,0.239,355,0.791,356,0.151,357,0.405,358,1.891,360,1.906,361,1.031,362,0.141,363,0.319,364,0.475,365,1.241,366,1.654,370,0.186,371,0.32,374,1.483,379,0.064,382,0.745,384,0.616,390,0.555,391,0.156,393,3.954,405,0.618,416,0.459,419,0.087,420,1.355,423,0.543,427,4.779,428,0.697,430,1.556,432,0.061,434,1.971,435,0.594,436,0.169,438,1.516,439,0.076,440,0.347,441,1.659,444,0.424,445,0.065,449,0.189,454,0.517,455,0.069,456,0.139,457,1.016,459,2.929,461,0.734,462,1.411,463,0.704,464,1.995,466,3.353,468,1.198,471,3.295,473,1.777,475,0.672,477,3.899,480,0.078,481,0.084,482,0.568,486,0.418,489,0.765,492,0.247,493,2.128,508,2.186,509,0.073,510,0.132,530,0.084,534,2.02,542,0.155,550,2.662,551,1.58,559,1.845,565,1.073,576,0.573,578,0.076,579,0.278,581,2.231,582,1.774,583,1.915,585,3.014,588,1.009,589,0.329,590,2.418,592,0.862,594,1.945,595,2.927,597,0.648,599,1.152,603,0.833,604,2.715,606,0.811,608,1.857,610,4.153,613,0.942,615,0.371,617,0.731,619,0.22,623,1.92,625,2.433,628,0.62,629,1.124,631,2.7,632,1.284,635,1.327,638,1.686,641,0.316,642,0.197,648,0.607,653,0.941,658,2.121,663,0.342,675,1.375,677,0.328,682,0.166,686,0.166,691,0.247,695,0.247,701,0.247,706,0.247,711,0.328,715,0.247,720,0.247,725,0.342,730,0.148,732,0.407,737,0.239,742,0.789,747,0.247,752,0.328,757,0.328,762,0.407,767,0.667,780,1.199,783,0.568,785,1.146,787,0.087,801,0.552,803,0.247,804,0.329,808,1.096,809,0.531,810,0.972,811,1.369,817,0.081,818,2.339,820,0.285,825,1.481,829,0.1,830,0.5,831,0.155,832,0.092,833,0.1,834,0.092,835,0.215,836,0.092,837,0.261,838,0.162,839,0.078,840,0.092,841,0.291,842,0.1,843,0.166,844,0.1,845,0.1,846,1.525,847,0.1,848,0.087,849,0.1,850,0.198,851,0.155,852,0.1,853,0.084,854,0.183,855,0.211,856,0.479,857,0.274,858,0.1,859,1.265,860,0.211,861,0.068,862,0.144,863,0.069,864,0.296,865,0.371,866,0.582,867,0.279,868,1.007,869,1.968,870,0.07,871,1.482,872,0.468,873,1.641,874,0.226,875,0.141,876,0.076,877,0.122,878,0.942,879,0.425,880,0.65,881,1.107,882,0.354,883,0.34,884,0.997,885,0.087,886,0.512,887,0.25,888,0.568,889,0.081,890,0.092,891,0.084,892,0.75,893,0.1,894,0.173,895,0.148,896,0.134,897,0.454,898,0.789,899,0.198,900,0.399,901,1.31,902,0.65,903,0.207,904,0.422,905,0.239,906,0.087,907,0.07,908,0.087,909,0.073,910,0.393,911,0.211,912,0.555,913,1.008,914,0.455,915,0.718,916,0.324,917,0.07,918,0.084,919,1.072,920,0.324,921,0.136,922,0.1,923,0.078,924,0.087,925,0.141,926,0.9,927,0.084,928,0.062,929,0.092,930,1.832,931,1.117,932,0.092,933,0.295,934,0.577,935,0.247,936,0.148,937,0.136,938,0.087,939,0.293,940,0.1,941,0.449,942,0.258,943,0.215,944,0.078,945,0.672,946,0.1,947,0.47,948,0.16,949,0.215,950,0.1,951,0.354,952,0.078,953,0.092,954,0.425,955,0.295,956,0.1,957,1.476,958,0.081,959,0.183,960,0.1,961,0.1,962,0.354,963,0.1,964,0.544,965,0.676,966,0.166,967,0.371,968,0.455,969,0.422,970,0.247,971,0.092,972,0.796,973,0.074,974,0.328,975,0.407,976,0.1,977,0.07,978,1.219,979,0.827,980,0.183,981,0.068,982,0.239,983,0.232,984,0.58,985,0.258,986,1.17,987,0.136,988,0.788,989,0.092,990,0.597,991,0.887,992,1.862,993,0.285,994,0.183,995,0.081,996,0.092,997,0.084,998,0.307,999,2.202,1000,0.092,1001,0.1,1002,0.1,1003,1.326,1004,0.785,1005,0.07,1006,0.078,1007,0.1,1008,0.166,1009,0.899,1010,0.777,1011,0.621,1012,0.298,1013,0.298,1014,0.078,1015,0.386,1016,0.087,1017,1.179,1018,0.151,1019,1.015,1020,0.22,1021,0.16,1022,0.285,1023,0.94,1024,1.173,1025,0.668,1026,0.295,1027,0.1,1028,0.1,1029,0.295,1030,0.671,1031,0.361,1032,3.062,1033,1.175,1034,0.668,1035,1.269,1036,0.1,1037,0.666,1038,0.431,1039,0.718,1040,0.155,1041,1.208,1042,0.084,1043,0.084,1044,0.347,1045,0.354,1046,0.953,1047,0.1,1048,0.1,1049,0.1,1050,0.1,1051,0.092,1052,0.239,1053,0.449,1054,1.513,1055,0.1,1056,1.241,1057,0.151,1058,0.1,1059,0.144,1060,0.078,1061,0.429,1062,0.07,1063,0.34,1064,1.028,1065,1.028,1066,0.371,1067,0.381,1068,2.508,1069,0.239,1070,0.328,1071,1.045,1072,0.668,1073,0.239,1074,0.582,1075,0.112,1076,0.391,1077,1.202,1078,0.239,1079,1.352,1080,0.734,1081,0.148,1082,0.198,1083,0.701,1084,0.239,1085,0.386,1086,2.084,1087,0.087,1088,0.1,1089,0.927,1090,2.925,1091,0.555,1092,0.279,1093,0.441,1094,0.087,1095,2.374,1096,0.081,1097,0.942,1098,1.369,1099,0.285,1100,0.183,1101,0.198,1102,0.1,1103,0.183,1104,0.198,1105,2.085,1106,0.081,1107,0.1,1108,1.202,1109,0.1,1110,0.381,1111,0.668,1112,1.107,1113,0.479,1114,0.141,1115,0.084,1116,0.479,1117,0.239,1118,0.981,1119,0.148,1120,0.475,1121,0.076,1122,1.074,1123,0.621,1124,0.215,1125,0.485,1126,0.285,1127,0.258,1128,0.273,1129,0.659,1130,0.247,1131,0.792,1132,0.081,1133,0.247,1134,0.166,1135,0.066,1136,0.16,1137,0.785,1138,0.257,1139,0.738,1140,0.701,1141,0.166,1142,0.076,1143,0.084,1144,0.291,1145,1.564,1146,0.166,1147,0.464,1148,0.598,1149,0.087,1150,0.232,1151,0.479,1152,0.173,1153,0.1,1154,0.078,1155,1.02,1156,0.307,1157,0.811,1158,0.232,1159,0.516,1160,0.1,1161,0.148,1162,1.112,1163,0.151,1164,0.084,1165,0.092,1166,0.087,1167,0.862,1168,0.155,1169,0.718,1170,0.982,1171,0.582,1172,0.371,1173,0.298,1174,0.635,1175,0.247,1176,0.141,1177,0.431,1178,0.422,1179,0.173,1180,1.208,1181,0.821,1182,0.582,1183,0.173,1184,0.362,1185,1.02,1186,0.1,1187,0.203,1188,0.16,1189,0.081,1190,0.303,1191,0.139,1192,1.487,1193,0.479,1194,0.148,1195,0.279,1196,0.1,1197,0.393,1198,0.166,1199,0.084,1200,0.166,1201,0.155,1202,0.197,1203,0.87,1204,0.16,1205,0.746,1206,0.198,1207,0.232,1208,0.155,1209,0.078,1210,0.342,1211,0.307,1212,0.155,1213,0.148,1214,0.084,1215,0.225,1216,0.258,1217,0.092,1218,0.2,1219,0.526,1220,1.077,1221,0.687,1222,0.381,1223,1.005,1224,0.639,1225,0.151,1226,0.166,1227,0.22,1228,0.307,1229,0.371,1230,0.084,1231,0.166,1232,0.239,1233,0.155,1234,0.074,1235,0.148,1236,0.076,1237,0.454,1238,0.084,1239,0.1,1240,0.22,1241,0.087,1242,0.07,1243,0.081,1244,0.526,1245,0.1,1246,0.1,1247,0.716,1248,0.155,1249,0.092,1250,0.16,1251,2.314,1252,0.076,1253,0.316,1254,0.073,1255,0.073,1256,0.173,1257,0.084,1258,0.074,1259,0.637,1260,0.173,1261,0.568,1262,0.065,1263,0.1,1264,0.078,1265,0.247,1266,0.1,1267,0.134,1268,0.1,1269,0.1,1270,0.084,1271,0.092,1272,0.073,1273,0.441,1274,0.512,1275,0.148,1276,0.183,1277,0.069,1278,0.582,1279,0.189,1280,0.686,1281,0.071,1282,0.139,1283,1.188,1284,0.942,1285,0.813,1286,0.431,1287,0.853,1288,0.639,1289,1.327,1290,0.307,1291,0.307,1292,0.307,1293,0.479,1294,1.199,1295,1.265,1296,0.862,1297,0.5,1298,0.485,1299,1.341,1300,0.621,1301,0.247,1302,1.107,1303,0.076,1304,0.1,1305,0.074,1306,0.073,1307,0.203,1308,0.092,1309,0.1,1310,0.425,1311,0.391,1312,0.413,1313,0.166,1314,0.225,1315,0.127,1316,0.1,1317,0.328,1318,0.239,1319,0.078,1320,0.285,1321,0.269,1322,0.431,1323,0.16,1324,0.232,1325,0.198,1326,0.173,1327,0.507,1328,0.578,1329,0.315,1330,0.151,1331,0.273,1332,0.671,1333,0.468,1334,0.429,1335,0.215,1336,0.295,1337,0.295,1338,0.139,1339,0.328,1340,0.441,1341,1.233,1342,0.258,1343,0.413,1344,0.069,1345,0.092,1346,0.073,1347,0.081,1348,0.1,1349,0.239,1350,0.087,1351,0.073,1352,0.22,1353,0.092,1354,0.084,1355,0.391,1356,0.081,1357,0.512,1358,0.173,1359,0.081,1360,0.087,1361,0.155,1362,0.07,1363,0.084,1364,0.076,1365,0.078,1366,0.076,1367,0.479,1368,0.445,1369,0.084,1370,0.1,1371,0.211,1372,0.076,1373,0.087,1374,0.269,1375,0.081,1376,0.076,1377,0.081,1378,0.092,1379,0.092,1380,0.084,1381,0.1,1382,0.084,1383,0.279,1384,0.198,1385,0.555,1386,0.066,1387,0.225,1388,0.1,1389,0.16,1390,0.1,1391,0.94,1392,0.851,1393,0.332,1394,0.144,1395,0.081,1396,0.307,1397,0.081,1398,0.16,1399,0.449,1400,0.074,1401,0.448,1402,0.166,1403,1.092,1404,0.823,1405,0.197,1406,0.853,1407,0.1,1408,0.087,1409,0.324,1410,0.173,1411,0.074,1412,1.124,1413,0.081,1414,0.173,1415,0.257,1416,0.561,1417,0.092,1418,0.078,1419,1.51,1420,0.1,1421,0.239,1422,0.092,1423,0.371,1424,0.183,1425,0.074,1426,0.1,1427,0.431,1428,0.173,1429,0.232,1430,0.084,1431,0.087,1432,0.22,1433,0.1,1434,0.148,1435,0.081,1436,0.076,1437,0.078,1438,0.061,1439,0.2,1440,0.081,1441,0.241,1442,0.076,1443,0.295,1444,0.295,1445,0.295,1446,0.667,1447,0.1,1448,0.16,1449,0.1,1450,0.1,1451,0.1,1452,0.155,1453,0.329,1454,0.087,1455,0.1,1456,0.092,1457,0.1,1458,0.078,1459,0.073,1460,0.198,1461,0.197,1462,0.069,1463,0.084,1464,0.092,1465,0.074,1466,0.298,1467,1.188,1468,0.418,1469,0.076,1470,0.667,1471,0.667,1472,0.342,1473,0.578,1474,0.762,1475,0.1,1476,0.1,1477,0.084,1478,0.136,1479,0.087,1480,0.092,1481,0.22,1482,0.1,1483,0.136,1484,0.1,1485,0.207,1486,0.092,1487,0.761,1488,0.084,1489,0.1,1490,0.1,1491,0.247,1492,0.087,1493,1.802,1494,0.13,1495,1.02,1496,0.087,1497,0.258,1498,0.148,1499,0.361,1500,0.144,1501,0.307,1502,0.183,1503,0.552,1504,0.1,1505,0.535,1506,0.155,1507,0.668,1508,0.686,1509,0.328,1510,0.173,1511,0.166,1512,0.598,1513,0.424,1514,0.295,1515,0.132,1516,0.247,1517,0.273,1518,1.006,1519,0.081,1520,0.166,1521,0.1,1522,1.802,1523,0.431,1524,0.951,1525,0.5,1526,0.183,1527,0.1,1528,0.166,1529,0.198,1530,0.198,1531,0.183,1532,0.198,1533,0.1,1534,0.485,1535,0.1,1536,0.166,1537,0.361,1538,0.211,1539,0.391,1540,0.298,1541,0.239,1542,0.198,1543,0.166,1544,1.585,1545,0.155,1546,0.074,1547,0.092,1548,0.117,1549,0.084,1550,0.1,1551,0.295,1552,0.295,1553,0.16,1554,0.081,1555,0.1,1556,0.347,1557,0.1,1558,0.1,1559,0.676,1560,0.16,1561,0.092,1562,0.087,1563,0.065,1564,0.092,1565,0.253,1566,0.151,1567,0.1,1568,0.1,1569,0.1,1570,0.183,1571,0.1,1572,0.1,1573,0.198,1574,0.198,1575,0.1,1576,0.1,1577,0.166,1578,0.295,1579,0.391,1580,0.084,1581,0.087,1582,0.1,1583,0.1,1584,0.1,1585,0.084,1586,0.198,1587,0.1,1588,0.1,1589,0.1,1590,0.1,1591,0.1,1592,0.092,1593,0.16,1594,0.078,1595,0.084,1596,0.442,1597,0.1,1598,0.1,1599,0.1,1600,0.1,1601,0.399,1602,0.1,1603,0.649,1604,0.198,1605,0.1,1606,0.155,1607,0.087,1608,0.198,1609,0.198,1610,0.942,1611,0.087,1612,0.232,1613,0.092,1614,0.1,1615,0.1,1616,0.225,1617,0.1,1618,0.1,1619,0.1,1620,0.342,1621,0.295,1622,0.092,1623,0.587,1624,0.073,1625,0.1,1626,0.1,1627,0.1,1628,0.273,1629,0.166,1630,0.173,1631,0.074,1632,0.078,1633,0.073,1634,0.198,1635,0.144,1636,0.431,1637,0.092,1638,0.092,1639,0.1,1640,0.1,1641,0.1,1642,0.2,1643,0.076,1644,0.1,1645,0.183,1646,0.1,1647,0.1,1648,1.039,1649,0.386,1650,0.092,1651,0.076,1652,0.449,1653,0.166,1654,0.198,1655,0.1,1656,0.198,1657,0.092,1658,0.807,1659,2.466,1660,0.078,1661,0.1,1662,0.081,1663,0.092,1664,0.166,1665,0.092,1666,0.092,1667,0.1,1668,0.1,1669,0.198,1670,0.485,1671,0.092,1672,0.485,1673,0.092,1674,0.092,1675,0.13,1676,0.1,1677,0.092,1678,0.092,1679,0.092,1680,0.37,1681,0.1,1682,0.092,1683,0.1,1684,0.371,1685,0.1,1686,0.1,1687,0.141,1688,0.081,1689,0.258,1690,0.512,1691,0.084,1692,0.078,1693,0.081,1694,0.087,1695,0.087,1696,0.132,1697,0.155,1698,0.1,1699,0.092,1700,0.485,1701,0.485,1702,0.1,1703,0.1,1704,0.173,1705,0.94,1706,0.092,1707,0.076,1708,0.073,1709,0.295,1710,0.1,1711,0.365,1712,0.761,1713,0.291,1714,0.1,1715,0.1,1716,0.081,1717,0.183,1718,0.391,1719,0.1,1720,0.1,1721,0.1,1722,0.1,1723,0.47,1724,0.1,1725,0.1,1726,0.1,1727,0.1,1728,0.1,1729,0.1,1730,0.198,1731,0.092,1732,0.078,1733,0.1,1734,0.1,1735,0.762,1736,0.295,1737,0.22,1738,0.1,1739,0.1,1740,0.371,1741,0.1,1742,0.1,1743,0.081,1744,0.092,1745,0.092,1746,0.087,1747,0.578,1748,1.199,1749,1.199,1750,0.076,1751,0.087,1752,0.1,1753,0.1,1754,0.449,1755,0.1,1756,0.342,1757,0.183,1758,0.273,1759,0.1,1760,0.1,1761,0.1,1762,0.173,1763,0.173,1764,0.198,1765,0.247,1766,0.087,1767,0.211,1768,0.141,1769,0.295,1770,0.1,1771,0.092,1772,0.07,1773,0.1,1774,0.391,1775,0.1,1776,0.1,1777,0.166,1778,0.173,1779,0.084,1780,0.1,1781,0.198,1782,0.198,1783,0.1,1784,0.1,1785,0.1,1786,0.1,1787,0.1,1788,0.232,1789,0.198,1790,0.1,1791,0.1,1792,0.1,1793,0.1,1794,0.173,1795,0.16,1796,0.449,1797,0.295,1798,0.391,1799,0.1,1800,0.1,1801,0.295,1802,0.851,1803,0.391,1804,0.851,1805,0.704,1806,0.935,1807,0.087,1808,0.084,1809,0.198,1810,1.987,1811,0.092,1812,0.1,1813,0.789,1814,0.1,1815,0.328,1816,0.092,1817,0.894,1818,0.092,1819,0.087,1820,0.1,1821,0.1,1822,0.087,1823,0.1,1824,0.166,1825,0.092,1826,0.092,1827,0.087,1828,0.1,1829,0.087,1830,0.092,1831,0.183,1832,0.073,1833,0.084,1834,0.173,1835,0.578,1836,0.092,1837,0.247,1838,0.136,1839,0.391,1840,0.078,1841,0.078,1842,0.148,1843,0.144,1844,0.526,1845,0.084,1846,0.1,1847,0.1,1848,0.1,1849,0.215,1850,0.1,1851,0.1,1852,0.1,1853,0.1,1854,0.1,1855,0.1,1856,0.198,1857,0.198,1858,0.198,1859,0.342,1860,0.173,1861,0.084,1862,0.081,1863,0.074,1864,0.1,1865,0.449,1866,0.198,1867,0.1,1868,0.1,1869,0.1,1870,0.1,1871,0.1,1872,0.198,1873,0.07,1874,0.081,1875,0.092,1876,0.1,1877,0.1,1878,0.1,1879,0.1,1880,0.092,1881,0.1,1882,0.1,1883,0.295,1884,0.173,1885,0.198,1886,0.198,1887,0.1,1888,0.148,1889,0.295,1890,0.1,1891,0.1,1892,0.134,1893,0.1,1894,0.198,1895,0.1,1896,0.198,1897,0.391,1898,0.295,1899,0.198,1900,0.1,1901,0.066,1902,0.1,1903,0.1,1904,0.1,1905,0.1,1906,0.074,1907,0.1,1908,0.1,1909,0.132,1910,0.081,1911,0.198,1912,0.295,1913,0.081,1914,0.1,1915,0.1,1916,0.1,1917,0.1,1918,0.1,1919,0.1,1920,0.1,1921,0.1,1922,0.198,1923,0.1,1924,0.1,1925,0.1,1926,0.1,1927,0.084,1928,0.155,1929,0.087,1930,0.1,1931,0.173,1932,0.1,1933,0.073,1934,0.1,1935,0.087,1936,0.1,1937,0.16,1938,0.1,1939,0.092,1940,0.1,1941,0.1,1942,0.1,1943,0.1,1944,0.183,1945,0.1,1946,0.092,1947,0.092,1948,0.485,1949,0.951,1950,0.1,1951,0.1,1952,0.076,1953,0.762,1954,0.092,1955,0.087,1956,0.295,1957,0.951,1958,0.1,1959,0.1,1960,0.11,1961,0.084,1962,0.198,1963,0.198,1964,0.667,1965,0.295,1966,0.198,1967,0.1,1968,0.762,1969,0.762,1970,0.295,1971,0.225,1972,0.198,1973,0.307,1974,0.391,1975,0.1,1976,0.258,1977,0.166,1978,0.295,1979,0.183,1980,0.1,1981,0.295,1982,0.1,1983,0.1,1984,0.1,1985,0.198,1986,0.198,1987,0.198,1988,0.198,1989,0.198,1990,0.198,1991,0.198,1992,0.198,1993,0.198,1994,0.198,1995,0.198,1996,0.1,1997,0.166,1998,0.198,1999,0.598,2000,0.198,2001,0.391,2002,0.391,2003,0.391,2004,0.1,2005,0.295,2006,0.166,2007,0.198,2008,0.1,2009,0.295,2010,0.183,2011,0.183,2012,0.1,2013,0.087,2014,0.092,2015,0.1,2016,0.1,2017,0.1,2018,0.092,2019,0.092,2020,0.1,2021,1.112,2022,0.391,2023,0.183,2024,0.198,2025,0.535,2026,0.198,2027,0.247,2028,0.092,2029,0.1,2030,0.1,2031,0.1,2032,0.1,2033,1.29,2034,0.092,2035,0.295,2036,0.62,2037,0.1,2038,0.667,2039,0.198,2040,0.092,2041,0.1,2042,0.1,2043,0.1,2044,0.1,2045,0.1,2046,0.667,2047,0.1,2048,0.1,2049,0.1,2050,0.258,2051,0.092,2052,0.1,2053,0.62,2054,0.512,2055,0.092,2056,0.1,2057,0.183,2058,0.1,2059,0.1,2060,0.194,2061,0.1,2062,0.087,2063,0.1,2064,0.183,2065,1.624,2066,0.078,2067,0.1,2068,0.16,2069,0.151,2070,0.092,2071,0.198,2072,0.1,2073,0.198,2074,0.1,2075,0.1,2076,0.092,2077,0.1,2078,0.1,2079,0.1,2080,0.198,2081,0.468,2082,0.598,2083,0.543,2084,0.273,2085,1.769,2086,0.1,2087,0.535,2088,0.87,2089,0.198,2090,0.1,2091,0.668,2092,0.076,2093,0.076,2094,0.1,2095,0.081,2096,0.198,2097,0.081,2098,0.1,2099,0.198,2100,0.1,2101,0.247,2102,0.295,2103,0.092,2104,0.1,2105,0.1,2106,0.407,2107,0.225,2108,0.1,2109,0.1,2110,0.587,2111,0.1,2112,0.1,2113,0.1,2114,0.1,2115,0.183,2116,0.198,2117,0.198,2118,0.198,2119,0.173,2120,0.198,2121,0.1,2122,0.092,2123,0.1,2124,0.1,2125,0.1,2126,0.1,2127,0.1,2128,0.1,2129,0.1,2130,0.1,2131,0.1,2132,0.1,2133,0.1,2134,0.1,2135,0.295,2136,0.295,2137,0.295,2138,1.531,2139,0.183,2140,0.393,2141,0.295,2142,0.198,2143,0.198,2144,0.198,2145,0.295,2146,0.198,2147,0.198,2148,0.166,2149,0.198,2150,0.198,2151,0.166,2152,0.183,2153,0.198,2154,0.391,2155,0.328,2156,0.198,2157,0.198,2158,0.198,2159,0.198,2160,0.173,2161,0.1,2162,0.1,2163,0.1,2164,0.183,2165,0.1,2166,0.295,2167,0.1,2168,0.198,2169,0.087,2170,0.1,2171,0.1,2172,1.549,2173,0.1,2174,0.1,2175,0.1,2176,0.1,2177,0.1,2178,0.1,2179,0.1,2180,0.1,2181,0.1,2182,0.295,2183,0.1,2184,0.1,2185,0.1,2186,0.1,2187,0.1,2188,0.092,2189,0.1,2190,0.1,2191,0.1,2192,0.1,2193,0.1,2194,0.1,2195,0.1,2196,0.247,2197,0.198,2198,0.166,2199,0.1,2200,0.1,2201,0.295,2202,0.1,2203,0.1,2204,0.1,2205,0.198,2206,0.198,2207,0.1,2208,0.1,2209,0.1,2210,0.1,2211,0.1,2212,0.1,2213,0.295,2214,0.198,2215,0.198,2216,0.198,2217,0.173,2218,0.1,2219,0.1,2220,0.1,2221,0.247,2222,0.328,2223,0.16,2224,0.198,2225,0.1,2226,0.1,2227,0.092,2228,0.1,2229,0.183,2230,0.1,2231,0.087,2232,0.1,2233,0.173,2234,0.198,2235,0.198,2236,0.1,2237,0.1,2238,0.1,2239,0.1,2240,0.1,2241,0.1,2242,0.1,2243,0.1,2244,0.1,2245,0.1,2246,0.1,2247,0.1,2248,0.1,2249,0.1,2250,0.198,2251,0.198,2252,0.1,2253,0.198,2254,0.295,2255,0.1,2256,0.1,2257,0.1,2258,0.092,2259,0.183,2260,0.1,2261,0.273,2262,0.198,2263,0.084,2264,0.1,2265,0.087,2266,0.1,2267,0.1,2268,0.1,2269,0.1,2270,0.1,2271,0.1,2272,0.785,2273,0.139,2274,0.073,2275,0.1,2276,0.1,2277,0.183,2278,0.342,2279,0.361,2280,0.144,2281,0.198,2282,0.198,2283,0.198,2284,0.076,2285,0.084,2286,0.391,2287,0.1,2288,0.198,2289,0.425,2290,0.087,2291,0.1,2292,0.1,2293,0.1,2294,0.1,2295,0.1,2296,0.087,2297,0.1,2298,0.084,2299,0.183,2300,0.1,2301,0.198,2302,0.1,2303,0.295,2304,0.166,2305,0.198,2306,0.1,2307,0.1,2308,0.183,2309,0.081,2310,0.155,2311,0.151,2312,0.295,2313,0.198,2314,0.1,2315,0.391,2316,0.198,2317,0.578,2318,0.084,2319,0.087,2320,0.391,2321,0.391,2322,0.295,2323,0.391,2324,0.295,2325,0.485,2326,0.328,2327,0.198,2328,0.198,2329,0.198,2330,0.198,2331,0.198,2332,0.391,2333,0.198,2334,0.1,2335,0.1,2336,0.1,2337,0.1,2338,0.1,2339,0.1,2340,0.1,2341,0.1,2342,0.1,2343,0.295,2344,0.198,2345,0.198,2346,0.198,2347,0.198,2348,0.198,2349,0.074,2350,0.1,2351,0.295,2352,0.087,2353,0.1,2354,0.087,2355,0.295,2356,0.1,2357,0.198,2358,0.1,2359,0.198,2360,0.1,2361,0.1,2362,0.1,2363,0.1,2364,0.1,2365,0.068,2366,1.611,2367,0.485,2368,0.361,2369,0.671,2370,0.198,2371,0.391,2372,0.198,2373,0.198,2374,0.198,2375,0.155,2376,0.1,2377,0.1,2378,0.1,2379,0.1,2380,0.198,2381,0.1,2382,0.076,2383,0.074,2384,0.1]],["component/3",[2,0.251,266,0.348]],["keyword/3",[]],["title/4-1",[0,28.028,206,41.385]],["name/4-1",[]],["text/4-1",[]],["component/4-1",[]],["keyword/4-1",[]],["title/4-2",[21,26.776,74,35.015,1247,41.8]],["name/4-2",[]],["text/4-2",[]],["component/4-2",[]],["keyword/4-2",[]],["title/4-3",[54,23.434,278,23.24,296,18.893,1120,23.634,1556,30.249,2385,34.26,2386,39.151,2387,28.247]],["name/4-3",[]],["text/4-3",[]],["component/4-3",[]],["keyword/4-3",[]],["title/4-4",[279,36.215,604,39.633,1548,36.578,2388,54.244]],["name/4-4",[]],["text/4-4",[]],["component/4-4",[]],["keyword/4-4",[]],["title/4-5",[280,39.128,349,33.211,1190,38.65,1344,42.687]],["name/4-5",[]],["text/4-5",[]],["component/4-5",[]],["keyword/4-5",[]],["title/4",[60,21.4,64,23.156,349,26.962,604,32.175,1221,31.009,2385,40.706]],["name/4",[2385,0.674]],["text/4",[0,1.759,10,1.411,11,1.133,21,0.832,24,0.939,32,3.092,43,0.835,44,1.117,49,1.061,52,3.957,54,1.205,55,5.463,60,3.221,63,2.487,64,3.171,72,1.298,74,1.088,75,2.779,82,1.133,85,1.979,90,1.951,94,1.452,115,1.272,122,2.382,124,1.526,127,2.044,145,3.535,180,1.26,187,1.285,198,3.934,201,2.222,210,1.176,238,1.925,243,2.007,245,3.052,251,2.432,274,1.117,288,1.993,296,1.697,303,1.117,306,2.546,308,1.036,347,1.76,349,4.368,355,2.616,357,1.158,358,1.095,365,1.215,382,3.304,390,1.285,393,1.061,420,2.577,421,1.663,434,1.411,440,5.822,446,1.906,449,4.843,459,1.789,551,1.411,576,3.085,583,7.689,588,6.301,592,1.825,604,5.528,619,1.623,780,1.475,783,5.052,785,1.475,809,1.358,838,1.195,846,1.167,851,1.708,856,1.555,860,2.717,919,1.167,957,3.158,958,1.761,977,1.526,981,2.577,999,3.158,1019,1.248,1068,3.18,1093,2.5,1095,1.965,1120,1.215,1145,1.358,1156,2.401,1157,3.197,1190,3.785,1191,2.666,1202,2.537,1221,3.121,1231,1.825,1258,1.623,1277,2.619,1285,1.475,1288,1.825,1307,1.5,1322,1.623,1335,1.587,1368,1.272,1400,1.623,1409,1.452,1417,2.013,1427,1.623,1468,2.372,1513,1.375,1537,4.681,1538,2.717,1544,2.222,1556,3.617,1593,1.761,1633,1.587,1635,1.587,1675,1.431,1680,2.432,1690,1.663,1711,1.375,1863,1.623,2065,2.222,2093,1.663,2385,9.272,2386,4.681,2387,2.537,2388,1.906,2389,1.663,2390,4.097,2391,1.825,2392,1.26,2393,1.623,2394,1.825,2395,2.772,2396,1.663,2397,2.176,2398,2.176,2399,1.906,2400,2.013,2401,2.176,2402,1.663,2403,6.065,2404,2.176,2405,3.867,2406,1.452,2407,2.176,2408,1.761,2409,1.663,2410,3.516,2411,5.06,2412,2.176,2413,2.176,2414,2.176,2415,2.176,2416,3.801,2417,2.176,2418,1.761,2419,2.176,2420,2.176,2421,6.031,2422,3.801,2423,3.329,2424,3.801,2425,2.176,2426,2.176,2427,2.176,2428,2.176,2429,2.176,2430,2.176,2431,4.432,2432,1.906,2433,2.176,2434,1.587,2435,2.176,2436,2.176,2437,3.801,2438,1.587,2439,3.801,2440,1.526,2441,2.176,2442,1.663,2443,2.013,2444,2.013,2445,2.834,2446,2.013,2447,5.06,2448,2.176,2449,2.176,2450,2.176,2451,2.176,2452,2.176,2453,7.569,2454,7.569,2455,2.176,2456,2.176,2457,2.176,2458,2.176,2459,2.176,2460,1.906,2461,2.176,2462,2.176,2463,3.801,2464,3.801,2465,2.176,2466,2.176,2467,2.176,2468,2.176,2469,2.176,2470,2.176,2471,2.176,2472,2.176,2473,2.176,2474,2.176,2475,2.176,2476,2.176,2477,2.176,2478,2.176,2479,2.176,2480,2.176,2481,2.176,2482,2.176,2483,2.176,2484,2.176,2485,2.176,2486,2.176,2487,2.176,2488,2.176,2489,2.176,2490,2.176,2491,2.176,2492,2.176,2493,2.176,2494,2.176,2495,2.176,2496,2.176,2497,2.176,2498,2.176,2499,2.176,2500,2.176,2501,2.176,2502,2.176,2503,2.176,2504,2.176,2505,2.176,2506,2.176]],["component/4",[2,0.251,266,0.348]],["keyword/4",[]],["title/5-1",[0,28.028,1,63.293]],["name/5-1",[]],["text/5-1",[]],["component/5-1",[]],["keyword/5-1",[]],["title/5-2",[21,26.776,269,28.659,293,53.528]],["name/5-2",[]],["text/5-2",[]],["component/5-2",[]],["keyword/5-2",[]],["title/5-3",[24,30.232,269,28.659,2507,46.758]],["name/5-3",[]],["text/5-3",[]],["component/5-3",[]],["keyword/5-3",[]],["title/5-4",[269,28.659,454,35.244,2508,58.773]],["name/5-4",[]],["text/5-4",[]],["component/5-4",[]],["keyword/5-4",[]],["title/5-5",[31,29.154,122,29.154,269,25.338,316,33.47]],["name/5-5",[]],["text/5-5",[]],["component/5-5",[]],["keyword/5-5",[]],["title/5-6",[269,28.659,576,42.713,2509,58.773]],["name/5-6",[]],["text/5-6",[]],["component/5-6",[]],["keyword/5-6",[]],["title/5-7",[62,29.285,270,36.731,642,46.758]],["name/5-7",[]],["text/5-7",[]],["component/5-7",[]],["keyword/5-7",[]],["title/5-8",[2,21.154,357,37.279,449,44.827]],["name/5-8",[]],["text/5-8",[]],["component/5-8",[]],["keyword/5-8",[]],["title/5-9",[1494,53.023,2510,55.565]],["name/5-9",[]],["text/5-9",[]],["component/5-9",[]],["keyword/5-9",[]],["title/5-10",[269,25.338,293,47.325,2510,42.687,2511,54.244]],["name/5-10",[]],["text/5-10",[]],["component/5-10",[]],["keyword/5-10",[]],["title/5-11",[269,25.338,2507,41.34,2510,42.687,2512,54.244]],["name/5-11",[]],["text/5-11",[]],["component/5-11",[]],["keyword/5-11",[]],["title/5-12",[269,25.338,2508,51.962,2510,42.687,2513,54.244]],["name/5-12",[]],["text/5-12",[]],["component/5-12",[]],["keyword/5-12",[]],["title/5-13",[31,26.126,122,26.126,269,22.706,2510,38.254,2514,48.611]],["name/5-13",[]],["text/5-13",[]],["component/5-13",[]],["keyword/5-13",[]],["title/5-14",[269,25.338,2509,51.962,2510,42.687,2515,54.244]],["name/5-14",[]],["text/5-14",[]],["component/5-14",[]],["keyword/5-14",[]],["title/5",[269,38.841]],["name/5",[2516,0.832]],["text/5",[0,0.548,2,3.767,31,2.918,40,1.068,41,1.529,43,2.378,49,0.768,51,1.621,52,2.195,53,4.647,54,3.072,55,4.88,62,4.257,64,3.116,72,0.94,75,0.865,82,0.82,84,0.737,85,2.495,88,1.72,108,4.198,111,0.93,115,1.667,117,0.961,122,2.256,127,1.578,138,1.105,145,0.809,154,0.912,157,0.858,161,0.995,171,0.611,173,0.921,177,0.865,180,0.912,185,3.462,196,2.128,197,1.149,208,3.812,209,1.739,213,2.22,215,1.105,217,3.42,231,0.872,232,1.052,238,0.798,243,0.832,269,4.909,270,2.909,271,2.792,273,2.219,274,2.848,282,0.921,286,0.803,288,1.495,292,1.086,293,4.239,294,1.759,295,2.531,296,3.243,298,0.896,299,7.144,302,1.772,303,2.46,306,2.411,307,1.086,308,3.669,309,0.983,316,3.35,318,0.983,320,1.237,324,0.787,325,0.94,326,1.052,329,2.038,330,1.008,331,3.299,336,2.533,339,1.126,340,1.175,343,1.126,344,4.869,346,4.859,347,2.219,349,2.095,357,2.55,358,2.411,360,0.93,361,0.961,363,1.036,365,0.88,367,2.497,369,1.38,370,1.801,371,2.163,373,4.239,376,1.149,377,1.275,378,2.08,379,4.649,382,3.686,384,5.478,391,2.93,392,1.068,428,1.068,432,2.382,437,2.038,445,1.022,454,0.793,486,0.773,551,1.022,869,0.961,873,1.204,874,1.651,895,2.127,898,1.036,919,1.529,921,1.965,925,2.792,928,0.983,937,1.086,939,2.356,984,0.972,997,1.322,1017,0.896,1019,1.636,1037,1.022,1054,1.008,1091,4.522,1095,1.474,1123,1.149,1131,2.262,1138,1.036,1156,0.995,1159,0.865,1177,1.175,1215,1.204,1228,2.239,1247,0.94,1273,1.036,1285,1.068,1340,1.036,1405,1.052,1428,1.38,1508,1.149,1556,2.038,1684,1.204,1737,1.175,1767,1.126,1863,1.175,2060,3.152,2151,4.021,2387,2.607,2507,4.849,2508,5.677,2509,4.021,2510,4.273,2517,1.38,2518,1.458,2519,1.105,2520,1.149,2521,2.638,2522,1.38,2523,4.197,2524,1.458,2525,2.638,2526,2.638,2527,1.458,2528,1.458,2529,1.458,2530,1.458,2531,1.022,2532,4.655,2533,5.312,2534,1.965,2535,1.322,2536,1.175,2537,3.421,2538,3.277,2539,1.38,2540,1.38,2541,1.458,2542,1.575,2543,2.852,2544,1.575,2545,1.575,2546,3.906,2547,1.126,2548,1.575,2549,1.575,2550,2.852,2551,1.575,2552,1.322,2553,5.019,2554,2.179,2555,1.575,2556,1.575,2557,1.052,2558,1.458,2559,1.575,2560,2.638,2561,2.852,2562,1.458,2563,1.575,2564,1.458,2565,2.852,2566,2.638,2567,2.852,2568,2.239,2569,2.852,2570,1.575,2571,1.575,2572,2.852,2573,1.575,2574,6.239,2575,2.638,2576,1.458,2577,4.434,2578,1.458,2579,2.392,2580,3.162,2581,1.575,2582,2.038,2583,1.052,2584,1.575,2585,0.983,2586,1.458,2587,1.575,2588,1.575,2589,1.575,2590,2.095,2591,1.237,2592,1.38,2593,1.175,2594,1.575,2595,6.926,2596,1.575,2597,1.458,2598,1.575,2599,1.575,2600,1.575,2601,1.575,2602,1.38,2603,1.575,2604,1.575,2605,1.458,2606,2.852,2607,2.852,2608,2.852,2609,1.036,2610,1.38,2611,1.575,2612,1.458,2613,1.458,2614,1.204,2615,1.759,2616,1.458,2617,1.275,2618,1.036,2619,6.199,2620,6.767,2621,1.458,2622,1.575,2623,1.237,2624,1.575,2625,1.322,2626,1.575,2627,1.38,2628,1.575,2629,1.237,2630,2.309,2631,1.575,2632,1.575,2633,1.575,2634,1.458,2635,1.38,2636,1.458,2637,1.458,2638,0.82,2639,1.275,2640,1.458,2641,1.275,2642,1.458,2643,1.149,2644,1.38,2645,2.08,2646,4.793,2647,1.575,2648,2.913,2649,3.614]],["component/5",[2,0.251,266,0.348]],["keyword/5",[]],["title/6-1",[0,24.354,4,38.792,132,43.716]],["name/6-1",[]],["text/6-1",[]],["component/6-1",[]],["keyword/6-1",[]],["title/6-2",[21,26.776,132,43.716,2650,70.055]],["name/6-2",[]],["text/6-2",[]],["component/6-2",[]],["keyword/6-2",[]],["title/6-3",[2,16.76,24,23.953,26,25.56,62,23.203,132,34.636]],["name/6-3",[]],["text/6-3",[]],["component/6-3",[]],["keyword/6-3",[]],["title/6-4",[273,32.435,287,43.203,508,41.372]],["name/6-4",[]],["text/6-4",[]],["component/6-4",[]],["keyword/6-4",[]],["title/6-5",[269,25.338,273,28.676,290,37.764,1131,35.865]],["name/6-5",[]],["text/6-5",[]],["component/6-5",[]],["keyword/6-5",[]],["title/6-6",[269,28.659,2442,53.528,2651,61.354]],["name/6-6",[]],["text/6-6",[]],["component/6-6",[]],["keyword/6-6",[]],["title/6-7",[269,25.338,855,44.27,2652,57.299,2653,57.299]],["name/6-7",[]],["text/6-7",[]],["component/6-7",[]],["keyword/6-7",[]],["title/6-8",[26,28.522,269,25.338,2654,57.299,2655,54.244]],["name/6-8",[]],["text/6-8",[]],["component/6-8",[]],["keyword/6-8",[]],["title/6-9",[57,36.504,269,22.706,296,24.779,2655,48.611,2656,51.348]],["name/6-9",[]],["text/6-9",[]],["component/6-9",[]],["keyword/6-9",[]],["title/6-10",[269,28.659,2657,46.073,2658,61.354]],["name/6-10",[]],["text/6-10",[]],["component/6-10",[]],["keyword/6-10",[]],["title/6-11",[31,29.154,508,36.578,1221,38.196,2659,41.989]],["name/6-11",[]],["text/6-11",[]],["component/6-11",[]],["keyword/6-11",[]],["title/6-12",[370,35.065,459,26.126,579,31.839,1624,40.487,2658,48.611]],["name/6-12",[]],["text/6-12",[]],["component/6-12",[]],["keyword/6-12",[]],["title/6-13",[324,35.015,357,37.279,2660,64.809]],["name/6-13",[]],["text/6-13",[]],["component/6-13",[]],["keyword/6-13",[]],["title/6-14",[132,38.65,143,42.687,2661,57.299,2662,57.299]],["name/6-14",[]],["text/6-14",[]],["component/6-14",[]],["keyword/6-14",[]],["title/6-15",[370,35.065,459,26.126,579,31.839,2663,51.348,2664,46.566]],["name/6-15",[]],["text/6-15",[]],["component/6-15",[]],["keyword/6-15",[]],["title/6-16",[52,25.425,217,26.126,370,35.065,2664,46.566,2665,46.566]],["name/6-16",[]],["text/6-16",[]],["component/6-16",[]],["keyword/6-16",[]],["title/6-17",[2,15.183,273,23.281,302,18.593,1708,36.678,2666,38.42,2667,46.518]],["name/6-17",[]],["text/6-17",[]],["component/6-17",[]],["keyword/6-17",[]],["title/6-18",[132,43.716,454,35.244,2668,70.055]],["name/6-18",[]],["text/6-18",[]],["component/6-18",[]],["keyword/6-18",[]],["title/6-19",[459,29.154,460,43.444,579,35.529,1085,41.34]],["name/6-19",[]],["text/6-19",[]],["component/6-19",[]],["keyword/6-19",[]],["title/6-20",[206,35.96,465,51.1,923,54.997]],["name/6-20",[]],["text/6-20",[]],["component/6-20",[]],["keyword/6-20",[]],["title/6-21",[86,29.994,579,31.839,1085,37.047,1163,42.41,2669,43.574]],["name/6-21",[]],["text/6-21",[]],["component/6-21",[]],["keyword/6-21",[]],["title/6-22",[86,37.857,1085,46.758,2670,56.713]],["name/6-22",[]],["text/6-22",[]],["component/6-22",[]],["keyword/6-22",[]],["title/6-23",[459,29.154,1085,41.34,1251,46.189,2671,50.141]],["name/6-23",[]],["text/6-23",[]],["component/6-23",[]],["keyword/6-23",[]],["title/6-24",[52,32.09,1085,46.758,2672,58.773]],["name/6-24",[]],["text/6-24",[]],["component/6-24",[]],["keyword/6-24",[]],["title/6-25",[52,32.09,316,37.857,1468,43.716]],["name/6-25",[]],["text/6-25",[]],["component/6-25",[]],["keyword/6-25",[]],["title/6-26",[132,38.65,576,37.764,846,33.211,2673,44.27]],["name/6-26",[]],["text/6-26",[]],["component/6-26",[]],["keyword/6-26",[]],["title/6",[132,50.31,827,56.551]],["name/6",[2674,0.832]],["text/6",[0,2.939,2,1.878,3,0.4,6,0.782,16,0.503,19,0.974,21,2.742,24,0.498,25,0.252,26,3.454,31,1.411,32,2.085,34,0.379,38,0.795,43,0.23,44,0.592,47,0.324,48,0.362,52,2.748,53,0.661,55,5.144,57,1.095,59,0.389,60,1.1,61,0.272,62,3.956,63,2.023,64,3.524,65,1.594,68,2.044,69,0.341,71,0.413,72,0.994,73,1.444,81,0.324,82,0.6,83,0.362,84,3.51,85,2.743,86,4.053,90,0.855,97,0.351,102,0.421,108,2.042,111,0.354,112,0.738,118,0.867,122,1.764,123,0.758,127,2.33,132,4.68,134,0.429,135,1.429,136,0.384,137,0.406,138,0.421,139,1.215,143,2.333,145,1.099,146,0.4,147,0.406,154,0.668,155,0.389,157,0.907,161,0.379,162,1.318,165,0.429,170,1.348,171,0.448,179,1.975,181,0.413,185,1.336,189,0.379,192,0.421,196,2.042,198,0.389,202,0.37,206,2.419,208,0.65,210,1.157,211,0.344,213,0.655,216,0.809,217,1.411,227,1.318,230,0.555,231,1.66,234,0.703,238,1.519,243,1.131,244,1.572,251,1.654,252,1.346,254,0.644,269,1.227,273,1.735,274,1.539,281,0.389,286,0.306,288,1.775,294,0.711,295,0.317,296,0.515,298,0.947,302,3.169,303,2.566,306,2.779,308,0.285,309,1.039,310,3.807,316,3.242,318,0.374,326,0.77,335,2.001,336,0.389,337,0.824,339,6.285,347,0.534,349,0.321,351,1.08,353,0.933,355,0.31,357,1.14,358,0.838,361,3.369,365,0.93,366,0.655,370,5.923,371,0.332,374,1.112,378,0.841,379,0.384,382,5.058,391,2.489,392,0.782,393,1.462,405,0.394,416,0.695,420,0.406,427,4.249,428,0.406,429,0.4,430,0.394,435,0.379,436,0.344,437,0.429,438,0.955,439,1.975,440,0.429,441,0.421,442,0.525,443,0.503,445,0.389,447,2.264,450,0.503,451,1.067,452,1.067,453,0.471,454,0.302,459,4.328,465,0.437,468,0.748,473,1.562,475,0.429,489,0.3,493,0.362,524,0.525,542,0.471,559,0.748,565,0.471,576,0.366,579,0.661,582,0.366,583,0.458,588,3.442,606,2.583,635,0.471,653,0.614,730,0.447,780,0.406,783,0.4,804,1.452,809,0.72,810,0.362,811,4.475,818,0.886,820,0.437,830,0.86,846,2.01,855,0.824,864,1.016,868,0.758,869,0.366,870,1.168,875,0.824,880,0.458,888,1.112,895,0.447,898,0.394,900,0.413,907,0.421,909,0.841,913,0.471,919,1.815,921,0.795,925,1.531,930,0.984,947,0.809,951,0.437,978,0.413,984,0.711,990,0.421,997,1.397,999,0.374,1010,0.655,1011,0.437,1017,0.947,1018,0.458,1024,1.306,1032,0.37,1034,0.471,1037,1.08,1045,1.562,1046,0.758,1054,1.37,1056,1.168,1057,0.458,1061,3.979,1075,0.341,1085,1.429,1091,0.437,1095,0.861,1113,0.429,1114,1.531,1120,0.335,1122,0.421,1126,2.983,1137,0.458,1145,1.039,1146,0.503,1147,0.366,1148,0.471,1151,0.429,1159,1.419,1162,0.394,1163,3.601,1164,0.503,1187,0.413,1190,0.374,1193,3.573,1212,1.308,1219,0.905,1221,0.37,1227,0.447,1234,0.447,1247,0.688,1251,4.12,1261,0.4,1279,0.384,1282,0.421,1287,0.374,1291,0.471,1312,0.429,1315,0.384,1322,0.447,1329,1.08,1334,1.066,1338,1.502,1340,0.394,1342,0.525,1349,1.348,1371,0.429,1393,1.72,1403,2.541,1405,0.4,1406,0.374,1411,0.86,1415,3.287,1416,2.02,1419,0.471,1441,1.027,1453,0.406,1461,0.4,1468,0.374,1485,0.809,1492,0.525,1494,0.394,1515,0.77,1528,0.503,1538,0.429,1540,0.458,1544,0.351,1545,0.471,1565,0.748,1580,0.503,1594,0.471,1607,0.525,1631,0.86,1696,0.77,1713,0.86,1723,0.809,1737,6.558,1772,0.421,1817,1.597,1832,0.437,1838,0.413,1845,0.503,1860,1.01,1909,0.4,1933,0.437,1946,3.132,1952,0.458,1960,0.332,1971,0.458,2110,0.525,2119,0.525,2196,0.503,2280,0.437,2298,0.503,2389,0.458,2392,0.347,2395,3.438,2406,1.429,2442,5.348,2519,1.502,2531,0.389,2532,0.503,2557,0.4,2585,1.336,2593,0.447,2609,2.465,2614,0.458,2638,1.115,2653,1.541,2655,1.876,2658,6.13,2659,0.406,2664,3.954,2667,5.336,2673,0.429,2675,0.6,2676,0.6,2677,0.555,2678,0.6,2679,0.374,2680,0.6,2681,0.413,2682,0.6,2683,0.933,2684,0.437,2685,0.6,2686,0.881,2687,0.555,2688,0.458,2689,0.471,2690,0.485,2691,0.555,2692,0.447,2693,1.397,2694,0.503,2695,0.485,2696,0.6,2697,4.089,2698,1.666,2699,1.666,2700,1.734,2701,1.153,2702,0.6,2703,3.132,2704,2.142,2705,0.809,2706,0.555,2707,0.6,2708,1.153,2709,0.6,2710,0.6,2711,1.734,2712,0.6,2713,0.6,2714,0.406,2715,0.555,2716,0.447,2717,0.555,2718,0.413,2719,0.6,2720,0.6,2721,0.6,2722,0.6,2723,0.555,2724,0.6,2725,0.881,2726,0.485,2727,0.485,2728,0.555,2729,0.525,2730,1.153,2731,0.6,2732,0.555,2733,0.525,2734,0.6,2735,1.01,2736,0.6,2737,0.458,2738,0.6,2739,0.6,2740,1.153,2741,1.531,2742,1.541,2743,1.153,2744,2.142,2745,1.153,2746,0.6,2747,0.6,2748,0.6,2749,0.6,2750,1.153,2751,0.6,2752,0.6,2753,0.6,2754,0.6,2755,1.01,2756,0.6,2757,0.6,2758,0.6,2759,0.6,2760,0.6,2761,0.437,2762,1.541,2763,1.153,2764,0.6,2765,1.153,2766,1.666,2767,0.6,2768,1.153,2769,0.6,2770,0.6,2771,0.6,2772,0.6,2773,0.6,2774,0.6,2775,0.6,2776,0.6,2777,0.6,2778,0.6,2779,0.6,2780,0.6,2781,0.6,2782,0.6,2783,0.6,2784,0.6,2785,2.142,2786,1.153,2787,0.6,2788,0.6,2789,0.6,2790,0.6,2791,0.6,2792,1.459,2793,0.6,2794,1.153,2795,0.6,2796,1.153,2797,0.6,2798,1.153,2799,1.153,2800,1.153,2801,1.153,2802,1.153,2803,0.6,2804,1.153,2805,1.153,2806,1.153,2807,1.308,2808,0.555,2809,0.6,2810,0.6,2811,1.153,2812,1.153,2813,1.348,2814,0.6,2815,0.6,2816,2.142,2817,7.173,2818,0.458,2819,0.6,2820,0.6,2821,0.6,2822,0.555,2823,0.525,2824,0.6,2825,2.741,2826,3.132,2827,0.6,2828,0.471,2829,0.555,2830,0.6,2831,0.6,2832,0.6,2833,0.6,2834,0.6,2835,0.6,2836,0.6,2837,1.215,2838,0.525,2839,0.6,2840,0.525,2841,0.6,2842,0.6,2843,0.6,2844,0.6,2845,0.6,2846,0.6,2847,1.666,2848,1.153,2849,1.666,2850,1.666,2851,0.447,2852,0.555,2853,1.666,2854,0.503,2855,1.153,2856,0.6,2857,1.153,2858,0.437,2859,0.6,2860,1.153,2861,0.905,2862,0.485,2863,0.6,2864,0.6,2865,1.01,2866,0.6,2867,0.503,2868,3.468,2869,0.6,2870,1.153,2871,1.067,2872,0.555,2873,1.666,2874,0.6,2875,0.6,2876,0.6,2877,0.6,2878,1.666,2879,0.6,2880,5.269,2881,2.142,2882,3.132,2883,3.132,2884,1.666,2885,0.6,2886,0.6,2887,0.6,2888,0.6,2889,0.6,2890,0.6,2891,1.541,2892,0.6,2893,0.6,2894,1.153,2895,1.153,2896,0.525,2897,0.555,2898,6.218,2899,0.6,2900,6.427,2901,5.999,2902,0.6,2903,0.6,2904,1.153,2905,0.555,2906,0.6,2907,1.153,2908,0.6,2909,0.6,2910,1.153,2911,1.666,2912,0.6,2913,0.6,2914,0.6,2915,0.6,2916,0.6,2917,0.6,2918,1.153,2919,0.6,2920,0.6,2921,0.6,2922,0.6,2923,0.6,2924,1.153,2925,0.6,2926,0.6,2927,0.6,2928,0.6,2929,0.6,2930,0.6,2931,0.6,2932,1.153,2933,1.153,2934,0.555,2935,0.6,2936,0.6,2937,0.6,2938,2.585,2939,0.6,2940,0.6,2941,2.142,2942,0.6,2943,0.6,2944,0.6,2945,0.6,2946,0.6,2947,0.6,2948,0.6,2949,1.153,2950,0.6,2951,0.6,2952,0.6,2953,0.6,2954,0.6,2955,0.6,2956,0.6,2957,0.6,2958,1.153,2959,0.437,2960,1.153,2961,1.153,2962,1.153,2963,0.6,2964,0.6,2965,0.6,2966,0.6,2967,0.6,2968,0.6,2969,1.153,2970,0.6,2971,0.6,2972,1.153,2973,0.6,2974,0.6,2975,0.905,2976,0.6]],["component/6",[2,0.251,266,0.348]],["keyword/6",[]],["title/7-1",[0,21.532,2,18.702,2638,32.242,2977,41.989]],["name/7-1",[]],["text/7-1",[]],["component/7-1",[]],["keyword/7-1",[]],["title/7-2",[3,41.34,4,34.296,2977,41.989,2978,57.299]],["name/7-2",[]],["text/7-2",[]],["component/7-2",[]],["keyword/7-2",[]],["title/7-3",[5,37.047,52,25.425,1156,35.065,2977,37.628,2979,44.934]],["name/7-3",[]],["text/7-3",[]],["component/7-3",[]],["keyword/7-3",[]],["title/7-4",[9,44.27,1005,43.444,2977,41.989,2980,50.141]],["name/7-4",[]],["text/7-4",[]],["component/7-4",[]],["keyword/7-4",[]],["title/7-5",[12,48.624,52,28.371,1061,39.633,2977,41.989]],["name/7-5",[]],["text/7-5",[]],["component/7-5",[]],["keyword/7-5",[]],["title/7-6",[2,18.702,21,23.674,236,34.892,2638,32.242]],["name/7-6",[]],["text/7-6",[]],["component/7-6",[]],["keyword/7-6",[]],["title/7-7",[2,16.76,24,23.953,62,23.203,157,30.234,236,31.268]],["name/7-7",[]],["text/7-7",[]],["component/7-7",[]],["keyword/7-7",[]],["title/7-8",[52,28.371,115,36.215,206,31.793,454,31.16]],["name/7-8",[]],["text/7-8",[]],["component/7-8",[]],["keyword/7-8",[]],["title/7-9",[460,56.551,2273,56.551]],["name/7-9",[]],["text/7-9",[]],["component/7-9",[]],["keyword/7-9",[]],["title/7-10",[4,44.643,2981,70.609]],["name/7-10",[]],["text/7-10",[]],["component/7-10",[]],["keyword/7-10",[]],["title/7-11",[2982,74.585,2983,60.123]],["name/7-11",[]],["text/7-11",[]],["component/7-11",[]],["keyword/7-11",[]],["title/7-12",[127,28.301,244,36.731,2984,64.809]],["name/7-12",[]],["text/7-12",[]],["component/7-12",[]],["keyword/7-12",[]],["title/7-13",[52,32.09,316,37.857,804,47.492]],["name/7-13",[]],["text/7-13",[]],["component/7-13",[]],["keyword/7-13",[]],["title/7-14",[52,28.371,127,25.021,576,37.764,1411,46.189]],["name/7-14",[]],["text/7-14",[]],["component/7-14",[]],["keyword/7-14",[]],["title/7-15",[333,46.758,642,46.758,1386,46.758]],["name/7-15",[]],["text/7-15",[]],["component/7-15",[]],["keyword/7-15",[]],["title/7-16",[162,35.716,643,58.773,2985,58.773]],["name/7-16",[]],["text/7-16",[]],["component/7-16",[]],["keyword/7-16",[]],["title/7-17",[644,61.354,1386,46.758,2985,58.773]],["name/7-17",[]],["text/7-17",[]],["component/7-17",[]],["keyword/7-17",[]],["title/7-18",[127,28.301,645,64.809,2979,56.713]],["name/7-18",[]],["text/7-18",[]],["component/7-18",[]],["keyword/7-18",[]],["title/7-19",[62,25.891,192,43.444,646,57.299,1548,36.578]],["name/7-19",[]],["text/7-19",[]],["component/7-19",[]],["keyword/7-19",[]],["title/7-20",[85,28.893,306,27.924,333,37.047,647,46.566,1145,34.636]],["name/7-20",[]],["text/7-20",[]],["component/7-20",[]],["keyword/7-20",[]],["title/7-21",[73,25.666,89,29.805,202,28.343,652,38.558,2986,34.273,2987,32.85,2988,38.558]],["name/7-21",[]],["text/7-21",[]],["component/7-21",[]],["keyword/7-21",[]],["title/7-22",[52,28.371,449,39.633,2406,41.34,2989,61.936]],["name/7-22",[]],["text/7-22",[]],["component/7-22",[]],["keyword/7-22",[]],["title/7-23",[484,40.297,812,67.639]],["name/7-23",[]],["text/7-23",[]],["component/7-23",[]],["keyword/7-23",[]],["title/7-24",[361,49.157,817,65.268]],["name/7-24",[]],["text/7-24",[]],["component/7-24",[]],["keyword/7-24",[]],["title/7-25",[489,40.297,822,67.639]],["name/7-25",[]],["text/7-25",[]],["component/7-25",[]],["keyword/7-25",[]],["title/7-26",[306,35.244,2065,40.961,2990,61.354]],["name/7-26",[]],["text/7-26",[]],["component/7-26",[]],["keyword/7-26",[]],["title/7-27",[1024,42.713,2065,40.961,2991,70.055]],["name/7-27",[]],["text/7-27",[]],["component/7-27",[]],["keyword/7-27",[]],["title/7-28",[2065,40.961,2992,70.055,2993,58.773]],["name/7-28",[]],["text/7-28",[]],["component/7-28",[]],["keyword/7-28",[]],["title/7-29",[1616,53.528,2065,40.961,2994,70.055]],["name/7-29",[]],["text/7-29",[]],["component/7-29",[]],["keyword/7-29",[]],["title/7-30",[306,35.244,2995,70.055,2996,64.809]],["name/7-30",[]],["text/7-30",[]],["component/7-30",[]],["keyword/7-30",[]],["title/7-31",[171,31.291,2997,70.609]],["name/7-31",[]],["text/7-31",[]],["component/7-31",[]],["keyword/7-31",[]],["title/7-32",[231,38.792,480,54.997,1494,46.073]],["name/7-32",[]],["text/7-32",[]],["component/7-32",[]],["keyword/7-32",[]],["title/7-33",[127,28.301,1099,51.1,2511,61.354]],["name/7-33",[]],["text/7-33",[]],["component/7-33",[]],["keyword/7-33",[]],["title/7-34",[23,47.492,1099,51.1,2998,70.055]],["name/7-34",[]],["text/7-34",[]],["component/7-34",[]],["keyword/7-34",[]],["title/7-35",[1099,51.1,1275,52.243,2999,70.055]],["name/7-35",[]],["text/7-35",[]],["component/7-35",[]],["keyword/7-35",[]],["title/7-36",[3000,80.622,3001,70.609]],["name/7-36",[]],["text/7-36",[]],["component/7-36",[]],["keyword/7-36",[]],["title/7-37",[127,25.021,1118,47.325,1279,39.633,2512,54.244]],["name/7-37",[]],["text/7-37",[]],["component/7-37",[]],["keyword/7-37",[]],["title/7-38",[254,34.589,992,39.633,1279,39.633,3002,61.936]],["name/7-38",[]],["text/7-38",[]],["component/7-38",[]],["keyword/7-38",[]],["title/7-39",[837,46.758,1279,44.827,3003,70.055]],["name/7-39",[]],["text/7-39",[]],["component/7-39",[]],["keyword/7-39",[]],["title/7-40",[63,21.39,1131,40.566,3004,70.055]],["name/7-40",[]],["text/7-40",[]],["component/7-40",[]],["keyword/7-40",[]],["title/7-41",[63,18.912,808,40.167,1131,35.865,3005,61.936]],["name/7-41",[]],["text/7-41",[]],["component/7-41",[]],["keyword/7-41",[]],["title/7-42",[913,43.574,1193,39.673,1563,35.995,3006,55.504,3007,48.611]],["name/7-42",[]],["text/7-42",[]],["component/7-42",[]],["keyword/7-42",[]],["title/7-43",[438,35.529,3007,54.244,3008,61.936,3009,57.299]],["name/7-43",[]],["text/7-43",[]],["component/7-43",[]],["keyword/7-43",[]],["title/7-44",[46,31.378,475,35.94,1086,29.695,1118,38.42,1300,36.678,2513,44.038]],["name/7-44",[]],["text/7-44",[]],["component/7-44",[]],["keyword/7-44",[]],["title/7-45",[62,29.285,1161,52.243,2514,61.354]],["name/7-45",[]],["text/7-45",[]],["component/7-45",[]],["keyword/7-45",[]],["title/7-46",[1267,47.492,1301,58.773,3010,70.055]],["name/7-46",[]],["text/7-46",[]],["component/7-46",[]],["keyword/7-46",[]],["title/7-47",[127,28.301,1061,44.827,3011,70.055]],["name/7-47",[]],["text/7-47",[]],["component/7-47",[]],["keyword/7-47",[]],["title/7-48",[811,41.8,939,42.247,3012,70.055]],["name/7-48",[]],["text/7-48",[]],["component/7-48",[]],["keyword/7-48",[]],["title/7-49",[559,35.995,582,33.842,939,33.472,1411,41.392,3013,55.504]],["name/7-49",[]],["text/7-49",[]],["component/7-49",[]],["keyword/7-49",[]],["title/7-50",[1135,46.758,3014,70.055,3015,61.354]],["name/7-50",[]],["text/7-50",[]],["component/7-50",[]],["keyword/7-50",[]],["title/7-51",[1135,46.758,3016,70.055,3017,64.809]],["name/7-51",[]],["text/7-51",[]],["component/7-51",[]],["keyword/7-51",[]],["title/7-52",[281,32.609,282,29.401,1267,34.088,2986,37.498,3018,50.283,3019,36.678]],["name/7-52",[]],["text/7-52",[]],["component/7-52",[]],["keyword/7-52",[]],["title/7-53",[208,34.892,1275,46.189,3020,61.936,3021,51.962]],["name/7-53",[]],["text/7-53",[]],["component/7-53",[]],["keyword/7-53",[]],["title/7-54",[489,35.015,3022,70.055,3023,54.997]],["name/7-54",[]],["text/7-54",[]],["component/7-54",[]],["keyword/7-54",[]],["title/7-55",[64,28.522,1192,40.167,1323,50.141,2515,54.244]],["name/7-55",[]],["text/7-55",[]],["component/7-55",[]],["keyword/7-55",[]],["title/7",[144,43.444,227,31.577,236,34.892,827,43.444]],["name/7",[3024,0.832]],["text/7",[0,1.001,1,0.096,2,1.526,6,0.244,11,0.248,14,0.262,19,0.902,20,0.164,21,0.474,23,0.323,24,0.155,25,0.689,26,0.111,29,0.45,31,0.485,32,0.525,34,0.514,35,1.082,36,0.087,37,2.171,38,0.084,39,0.143,40,0.164,41,0.609,43,0.515,44,0.185,46,0.709,47,0.44,48,1.218,49,2.665,51,0.462,52,3.877,53,1.414,54,1.55,55,4.724,56,0.451,60,0.699,61,0.216,62,2.987,63,0.726,64,2.119,65,2.837,68,0.295,69,0.069,72,1.95,73,3.292,74,0.295,75,0.681,76,0.102,81,1.238,82,1.003,83,0.217,84,0.988,85,2.237,86,0.557,87,0.688,88,0.931,89,1.001,90,1.599,91,0.636,92,0.252,94,0.469,95,0.315,97,0.071,100,0.079,102,0.414,103,0.185,104,0.185,106,1.716,108,1.295,109,0.167,110,0.196,111,1.353,112,0.59,115,0.539,117,0.074,118,0.954,120,0.185,121,0.157,122,0.726,123,0.159,124,0.085,125,0.107,126,0.524,127,3.502,130,0.161,132,0.225,134,0.173,136,0.45,137,1.307,138,0.493,139,0.089,142,0.995,143,2.552,145,0.792,146,0.758,147,0.164,149,0.164,152,0.414,153,0.096,154,0.534,155,0.079,157,1.389,159,0.081,160,0.43,161,1.218,162,0.837,165,0.087,166,0.203,168,0.159,169,0.102,171,1.919,173,0.844,175,0.571,177,0.955,178,0.096,179,0.093,180,0.658,181,0.248,182,0.493,183,0.176,184,0.433,185,0.297,186,0.215,187,0.671,189,0.912,190,1.485,192,1.544,193,0.091,196,1.94,198,0.079,201,0.785,202,0.765,203,0.085,206,1.176,207,1.109,208,2.163,209,0.428,210,3.463,211,0.529,213,1.983,214,0.196,215,0.571,216,0.414,217,1.538,220,0.102,221,0.841,222,0.096,225,0.4,227,1.212,228,0.091,231,1.169,232,0.318,234,0.628,235,0.535,236,0.203,238,0.467,239,0.161,240,0.622,241,0.45,242,0.24,243,0.709,244,1.51,245,0.287,247,0.137,248,0.424,250,0.099,251,0.793,254,3.317,256,0.389,259,0.508,260,0.543,263,0.508,264,1.181,265,1.606,266,0.386,267,0.144,268,3.279,269,0.591,270,0.861,271,0.886,273,0.22,274,0.583,275,0.153,277,0.143,280,0.077,281,0.233,282,0.539,285,0.252,286,0.787,288,0.961,289,0.144,290,0.147,292,0.084,294,0.149,295,0.6,296,1.391,297,0.096,298,0.137,302,1.612,303,0.529,304,0.091,305,0.099,306,3.595,307,0.167,308,1.091,309,0.438,310,0.971,313,0.385,315,0.196,316,0.67,318,0.508,320,0.282,323,0.12,324,0.351,325,1.859,326,0.081,327,0.161,328,2.91,329,0.087,330,0.521,331,2.774,332,1.131,333,2.868,335,0.687,336,0.456,337,0.34,338,0.593,339,0.422,340,0.44,343,0.173,344,0.912,347,1.296,348,0.705,349,2.304,351,0.157,352,0.374,355,0.532,357,0.976,358,0.97,359,0.19,360,1.027,361,2.215,362,0.736,363,0.747,364,0.508,365,0.917,366,0.821,370,0.444,371,0.264,374,1.409,379,0.305,382,2.306,390,0.911,391,1.521,392,0.083,393,2.383,405,0.949,416,0.99,420,0.164,423,0.659,427,3.945,428,1.243,430,0.747,431,0.164,432,1.287,434,2.021,435,0.848,436,0.273,437,0.34,438,0.885,439,0.093,440,0.659,444,0.444,445,0.528,449,0.23,450,0.399,453,0.19,454,0.122,455,0.167,456,0.252,457,1.256,459,3.545,461,1.103,464,0.252,466,0.677,468,1.31,471,4.85,473,4.955,475,4.829,477,0.091,482,0.091,489,1.145,493,0.287,508,0.349,509,0.176,510,0.081,534,0.275,551,0.668,559,0.804,576,0.074,579,0.339,581,0.399,582,1.342,583,0.537,585,0.244,588,1.314,589,0.164,590,0.451,595,1.507,597,1.579,599,0.173,603,0.383,604,1.577,608,0.196,610,0.318,617,1.287,623,0.18,629,0.712,631,0.089,642,0.24,648,0.48,653,1.575,658,1.367,675,0.155,730,0.091,780,0.323,783,0.161,785,1.178,787,0.107,799,1.197,803,0.302,804,0.698,808,1.708,809,0.225,810,0.217,811,4.097,818,1.311,820,0.43,825,0.248,830,0.355,831,0.096,835,0.262,836,0.44,837,0.543,838,0.386,839,0.096,841,0.355,846,0.609,848,0.107,851,0.096,856,0.34,857,0.647,859,1.103,860,0.257,861,0.323,864,0.496,865,0.787,866,1.682,867,0.422,868,0.883,869,2.215,871,2.115,872,0.099,873,0.093,874,0.342,875,0.087,876,0.093,877,0.222,878,0.636,880,0.093,881,1.004,883,0.085,884,0.513,885,0.107,887,0.924,888,0.24,889,0.099,891,0.203,892,0.904,894,0.107,895,0.355,896,0.476,897,0.552,898,1.143,900,0.328,901,1.81,902,0.364,903,0.414,904,0.347,905,0.099,907,2.97,909,0.176,910,0.478,911,0.659,912,0.089,913,0.724,915,0.868,917,0.252,918,0.102,919,1.275,920,0.161,921,0.71,925,0.581,926,0.493,927,0.102,928,0.709,930,2.186,931,0.593,934,0.551,935,0.302,936,0.688,937,0.167,938,0.107,939,0.871,944,0.19,945,0.087,947,0.797,949,0.176,951,0.176,952,0.096,954,1.352,958,0.099,962,0.347,964,0.087,965,1.621,967,0.364,968,0.083,969,0.089,971,0.44,972,0.812,973,0.268,974,0.302,975,0.774,977,0.085,978,1.392,979,1.329,981,0.083,982,0.478,983,0.19,984,1.776,986,0.185,987,0.084,988,0.224,990,1.219,991,0.528,992,1.05,995,0.196,998,0.463,999,0.643,1000,0.113,1004,0.093,1005,0.334,1009,0.747,1010,0.705,1012,0.093,1013,0.093,1014,0.374,1015,0.687,1016,0.107,1017,1.449,1018,0.364,1019,1.463,1020,0.607,1021,0.385,1022,0.176,1024,0.88,1025,0.096,1032,2.41,1033,0.904,1034,0.096,1037,0.737,1039,1.026,1041,0.581,1042,0.203,1043,0.102,1044,0.422,1045,0.751,1046,0.677,1054,1.894,1056,0.17,1059,0.513,1060,0.19,1061,4.022,1062,0.085,1063,0.334,1066,0.364,1067,0.282,1068,1.059,1069,0.099,1070,0.203,1071,0.275,1072,0.096,1073,0.099,1074,0.093,1075,0.335,1077,0.355,1078,0.834,1079,0.093,1080,0.659,1083,0.768,1084,0.196,1085,1.03,1086,1.353,1087,0.315,1089,1.307,1090,1.815,1091,0.347,1092,0.502,1093,0.815,1094,0.315,1095,1.877,1096,0.291,1097,0.724,1099,2.85,1103,1.147,1106,1.004,1108,2.323,1110,0.096,1111,1.212,1112,0.291,1113,0.736,1114,0.34,1116,0.502,1117,0.291,1118,3.378,1120,0.634,1123,0.262,1124,0.43,1126,0.828,1129,0.797,1130,0.102,1131,1.621,1132,0.196,1133,0.102,1134,0.302,1135,0.687,1136,0.478,1137,0.275,1138,0.159,1140,0.768,1142,0.275,1143,0.302,1144,0.268,1145,0.901,1146,0.302,1147,0.562,1148,2.739,1150,0.463,1151,0.581,1154,0.096,1155,0.925,1156,0.301,1157,0.373,1158,0.096,1159,0.447,1161,0.18,1162,0.607,1163,0.364,1166,0.417,1167,0.59,1168,0.639,1171,0.093,1172,0.451,1174,0.847,1177,0.18,1181,0.45,1182,0.093,1183,0.107,1184,0.524,1185,2.813,1187,0.407,1188,0.099,1190,1.538,1191,0.17,1192,0.598,1193,1.942,1197,0.099,1199,0.682,1200,0.102,1202,0.469,1203,0.083,1204,0.099,1207,0.19,1208,0.892,1209,0.096,1211,0.373,1212,2.197,1213,0.847,1214,0.682,1215,0.451,1218,0.083,1219,1.439,1220,1.211,1221,0.075,1222,0.374,1223,0.368,1224,1.538,1225,1.103,1226,0.102,1227,0.091,1228,0.19,1229,0.185,1230,0.399,1231,0.102,1233,0.463,1234,0.44,1235,0.355,1236,0.451,1237,0.892,1238,0.102,1240,0.355,1242,0.252,1243,0.196,1244,0.282,1247,0.55,1248,0.282,1249,0.113,1250,0.196,1251,0.355,1252,0.093,1253,0.099,1254,0.262,1255,0.089,1257,0.203,1258,0.091,1259,0.4,1260,0.107,1261,0.469,1262,0.079,1264,0.096,1265,0.399,1267,0.323,1270,0.302,1272,0.593,1273,0.462,1274,0.451,1275,3.062,1277,0.328,1278,1.026,1279,2.789,1280,0.24,1281,0.34,1282,0.252,1284,0.282,1285,1.553,1286,0.18,1287,0.076,1289,0.19,1291,0.096,1292,0.463,1297,0.268,1300,0.593,1301,0.203,1302,0.196,1303,0.093,1305,0.607,1306,0.262,1307,1.392,1308,0.224,1312,0.581,1313,0.399,1314,0.185,1315,0.793,1317,0.102,1318,0.291,1319,0.282,1320,0.347,1321,0.248,1322,0.18,1323,0.291,1324,0.892,1329,0.157,1330,0.451,1333,0.196,1334,0.521,1335,0.089,1338,0.571,1339,0.102,1340,0.237,1341,0.513,1343,0.34,1344,0.084,1345,0.113,1352,0.18,1357,0.185,1361,0.19,1362,0.571,1363,0.102,1364,0.185,1365,0.724,1366,0.868,1367,0.34,1368,0.141,1371,0.087,1372,0.185,1374,0.389,1376,0.093,1377,0.196,1380,0.102,1383,0.659,1385,0.176,1386,2.424,1387,0.185,1389,0.099,1393,0.339,1394,1.268,1395,0.099,1396,0.724,1398,0.291,1399,0.113,1401,0.687,1403,0.164,1405,0.543,1406,1.085,1409,0.081,1411,1.773,1413,0.099,1414,0.315,1415,0.815,1416,0.419,1418,0.19,1419,1.365,1421,0.196,1423,0.185,1424,0.113,1427,0.18,1429,0.19,1430,0.102,1432,0.18,1434,0.18,1436,0.622,1437,0.282,1439,0.164,1440,0.099,1441,0.364,1442,0.275,1448,0.291,1452,0.374,1453,0.164,1459,0.089,1461,1.16,1463,0.495,1464,0.44,1468,0.151,1477,0.774,1481,0.607,1483,0.328,1485,0.252,1486,0.113,1488,0.495,1493,0.495,1494,0.159,1496,0.107,1497,0.212,1500,0.089,1501,0.282,1503,0.157,1505,0.333,1506,0.19,1507,0.282,1508,0.262,1509,0.953,1511,0.302,1512,0.463,1513,0.301,1515,0.828,1519,0.291,1520,0.102,1522,1.695,1523,0.355,1525,0.268,1526,0.113,1528,0.102,1536,0.102,1538,0.257,1540,0.093,1541,0.478,1543,0.102,1544,0.21,1545,0.724,1546,0.268,1547,0.113,1548,0.212,1549,0.102,1553,0.099,1554,0.291,1556,0.257,1559,0.677,1560,0.385,1561,0.113,1562,0.517,1563,1.31,1564,1.147,1565,0.383,1566,0.093,1570,0.333,1577,0.399,1593,0.291,1595,0.495,1596,0.275,1601,0.328,1603,0.153,1606,0.096,1612,0.463,1616,0.947,1622,0.44,1623,0.315,1631,0.18,1635,0.262,1642,0.4,1649,0.318,1651,0.093,1657,0.224,1660,0.096,1662,0.099,1671,0.224,1677,0.224,1684,0.093,1687,0.087,1689,0.107,1690,0.093,1692,0.096,1695,0.107,1696,0.394,1697,0.19,1701,0.203,1704,0.517,1708,0.347,1711,0.444,1712,0.196,1716,0.099,1723,0.17,1732,0.096,1740,0.185,1746,0.212,1754,0.953,1756,0.212,1766,0.107,1767,1.574,1768,0.34,1777,0.203,1788,0.096,1795,0.478,1796,0.113,1807,0.212,1808,0.302,1815,0.102,1826,0.224,1827,0.107,1829,0.107,1831,0.113,1833,0.102,1837,0.203,1838,0.561,1840,0.19,1841,0.282,1842,0.847,1843,0.089,1844,0.19,1849,0.089,1862,0.099,1865,0.224,1873,0.647,1888,0.091,1892,0.323,1901,0.237,1906,0.524,1910,0.196,1913,0.196,1927,0.682,1928,0.096,1933,0.262,1935,0.107,1955,0.212,1960,0.134,1964,0.517,1973,0.096,1999,0.19,2010,0.65,2060,0.159,2065,2.165,2066,0.096,2068,0.196,2069,0.185,2097,0.099,2101,0.399,2107,0.093,2140,0.099,2148,0.203,2151,0.102,2155,0.495,2221,0.203,2222,0.102,2263,0.302,2265,0.107,2272,0.275,2273,0.085,2274,0.089,2277,0.113,2278,0.107,2279,0.113,2284,0.093,2285,0.102,2349,0.091,2365,0.698,2375,0.19,2382,0.451,2387,0.081,2392,0.342,2393,0.091,2394,0.495,2395,0.262,2405,0.537,2406,2.08,2410,0.113,2431,0.212,2432,0.615,2434,0.089,2438,0.979,2440,0.252,2517,0.107,2518,0.224,2523,0.107,2531,0.157,2532,0.102,2533,0.407,2547,0.34,2552,0.203,2554,0.093,2557,0.469,2574,0.478,2578,0.113,2590,0.13,2609,0.462,2615,0.569,2617,0.569,2623,0.639,2629,0.096,2638,2.333,2639,0.099,2641,0.099,2643,0.347,2645,0.176,2648,0.091,2649,0.113,2659,0.083,2662,0.113,2672,0.102,2681,0.167,2683,0.385,2692,0.091,2695,0.291,2700,0.659,2711,0.099,2716,0.091,2726,0.099,2737,0.275,2741,0.257,2761,0.262,2792,0.212,2807,0.282,2813,3.218,2822,0.113,2823,0.808,2825,0.196,2837,0.176,2854,0.59,2858,0.43,2861,0.374,2862,0.478,2865,0.107,2959,0.262,2977,2.06,2979,1.004,2980,0.659,2985,3.499,2986,1.902,2987,0.502,2993,1.04,2996,0.224,3007,0.212,3009,0.753,3015,0.212,3017,0.44,3019,2.042,3021,0.302,3023,2.907,3025,0.122,3026,0.113,3027,0.892,3028,0.224,3029,0.122,3030,0.113,3031,1.176,3032,0.096,3033,0.36,3034,0.212,3035,0.122,3036,0.242,3037,0.902,3038,0.107,3039,0.302,3040,0.417,3041,0.333,3042,0.44,3043,0.122,3044,0.122,3045,0.242,3046,0.122,3047,0.122,3048,0.196,3049,0.107,3050,0.113,3051,0.122,3052,0.122,3053,0.122,3054,0.122,3055,0.122,3056,0.093,3057,0.113,3058,0.122,3059,0.122,3060,0.212,3061,0.113,3062,0.122,3063,0.08,3064,0.224,3065,0.224,3066,0.224,3067,0.224,3068,0.302,3069,0.122,3070,0.122,3071,0.242,3072,0.242,3073,0.242,3074,0.476,3075,0.242,3076,0.242,3077,0.107,3078,0.164,3079,0.085,3080,0.122,3081,0.347,3082,0.122,3083,0.107,3084,0.099,3085,0.19,3086,0.122,3087,0.122,3088,0.212,3089,0.107,3090,0.113,3091,0.107,3092,0.113,3093,0.113,3094,0.712,3095,0.122,3096,0.122,3097,0.242,3098,0.122,3099,0.122,3100,0.122,3101,0.315,3102,0.212,3103,0.113,3104,0.212,3105,0.122,3106,0.122,3107,0.212,3108,0.096,3109,0.107,3110,0.315,3111,0.122,3112,0.087,3113,0.552,3114,0.102,3115,0.096,3116,0.122,3117,0.122,3118,0.122,3119,0.19,3120,0.102,3121,0.113,3122,0.122,3123,0.262,3124,0.302,3125,0.107,3126,0.36,3127,0.107,3128,0.546,3129,0.224,3130,0.196,3131,0.122,3132,1.522,3133,0.59,3134,0.302,3135,0.122,3136,0.122,3137,0.417,3138,0.102,3139,0.102,3140,0.44,3141,0.099,3142,0.176,3143,0.107,3144,0.122,3145,0.122,3146,0.196,3147,0.122,3148,0.122,3149,0.122,3150,0.107,3151,0.282,3152,0.242,3153,0.107,3154,0.176,3155,0.552,3156,0.122,3157,0.546,3158,0.36,3159,0.196,3160,0.242,3161,0.291,3162,0.107,3163,0.36,3164,0.242,3165,0.122,3166,0.122,3167,0.122,3168,0.113,3169,0.224,3170,0.122,3171,0.122,3172,0.122,3173,0.122,3174,0.44,3175,0.122,3176,0.333,3177,0.107,3178,0.747,3179,0.808,3180,0.122,3181,0.122,3182,0.107,3183,0.122,3184,0.212,3185,0.107,3186,0.18,3187,0.417,3188,0.196,3189,0.102,3190,0.747,3191,0.102,3192,0.399,3193,0.122,3194,0.122,3195,0.546,3196,0.099,3197,0.622,3198,0.122,3199,0.203,3200,0.291,3201,0.099,3202,0.196,3203,0.196,3204,0.122,3205,0.242,3206,0.478,3207,0.113,3208,0.185,3209,0.113,3210,0.212,3211,0.892,3212,0.122,3213,0.113,3214,0.099,3215,0.19,3216,0.099,3217,0.275,3218,0.122,3219,0.224,3220,0.44,3221,0.774,3222,0.084,3223,0.113,3224,0.122,3225,0.102,3226,0.122,3227,0.122,3228,0.122,3229,0.122,3230,0.242,3231,0.36,3232,0.36,3233,0.315,3234,0.242,3235,0.102,3236,0.113,3237,0.122,3238,0.113,3239,0.122,3240,0.122,3241,0.122,3242,0.224,3243,0.122,3244,0.107,3245,0.315,3246,0.242,3247,0.122,3248,0.242,3249,0.291,3250,1.329,3251,0.302,3252,0.417,3253,0.122,3254,0.096,3255,0.089,3256,0.224,3257,0.122,3258,0.333,3259,0.113,3260,0.122,3261,0.113,3262,0.291,3263,0.113,3264,0.113,3265,0.113,3266,0.242,3267,0.122,3268,0.122,3269,0.113,3270,0.122,3271,0.122,3272,0.107,3273,0.122,3274,0.242,3275,0.242,3276,0.113,3277,0.107,3278,0.113,3279,0.122,3280,0.113,3281,0.122,3282,0.122,3283,0.224,3284,0.44,3285,0.122,3286,0.107,3287,0.122,3288,0.102,3289,0.122,3290,0.107,3291,0.107,3292,0.122,3293,0.122,3294,0.122,3295,0.185,3296,0.196,3297,0.517,3298,0.212,3299,0.122,3300,0.212,3301,0.122,3302,0.196,3303,0.809,3304,0.113,3305,0.122,3306,0.122,3307,0.122,3308,0.122,3309,0.122,3310,0.102,3311,0.122,3312,0.122,3313,0.122,3314,0.552,3315,0.122,3316,0.122,3317,0.122,3318,0.122,3319,0.122,3320,0.122,3321,0.122,3322,0.122,3323,0.122,3324,0.122,3325,0.122,3326,0.122,3327,0.122,3328,2.378,3329,0.122,3330,0.59,3331,0.59,3332,0.122,3333,0.122,3334,0.122,3335,0.242,3336,0.122,3337,0.122,3338,0.122,3339,0.122,3340,0.122,3341,0.122,3342,0.417,3343,0.122,3344,0.122,3345,0.36,3346,0.113,3347,0.107,3348,0.113,3349,0.122,3350,0.196,3351,0.333,3352,0.242,3353,0.291,3354,0.122,3355,0.122,3356,4.359,3357,0.242,3358,1.03,3359,3.416,3360,0.242,3361,0.59,3362,0.36,3363,0.122,3364,0.417,3365,0.224,3366,0.808,3367,0.107,3368,0.113,3369,0.113,3370,0.122,3371,0.546,3372,0.703,3373,0.385,3374,0.44,3375,0.36,3376,1.136,3377,0.242,3378,0.224,3379,0.122,3380,0.417,3381,3.772,3382,0.36,3383,0.242,3384,0.122,3385,0.122,3386,0.107,3387,0.224,3388,0.122,3389,0.212,3390,0.113,3391,0.093,3392,0.36,3393,2.02,3394,1.242,3395,3.416,3396,1.343,3397,0.813,3398,1.543,3399,0.176,3400,0.113,3401,0.476,3402,0.203,3403,0.122,3404,0.122,3405,0.122,3406,0.282,3407,0.122,3408,0.36,3409,0.703,3410,0.122,3411,1.03,3412,0.122,3413,0.122,3414,0.122,3415,0.122,3416,0.122,3417,0.113,3418,0.495,3419,1.444,3420,1.136,3421,0.242,3422,2.291,3423,0.36,3424,0.242,3425,0.813,3426,0.242,3427,0.36,3428,0.212,3429,0.122,3430,0.476,3431,0.122,3432,0.212,3433,0.107,3434,1.352,3435,1.24,3436,1.522,3437,0.813,3438,1.543,3439,1.543,3440,0.242,3441,0.923,3442,0.36,3443,0.36,3444,0.476,3445,0.242,3446,0.36,3447,0.476,3448,0.122,3449,0.093,3450,0.291,3451,0.122,3452,0.122,3453,0.113,3454,0.36,3455,0.36,3456,0.122,3457,0.122,3458,0.122,3459,0.122,3460,0.099,3461,0.096,3462,0.122,3463,0.122,3464,0.242,3465,0.242,3466,0.093,3467,0.813,3468,0.122,3469,0.242,3470,0.122,3471,0.36,3472,0.122,3473,0.122,3474,0.122,3475,0.242,3476,0.122,3477,0.122,3478,0.113,3479,0.122,3480,0.122,3481,0.122,3482,0.122,3483,0.122,3484,0.093,3485,0.122,3486,0.196,3487,0.107,3488,0.122,3489,2.202,3490,0.122,3491,0.122,3492,0.122,3493,0.122,3494,0.122,3495,1.522,3496,0.122,3497,0.203,3498,0.242,3499,0.102,3500,0.203,3501,0.107,3502,0.44,3503,0.107,3504,0.122,3505,0.224,3506,0.242,3507,0.122,3508,0.122,3509,0.122,3510,0.122,3511,0.122,3512,0.122,3513,0.122,3514,0.212,3515,0.107,3516,0.122,3517,0.122,3518,0.122,3519,0.122,3520,0.122,3521,0.122,3522,0.242,3523,0.122,3524,0.122,3525,0.242,3526,0.122,3527,0.242,3528,0.59,3529,0.59,3530,0.242,3531,0.122,3532,0.242,3533,0.122,3534,0.476,3535,0.242,3536,0.122,3537,0.122,3538,0.122,3539,0.122,3540,0.122,3541,0.122,3542,0.122,3543,0.122,3544,0.099,3545,0.122,3546,0.113,3547,0.122,3548,0.122,3549,0.122,3550,0.122,3551,0.242,3552,0.122,3553,0.122,3554,0.122,3555,0.122,3556,0.122,3557,0.282,3558,0.113,3559,0.242,3560,0.242,3561,0.242,3562,0.122,3563,0.122,3564,0.122,3565,0.122,3566,0.113,3567,0.113,3568,0.19,3569,0.122,3570,0.546,3571,0.122,3572,0.122,3573,0.59,3574,0.242,3575,0.242,3576,0.242,3577,0.122,3578,0.122,3579,0.36,3580,0.122,3581,0.122,3582,0.196,3583,0.113,3584,0.113,3585,0.122,3586,0.107,3587,0.122,3588,0.122,3589,0.122,3590,0.113,3591,0.399,3592,0.212,3593,0.122,3594,0.122,3595,0.122,3596,0.122,3597,0.122,3598,0.122,3599,0.122,3600,0.122,3601,0.107,3602,0.122,3603,0.36,3604,0.122,3605,0.122,3606,0.122,3607,0.093,3608,0.224,3609,0.122,3610,0.122,3611,0.122,3612,0.113,3613,0.091,3614,0.083,3615,0.703,3616,0.212,3617,0.546,3618,0.113,3619,0.113,3620,0.122,3621,0.224,3622,0.242,3623,0.122,3624,0.122,3625,0.36,3626,0.315,3627,0.122,3628,0.476,3629,0.813,3630,0.224,3631,0.122,3632,0.122,3633,0.242,3634,0.122,3635,0.122,3636,0.122,3637,0.122,3638,0.122,3639,0.113,3640,0.113,3641,0.478,3642,0.091,3643,0.196,3644,0.185,3645,0.122,3646,0.847,3647,0.107,3648,0.476,3649,0.122,3650,0.122,3651,0.113,3652,0.122,3653,0.242,3654,0.113,3655,0.36,3656,1.543,3657,0.923,3658,0.59,3659,0.36,3660,0.242,3661,0.36,3662,0.36,3663,0.122,3664,0.122,3665,0.476,3666,0.122,3667,0.153,3668,0.102,3669,0.107,3670,0.224,3671,0.224,3672,0.122,3673,0.122,3674,0.122,3675,0.122,3676,0.122,3677,0.36,3678,0.242,3679,0.122,3680,0.242,3681,0.476,3682,0.242,3683,0.096,3684,0.36,3685,0.212,3686,0.113,3687,0.099,3688,0.242,3689,0.122,3690,0.122,3691,0.242,3692,0.242,3693,1.136,3694,0.122,3695,0.122,3696,0.122,3697,0.122,3698,0.122,3699,0.122,3700,0.122,3701,0.36,3702,0.122,3703,0.122,3704,0.122,3705,0.122,3706,0.122,3707,0.122,3708,0.113,3709,0.122,3710,0.122,3711,0.122,3712,0.122,3713,0.122,3714,0.122,3715,0.122,3716,0.122,3717,0.113,3718,0.122,3719,0.122,3720,0.122,3721,0.122,3722,0.122,3723,0.122,3724,0.122,3725,0.122,3726,0.122,3727,0.113,3728,0.122,3729,0.122,3730,0.122,3731,0.122,3732,0.122,3733,0.122,3734,0.122,3735,0.212,3736,0.813,3737,0.59,3738,0.703,3739,0.122,3740,0.102,3741,0.107,3742,0.203,3743,0.099,3744,0.122,3745,0.122,3746,0.242,3747,0.122,3748,0.113,3749,0.122,3750,0.122,3751,0.122,3752,0.122,3753,0.122,3754,0.753,3755,0.113,3756,0.212,3757,0.102,3758,0.122,3759,0.122,3760,0.122,3761,0.59,3762,0.122,3763,0.122,3764,0.36,3765,0.113,3766,0.242,3767,0.113,3768,0.107,3769,0.224,3770,0.36,3771,0.315,3772,0.093,3773,0.242,3774,0.099,3775,0.122,3776,0.107,3777,0.107,3778,0.102,3779,0.44,3780,0.113,3781,0.122,3782,0.113,3783,0.107,3784,0.107,3785,0.102,3786,0.107,3787,0.113,3788,0.122,3789,0.224,3790,0.122,3791,0.399,3792,0.107,3793,0.122,3794,0.242,3795,0.107,3796,0.203,3797,0.224,3798,0.113,3799,0.122,3800,0.107,3801,0.107,3802,0.122,3803,0.212,3804,0.107,3805,0.113,3806,0.122,3807,0.099,3808,0.203,3809,0.107,3810,0.122,3811,0.113,3812,0.107,3813,0.122,3814,0.113,3815,0.099,3816,0.113,3817,0.122,3818,0.113]],["component/7",[2,0.251,266,0.348]],["keyword/7",[]],["title/8-1",[0,24.354,4,38.792,2638,36.468]],["name/8-1",[]],["text/8-1",[]],["component/8-1",[]],["keyword/8-1",[]],["title/8-2",[21,30.816,226,52.285]],["name/8-2",[]],["text/8-2",[]],["component/8-2",[]],["keyword/8-2",[]],["title/8-3",[11,36.468,24,30.232,90,35.96]],["name/8-3",[]],["text/8-3",[]],["component/8-3",[]],["keyword/8-3",[]],["title/8-4",[11,26.175,25,21.113,26,23.156,90,25.811,287,31.009,3819,44.038]],["name/8-4",[]],["text/8-4",[]],["component/8-4",[]],["keyword/8-4",[]],["title/8-5",[225,31.157,252,23.924,290,28.022,1281,32.85,2716,34.273,3216,37.206,3820,45.959]],["name/8-5",[]],["text/8-5",[]],["component/8-5",[]],["keyword/8-5",[]],["title/8-6",[55,21.711,1675,36.504,2657,36.504,3821,43.574,3822,51.348]],["name/8-6",[]],["text/8-6",[]],["component/8-6",[]],["keyword/8-6",[]],["title/8-7",[32,25.636,60,21.4,88,30.323,355,25.991,416,30.323,2659,34.088]],["name/8-7",[]],["text/8-7",[]],["component/8-7",[]],["keyword/8-7",[]],["title/8-8",[454,35.244,1181,44.827,1485,49.139]],["name/8-8",[]],["text/8-8",[]],["component/8-8",[]],["keyword/8-8",[]],["title/8-9",[31,32.975,122,32.975,316,37.857]],["name/8-9",[]],["text/8-9",[]],["component/8-9",[]],["keyword/8-9",[]],["title/8-10",[576,49.157,3823,70.609]],["name/8-10",[]],["text/8-10",[]],["component/8-10",[]],["keyword/8-10",[]],["title/8",[]],["name/8",[3824,0.832]],["text/8",[2,2.817,11,6.033,20,0.947,22,0.999,25,3.821,26,5.028,28,0.963,29,1.636,31,0.658,32,2.228,41,1.895,43,2.195,44,1.313,46,1.596,47,0.755,49,0.681,51,1.453,52,1.171,55,1.709,60,4.364,61,1.981,62,3.328,63,2.067,64,1.177,67,3.661,68,3.137,70,0.883,73,0.78,74,0.699,75,0.767,82,1.331,84,1.197,85,1.331,86,1.382,87,1.042,90,1.313,92,0.98,97,0.817,100,0.906,112,3.258,117,1.559,118,1.84,121,0.906,122,1.664,123,0.919,124,0.98,127,1.033,142,0.963,145,2.243,150,2.07,151,2.292,154,2.047,155,1.658,157,0.761,165,0.999,167,1.097,185,0.872,186,1.526,187,2.087,189,0.883,201,1.495,202,0.862,203,2.479,204,1.907,206,1.313,207,2.796,208,0.787,210,0.755,211,0.802,213,0.794,216,1.794,217,1.204,221,0.947,224,1.224,225,2.396,226,1.658,227,2.917,228,1.042,231,0.774,235,0.919,236,0.787,238,1.295,242,0.933,243,0.738,244,2.291,252,3.267,254,1.974,255,1.019,256,3.991,257,1.068,258,1.828,259,1.596,260,0.933,262,1.954,263,0.872,264,1.495,265,1.559,266,0.584,267,0.834,269,0.572,273,1.636,274,1.814,285,0.98,286,1.304,288,0.733,294,0.862,296,1.951,298,0.794,302,1.616,303,0.717,308,0.665,310,2.44,318,0.872,324,0.699,331,0.744,340,1.042,355,0.722,358,0.703,365,1.428,366,0.794,391,0.738,392,1.733,427,1.304,433,1.097,434,0.906,436,2.027,438,0.802,440,0.999,444,0.883,455,0.963,456,0.98,459,0.658,461,0.999,471,0.919,473,3.187,489,0.699,551,2.292,559,2.292,581,2.009,582,1.559,589,2.962,613,1.762,615,1.068,619,1.907,635,1.097,648,0.825,653,1.881,675,0.894,780,0.947,799,1.019,804,2.396,809,1.596,810,1.542,811,1.526,818,0.744,827,0.98,831,1.097,837,1.707,838,3.717,846,3.068,862,1.865,863,0.963,872,1.131,875,0.999,884,1.019,887,0.894,895,1.042,896,0.947,901,1.416,904,1.019,917,1.794,919,1.371,923,1.097,925,0.999,928,2.206,932,1.293,934,0.947,962,1.019,977,1.794,979,0.963,981,2.396,987,0.963,999,0.872,1003,0.963,1019,0.802,1024,0.852,1032,1.577,1044,0.999,1045,1.019,1052,1.131,1054,0.894,1062,0.98,1068,1.341,1070,1.172,1084,1.131,1086,0.825,1092,0.999,1095,1.827,1114,1.828,1120,0.78,1122,3.065,1144,1.042,1145,0.872,1155,1.042,1156,2.233,1164,1.172,1169,1.068,1170,1.559,1173,1.068,1181,4.865,1189,1.131,1190,0.872,1194,1.042,1202,0.933,1203,0.947,1208,1.097,1212,1.097,1213,1.042,1214,2.145,1218,0.947,1233,1.097,1235,1.042,1247,2.109,1278,1.954,1279,1.636,1287,2.206,1293,0.999,1305,1.042,1320,1.865,1334,0.894,1335,1.019,1338,0.98,1344,0.963,1362,0.98,1367,1.828,1377,1.131,1394,1.019,1403,0.947,1406,2.727,1411,1.042,1415,0.919,1416,0.834,1423,1.068,1425,1.042,1438,0.862,1440,1.131,1441,0.862,1465,1.042,1466,1.954,1485,0.98,1498,1.042,1506,1.097,1516,1.172,1523,1.042,1544,0.817,1548,1.51,1616,1.068,1631,1.042,1642,0.947,1651,1.068,1675,0.919,1680,0.894,1711,0.883,1822,1.224,1901,2.324,1909,0.933,1960,1.957,2365,0.947,2385,2.07,2389,1.068,2390,1.131,2418,1.131,2440,0.98,2445,1.042,2507,3.398,2520,1.019,2533,0.963,2547,0.999,2580,1.131,2615,1.577,2638,1.331,2679,2.727,2681,0.963,2686,1.068,2716,1.042,2718,0.963,2733,1.224,2818,1.068,2837,1.019,2975,2.007,2977,0.947,2980,1.131,3031,1.224,3078,0.947,3128,1.293,3154,1.019,3186,1.042,3216,1.131,3288,1.172,3350,1.131,3433,1.224,3557,1.097,3568,1.097,3601,1.224,3607,1.068,3613,1.907,3630,1.293,3687,1.131,3740,1.172,3757,1.172,3778,1.172,3821,1.097,3822,2.365,3825,1.397,3826,1.397,3827,1.293,3828,1.097,3829,0.98,3830,1.397,3831,1.397,3832,1.131,3833,1.397,3834,1.397,3835,1.293,3836,1.397,3837,1.397,3838,2.365,3839,1.397,3840,1.397,3841,1.068,3842,1.397,3843,1.397,3844,1.293,3845,1.131,3846,1.172,3847,1.397,3848,1.397,3849,1.397,3850,1.397,3851,1.397,3852,2.365,3853,1.397,3854,2.007,3855,1.397,3856,1.097,3857,0.98,3858,1.954,3859,1.397,3860,1.397,3861,1.397,3862,1.224,3863,1.224,3864,1.293,3865,1.224,3866,1.397,3867,1.397,3868,1.224,3869,1.397,3870,1.397,3871,2.365,3872,1.397,3873,1.172,3874,2.239,3875,1.397,3876,1.224,3877,1.397,3878,1.293,3879,1.397,3880,1.172,3881,1.172,3882,3.095,3883,2.557,3884,1.397,3885,1.397,3886,1.293,3887,1.397,3888,2.145,3889,2.145,3890,2.965,3891,1.131,3892,1.293,3893,5.091,3894,1.224,3895,2.557,3896,1.224,3897,2.557,3898,1.397,3899,1.293,3900,2.007,3901,1.397,3902,1.019,3903,0.999,3904,1.097,3905,1.397,3906,1.172,3907,1.224,3908,2.007,3909,1.397,3910,1.224,3911,1.907,3912,1.397,3913,2.239,3914,1.397,3915,1.293,3916,1.172,3917,1.097,3918,1.397,3919,1.397,3920,1.042,3921,2.07,3922,1.397,3923,1.097,3924,1.397,3925,1.172,3926,2.07,3927,1.397,3928,1.397,3929,1.397,3930,1.224,3931,1.224,3932,1.293,3933,1.397,3934,1.397,3935,1.397,3936,1.397,3937,1.397,3938,1.293,3939,1.397,3940,1.097,3941,1.131,3942,2.145,3943,1.293,3944,1.397,3945,1.397,3946,1.397,3947,1.397,3948,1.224,3949,1.397,3950,1.397,3951,1.397,3952,1.397,3953,1.131,3954,1.293,3955,1.397,3956,1.397,3957,1.397,3958,1.397,3959,1.397,3960,1.397,3961,1.397,3962,1.397,3963,1.397,3964,1.397,3965,2.365,3966,1.224,3967,1.293,3968,1.397,3969,1.293,3970,1.042,3971,1.397,3972,1.397,3973,1.397,3974,1.397,3975,1.397,3976,1.397,3977,1.397,3978,1.397,3979,1.397,3980,1.397,3981,1.397,3982,1.397,3983,1.397,3984,1.397,3985,1.397,3986,1.397,3987,1.397,3988,1.397,3989,1.397,3990,1.397,3991,1.397,3992,1.397,3993,1.397,3994,1.397,3995,1.397,3996,1.397,3997,1.397,3998,1.397,3999,1.397,4000,1.397,4001,1.397,4002,1.397,4003,1.293,4004,1.397,4005,1.397,4006,1.397,4007,1.397,4008,1.397,4009,1.397,4010,1.397,4011,1.397,4012,1.397,4013,1.397,4014,1.397,4015,1.397,4016,1.397,4017,1.397,4018,1.397,4019,1.397,4020,1.397,4021,1.397,4022,1.397,4023,1.397,4024,1.224,4025,1.397,4026,1.397,4027,1.397,4028,1.397,4029,1.397,4030,1.397]],["component/8",[2,0.251,266,0.348]],["keyword/8",[]],["title/9-1",[0,24.354,154,40.566,438,40.186]],["name/9-1",[]],["text/9-1",[]],["component/9-1",[]],["keyword/9-1",[]],["title/9-2",[19,40.961,21,26.776,1190,43.716]],["name/9-2",[]],["text/9-2",[]],["component/9-2",[]],["keyword/9-2",[]],["title/9-3",[278,44.274,4031,74.585]],["name/9-3",[]],["text/9-3",[]],["component/9-3",[]],["keyword/9-3",[]],["title/9-4",[484,40.297,4032,65.268]],["name/9-4",[]],["text/9-4",[]],["component/9-4",[]],["keyword/9-4",[]],["title/9-5",[296,35.992,4033,65.268]],["name/9-5",[]],["text/9-5",[]],["component/9-5",[]],["keyword/9-5",[]],["title/9-6",[273,37.327,4034,70.609]],["name/9-6",[]],["text/9-6",[]],["component/9-6",[]],["keyword/9-6",[]],["title/9-7",[1462,55.565,4035,80.622]],["name/9-7",[]],["text/9-7",[]],["component/9-7",[]],["keyword/9-7",[]],["title/9-8",[171,31.291,4036,80.622]],["name/9-8",[]],["text/9-8",[]],["component/9-8",[]],["keyword/9-8",[]],["title/9-9",[279,47.14,880,61.602]],["name/9-9",[]],["text/9-9",[]],["component/9-9",[]],["keyword/9-9",[]],["title/9-10",[484,40.297,4037,65.268]],["name/9-10",[]],["text/9-10",[]],["component/9-10",[]],["keyword/9-10",[]],["title/9-11",[296,35.992,4038,65.268]],["name/9-11",[]],["text/9-11",[]],["component/9-11",[]],["keyword/9-11",[]],["title/9-12",[273,37.327,4039,70.609]],["name/9-12",[]],["text/9-12",[]],["component/9-12",[]],["keyword/9-12",[]],["title/9-13",[1462,55.565,4040,74.585]],["name/9-13",[]],["text/9-13",[]],["component/9-13",[]],["keyword/9-13",[]],["title/9-14",[171,31.291,4041,74.585]],["name/9-14",[]],["text/9-14",[]],["component/9-14",[]],["keyword/9-14",[]],["title/9-15",[280,50.933,3101,70.609]],["name/9-15",[]],["text/9-15",[]],["component/9-15",[]],["keyword/9-15",[]],["title/9-16",[484,40.297,4042,67.639]],["name/9-16",[]],["text/9-16",[]],["component/9-16",[]],["keyword/9-16",[]],["title/9-17",[296,35.992,4043,67.639]],["name/9-17",[]],["text/9-17",[]],["component/9-17",[]],["keyword/9-17",[]],["title/9-18",[273,37.327,4044,70.609]],["name/9-18",[]],["text/9-18",[]],["component/9-18",[]],["keyword/9-18",[]],["title/9-19",[1462,55.565,4045,74.585]],["name/9-19",[]],["text/9-19",[]],["component/9-19",[]],["keyword/9-19",[]],["title/9-20",[171,31.291,4046,74.585]],["name/9-20",[]],["text/9-20",[]],["component/9-20",[]],["keyword/9-20",[]],["title/9-21",[283,57.626,942,70.609]],["name/9-21",[]],["text/9-21",[]],["component/9-21",[]],["keyword/9-21",[]],["title/9-22",[484,40.297,4047,70.609]],["name/9-22",[]],["text/9-22",[]],["component/9-22",[]],["keyword/9-22",[]],["title/9-23",[296,35.992,4048,70.609]],["name/9-23",[]],["text/9-23",[]],["component/9-23",[]],["keyword/9-23",[]],["title/9-24",[273,37.327,4049,74.585]],["name/9-24",[]],["text/9-24",[]],["component/9-24",[]],["keyword/9-24",[]],["title/9-25",[1462,55.565,4050,74.585]],["name/9-25",[]],["text/9-25",[]],["component/9-25",[]],["keyword/9-25",[]],["title/9-26",[171,31.291,4051,74.585]],["name/9-26",[]],["text/9-26",[]],["component/9-26",[]],["keyword/9-26",[]],["title/9-27",[284,60.123,3102,70.609]],["name/9-27",[]],["text/9-27",[]],["component/9-27",[]],["keyword/9-27",[]],["title/9-28",[484,40.297,4052,70.609]],["name/9-28",[]],["text/9-28",[]],["component/9-28",[]],["keyword/9-28",[]],["title/9-29",[296,35.992,4053,70.609]],["name/9-29",[]],["text/9-29",[]],["component/9-29",[]],["keyword/9-29",[]],["title/9-30",[273,37.327,4054,74.585]],["name/9-30",[]],["text/9-30",[]],["component/9-30",[]],["keyword/9-30",[]],["title/9-31",[1462,55.565,4055,80.622]],["name/9-31",[]],["text/9-31",[]],["component/9-31",[]],["keyword/9-31",[]],["title/9-32",[171,31.291,4056,80.622]],["name/9-32",[]],["text/9-32",[]],["component/9-32",[]],["keyword/9-32",[]],["title/9-33",[4057,70.609,4058,74.585]],["name/9-33",[]],["text/9-33",[]],["component/9-33",[]],["keyword/9-33",[]],["title/9-34",[484,40.297,4059,80.622]],["name/9-34",[]],["text/9-34",[]],["component/9-34",[]],["keyword/9-34",[]],["title/9-35",[296,35.992,4060,80.622]],["name/9-35",[]],["text/9-35",[]],["component/9-35",[]],["keyword/9-35",[]],["title/9-36",[489,40.297,4061,80.622]],["name/9-36",[]],["text/9-36",[]],["component/9-36",[]],["keyword/9-36",[]],["title/9-37",[171,31.291,4062,80.622]],["name/9-37",[]],["text/9-37",[]],["component/9-37",[]],["keyword/9-37",[]],["title/9-38",[4063,74.585,4064,74.585]],["name/9-38",[]],["text/9-38",[]],["component/9-38",[]],["keyword/9-38",[]],["title/9-39",[484,40.297,4065,80.622]],["name/9-39",[]],["text/9-39",[]],["component/9-39",[]],["keyword/9-39",[]],["title/9-40",[296,35.992,4066,80.622]],["name/9-40",[]],["text/9-40",[]],["component/9-40",[]],["keyword/9-40",[]],["title/9-41",[1293,57.626,4067,80.622]],["name/9-41",[]],["text/9-41",[]],["component/9-41",[]],["keyword/9-41",[]],["title/9-42",[334,67.639,4068,67.639]],["name/9-42",[]],["text/9-42",[]],["component/9-42",[]],["keyword/9-42",[]],["title/9-43",[484,40.297,4069,80.622]],["name/9-43",[]],["text/9-43",[]],["component/9-43",[]],["keyword/9-43",[]],["title/9-44",[296,35.992,4070,80.622]],["name/9-44",[]],["text/9-44",[]],["component/9-44",[]],["keyword/9-44",[]],["title/9-45",[273,37.327,4071,74.585]],["name/9-45",[]],["text/9-45",[]],["component/9-45",[]],["keyword/9-45",[]],["title/9-46",[489,40.297,4072,80.622]],["name/9-46",[]],["text/9-46",[]],["component/9-46",[]],["keyword/9-46",[]],["title/9-47",[171,31.291,4073,80.622]],["name/9-47",[]],["text/9-47",[]],["component/9-47",[]],["keyword/9-47",[]],["title/9-48",[4074,74.585,4075,74.585]],["name/9-48",[]],["text/9-48",[]],["component/9-48",[]],["keyword/9-48",[]],["title/9-49",[484,40.297,4076,80.622]],["name/9-49",[]],["text/9-49",[]],["component/9-49",[]],["keyword/9-49",[]],["title/9-50",[530,67.639,4077,80.622]],["name/9-50",[]],["text/9-50",[]],["component/9-50",[]],["keyword/9-50",[]],["title/9-51",[296,35.992,4078,80.622]],["name/9-51",[]],["text/9-51",[]],["component/9-51",[]],["keyword/9-51",[]],["title/9-52",[51,39.819,296,31.274,4079,70.055]],["name/9-52",[]],["text/9-52",[]],["component/9-52",[]],["keyword/9-52",[]],["title/9-53",[296,31.274,4080,70.055,4081,64.809]],["name/9-53",[]],["text/9-53",[]],["component/9-53",[]],["keyword/9-53",[]],["title/9-54",[296,31.274,1838,48.282,4082,70.055]],["name/9-54",[]],["text/9-54",[]],["component/9-54",[]],["keyword/9-54",[]],["title/9-55",[289,41.8,2531,45.431,4083,70.055]],["name/9-55",[]],["text/9-55",[]],["component/9-55",[]],["keyword/9-55",[]],["title/9-56",[273,37.327,4084,80.622]],["name/9-56",[]],["text/9-56",[]],["component/9-56",[]],["keyword/9-56",[]],["title/9-57",[4085,74.585,4086,60.123]],["name/9-57",[]],["text/9-57",[]],["component/9-57",[]],["keyword/9-57",[]],["title/9-58",[484,40.297,4087,80.622]],["name/9-58",[]],["text/9-58",[]],["component/9-58",[]],["keyword/9-58",[]],["title/9-59",[296,35.992,4088,80.622]],["name/9-59",[]],["text/9-59",[]],["component/9-59",[]],["keyword/9-59",[]],["title/9-60",[171,31.291,4089,80.622]],["name/9-60",[]],["text/9-60",[]],["component/9-60",[]],["keyword/9-60",[]],["title/9-61",[3023,63.293,4090,74.585]],["name/9-61",[]],["text/9-61",[]],["component/9-61",[]],["keyword/9-61",[]],["title/9-62",[484,40.297,4091,80.622]],["name/9-62",[]],["text/9-62",[]],["component/9-62",[]],["keyword/9-62",[]],["title/9-63",[296,35.992,4092,80.622]],["name/9-63",[]],["text/9-63",[]],["component/9-63",[]],["keyword/9-63",[]],["title/9-64",[273,37.327,4093,80.622]],["name/9-64",[]],["text/9-64",[]],["component/9-64",[]],["keyword/9-64",[]],["title/9-65",[1462,55.565,4094,80.622]],["name/9-65",[]],["text/9-65",[]],["component/9-65",[]],["keyword/9-65",[]],["title/9-66",[489,40.297,4095,80.622]],["name/9-66",[]],["text/9-66",[]],["component/9-66",[]],["keyword/9-66",[]],["title/9-67",[171,31.291,4096,80.622]],["name/9-67",[]],["text/9-67",[]],["component/9-67",[]],["keyword/9-67",[]],["title/9-68",[2979,65.268,4097,74.585]],["name/9-68",[]],["text/9-68",[]],["component/9-68",[]],["keyword/9-68",[]],["title/9-69",[484,40.297,4098,80.622]],["name/9-69",[]],["text/9-69",[]],["component/9-69",[]],["keyword/9-69",[]],["title/9-70",[296,35.992,4099,80.622]],["name/9-70",[]],["text/9-70",[]],["component/9-70",[]],["keyword/9-70",[]],["title/9-71",[273,37.327,4100,80.622]],["name/9-71",[]],["text/9-71",[]],["component/9-71",[]],["keyword/9-71",[]],["title/9-72",[489,40.297,4101,80.622]],["name/9-72",[]],["text/9-72",[]],["component/9-72",[]],["keyword/9-72",[]],["title/9-73",[171,31.291,4102,80.622]],["name/9-73",[]],["text/9-73",[]],["component/9-73",[]],["keyword/9-73",[]],["title/9-74",[4103,74.585,4104,74.585]],["name/9-74",[]],["text/9-74",[]],["component/9-74",[]],["keyword/9-74",[]],["title/9-75",[484,40.297,4105,80.622]],["name/9-75",[]],["text/9-75",[]],["component/9-75",[]],["keyword/9-75",[]],["title/9-76",[296,35.992,4106,80.622]],["name/9-76",[]],["text/9-76",[]],["component/9-76",[]],["keyword/9-76",[]],["title/9-77",[289,41.8,2531,45.431,4107,70.055]],["name/9-77",[]],["text/9-77",[]],["component/9-77",[]],["keyword/9-77",[]],["title/9-78",[273,37.327,4108,80.622]],["name/9-78",[]],["text/9-78",[]],["component/9-78",[]],["keyword/9-78",[]],["title/9-79",[489,40.297,4109,80.622]],["name/9-79",[]],["text/9-79",[]],["component/9-79",[]],["keyword/9-79",[]],["title/9-80",[171,31.291,4110,80.622]],["name/9-80",[]],["text/9-80",[]],["component/9-80",[]],["keyword/9-80",[]],["title/9-81",[4111,74.585,4112,70.609]],["name/9-81",[]],["text/9-81",[]],["component/9-81",[]],["keyword/9-81",[]],["title/9-82",[484,40.297,4113,80.622]],["name/9-82",[]],["text/9-82",[]],["component/9-82",[]],["keyword/9-82",[]],["title/9-83",[296,35.992,4114,80.622]],["name/9-83",[]],["text/9-83",[]],["component/9-83",[]],["keyword/9-83",[]],["title/9-84",[289,41.8,2531,45.431,4115,70.055]],["name/9-84",[]],["text/9-84",[]],["component/9-84",[]],["keyword/9-84",[]],["title/9-85",[273,37.327,4116,80.622]],["name/9-85",[]],["text/9-85",[]],["component/9-85",[]],["keyword/9-85",[]],["title/9-86",[489,40.297,4117,80.622]],["name/9-86",[]],["text/9-86",[]],["component/9-86",[]],["keyword/9-86",[]],["title/9-87",[171,31.291,4118,80.622]],["name/9-87",[]],["text/9-87",[]],["component/9-87",[]],["keyword/9-87",[]],["title/9-88",[4119,74.585,4120,70.609]],["name/9-88",[]],["text/9-88",[]],["component/9-88",[]],["keyword/9-88",[]],["title/9-89",[484,40.297,4121,80.622]],["name/9-89",[]],["text/9-89",[]],["component/9-89",[]],["keyword/9-89",[]],["title/9-90",[296,35.992,4122,80.622]],["name/9-90",[]],["text/9-90",[]],["component/9-90",[]],["keyword/9-90",[]],["title/9-91",[273,37.327,4123,80.622]],["name/9-91",[]],["text/9-91",[]],["component/9-91",[]],["keyword/9-91",[]],["title/9-92",[489,40.297,4124,80.622]],["name/9-92",[]],["text/9-92",[]],["component/9-92",[]],["keyword/9-92",[]],["title/9-93",[3037,70.609,4125,74.585]],["name/9-93",[]],["text/9-93",[]],["component/9-93",[]],["keyword/9-93",[]],["title/9-94",[484,40.297,4126,80.622]],["name/9-94",[]],["text/9-94",[]],["component/9-94",[]],["keyword/9-94",[]],["title/9-95",[296,35.992,4127,80.622]],["name/9-95",[]],["text/9-95",[]],["component/9-95",[]],["keyword/9-95",[]],["title/9-96",[273,37.327,4128,80.622]],["name/9-96",[]],["text/9-96",[]],["component/9-96",[]],["keyword/9-96",[]],["title/9-97",[1462,55.565,4129,80.622]],["name/9-97",[]],["text/9-97",[]],["component/9-97",[]],["keyword/9-97",[]],["title/9-98",[489,40.297,4130,80.622]],["name/9-98",[]],["text/9-98",[]],["component/9-98",[]],["keyword/9-98",[]],["title/9-99",[171,31.291,4131,80.622]],["name/9-99",[]],["text/9-99",[]],["component/9-99",[]],["keyword/9-99",[]],["title/9-100",[4132,74.585,4133,74.585]],["name/9-100",[]],["text/9-100",[]],["component/9-100",[]],["keyword/9-100",[]],["title/9-101",[484,40.297,4134,80.622]],["name/9-101",[]],["text/9-101",[]],["component/9-101",[]],["keyword/9-101",[]],["title/9-102",[296,35.992,4135,80.622]],["name/9-102",[]],["text/9-102",[]],["component/9-102",[]],["keyword/9-102",[]],["title/9-103",[171,31.291,4136,80.622]],["name/9-103",[]],["text/9-103",[]],["component/9-103",[]],["keyword/9-103",[]],["title/9-104",[391,42.583,4137,74.585]],["name/9-104",[]],["text/9-104",[]],["component/9-104",[]],["keyword/9-104",[]],["title/9-105",[484,40.297,4138,80.622]],["name/9-105",[]],["text/9-105",[]],["component/9-105",[]],["keyword/9-105",[]],["title/9-106",[296,35.992,4139,80.622]],["name/9-106",[]],["text/9-106",[]],["component/9-106",[]],["keyword/9-106",[]],["title/9-107",[289,41.8,2531,45.431,4140,70.055]],["name/9-107",[]],["text/9-107",[]],["component/9-107",[]],["keyword/9-107",[]],["title/9-108",[4141,74.585,4142,74.585]],["name/9-108",[]],["text/9-108",[]],["component/9-108",[]],["keyword/9-108",[]],["title/9-109",[484,40.297,4143,80.622]],["name/9-109",[]],["text/9-109",[]],["component/9-109",[]],["keyword/9-109",[]],["title/9-110",[296,35.992,4144,80.622]],["name/9-110",[]],["text/9-110",[]],["component/9-110",[]],["keyword/9-110",[]],["title/9-111",[273,37.327,4145,80.622]],["name/9-111",[]],["text/9-111",[]],["component/9-111",[]],["keyword/9-111",[]],["title/9-112",[1462,55.565,4146,80.622]],["name/9-112",[]],["text/9-112",[]],["component/9-112",[]],["keyword/9-112",[]],["title/9-113",[489,40.297,4147,80.622]],["name/9-113",[]],["text/9-113",[]],["component/9-113",[]],["keyword/9-113",[]],["title/9-114",[171,31.291,4148,80.622]],["name/9-114",[]],["text/9-114",[]],["component/9-114",[]],["keyword/9-114",[]],["title/9-115",[4149,74.585,4150,70.609]],["name/9-115",[]],["text/9-115",[]],["component/9-115",[]],["keyword/9-115",[]],["title/9-116",[484,40.297,4151,80.622]],["name/9-116",[]],["text/9-116",[]],["component/9-116",[]],["keyword/9-116",[]],["title/9-117",[296,35.992,4152,80.622]],["name/9-117",[]],["text/9-117",[]],["component/9-117",[]],["keyword/9-117",[]],["title/9-118",[273,37.327,4153,80.622]],["name/9-118",[]],["text/9-118",[]],["component/9-118",[]],["keyword/9-118",[]],["title/9-119",[1462,55.565,4154,80.622]],["name/9-119",[]],["text/9-119",[]],["component/9-119",[]],["keyword/9-119",[]],["title/9-120",[489,40.297,4155,80.622]],["name/9-120",[]],["text/9-120",[]],["component/9-120",[]],["keyword/9-120",[]],["title/9-121",[171,31.291,4156,80.622]],["name/9-121",[]],["text/9-121",[]],["component/9-121",[]],["keyword/9-121",[]],["title/9-122",[19,40.961,24,30.232,349,37.564]],["name/9-122",[]],["text/9-122",[]],["component/9-122",[]],["keyword/9-122",[]],["title/9-123",[287,49.719,2387,53.812]],["name/9-123",[]],["text/9-123",[]],["component/9-123",[]],["keyword/9-123",[]],["title/9-124",[484,40.297,4157,70.609]],["name/9-124",[]],["text/9-124",[]],["component/9-124",[]],["keyword/9-124",[]],["title/9-125",[296,35.992,4158,74.585]],["name/9-125",[]],["text/9-125",[]],["component/9-125",[]],["keyword/9-125",[]],["title/9-126",[273,37.327,4159,80.622]],["name/9-126",[]],["text/9-126",[]],["component/9-126",[]],["keyword/9-126",[]],["title/9-127",[489,40.297,4160,80.622]],["name/9-127",[]],["text/9-127",[]],["component/9-127",[]],["keyword/9-127",[]],["title/9-128",[290,49.157,4161,70.609]],["name/9-128",[]],["text/9-128",[]],["component/9-128",[]],["keyword/9-128",[]],["title/9-129",[484,40.297,2651,70.609]],["name/9-129",[]],["text/9-129",[]],["component/9-129",[]],["keyword/9-129",[]],["title/9-130",[296,35.992,2652,74.585]],["name/9-130",[]],["text/9-130",[]],["component/9-130",[]],["keyword/9-130",[]],["title/9-131",[273,37.327,2654,74.585]],["name/9-131",[]],["text/9-131",[]],["component/9-131",[]],["keyword/9-131",[]],["title/9-132",[171,31.291,2656,74.585]],["name/9-132",[]],["text/9-132",[]],["component/9-132",[]],["keyword/9-132",[]],["title/9-133",[2657,53.023,4162,74.585]],["name/9-133",[]],["text/9-133",[]],["component/9-133",[]],["keyword/9-133",[]],["title/9-134",[484,40.297,4163,80.622]],["name/9-134",[]],["text/9-134",[]],["component/9-134",[]],["keyword/9-134",[]],["title/9-135",[296,35.992,4164,80.622]],["name/9-135",[]],["text/9-135",[]],["component/9-135",[]],["keyword/9-135",[]],["title/9-136",[273,37.327,4165,80.622]],["name/9-136",[]],["text/9-136",[]],["component/9-136",[]],["keyword/9-136",[]],["title/9-137",[489,40.297,4166,80.622]],["name/9-137",[]],["text/9-137",[]],["component/9-137",[]],["keyword/9-137",[]],["title/9-138",[2659,54.656,4167,74.585]],["name/9-138",[]],["text/9-138",[]],["component/9-138",[]],["keyword/9-138",[]],["title/9-139",[484,40.297,4168,80.622]],["name/9-139",[]],["text/9-139",[]],["component/9-139",[]],["keyword/9-139",[]],["title/9-140",[273,37.327,4169,80.622]],["name/9-140",[]],["text/9-140",[]],["component/9-140",[]],["keyword/9-140",[]],["title/9-141",[329,57.626,1624,58.809]],["name/9-141",[]],["text/9-141",[]],["component/9-141",[]],["keyword/9-141",[]],["title/9-142",[484,40.297,2660,74.585]],["name/9-142",[]],["text/9-142",[]],["component/9-142",[]],["keyword/9-142",[]],["title/9-143",[296,35.992,2661,74.585]],["name/9-143",[]],["text/9-143",[]],["component/9-143",[]],["keyword/9-143",[]],["title/9-144",[296,31.274,623,52.243,2663,64.809]],["name/9-144",[]],["text/9-144",[]],["component/9-144",[]],["keyword/9-144",[]],["title/9-145",[273,37.327,2665,67.639]],["name/9-145",[]],["text/9-145",[]],["component/9-145",[]],["keyword/9-145",[]],["title/9-146",[306,40.56,4170,80.622]],["name/9-146",[]],["text/9-146",[]],["component/9-146",[]],["keyword/9-146",[]],["title/9-147",[171,31.291,4171,80.622]],["name/9-147",[]],["text/9-147",[]],["component/9-147",[]],["keyword/9-147",[]],["title/9-148",[270,36.731,349,37.564,4172,70.055]],["name/9-148",[]],["text/9-148",[]],["component/9-148",[]],["keyword/9-148",[]],["title/9-149",[271,50.073,349,37.564,4173,70.055]],["name/9-149",[]],["text/9-149",[]],["component/9-149",[]],["keyword/9-149",[]],["title/9-150",[275,44.257,349,37.564,4174,70.055]],["name/9-150",[]],["text/9-150",[]],["component/9-150",[]],["keyword/9-150",[]],["title/9-151",[289,36.956,349,33.211,390,36.578,4175,61.936]],["name/9-151",[]],["text/9-151",[]],["component/9-151",[]],["keyword/9-151",[]],["title/9-152",[2666,61.602,4176,74.585]],["name/9-152",[]],["text/9-152",[]],["component/9-152",[]],["keyword/9-152",[]],["title/9-153",[484,40.297,4177,80.622]],["name/9-153",[]],["text/9-153",[]],["component/9-153",[]],["keyword/9-153",[]],["title/9-154",[296,35.992,4178,80.622]],["name/9-154",[]],["text/9-154",[]],["component/9-154",[]],["keyword/9-154",[]],["title/9-155",[273,37.327,4179,80.622]],["name/9-155",[]],["text/9-155",[]],["component/9-155",[]],["keyword/9-155",[]],["title/9-156",[489,40.297,4180,80.622]],["name/9-156",[]],["text/9-156",[]],["component/9-156",[]],["keyword/9-156",[]],["title/9-157",[4181,67.639,4182,70.609]],["name/9-157",[]],["text/9-157",[]],["component/9-157",[]],["keyword/9-157",[]],["title/9-158",[484,40.297,4183,80.622]],["name/9-158",[]],["text/9-158",[]],["component/9-158",[]],["keyword/9-158",[]],["title/9-159",[1293,57.626,4184,80.622]],["name/9-159",[]],["text/9-159",[]],["component/9-159",[]],["keyword/9-159",[]],["title/9-160",[296,35.992,4185,80.622]],["name/9-160",[]],["text/9-160",[]],["component/9-160",[]],["keyword/9-160",[]],["title/9-161",[273,37.327,4186,80.622]],["name/9-161",[]],["text/9-161",[]],["component/9-161",[]],["keyword/9-161",[]],["title/9-162",[489,40.297,4187,80.622]],["name/9-162",[]],["text/9-162",[]],["component/9-162",[]],["keyword/9-162",[]],["title/9-163",[468,52.285,4188,80.622]],["name/9-163",[]],["text/9-163",[]],["component/9-163",[]],["keyword/9-163",[]],["title/9-164",[4189,67.639,4190,74.585]],["name/9-164",[]],["text/9-164",[]],["component/9-164",[]],["keyword/9-164",[]],["title/9-165",[484,40.297,4191,80.622]],["name/9-165",[]],["text/9-165",[]],["component/9-165",[]],["keyword/9-165",[]],["title/9-166",[296,35.992,4192,80.622]],["name/9-166",[]],["text/9-166",[]],["component/9-166",[]],["keyword/9-166",[]],["title/9-167",[273,37.327,4193,80.622]],["name/9-167",[]],["text/9-167",[]],["component/9-167",[]],["keyword/9-167",[]],["title/9-168",[3586,70.609,4194,67.639]],["name/9-168",[]],["text/9-168",[]],["component/9-168",[]],["keyword/9-168",[]],["title/9-169",[484,40.297,4195,80.622]],["name/9-169",[]],["text/9-169",[]],["component/9-169",[]],["keyword/9-169",[]],["title/9-170",[296,35.992,4196,80.622]],["name/9-170",[]],["text/9-170",[]],["component/9-170",[]],["keyword/9-170",[]],["title/9-171",[1374,44.643,4197,80.622]],["name/9-171",[]],["text/9-171",[]],["component/9-171",[]],["keyword/9-171",[]],["title/9-172",[325,41.8,1560,56.713,4198,70.055]],["name/9-172",[]],["text/9-172",[]],["component/9-172",[]],["keyword/9-172",[]],["title/9-173",[73,30.997,1254,40.487,1436,42.41,3178,44.934,4199,55.504]],["name/9-173",[]],["text/9-173",[]],["component/9-173",[]],["keyword/9-173",[]],["title/9-174",[31,29.154,73,34.589,457,32.713,4200,61.936]],["name/9-174",[]],["text/9-174",[]],["component/9-174",[]],["keyword/9-174",[]],["title/9-175",[73,30.997,3486,44.934,4201,55.504,4202,51.348,4203,43.574]],["name/9-175",[]],["text/9-175",[]],["component/9-175",[]],["keyword/9-175",[]],["title/9-176",[2980,65.268,4204,67.639]],["name/9-176",[]],["text/9-176",[]],["component/9-176",[]],["keyword/9-176",[]],["title/9-177",[484,40.297,4205,80.622]],["name/9-177",[]],["text/9-177",[]],["component/9-177",[]],["keyword/9-177",[]],["title/9-178",[296,35.992,4206,80.622]],["name/9-178",[]],["text/9-178",[]],["component/9-178",[]],["keyword/9-178",[]],["title/9-179",[1374,44.643,4207,80.622]],["name/9-179",[]],["text/9-179",[]],["component/9-179",[]],["keyword/9-179",[]],["title/9-180",[489,40.297,4208,80.622]],["name/9-180",[]],["text/9-180",[]],["component/9-180",[]],["keyword/9-180",[]],["title/9-181",[4209,65.268,4210,74.585]],["name/9-181",[]],["text/9-181",[]],["component/9-181",[]],["keyword/9-181",[]],["title/9-182",[484,40.297,4211,80.622]],["name/9-182",[]],["text/9-182",[]],["component/9-182",[]],["keyword/9-182",[]],["title/9-183",[296,35.992,4212,80.622]],["name/9-183",[]],["text/9-183",[]],["component/9-183",[]],["keyword/9-183",[]],["title/9-184",[273,37.327,4213,80.622]],["name/9-184",[]],["text/9-184",[]],["component/9-184",[]],["keyword/9-184",[]],["title/9-185",[489,40.297,4214,80.622]],["name/9-185",[]],["text/9-185",[]],["component/9-185",[]],["keyword/9-185",[]],["title/9-186",[379,51.589,4215,70.609]],["name/9-186",[]],["text/9-186",[]],["component/9-186",[]],["keyword/9-186",[]],["title/9-187",[484,40.297,4216,80.622]],["name/9-187",[]],["text/9-187",[]],["component/9-187",[]],["keyword/9-187",[]],["title/9-188",[296,35.992,4217,80.622]],["name/9-188",[]],["text/9-188",[]],["component/9-188",[]],["keyword/9-188",[]],["title/9-189",[323,34.792,846,37.564,4218,70.055]],["name/9-189",[]],["text/9-189",[]],["component/9-189",[]],["keyword/9-189",[]],["title/9-190",[296,27.65,1202,41.34,4219,61.936,4220,57.299]],["name/9-190",[]],["text/9-190",[]],["component/9-190",[]],["keyword/9-190",[]],["title/9-191",[47,29.994,217,26.126,296,24.779,992,35.517,4221,55.504]],["name/9-191",[]],["text/9-191",[]],["component/9-191",[]],["keyword/9-191",[]],["title/9-192",[273,37.327,4222,80.622]],["name/9-192",[]],["text/9-192",[]],["component/9-192",[]],["keyword/9-192",[]],["title/9-193",[1462,55.565,4223,80.622]],["name/9-193",[]],["text/9-193",[]],["component/9-193",[]],["keyword/9-193",[]],["title/9-194",[489,40.297,4224,80.622]],["name/9-194",[]],["text/9-194",[]],["component/9-194",[]],["keyword/9-194",[]],["title/9-195",[4225,80.622,4226,65.268]],["name/9-195",[]],["text/9-195",[]],["component/9-195",[]],["keyword/9-195",[]],["title/9-196",[47,33.47,217,29.154,992,39.633,4227,61.936]],["name/9-196",[]],["text/9-196",[]],["component/9-196",[]],["keyword/9-196",[]],["title/9-197",[171,31.291,4228,80.622]],["name/9-197",[]],["text/9-197",[]],["component/9-197",[]],["keyword/9-197",[]],["title/9",[154,46.686,295,42.583]],["name/9",[4229,0.832]],["text/9",[0,0.468,2,1.475,6,0.313,10,0.299,11,0.266,14,0.077,15,0.043,19,0.468,20,0.176,21,0.233,22,0.538,23,0.036,24,0.178,25,0.395,26,0.024,28,0.108,29,0.451,30,0.132,31,1.598,34,0.415,35,1.272,36,0.149,37,0.186,38,0.108,39,0.123,40,0.071,41,0.378,43,1.315,44,0.531,46,0.949,47,1.604,48,0.308,49,2.428,51,1.007,52,3.099,53,3.681,54,4.851,55,3.761,56,0.502,59,0.068,60,1.068,61,0.048,62,3.754,63,0.316,64,2.931,65,1.789,68,0.052,69,0.03,72,1.73,73,2.755,74,0.078,75,0.414,80,0.21,81,0.845,82,1.4,83,0.308,84,0.791,85,2.065,86,0.407,87,0.039,88,0.705,89,0.234,90,2.275,91,0.283,92,0.182,94,0.07,95,0.046,97,0.523,100,0.068,101,0.049,102,0.253,103,0.12,105,0.092,106,1.067,107,0.046,108,1.523,109,0.144,110,0.043,111,0.61,112,0.263,115,0.299,117,0.096,118,0.814,119,0.097,120,0.237,122,0.217,123,0.336,124,0.358,125,0.092,126,0.117,127,4.208,130,0.374,131,0.141,134,0.186,136,0.661,137,0.543,138,0.461,139,0.077,140,0.108,141,0.097,142,0.453,144,0.218,145,0.888,146,0.241,147,0.176,149,0.036,151,0.234,152,0.11,153,0.082,154,0.436,155,0.034,157,1.054,159,0.173,160,0.189,161,0.96,162,1.107,165,0.075,169,0.132,171,0.751,173,2.112,175,0.11,177,1.018,178,0.284,180,0.296,181,0.036,182,0.146,183,0.227,184,0.129,185,1.853,186,0.305,187,1.213,189,0.506,190,0.611,192,0.528,193,0.307,196,1.465,198,0.201,201,0.55,202,0.581,204,0.039,206,1.694,207,1.171,208,3.247,209,1.179,210,0.632,211,1.11,213,1.19,215,0.182,216,0.074,217,2.567,220,0.044,221,0.176,222,0.082,225,0.071,227,1.126,231,1.159,232,0.72,233,0.36,234,0.488,235,1.402,236,0.37,238,0.547,239,0.69,240,0.08,241,0.199,242,0.439,243,1.586,244,1.466,245,0.063,247,0.665,248,1.665,249,0.141,251,0.573,252,0.082,254,0.777,256,0.794,259,0.949,260,0.07,263,0.529,264,1.402,265,0.064,267,0.725,268,0.031,269,0.872,270,1.957,271,1.056,273,1.513,274,2.066,275,0.595,277,1.46,278,0.029,281,1.014,282,1.635,285,0.037,286,2.908,288,1.942,289,0.882,295,0.164,296,4.403,298,0.509,302,2.086,303,1.381,304,0.039,305,0.413,306,4.287,307,0.318,308,1.264,309,1.028,310,0.825,311,0.183,312,0.183,313,0.043,315,0.127,316,0.168,317,0.046,318,1.306,320,0.164,322,0.439,323,0.278,324,0.987,325,1.057,326,3.9,327,0.308,328,0.534,329,1.411,330,0.543,331,4.123,332,0.868,333,2.797,334,1.24,335,1.397,336,1.555,337,0.64,338,0.114,339,0.836,340,1.228,343,0.9,344,2.244,347,3.183,348,0.894,349,4.601,350,0.672,351,1.991,352,1.764,353,1.694,354,1.757,355,1.041,356,0.859,357,4.226,358,3.305,359,0.123,360,1.949,361,2.919,362,0.222,363,0.68,364,0.5,365,1.542,366,1.966,370,0.033,371,0.648,373,0.684,374,1.318,375,0.044,376,0.077,377,0.043,378,0.152,379,1.812,382,0.588,390,1.438,391,1.085,393,1.577,395,0.183,398,0.046,405,0.619,416,0.278,427,0.882,428,0.313,429,0.173,430,1.083,431,0.607,432,0.821,434,1.306,435,0.536,436,0.178,437,1.087,438,0.823,439,0.648,440,0.706,441,0.146,442,0.046,443,0.47,444,0.323,445,0.93,446,0.092,447,0.183,449,0.166,450,0.511,453,0.629,454,0.131,455,0.108,456,0.289,457,0.848,459,3.1,461,0.33,464,0.852,466,0.619,468,0.67,471,0.137,473,0.263,475,0.112,477,0.117,482,0.156,486,0.152,489,0.651,493,0.865,508,0.183,509,0.038,510,0.07,530,0.044,534,0.08,542,0.082,551,0.395,559,0.299,576,0.064,579,0.09,581,0.482,582,0.189,583,0.314,588,1.792,589,0.141,590,0.04,594,0.183,595,1.102,597,0.036,599,0.294,603,0.299,604,0.421,606,0.536,608,0.043,610,0.07,613,0.108,615,0.428,617,0.311,619,0.232,623,0.269,638,0.041,641,0.169,648,0.388,653,0.501,658,0.562,675,0.133,767,0.137,780,0.141,785,0.141,799,0.263,801,0.068,803,0.088,804,0.346,808,0.759,809,0.194,810,0.032,811,1.541,818,1.029,820,0.263,823,0.046,825,0.49,831,0.123,834,0.097,835,0.189,837,0.105,838,1.149,841,0.269,846,1.346,848,0.046,851,0.554,853,0.944,855,0.294,856,0.504,857,0.495,859,0.804,860,0.4,861,0.141,864,0.875,865,0.648,866,0.502,867,0.149,868,0.972,869,1.618,871,1.44,873,0.352,874,0.572,875,0.64,876,1.063,877,0.581,878,0.352,879,0.701,880,0.684,881,0.373,882,0.152,883,0.253,884,0.408,886,2.028,887,0.295,888,0.207,889,0.21,890,0.049,891,0.132,892,1.292,895,0.526,896,0.245,897,0.244,898,0.4,900,1.523,901,1.568,902,1.478,903,0.289,904,0.619,905,0.085,906,0.183,907,1.811,908,0.701,909,0.263,910,0.333,911,0.222,912,0.336,914,0.279,915,0.648,916,0.275,917,1.603,918,0.551,919,1.574,920,0.105,921,0.519,923,0.439,924,0.092,925,0.294,926,0.427,927,0.044,928,2.197,930,1.753,931,1.078,934,0.071,935,0.088,936,0.156,937,0.386,939,0.968,941,0.24,942,0.66,943,0.227,944,0.123,945,0.186,947,0.323,948,0.043,949,0.077,951,0.189,952,0.041,958,0.043,959,0.049,962,0.189,964,0.739,965,3.229,967,0.04,968,1.002,969,0.3,970,0.345,972,0.258,973,0.194,974,0.044,975,0.428,977,0.074,978,0.352,979,1.164,980,0.145,981,0.036,982,0.043,983,0.703,984,0.99,986,0.314,987,0.214,990,0.821,991,0.234,992,1.107,993,0.189,994,0.193,998,0.082,999,1.306,1003,0.144,1004,0.314,1005,1.786,1008,0.044,1009,1.428,1010,0.588,1011,0.077,1012,0.314,1013,0.502,1014,0.401,1015,1.015,1017,0.984,1019,1.761,1020,0.269,1021,0.21,1022,0.114,1024,0.517,1025,0.082,1032,0.637,1033,0.549,1034,0.204,1035,0.092,1037,0.7,1038,0.269,1039,0.502,1040,0.041,1041,0.149,1043,0.044,1044,0.47,1045,0.514,1046,1.93,1054,0.72,1059,0.038,1060,0.041,1061,1.535,1062,0.11,1063,0.037,1066,0.314,1067,0.164,1068,0.345,1069,0.043,1071,0.159,1072,1.293,1073,0.169,1074,0.314,1075,0.089,1077,1.102,1078,0.127,1079,0.04,1080,0.222,1081,0.039,1083,0.307,1084,0.085,1085,0.207,1086,0.093,1087,0.137,1089,0.793,1090,0.929,1091,0.077,1092,0.504,1093,0.886,1094,0.092,1095,1.102,1096,0.127,1097,0.554,1099,0.336,1100,0.427,1105,0.373,1108,0.082,1110,0.362,1113,0.33,1114,0.075,1115,0.044,1116,0.504,1117,0.21,1119,0.156,1120,1.058,1121,0.12,1122,0.852,1123,0.114,1124,0.372,1126,0.408,1129,0.693,1130,0.088,1131,0.491,1132,0.043,1135,0.374,1136,0.21,1137,0.12,1138,0.303,1139,0.123,1140,0.307,1141,0.044,1142,0.159,1144,0.117,1145,0.949,1147,0.341,1148,0.164,1150,0.439,1151,1.496,1154,0.244,1155,0.597,1156,0.851,1157,0.033,1158,0.883,1159,0.387,1161,0.039,1162,0.527,1163,0.198,1164,0.044,1167,0.218,1171,1.917,1172,0.04,1174,0.526,1175,0.132,1176,0.673,1177,0.839,1178,0.189,1179,0.092,1180,0.149,1181,1.212,1182,0.237,1184,1.037,1185,0.117,1187,0.108,1189,0.043,1190,1.497,1191,0.725,1192,0.817,1193,0.504,1194,1.037,1195,0.075,1197,0.127,1198,0.088,1199,0.592,1200,0.218,1201,0.204,1202,0.439,1203,0.036,1204,0.043,1207,0.123,1208,0.082,1210,0.092,1211,0.851,1212,0.041,1213,0.039,1215,0.276,1216,0.137,1218,0.106,1219,0.164,1221,0.345,1222,0.082,1223,0.616,1225,0.39,1226,0.044,1227,0.194,1228,0.164,1229,0.314,1231,0.261,1233,0.164,1234,0.269,1235,0.454,1236,0.352,1237,0.204,1238,0.044,1240,0.039,1242,0.218,1244,0.041,1247,0.751,1248,0.041,1250,0.085,1251,0.839,1252,0.314,1253,0.251,1254,0.038,1255,0.038,1256,0.046,1258,0.269,1259,0.211,1261,0.781,1262,0.034,1265,0.511,1267,1.498,1270,0.088,1271,0.193,1272,0.263,1273,0.71,1274,0.502,1275,0.972,1276,1.124,1277,0.837,1278,1.447,1279,0.632,1280,0.781,1281,0.075,1284,0.041,1285,0.543,1286,0.117,1287,0.44,1288,0.218,1289,0.666,1290,0.244,1291,0.082,1292,0.516,1293,0.112,1296,0.088,1297,0.269,1299,0.046,1300,0.152,1301,0.044,1302,0.169,1303,0.12,1305,0.078,1306,0.408,1307,0.552,1310,0.046,1312,0.33,1313,0.261,1314,0.276,1315,0.543,1317,0.261,1318,0.043,1319,0.478,1321,0.108,1324,0.629,1326,0.137,1329,0.363,1330,1.539,1333,0.453,1334,0.133,1338,0.11,1339,0.387,1340,0.432,1341,0.72,1343,0.294,1344,0.386,1346,0.372,1349,0.333,1352,0.117,1354,0.088,1358,0.046,1359,0.571,1360,0.046,1362,0.789,1364,0.04,1365,0.478,1366,0.575,1367,0.706,1368,0.631,1369,0.044,1371,0.294,1372,0.04,1374,0.029,1375,0.085,1376,0.04,1377,0.169,1380,0.044,1382,0.132,1383,0.994,1385,0.114,1386,2.976,1387,0.428,1389,0.085,1393,0.945,1394,2.239,1395,0.043,1396,0.284,1397,0.085,1398,0.251,1400,0.194,1401,0.173,1403,2.215,1404,0.49,1405,0.957,1406,1.426,1409,0.173,1410,0.137,1411,0.702,1412,1.935,1413,0.21,1415,0.886,1416,0.363,1418,0.082,1419,0.323,1421,0.493,1422,0.334,1423,0.39,1425,2.085,1427,0.117,1429,0.041,1430,0.044,1432,0.232,1434,0.078,1435,0.085,1436,0.684,1437,0.082,1439,0.575,1441,1.118,1442,0.237,1446,0.227,1448,0.251,1452,0.123,1453,0.036,1458,0.123,1459,0.077,1461,0.659,1462,0.837,1468,0.702,1469,0.276,1471,0.046,1472,0.046,1481,0.117,1483,0.318,1485,0.074,1487,0.085,1488,0.511,1491,0.088,1493,0.044,1494,0.069,1495,0.194,1496,0.046,1497,0.092,1498,0.839,1501,0.516,1502,0.24,1503,0.034,1507,0.041,1508,0.077,1509,0.044,1511,0.044,1512,0.591,1513,0.196,1515,0.659,1517,0.049,1518,0.345,1519,0.085,1520,0.088,1522,0.303,1523,0.156,1524,0.472,1525,0.156,1536,0.044,1538,0.149,1541,0.169,1544,0.061,1545,0.123,1546,0.269,1548,0.093,1549,0.044,1553,0.085,1554,0.169,1556,1.207,1559,0.069,1560,0.413,1562,0.092,1563,1.858,1565,2.263,1566,1.226,1577,0.088,1580,0.044,1581,0.092,1593,0.085,1595,0.132,1596,0.04,1601,0.283,1603,0.682,1606,0.164,1607,0.092,1610,0.144,1616,0.502,1620,0.046,1630,0.137,1631,0.156,1632,0.204,1633,0.3,1635,0.372,1642,0.67,1643,0.08,1648,0.127,1649,0.341,1658,0.041,1659,2.083,1660,0.123,1662,0.169,1663,0.049,1664,0.044,1666,0.049,1674,0.049,1680,0.1,1682,0.049,1684,0.04,1687,0.075,1689,0.227,1690,0.237,1692,0.041,1693,0.043,1695,0.046,1696,2.308,1701,0.79,1706,0.049,1707,0.276,1708,0.584,1711,0.323,1712,0.127,1713,0.194,1716,0.127,1723,0.528,1732,0.123,1737,0.417,1740,0.04,1744,0.049,1745,0.049,1746,0.36,1750,0.08,1756,0.046,1757,0.049,1758,0.097,1765,0.044,1767,0.47,1768,0.572,1771,0.097,1772,0.037,1777,0.132,1779,0.044,1788,0.082,1794,0.046,1795,0.127,1806,0.088,1808,0.632,1813,0.044,1817,0.039,1818,0.049,1819,0.092,1822,0.183,1824,0.088,1825,0.049,1829,0.092,1832,0.152,1833,0.261,1834,0.046,1837,0.132,1838,0.179,1840,0.123,1841,0.164,1842,0.269,1843,2.09,1844,0.164,1845,0.261,1849,0.152,1861,0.044,1862,0.127,1863,0.232,1873,0.253,1888,0.269,1892,0.884,1901,0.103,1906,0.156,1909,0.374,1910,0.043,1913,0.169,1927,0.044,1928,0.041,1929,0.137,1933,0.408,1939,0.049,1947,0.049,1952,0.159,1954,0.049,1960,0.228,1961,0.044,1973,0.123,1997,0.088,2025,0.427,2033,0.077,2034,0.049,2051,0.049,2060,0.035,2065,2.183,2066,0.082,2069,0.04,2091,0.041,2092,2.028,2093,0.12,2103,0.049,2148,2.105,2152,0.193,2155,0.47,2198,0.044,2221,0.132,2222,0.044,2223,0.333,2231,0.137,2261,0.381,2263,0.428,2265,0.183,2274,0.584,2280,0.077,2284,0.04,2298,0.088,2299,0.097,2304,0.044,2310,0.041,2311,0.648,2349,0.344,2365,0.638,2368,0.049,2375,0.847,2382,0.352,2383,1.321,2387,1.397,2392,0.15,2393,0.194,2395,2.59,2396,0.04,2399,0.046,2405,0.237,2406,0.811,2409,0.276,2418,0.169,2421,0.046,2434,1.857,2438,0.3,2440,0.11,2443,0.097,2445,0.039,2510,0.036,2517,0.137,2519,0.182,2531,2.479,2534,0.072,2547,1.44,2552,1.756,2553,0.043,2554,0.198,2557,0.341,2560,0.097,2562,0.097,2564,0.334,2576,0.145,2583,0.341,2590,0.554,2593,0.232,2609,0.619,2610,0.046,2615,0.284,2617,1.091,2618,0.103,2623,0.439,2638,1.865,2639,0.251,2643,0.653,2644,0.316,2645,1.232,2648,0.078,2671,0.043,2673,0.294,2679,0.033,2683,0.043,2684,0.038,2687,0.049,2689,0.041,2690,0.043,2692,0.194,2695,0.043,2700,2.032,2703,0.049,2705,0.218,2711,1.819,2715,0.472,2716,0.078,2718,0.036,2723,0.049,2727,0.493,2732,0.049,2737,0.08,2741,0.963,2761,0.077,2792,0.092,2807,1.16,2813,0.333,2823,0.272,2828,0.284,2829,0.145,2837,0.951,2840,0.183,2851,0.194,2858,0.263,2861,0.082,2862,0.127,2865,0.046,2883,0.145,2934,0.049,2959,0.372,2975,0.082,2977,1.257,2978,0.049,2979,0.983,2980,1.533,2985,4.968,2986,2.532,2987,0.435,2993,0.132,3001,0.092,3019,2.701,3023,2.168,3027,0.439,3032,0.323,3037,2.166,3039,0.261,3041,0.145,3042,0.381,3048,0.085,3049,0.092,3050,0.049,3057,0.049,3060,0.272,3063,0.238,3064,0.24,3065,0.097,3066,0.097,3067,0.097,3068,0.218,3077,0.183,3079,0.218,3081,0.227,3083,0.046,3085,0.123,3091,0.046,3094,0.137,3101,0.825,3102,0.618,3103,0.653,3104,0.046,3107,0.447,3108,0.204,3112,0.149,3113,0.362,3114,0.088,3115,0.164,3119,0.123,3120,0.088,3121,0.145,3123,0.152,3125,0.092,3127,0.046,3130,0.169,3132,1.729,3137,0.227,3139,0.044,3140,0.049,3141,0.493,3142,0.077,3143,0.092,3146,0.127,3150,0.137,3151,0.164,3153,0.046,3154,0.3,3155,2.056,3157,0.653,3159,0.21,3161,0.043,3168,0.145,3176,0.049,3178,0.21,3179,0.092,3182,0.092,3184,0.227,3186,0.194,3187,0.046,3188,0.043,3189,0.044,3190,0.251,3191,0.088,3192,0.345,3195,0.697,3196,0.085,3197,0.08,3199,0.711,3200,0.333,3201,0.085,3202,0.043,3203,0.043,3206,0.169,3210,0.092,3211,0.516,3213,0.334,3215,0.164,3216,0.127,3217,0.04,3219,0.049,3221,0.175,3222,0.989,3225,0.132,3233,3.083,3235,0.303,3236,0.097,3238,0.049,3244,0.227,3245,0.046,3249,0.373,3250,0.292,3251,0.088,3252,0.66,3254,0.041,3255,0.687,3258,0.097,3262,0.947,3265,0.049,3269,0.049,3272,0.447,3276,0.097,3277,0.092,3280,0.049,3295,0.198,3296,0.043,3297,0.046,3300,0.404,3302,0.043,3303,0.847,3310,0.47,3314,0.244,3342,0.316,3353,0.169,3364,0.046,3366,0.046,3368,0.049,3378,0.049,3386,0.092,3389,0.137,3390,0.049,3391,0.314,3399,0.038,3406,0.041,3418,0.751,3428,0.046,3449,0.12,3461,0.164,3484,0.04,3486,0.251,3495,0.272,3497,0.132,3499,0.088,3500,0.218,3501,0.046,3503,0.404,3505,0.145,3515,0.183,3546,0.049,3557,0.082,3558,0.049,3568,0.204,3584,0.049,3586,0.447,3590,0.049,3591,0.088,3592,0.046,3612,0.049,3614,0.071,3616,0.092,3641,0.085,3644,0.04,3646,0.417,3647,1.064,3651,0.049,3667,0.228,3668,0.044,3683,0.123,3735,0.046,3741,0.046,3755,0.097,3756,0.046,3757,0.044,3772,0.12,3774,0.043,3776,0.046,3777,0.046,3782,0.049,3783,0.36,3784,0.046,3786,0.046,3791,0.132,3792,0.046,3795,0.046,3796,0.47,3803,0.316,3804,0.183,3805,0.097,3809,0.137,3811,0.049,3815,0.085,3816,0.097,3818,0.381,3828,0.164,3829,0.037,3832,0.085,3835,0.049,3865,0.137,3881,0.592,3889,0.088,3902,0.514,3932,0.049,3953,0.762,4031,0.608,4058,0.518,4064,0.427,4075,1.165,4081,0.427,4086,0.381,4104,0.518,4112,1.064,4120,0.533,4133,0.784,4142,0.784,4150,0.905,4161,0.404,4162,0.518,4167,0.334,4176,0.697,4182,1.256,4190,0.427,4202,0.871,4203,0.284,4210,0.427,4226,0.043,4230,0.137,4231,0.175,4232,0.053,4233,0.053,4234,0.053,4235,0.053,4236,0.316,4237,0.049,4238,0.053,4239,0.053,4240,0.157,4241,0.053,4242,0.105,4243,0.105,4244,0.053,4245,0.053,4246,0.209,4247,0.303,4248,0.053,4249,0.053,4250,0.053,4251,0.053,4252,0.053,4253,0.751,4254,0.049,4255,0.053,4256,0.053,4257,0.209,4258,0.053,4259,0.345,4260,0.272,4261,0.053,4262,0.157,4263,0.053,4264,0.053,4265,0.053,4266,0.053,4267,0.132,4268,0.053,4269,0.956,4270,0.053,4271,0.183,4272,0.049,4273,0.053,4274,0.046,4275,0.137,4276,0.049,4277,0.053,4278,0.303,4279,0.053,4280,0.053,4281,0.157,4282,0.053,4283,0.053,4284,0.053,4285,0.157,4286,0.053,4287,0.157,4288,0.053,4289,0.053,4290,0.404,4291,0.053,4292,0.511,4293,0.053,4294,0.711,4295,0.053,4296,0.053,4297,0.053,4298,0.292,4299,0.053,4300,0.053,4301,0.053,4302,0.053,4303,0.56,4304,0.053,4305,0.053,4306,0.053,4307,0.046,4308,0.053,4309,0.092,4310,0.26,4311,0.053,4312,0.049,4313,0.316,4314,0.705,4315,0.046,4316,0.082,4317,0.105,4318,0.053,4319,0.049,4320,0.053,4321,0.053,4322,0.053,4323,0.049,4324,0.092,4325,0.157,4326,0.26,4327,0.053,4328,0.053,4329,0.097,4330,0.053,4331,0.551,4332,0.511,4333,0.159,4334,0.053,4335,0.461,4336,0.092,4337,0.053,4338,0.303,4339,0.053,4340,0.049,4341,0.105,4342,0.053,4343,0.053,4344,0.053,4345,0.137,4346,0.053,4347,0.053,4348,0.157,4349,0.053,4350,0.049,4351,0.053,4352,0.049,4353,0.092,4354,0.053,4355,0.053,4356,0.053,4357,0.989,4358,0.049,4359,0.053,4360,0.657,4361,1.294,4362,0.511,4363,0.157,4364,0.053,4365,0.461,4366,0.753,4367,1.058,4368,0.657,4369,2.075,4370,0.697,4371,0.26,4372,0.404,4373,0.848,4374,1.17,4375,1.125,4376,0.311,4377,0.105,4378,0.105,4379,0.105,4380,0.157,4381,0.053,4382,0.053,4383,0.105,4384,0.053,4385,0.053,4386,0.105,4387,0.053,4388,0.053,4389,0.053,4390,0.411,4391,0.053,4392,0.088,4393,0.053,4394,0.361,4395,0.105,4396,0.053,4397,0.157,4398,0.26,4399,0.049,4400,0.053,4401,0.053,4402,0.053,4403,0.049,4404,0.053,4405,0.053,4406,0.053,4407,0.053,4408,0.053,4409,0.053,4410,0.053,4411,0.053,4412,0.157,4413,0.053,4414,0.039,4415,0.044,4416,0.105,4417,0.209,4418,0.105,4419,0.105,4420,0.105,4421,0.053,4422,0.053,4423,0.053,4424,0.105,4425,0.105,4426,0.209,4427,0.053,4428,0.053,4429,0.105,4430,0.053,4431,0.053,4432,0.053,4433,0.053,4434,0.105,4435,0.105,4436,0.053,4437,0.053,4438,0.053,4439,0.053,4440,0.053,4441,0.105,4442,0.361,4443,0.825,4444,0.053,4445,0.049,4446,0.053,4447,0.053,4448,0.053,4449,0.053,4450,0.053,4451,0.053,4452,0.053,4453,0.105,4454,0.105,4455,0.053,4456,0.044,4457,0.053,4458,0.053,4459,0.053,4460,0.209,4461,0.053,4462,0.053,4463,0.053,4464,0.287,4465,0.26,4466,0.053,4467,0.053,4468,0.053,4469,0.105,4470,0.049,4471,0.053,4472,0.053,4473,0.26,4474,0.053,4475,0.053,4476,0.105,4477,0.053,4478,0.053,4479,0.157,4480,0.053,4481,0.053,4482,0.105,4483,0.097,4484,0.26,4485,0.105,4486,0.053,4487,0.053,4488,0.053,4489,0.053,4490,0.053,4491,0.157,4492,0.053,4493,0.053,4494,0.053,4495,0.053,4496,0.209,4497,0.209,4498,0.209,4499,0.044,4500,0.053,4501,0.053,4502,0.053,4503,0.074,4504,0.053,4505,0.053,4506,0.105,4507,0.053,4508,0.183,4509,0.053,4510,0.049,4511,0.092,4512,0.053,4513,0.053,4514,0.053,4515,0.053,4516,0.105,4517,0.053,4518,0.209,4519,0.105,4520,0.105,4521,0.105,4522,0.145,4523,0.137,4524,0.053,4525,0.105,4526,0.105,4527,0.053,4528,0.053,4529,0.053,4530,0.053,4531,0.053,4532,0.053,4533,0.053,4534,0.323,4535,0.053,4536,0.105,4537,0.105,4538,0.053,4539,0.401,4540,0.105,4541,0.127,4542,0.097,4543,0.053,4544,0.105,4545,0.105,4546,0.049,4547,0.049,4548,0.105,4549,0.701,4550,0.053,4551,0.157,4552,0.053,4553,0.105,4554,0.053,4555,0.053,4556,0.053,4557,0.053,4558,0.053,4559,0.053,4560,0.053,4561,0.053,4562,0.053,4563,0.053,4564,0.097,4565,0.049,4566,0.049,4567,0.053,4568,0.053,4569,0.053,4570,0.053,4571,0.053,4572,0.053,4573,0.088,4574,0.157,4575,0.157,4576,0.157,4577,0.105,4578,0.145,4579,0.103,4580,0.334,4581,0.193,4582,0.053,4583,0.053,4584,0.046,4585,0.105,4586,0.105,4587,0.461,4588,0.105,4589,0.053,4590,0.053,4591,0.053,4592,0.053,4593,0.053,4594,0.053,4595,0.361,4596,0.26,4597,0.26,4598,0.26,4599,0.105,4600,0.183,4601,0.053,4602,0.053,4603,0.053,4604,0.053,4605,0.053,4606,0.053,4607,0.053,4608,0.053,4609,0.053,4610,0.053,4611,0.157,4612,0.053,4613,0.053,4614,0.053,4615,0.053,4616,0.053,4617,0.105,4618,0.053,4619,0.053,4620,0.105,4621,0.105,4622,0.053,4623,0.053,4624,0.053,4625,0.053,4626,0.053,4627,0.053,4628,0.053,4629,0.053,4630,0.053,4631,0.053,4632,0.053,4633,0.053,4634,0.24,4635,0.097,4636,0.053,4637,0.049,4638,0.053,4639,0.053,4640,0.053,4641,0.053,4642,0.053,4643,0.053,4644,0.053,4645,0.609,4646,0.105,4647,0.053,4648,0.145,4649,0.316,4650,0.053,4651,0.053,4652,0.105,4653,0.183,4654,0.576,4655,0.105,4656,0.26,4657,0.053,4658,0.053,4659,0.037,4660,0.053,4661,0.053,4662,0.044,4663,0.053,4664,0.105,4665,0.053,4666,0.157,4667,0.053,4668,0.053,4669,0.049,4670,0.053,4671,0.053,4672,0.209,4673,0.053,4674,0.053,4675,0.053,4676,0.053,4677,0.046,4678,0.053,4679,0.053,4680,0.053,4681,0.053,4682,0.053,4683,0.053,4684,0.053,4685,0.053,4686,0.411,4687,0.053,4688,0.053,4689,0.053,4690,0.193,4691,0.053,4692,0.049,4693,0.053,4694,0.053,4695,0.053,4696,0.053,4697,0.053,4698,0.053,4699,0.053,4700,0.097,4701,0.092,4702,0.053,4703,0.053,4704,0.053,4705,0.053,4706,0.24,4707,0.105,4708,0.053,4709,0.053,4710,0.053,4711,0.038,4712,0.049,4713,0.053,4714,0.053,4715,0.053,4716,0.053,4717,0.049,4718,0.053,4719,0.105,4720,0.105,4721,0.105,4722,0.105,4723,0.105,4724,0.105,4725,0.105,4726,0.105,4727,0.049,4728,0.053,4729,0.105,4730,0.303,4731,0.053,4732,0.209,4733,0.053,4734,0.183,4735,0.053,4736,0.105,4737,0.053,4738,0.311,4739,0.053,4740,0.053,4741,0.209,4742,0.053,4743,0.053,4744,0.053,4745,0.053,4746,0.105,4747,0.157,4748,0.053,4749,0.053,4750,0.053,4751,0.053,4752,0.053,4753,0.053,4754,0.053,4755,0.053,4756,0.046,4757,0.053,4758,0.053,4759,0.053,4760,0.511,4761,0.105,4762,0.053,4763,0.157,4764,0.053,4765,0.053,4766,0.145,4767,0.053,4768,0.049,4769,0.053,4770,0.053,4771,0.046,4772,0.053,4773,0.053,4774,0.053,4775,0.053,4776,0.053,4777,0.105,4778,0.053,4779,0.053,4780,0.053,4781,0.105,4782,0.053,4783,0.053,4784,0.105,4785,0.105,4786,0.105,4787,0.053,4788,0.053,4789,0.053,4790,0.049,4791,0.105,4792,0.053,4793,0.053,4794,0.157,4795,0.157,4796,0.053,4797,0.053,4798,0.049,4799,0.157,4800,0.157,4801,0.053,4802,0.105,4803,0.105,4804,0.105,4805,0.053,4806,0.053,4807,0.053,4808,0.105,4809,0.105,4810,0.053,4811,0.105,4812,0.053,4813,0.053,4814,0.053,4815,0.105,4816,0.097,4817,0.097,4818,0.053,4819,0.053,4820,0.105,4821,0.105,4822,0.105,4823,0.461,4824,0.105,4825,0.053,4826,0.053,4827,0.049,4828,0.046,4829,0.053,4830,0.085,4831,0.053,4832,0.053,4833,0.053,4834,0.105,4835,0.053,4836,0.049,4837,0.105,4838,0.053,4839,0.053,4840,0.053,4841,0.053,4842,0.157,4843,0.209,4844,0.209,4845,0.157,4846,0.157,4847,0.145,4848,0.26,4849,0.044,4850,0.049,4851,0.046,4852,0.097,4853,0.097,4854,0.053,4855,0.157,4856,0.049,4857,0.361,4858,0.361,4859,0.411,4860,0.105,4861,0.105,4862,0.053,4863,0.053,4864,0.053,4865,0.053,4866,0.053,4867,0.053,4868,0.053,4869,0.053,4870,0.053,4871,0.053,4872,0.053,4873,0.053,4874,0.105,4875,0.053,4876,0.053,4877,0.053,4878,0.26,4879,0.105,4880,0.053,4881,0.209,4882,0.043,4883,0.105,4884,0.053,4885,0.053,4886,0.105,4887,0.105,4888,0.209,4889,0.105,4890,0.053,4891,0.053,4892,0.105,4893,0.053,4894,0.053,4895,0.053,4896,0.053,4897,0.053,4898,0.563,4899,0.105,4900,0.053,4901,0.053,4902,0.053,4903,0.053,4904,0.053,4905,0.088,4906,0.053,4907,0.053,4908,0.053,4909,0.209,4910,0.105,4911,0.053,4912,0.053,4913,0.053,4914,0.053,4915,0.053,4916,0.053,4917,0.053,4918,0.105,4919,0.105,4920,0.053,4921,0.053,4922,0.053,4923,0.053,4924,0.053,4925,0.053,4926,0.092,4927,0.053,4928,0.053,4929,0.105,4930,0.053,4931,0.053,4932,0.053,4933,0.053,4934,0.053,4935,0.053,4936,0.053,4937,0.053,4938,0.105,4939,0.053,4940,0.105,4941,0.053,4942,0.053,4943,0.053,4944,0.053,4945,0.053,4946,0.157,4947,0.053,4948,0.105,4949,0.053,4950,0.053,4951,0.053,4952,0.053,4953,0.049,4954,0.053,4955,0.053,4956,0.105,4957,0.053,4958,0.137,4959,0.105,4960,0.053,4961,0.053,4962,0.053,4963,0.053,4964,0.105,4965,0.053,4966,0.049,4967,0.053,4968,0.053,4969,0.053,4970,0.105,4971,0.053,4972,0.053,4973,0.053,4974,0.053,4975,0.053,4976,0.053,4977,0.26,4978,0.053,4979,0.053,4980,0.053,4981,0.105,4982,0.053,4983,0.053,4984,0.053,4985,0.053,4986,0.053,4987,0.053,4988,0.053,4989,0.053,4990,0.053,4991,0.053,4992,0.053,4993,0.053,4994,0.053,4995,0.053,4996,0.053,4997,0.053,4998,0.053,4999,0.088,5000,0.105,5001,0.053,5002,0.053,5003,0.105,5004,0.053,5005,0.105,5006,0.053,5007,0.053,5008,0.053,5009,0.311,5010,0.56,5011,0.053,5012,0.053,5013,0.053,5014,0.105,5015,0.053,5016,0.053,5017,0.053,5018,0.053,5019,0.287,5020,0.053,5021,0.053,5022,0.053,5023,0.053,5024,0.049,5025,0.053,5026,0.053,5027,0.049,5028,0.053,5029,0.046,5030,0.105,5031,0.053,5032,0.053,5033,0.053,5034,0.053,5035,0.053,5036,0.053,5037,0.053,5038,0.041,5039,0.053,5040,0.053,5041,0.046,5042,0.053,5043,0.053,5044,0.053,5045,0.053,5046,0.053,5047,0.053,5048,0.053,5049,0.053,5050,0.053,5051,0.097,5052,0.053,5053,0.157,5054,0.053,5055,0.053,5056,0.053,5057,0.041,5058,0.053,5059,0.053,5060,0.053,5061,0.053,5062,0.105,5063,0.053,5064,0.105,5065,0.046,5066,0.097,5067,0.053,5068,0.053,5069,0.097,5070,0.053,5071,0.049,5072,0.333,5073,0.097,5074,0.227,5075,0.183,5076,0.105,5077,0.053,5078,0.053,5079,0.053,5080,0.043,5081,0.053,5082,0.053,5083,0.053,5084,0.053,5085,0.053,5086,0.105,5087,0.053,5088,0.053,5089,0.053,5090,0.053,5091,0.26,5092,0.053,5093,0.049,5094,0.053,5095,0.053,5096,0.053,5097,0.053,5098,0.053,5099,0.053,5100,0.053,5101,0.053,5102,0.105,5103,0.053,5104,0.053,5105,0.053,5106,0.053,5107,0.053,5108,0.053,5109,0.053,5110,0.053,5111,0.053,5112,0.049,5113,0.053,5114,0.053,5115,0.053,5116,0.287,5117,0.053,5118,0.053,5119,0.053,5120,0.053,5121,0.053,5122,0.801,5123,0.145,5124,0.053,5125,0.053,5126,0.157,5127,0.053,5128,0.105,5129,0.105,5130,0.105,5131,0.046,5132,0.053,5133,0.053,5134,0.157,5135,0.053,5136,0.053,5137,0.053,5138,0.053,5139,0.053,5140,0.046,5141,0.043,5142,0.044,5143,0.053,5144,0.053,5145,0.053,5146,0.053,5147,0.053,5148,0.105,5149,0.053,5150,0.105,5151,0.053,5152,0.053,5153,0.105,5154,0.097,5155,0.053,5156,0.053,5157,0.053,5158,0.053,5159,0.053,5160,0.053,5161,0.053,5162,0.053,5163,0.105,5164,0.105,5165,0.053,5166,0.053,5167,0.053,5168,0.053,5169,0.053,5170,0.053,5171,0.272,5172,0.145,5173,0.053,5174,0.049,5175,0.053,5176,0.053,5177,0.053,5178,0.053,5179,0.053,5180,0.053,5181,0.053,5182,0.053,5183,0.053,5184,0.053,5185,0.053,5186,0.053,5187,0.053,5188,0.053,5189,0.053,5190,0.053,5191,0.157,5192,0.053,5193,0.105,5194,0.053,5195,0.132,5196,0.053,5197,0.053,5198,0.053,5199,0.053,5200,0.053,5201,0.053,5202,0.053,5203,0.053,5204,0.053,5205,0.053,5206,0.053,5207,0.105,5208,0.049,5209,0.105,5210,0.105,5211,0.053,5212,0.053,5213,0.053,5214,0.053,5215,0.053,5216,0.053,5217,0.269,5218,0.053,5219,0.053,5220,0.053,5221,0.137,5222,0.04,5223,0.053,5224,0.311,5225,0.053,5226,0.053,5227,0.105,5228,0.053,5229,0.043,5230,0.053,5231,0.044,5232,0.053,5233,0.053,5234,0.053,5235,0.053,5236,0.053,5237,0.053,5238,0.053,5239,0.053,5240,0.105,5241,0.049,5242,0.053,5243,0.053,5244,0.053,5245,0.053,5246,0.053,5247,0.053,5248,0.053,5249,0.049,5250,0.209,5251,0.049,5252,0.097,5253,0.105,5254,0.705,5255,0.046,5256,0.053,5257,0.261,5258,0.193,5259,0.053,5260,0.053,5261,0.053,5262,0.053,5263,0.053,5264,0.053,5265,0.157,5266,0.053,5267,0.049,5268,0.053,5269,0.053,5270,0.053,5271,0.049,5272,0.049,5273,0.053,5274,0.26,5275,0.105,5276,0.105,5277,0.053,5278,0.053,5279,0.053,5280,0.053,5281,0.053,5282,0.053,5283,0.053,5284,0.053,5285,0.053,5286,0.053,5287,0.105,5288,0.053,5289,0.053,5290,0.053,5291,0.053,5292,0.097,5293,0.609,5294,0.097,5295,0.105,5296,0.26,5297,0.157,5298,0.053,5299,0.157,5300,0.053,5301,0.053,5302,0.053,5303,0.105,5304,0.053,5305,0.053,5306,0.053,5307,0.053,5308,0.053,5309,0.053,5310,0.053,5311,0.157,5312,0.157,5313,0.053,5314,0.105,5315,0.105,5316,0.053,5317,0.053,5318,0.053,5319,0.053,5320,0.053,5321,0.053,5322,0.053,5323,0.053,5324,0.053,5325,0.053,5326,0.053,5327,0.097,5328,0.092,5329,0.053,5330,0.105,5331,0.046,5332,0.053,5333,0.092,5334,0.053,5335,0.26,5336,0.053,5337,0.044,5338,0.053,5339,0.053,5340,0.053,5341,0.053,5342,0.053,5343,0.053,5344,0.053,5345,0.053,5346,0.053,5347,0.053,5348,0.053,5349,0.053,5350,0.053,5351,0.053,5352,0.053,5353,0.053,5354,0.053,5355,0.053,5356,0.105,5357,0.049,5358,0.053,5359,0.053,5360,0.049,5361,0.049,5362,0.053,5363,0.053,5364,0.053,5365,0.053,5366,0.053,5367,0.053,5368,0.053,5369,0.053,5370,0.053,5371,0.053,5372,0.053,5373,0.053,5374,0.053,5375,0.053,5376,0.053,5377,0.053,5378,0.105,5379,0.105,5380,0.092,5381,0.053,5382,0.053,5383,0.105,5384,0.053,5385,0.053,5386,0.053,5387,0.053,5388,0.053,5389,0.053,5390,0.053,5391,0.209,5392,0.053,5393,0.053,5394,0.053,5395,0.053,5396,0.049,5397,0.053,5398,0.053,5399,0.085,5400,0.053,5401,0.046,5402,0.105,5403,0.105,5404,0.105,5405,0.105,5406,0.053,5407,0.053,5408,0.053,5409,0.105,5410,0.053,5411,0.053,5412,0.053,5413,0.046,5414,0.046,5415,0.053,5416,0.053,5417,0.053,5418,0.053,5419,0.053,5420,0.053,5421,0.053,5422,0.046,5423,0.053,5424,0.053,5425,0.193,5426,0.105,5427,0.105,5428,0.053,5429,0.053,5430,0.049,5431,0.092,5432,0.053,5433,0.053,5434,0.053,5435,0.053,5436,0.053,5437,0.053,5438,0.053,5439,0.053,5440,0.053,5441,0.053,5442,0.053,5443,0.053,5444,0.053,5445,0.157,5446,0.105,5447,0.053,5448,0.053,5449,0.053,5450,0.053,5451,0.053,5452,0.053,5453,0.053,5454,0.053,5455,0.053,5456,0.053,5457,0.053,5458,0.092,5459,0.053,5460,0.053,5461,0.053,5462,0.049,5463,0.053,5464,0.053,5465,0.053,5466,0.053,5467,0.053,5468,0.053,5469,0.053,5470,0.053,5471,0.092,5472,0.105,5473,0.053,5474,0.053,5475,0.053,5476,0.053,5477,0.053,5478,0.105,5479,0.053,5480,0.053,5481,0.053,5482,0.105,5483,0.053,5484,0.049,5485,0.053,5486,0.053,5487,0.053,5488,0.046,5489,0.105,5490,0.097,5491,0.145,5492,0.311,5493,0.105,5494,0.105,5495,0.053,5496,0.053,5497,0.053,5498,0.053,5499,0.053,5500,0.046,5501,0.053,5502,0.053,5503,0.053,5504,0.049,5505,0.053,5506,0.053,5507,0.053,5508,0.046,5509,0.105,5510,0.105,5511,0.105,5512,0.053,5513,0.097,5514,0.049,5515,0.053,5516,0.049,5517,0.053,5518,0.053,5519,0.088,5520,0.097,5521,0.053,5522,0.049,5523,0.049,5524,0.049,5525,0.049,5526,0.145,5527,0.053,5528,0.053,5529,0.053,5530,0.049]],["component/9",[2,0.251,266,0.348]],["keyword/9",[]],["title/10-1",[270,42.272,2060,53.023]],["name/10-1",[]],["text/10-1",[]],["component/10-1",[]],["keyword/10-1",[]],["title/10-2",[112,60.754]],["name/10-2",[]],["text/10-2",[]],["component/10-2",[]],["keyword/10-2",[]],["title/10-3",[2,28.669]],["name/10-3",[]],["text/10-3",[]],["component/10-3",[]],["keyword/10-3",[]],["title/10-4",[135,53.812,266,33.703]],["name/10-4",[]],["text/10-4",[]],["component/10-4",[]],["keyword/10-4",[]],["title/10",[2,24.344,5038,63.293]],["name/10",[5038,0.653]],["text/10",[2,3.802,11,4.418,25,4.553,26,4.994,30,7.549,31,5.624,32,5.528,35,5.954,41,4.551,62,3.548,112,5.431,122,3.995,127,3.429,135,5.665,270,4.45,294,5.234,606,5.362,870,7.606,894,7.434,1242,5.954,1315,5.431,1960,4.7,2692,6.33,2725,6.485,2761,6.191,3882,7.434,3940,6.664,5531,7.434,5532,7.852,5533,7.852,5534,6.871,5535,8.488,5536,8.488]],["component/10",[2,0.251,266,0.348]],["keyword/10",[]],["title/11-1",[0,28.028,206,41.385]],["name/11-1",[]],["text/11-1",[]],["component/11-1",[]],["keyword/11-1",[]],["title/11-2",[21,30.816,63,24.617]],["name/11-2",[]],["text/11-2",[]],["component/11-2",[]],["keyword/11-2",[]],["title/11-3",[24,30.232,244,36.731,324,35.015]],["name/11-3",[]],["text/11-3",[]],["component/11-3",[]],["keyword/11-3",[]],["title/11",[47,37.857,2021,46.073,2392,40.566]],["name/11",[5537,0.832]],["text/11",[2,1.9,25,5.372,26,6.071,43,3.939,47,7.425,51,6.68,52,4.703,54,5.685,56,9.317,57,7.729,60,2.678,61,2.852,62,4.292,106,3.975,118,3.275,127,2.542,162,3.208,207,3.455,243,3.323,270,3.299,308,2.995,344,6.486,358,4.461,435,3.975,486,3.086,825,3.275,864,3.836,917,4.413,919,4.754,1013,4.807,1032,3.88,1093,4.138,1095,3.252,1120,3.514,1147,3.836,1187,4.336,1258,4.692,2387,7.844,5538,6.292,5539,5.821,5540,5.821,5541,6.292,5542,6.292]],["component/11",[2,0.251,266,0.348]],["keyword/11",[]],["title/12-1",[0,17.481,61,22.793,162,25.636,578,38.42,868,33.07,1221,31.009]],["name/12-1",[]],["text/12-1",[]],["component/12-1",[]],["keyword/12-1",[]],["title/12-2",[21,16.176,61,19.184,69,24.055,190,27.445,349,22.692,578,32.336,868,27.833,1221,26.099]],["name/12-2",[]],["text/12-2",[]],["component/12-2",[]],["keyword/12-2",[]],["title/12",[25,23.306,26,25.56,862,40.487,2021,36.504,2402,42.41]],["name/12",[5543,0.832]],["text/12",[22,3.638,23,2.078,25,4.757,26,5.318,31,1.443,32,3.876,41,2.729,43,1.953,44,4.949,47,5.21,48,1.848,53,6.008,54,2.819,55,1.199,61,4.125,62,2.729,63,3.526,64,3.884,69,6.299,71,2.112,74,3.263,75,1.683,83,1.848,85,2.65,90,3.902,94,2.046,115,1.792,118,2.65,122,2.396,123,2.016,155,4.93,162,4.3,190,1.988,238,1.552,243,2.689,246,1.988,247,2.893,248,3.937,265,1.869,270,3.986,298,1.742,302,2.414,304,2.286,306,3.825,307,2.112,308,1.459,310,1.712,330,1.961,336,1.988,347,2.357,349,1.643,357,1.631,358,4.85,429,2.046,436,1.758,444,5.748,459,2.396,551,1.988,578,6.445,589,3.451,825,2.65,838,2.795,846,1.643,854,2.835,861,3.451,862,4.762,869,1.869,911,2.191,916,2.046,917,2.15,930,1.81,981,3.451,1010,1.742,1061,4.177,1075,1.742,1077,2.286,1093,2.016,1095,1.584,1114,2.191,1120,3.646,1129,2.15,1162,2.016,1195,2.191,1210,2.684,1221,5.202,1223,1.913,1247,3.037,1273,2.016,1393,1.758,1409,2.046,1566,3.889,1610,2.112,1651,2.342,1708,4.762,1832,2.236,1928,2.406,2021,2.016,2309,9.645,2387,2.046,2402,2.342,2406,3.397,2408,2.481,2409,3.889,2418,4.121,2590,1.643,3048,6.828,3063,4.294,4316,2.406,4711,3.713,5544,3.065,5545,8.435,5546,3.065,5547,5.09,5548,3.065,5549,3.889,5550,2.684,5551,3.065,5552,5.09,5553,3.065,5554,8.435,5555,3.065,5556,3.065,5557,3.065,5558,2.835,5559,5.09,5560,3.065,5561,3.065,5562,3.065,5563,3.065,5564,3.065,5565,3.065,5566,5.09,5567,2.835,5568,3.065,5569,5.09,5570,3.065,5571,3.065,5572,3.065,5573,8.418,5574,3.065,5575,3.065,5576,3.065,5577,3.065,5578,3.065,5579,3.065,5580,2.835,5581,3.065,5582,3.065,5583,3.065]],["component/12",[2,0.251,266,0.348]],["keyword/12",[]],["title/13-1",[0,28.028,63,24.617]],["name/13-1",[]],["text/13-1",[]],["component/13-1",[]],["keyword/13-1",[]],["title/13-2",[3,41.34,248,37.351,2021,40.734,2392,35.865]],["name/13-2",[]],["text/13-2",[]],["component/13-2",[]],["keyword/13-2",[]],["title/13-3",[5,41.34,855,44.27,862,45.179,2392,35.865]],["name/13-3",[]],["text/13-3",[]],["component/13-3",[]],["keyword/13-3",[]],["title/13-4",[9,39.673,67,35.517,68,27.743,69,31.549,75,30.48]],["name/13-4",[]],["text/13-4",[]],["component/13-4",[]],["keyword/13-4",[]],["title/13",[2,21.154,2392,40.566,2402,53.528]],["name/13",[5584,0.832]],["text/13",[2,2.886,25,5.131,26,5.378,32,5.544,47,5.165,61,4.929,64,3.229,67,6.116,68,4.777,69,5.433,70,4.429,71,4.832,74,5.435,75,5.249,127,4.393,196,5.206,201,4.099,235,4.611,248,7.37,303,3.599,308,3.338,358,4.808,359,7.503,457,3.703,855,5.011,862,6.972,868,4.611,897,5.504,898,4.611,928,6.786,964,5.011,1032,5.894,1173,5.357,1329,6.198,1360,6.14,1395,5.676,1548,4.141,2021,6.286,2402,5.357,3084,5.676,3197,7.303,5585,7.011,5586,7.011,5587,7.011]],["component/13",[2,0.251,266,0.348]],["keyword/13",[]],["title/14-1",[0,21.532,43,23.763,243,32.713,1513,39.128]],["name/14-1",[]],["text/14-1",[]],["component/14-1",[]],["keyword/14-1",[]],["title/14-2",[21,23.674,51,35.205,306,31.16,371,34.296]],["name/14-2",[]],["text/14-2",[]],["component/14-2",[]],["keyword/14-2",[]],["title/14-3",[24,23.953,51,31.549,52,25.425,53,31.839,243,29.316]],["name/14-3",[]],["text/14-3",[]],["component/14-3",[]],["keyword/14-3",[]],["title/14-4",[53,35.529,287,38.196,579,35.529,920,41.34]],["name/14-4",[]],["text/14-4",[]],["component/14-4",[]],["keyword/14-4",[]],["title/14-5",[51,35.205,290,37.764,303,31.793,306,31.16]],["name/14-5",[]],["text/14-5",[]],["component/14-5",[]],["keyword/14-5",[]],["title/14-6",[62,25.891,2657,40.734,2673,44.27,3108,48.624]],["name/14-6",[]],["text/14-6",[]],["component/14-6",[]],["keyword/14-6",[]],["title/14-7",[25,23.306,26,25.56,1548,32.779,2659,37.628,4367,43.574]],["name/14-7",[]],["text/14-7",[]],["component/14-7",[]],["keyword/14-7",[]],["title/14",[243,42.583,2387,53.812]],["name/14",[5588,0.832]],["text/14",[2,2.018,10,3.393,11,1.649,20,2.148,22,2.264,25,4.108,26,5.031,32,4.715,36,2.264,43,3.754,44,3.431,47,6.3,48,1.911,49,1.544,51,5.562,52,2.397,53,3.834,54,2.897,55,2.046,56,3.998,57,2.084,60,1.348,61,1.436,62,4.784,63,2.041,64,2.409,67,2.027,68,1.584,69,1.801,71,2.183,82,2.723,84,1.483,85,5.957,88,3.155,106,2.001,118,1.649,127,3.134,145,1.626,154,1.835,175,2.222,177,4.261,180,1.835,187,1.871,206,3.431,217,1.491,226,2.055,227,1.615,231,1.754,238,1.604,243,4.098,244,3.504,245,4.03,263,1.977,269,1.296,296,1.414,302,3.42,303,4.409,304,3.902,306,5.146,331,2.784,355,1.638,358,3.362,360,1.871,363,2.084,365,2.922,371,2.897,373,2.421,393,1.544,435,2.001,453,4.107,456,3.67,459,4.043,486,1.554,489,1.584,510,3.492,579,3.834,588,3.122,809,1.977,811,1.89,846,2.805,855,2.264,863,2.183,901,3.701,919,1.699,928,1.977,965,2.084,999,1.977,1019,1.817,1059,3.816,1075,2.974,1090,2.183,1095,2.704,1120,3.732,1202,2.115,1341,2.311,1385,2.311,1478,3.606,1513,4.222,1544,1.852,1675,2.084,1743,2.565,2290,2.775,2387,5.179,2395,2.311,2406,5.179,2409,3.998,2554,2.421,2590,1.699,2673,4.777,2681,2.183,2684,2.311,2728,6.183,3019,2.311,3108,6.091,3109,2.775,3201,4.235,3296,2.565,3646,2.363,3857,2.222,3903,2.264,3941,2.565,4290,2.775,4336,2.775,4367,2.487,4662,2.658,5539,4.84,5540,2.931,5589,5.232,5590,3.168,5591,3.168,5592,3.168,5593,3.168,5594,3.168,5595,3.168,5596,5.232,5597,8.589,5598,3.168,5599,6.683,5600,3.168,5601,3.168,5602,3.168,5603,3.168,5604,3.168,5605,3.168,5606,3.168,5607,3.168,5608,3.168,5609,3.168,5610,3.168,5611,2.931,5612,3.168,5613,2.565,5614,5.232,5615,3.168,5616,3.168,5617,3.168,5618,5.232]],["component/14",[2,0.251,266,0.348]],["keyword/14",[]],["title/15-1",[0,21.532,42,42.687,90,31.793,274,31.793]],["name/15-1",[]],["text/15-1",[]],["component/15-1",[]],["keyword/15-1",[]],["title/15-2",[3,53.812,1262,52.285]],["name/15-2",[]],["text/15-2",[]],["component/15-2",[]],["keyword/15-2",[]],["title/15-3",[5,46.758,90,35.96,5619,70.055]],["name/15-3",[]],["text/15-3",[]],["component/15-3",[]],["keyword/15-3",[]],["title/15-4",[9,57.626,171,31.291]],["name/15-4",[]],["text/15-4",[]],["component/15-4",[]],["keyword/15-4",[]],["title/15-5",[5620,80.622,5621,67.639]],["name/15-5",[]],["text/15-5",[]],["component/15-5",[]],["keyword/15-5",[]],["title/15",[42,55.565,2402,61.602]],["name/15",[5622,0.832]],["text/15",[0,3.547,2,3.081,21,2.693,24,1.693,25,3.693,26,3.559,31,1.062,41,3.777,42,6.061,43,3.374,45,2.997,46,3.881,47,3.361,49,4.974,51,2.958,52,2.849,55,4.264,57,1.484,62,4.008,64,4.817,72,4.203,73,3.473,75,2.154,80,1.826,81,2.12,84,2.911,86,4.487,106,2.478,122,1.062,127,0.911,134,1.612,184,1.391,196,2.834,209,1.375,210,1.219,232,3.473,243,1.192,244,1.183,245,1.36,247,1.282,248,1.36,256,1.249,258,5.524,263,1.408,264,1.319,265,1.375,274,4.922,275,3.287,288,1.183,296,1.751,302,1.924,303,3.616,306,3.888,316,2.812,324,1.128,325,3.105,331,5.801,332,3.586,347,2.409,356,1.724,357,2.087,358,3.129,363,1.484,366,2.229,382,4.209,390,5.194,393,2.537,416,1.36,419,1.976,420,1.529,423,4.212,427,3.591,429,1.506,434,3.375,436,5.288,449,1.444,454,1.135,457,3.285,459,2.449,486,1.106,576,1.375,604,2.51,617,1.375,631,1.646,642,2.618,675,5.899,780,1.529,818,5.429,841,1.682,864,1.375,901,1.249,930,1.332,957,1.408,965,1.484,1003,1.555,1032,2.419,1056,1.582,1075,1.282,1095,1.166,1138,1.484,1143,1.893,1147,4.295,1159,3.415,1262,1.463,1285,1.529,1287,1.408,1312,4.445,1329,1.463,1374,1.249,1400,1.682,1403,1.529,1429,1.771,1453,1.529,1461,1.506,1494,1.484,1544,1.319,1559,2.58,1692,1.771,2006,1.893,2033,1.646,2065,5.606,2081,3.175,2082,4.085,2083,4.212,2107,4.752,2139,2.087,2160,1.976,2272,1.724,2280,1.646,2392,1.306,2402,1.724,2408,1.826,2409,3.976,2438,1.646,2460,5.447,3197,1.724,3245,1.976,3450,1.826,3845,6.256,3846,1.893,3894,1.976,4316,7.783,5621,5.218,5623,2.087,5624,2.256,5625,2.256,5626,2.256,5627,2.256,5628,2.256,5629,2.256,5630,3.922,5631,2.256,5632,2.256,5633,1.976,5634,2.256,5635,1.826,5636,2.256,5637,2.256,5638,1.976,5639,2.256,5640,2.256,5641,2.256,5642,2.256,5643,2.256,5644,2.256,5645,2.256,5646,2.256,5647,2.256,5648,2.256,5649,2.256,5650,2.256,5651,2.256,5652,2.087,5653,2.256,5654,5.447,5655,8.303,5656,2.256,5657,6.169,5658,2.087,5659,2.256,5660,1.976,5661,3.922,5662,5.204,5663,2.256,5664,1.976]],["component/15",[2,0.251,266,0.348]],["keyword/15",[]],["title/16-1",[0,19.296,2,16.76,225,37.628,269,22.706,3821,43.574]],["name/16-1",[]],["text/16-1",[]],["component/16-1",[]],["keyword/16-1",[]],["title/16-2",[21,23.674,269,25.338,1442,47.325,5665,61.936]],["name/16-2",[]],["text/16-2",[]],["component/16-2",[]],["keyword/16-2",[]],["title/16-3",[272,56.713,278,38.471,1267,47.492]],["name/16-3",[]],["text/16-3",[]],["component/16-3",[]],["keyword/16-3",[]],["title/16-4",[279,40.961,861,47.492,2679,43.716]],["name/16-4",[]],["text/16-4",[]],["component/16-4",[]],["keyword/16-4",[]],["title/16-5",[62,29.285,861,47.492,4037,56.713]],["name/16-5",[]],["text/16-5",[]],["component/16-5",[]],["keyword/16-5",[]],["title/16-6",[861,47.492,2615,43.203,4038,56.713]],["name/16-6",[]],["text/16-6",[]],["component/16-6",[]],["keyword/16-6",[]],["title/16-7",[861,41.989,2590,33.211,2615,38.196,5666,61.936]],["name/16-7",[]],["text/16-7",[]],["component/16-7",[]],["keyword/16-7",[]],["title/16-8",[2615,43.203,2679,43.716,5667,70.055]],["name/16-8",[]],["text/16-8",[]],["component/16-8",[]],["keyword/16-8",[]],["title/16-9",[270,32.474,861,41.989,2615,38.196,4039,54.244]],["name/16-9",[]],["text/16-9",[]],["component/16-9",[]],["keyword/16-9",[]],["title/16-10",[280,44.257,2679,43.716,5668,61.354]],["name/16-10",[]],["text/16-10",[]],["component/16-10",[]],["keyword/16-10",[]],["title/16-11",[2590,37.564,4042,58.773,5668,61.354]],["name/16-11",[]],["text/16-11",[]],["component/16-11",[]],["keyword/16-11",[]],["title/16-12",[53,31.839,306,27.924,653,29.536,921,38.254,4043,46.566]],["name/16-12",[]],["text/16-12",[]],["component/16-12",[]],["keyword/16-12",[]],["title/16-13",[653,37.279,4044,61.354,5669,64.809]],["name/16-13",[]],["text/16-13",[]],["component/16-13",[]],["keyword/16-13",[]],["title/16-14",[269,25.338,283,44.27,303,31.793,5670,50.141]],["name/16-14",[]],["text/16-14",[]],["component/16-14",[]],["keyword/16-14",[]],["title/16-15",[31,26.126,135,37.047,252,28.893,4047,48.611,5670,44.934]],["name/16-15",[]],["text/16-15",[]],["component/16-15",[]],["keyword/16-15",[]],["title/16-16",[269,28.659,1131,40.566,4048,61.354]],["name/16-16",[]],["text/16-16",[]],["component/16-16",[]],["keyword/16-16",[]],["title/16-17",[97,36.215,269,25.338,4049,57.299,5670,50.141]],["name/16-17",[]],["text/16-17",[]],["component/16-17",[]],["keyword/16-17",[]],["title/16-18",[653,37.279,4050,64.809,5671,70.055]],["name/16-18",[]],["text/16-18",[]],["component/16-18",[]],["keyword/16-18",[]],["title/16-19",[270,36.731,4051,64.809,5670,56.713]],["name/16-19",[]],["text/16-19",[]],["component/16-19",[]],["keyword/16-19",[]],["title/16-20",[227,35.716,284,52.243,2679,43.716]],["name/16-20",[]],["text/16-20",[]],["component/16-20",[]],["keyword/16-20",[]],["title/16-21",[168,40.734,227,31.577,269,25.338,4052,54.244]],["name/16-21",[]],["text/16-21",[]],["component/16-21",[]],["keyword/16-21",[]],["title/16-22",[1017,35.205,2406,41.34,2534,42.687,4053,54.244]],["name/16-22",[]],["text/16-22",[]],["component/16-22",[]],["keyword/16-22",[]],["title/16",[269,32.982,827,56.551]],["name/16",[5672,0.832]],["text/16",[0,3.349,2,2.468,6,1.086,19,0.937,25,0.673,29,1.025,32,1.476,38,1.104,39,2.339,46,1,52,0.734,53,3.221,54,0.887,55,5.015,60,1.232,62,3.251,64,0.738,81,2.141,84,1.355,85,0.834,88,0.966,97,1.693,108,1.577,122,1.363,123,2.605,127,1.17,145,0.823,147,1.963,149,1.086,151,1.039,157,1.577,161,1.012,167,1.258,168,5.374,171,0.622,177,1.59,184,0.988,203,1.124,208,1.631,209,1.765,213,0.911,217,1.865,225,2.685,227,1.476,228,1.195,235,1.054,236,1.631,238,1.466,243,1.529,249,1.963,252,2.527,268,1.677,269,4.329,270,0.84,271,1.145,272,1.297,286,3.196,293,3.027,295,1.529,297,2.273,298,1.646,300,2.679,302,2.076,303,4.195,306,3.153,308,3.255,310,1.617,318,1.807,326,1.933,327,1.069,330,1.853,336,2.569,337,4.013,338,1.169,339,1.145,344,1.012,347,0.742,349,3.666,352,1.258,356,1.224,357,0.853,358,0.806,364,1,376,2.112,377,2.344,378,2.889,382,2.644,384,3.207,390,1.71,393,0.781,429,1.933,432,0.977,438,0.919,454,1.457,468,1.039,508,1.71,588,1.728,653,0.853,811,0.956,831,1.258,846,0.859,861,3.806,870,2.779,874,2.811,875,1.145,878,1.104,888,1.069,895,1.195,901,0.887,909,2.112,919,0.859,921,1.104,925,1.145,927,2.429,978,1.104,984,0.988,1017,0.911,1019,1.661,1061,1.853,1084,1.297,1091,2.889,1095,0.828,1105,1.297,1120,0.895,1126,2.112,1131,0.928,1157,2.502,1176,1.145,1223,1,1228,1.258,1242,2.031,1267,1.963,1315,1.853,1346,2.112,1402,2.429,1494,3.193,1544,0.937,1638,2.679,1649,1.069,1675,1.054,1680,2.535,1713,1.195,1737,7.771,1832,2.112,2038,2.536,2065,0.937,2389,1.224,2507,1.069,2519,1.124,2533,6.095,2534,1.996,2535,1.344,2553,1.297,2554,1.224,2568,1.258,2577,2.679,2579,2.429,2582,2.07,2583,2.644,2585,2.472,2590,1.553,2614,3.027,2634,1.482,2635,1.403,2638,0.834,2645,1.169,2664,1.344,2679,1.807,2705,1.124,2741,1.145,2742,1.482,2762,1.482,2852,1.482,2896,2.536,2897,2.679,3078,1.086,3120,3.323,3254,1.258,3364,4.917,3433,2.536,3601,1.403,3607,2.212,3667,1.012,3819,2.536,3821,7.375,3864,1.482,3890,4.71,3891,1.297,3920,6.357,3940,3.11,3966,5.49,4367,2.273,4706,1.482,4768,1.482,5458,2.536,5523,1.482,5524,1.482,5532,1.482,5668,2.536,5669,1.482,5670,8.436,5673,2.896,5674,6.268,5675,4.855,5676,5.614,5677,1.602,5678,1.602,5679,2.896,5680,2.679,5681,2.896,5682,2.896,5683,2.896,5684,2.896,5685,2.896,5686,2.896,5687,1.602,5688,2.896,5689,1.602,5690,1.602,5691,2.896,5692,1.602,5693,2.896,5694,1.602,5695,1.602,5696,2.896,5697,2.679,5698,1.602,5699,2.896,5700,1.602,5701,1.602,5702,2.896,5703,1.602,5704,2.344,5705,1.602,5706,1.482,5707,1.602,5708,1.602,5709,1.482,5710,1.602,5711,1.602,5712,1.602,5713,1.602,5714,1.602,5715,4.855,5716,1.602,5717,1.602,5718,10.42,5719,3.961,5720,2.896,5721,1.602,5722,1.602,5723,1.602,5724,1.602,5725,1.602,5726,2.896,5727,1.602,5728,1.482,5729,2.896,5730,2.679,5731,1.602,5732,3.961,5733,1.602,5734,1.403,5735,1.602,5736,1.602,5737,1.602,5738,2.679,5739,1.602,5740,1.602,5741,1.602,5742,1.602,5743,1.602,5744,5.614,5745,2.896,5746,4.855,5747,2.896,5748,2.896,5749,5.614,5750,2.896,5751,2.896,5752,2.896,5753,2.896,5754,2.896,5755,2.896,5756,1.602,5757,2.896,5758,6.268,5759,1.602,5760,2.896,5761,1.602,5762,1.602,5763,1.602,5764,1.602,5765,2.896,5766,1.482,5767,1.602,5768,1.482,5769,1.602,5770,1.602,5771,1.602,5772,1.602,5773,1.602,5774,1.602,5775,2.896,5776,3.961,5777,1.602,5778,2.896,5779,1.602,5780,1.602,5781,1.602,5782,2.896,5783,2.896,5784,1.602,5785,2.679,5786,1.602,5787,1.602,5788,1.602,5789,1.602,5790,1.602]],["component/16",[2,0.251,266,0.348]],["keyword/16",[]],["title/17-1",[0,21.532,256,34.296,1495,65.392]],["name/17-1",[]],["text/17-1",[]],["component/17-1",[]],["keyword/17-1",[]],["title/17-2",[3,53.812,1495,60.123]],["name/17-2",[]],["text/17-2",[]],["component/17-2",[]],["keyword/17-2",[]],["title/17-3",[5,46.758,256,38.792,1495,52.243]],["name/17-3",[]],["text/17-3",[]],["component/17-3",[]],["keyword/17-3",[]],["title/17-4",[11,36.468,21,26.776,140,48.282]],["name/17-4",[]],["text/17-4",[]],["component/17-4",[]],["keyword/17-4",[]],["title/17-5",[41,37.564,278,38.471,286,35.716]],["name/17-5",[]],["text/17-5",[]],["component/17-5",[]],["keyword/17-5",[]],["title/17-6",[236,39.465,279,40.961,286,35.716]],["name/17-6",[]],["text/17-6",[]],["component/17-6",[]],["keyword/17-6",[]],["title/17-7",[11,32.242,24,26.728,217,29.154,322,48.624]],["name/17-7",[]],["text/17-7",[]],["component/17-7",[]],["keyword/17-7",[]],["title/17-8",[62,29.285,287,43.203,615,53.528]],["name/17-8",[]],["text/17-8",[]],["component/17-8",[]],["keyword/17-8",[]],["title/17-9",[62,29.285,236,39.465,290,42.713]],["name/17-9",[]],["text/17-9",[]],["component/17-9",[]],["keyword/17-9",[]],["title/17-10",[62,29.285,275,44.257,2657,46.073]],["name/17-10",[]],["text/17-10",[]],["component/17-10",[]],["keyword/17-10",[]],["title/17-11",[326,46.758,457,37.001,2659,47.492]],["name/17-11",[]],["text/17-11",[]],["component/17-11",[]],["keyword/17-11",[]],["title/17-12",[130,46.758,648,41.372,1624,51.1]],["name/17-12",[]],["text/17-12",[]],["component/17-12",[]],["keyword/17-12",[]],["title/17-13",[184,43.203,2666,53.528,4882,56.713]],["name/17-13",[]],["text/17-13",[]],["component/17-13",[]],["keyword/17-13",[]],["title/17-14",[457,37.001,1010,39.819,4181,58.773]],["name/17-14",[]],["text/17-14",[]],["component/17-14",[]],["keyword/17-14",[]],["title/17-15",[62,29.285,333,46.758,4189,58.773]],["name/17-15",[]],["text/17-15",[]],["component/17-15",[]],["keyword/17-15",[]],["title/17-16",[62,29.285,1386,46.758,4194,58.773]],["name/17-16",[]],["text/17-16",[]],["component/17-16",[]],["keyword/17-16",[]],["title/17-17",[62,29.285,4204,58.773,4579,46.073]],["name/17-17",[]],["text/17-17",[]],["component/17-17",[]],["keyword/17-17",[]],["title/17-18",[154,35.865,909,45.179,3896,54.244,4209,50.141]],["name/17-18",[]],["text/17-18",[]],["component/17-18",[]],["keyword/17-18",[]],["title/17",[217,37.95,827,56.551]],["name/17",[5791,0.832]],["text/17",[2,1.429,11,1.462,21,1.073,30,3.873,41,1.506,43,1.078,62,5.524,76,2.356,77,2.598,81,2.557,86,2.557,88,1.694,89,1.821,90,3.147,118,1.462,127,1.135,130,3.158,154,1.626,157,2.577,177,4.41,182,6.823,184,3.781,207,1.542,213,5.529,217,5.065,221,1.904,225,4.878,227,1.432,236,6.337,248,1.694,249,1.904,254,5.432,256,2.62,269,1.149,275,1.774,286,4.722,302,1.038,303,1.442,306,1.413,308,1.337,322,8.214,326,4.802,333,5.811,347,1.3,349,1.506,357,1.495,390,1.659,393,5.245,436,1.611,438,2.714,457,2.499,460,1.97,615,4.685,623,2.094,648,2.794,869,1.712,874,1.626,877,1.732,901,1.555,909,5.858,912,2.049,919,1.506,928,2.953,943,7.384,964,6.953,1010,3.485,1019,1.611,1040,3.715,1041,5.143,1080,2.007,1119,2.094,1137,2.146,1242,7.547,1247,2.823,1261,1.875,1277,3.261,1297,2.094,1315,6.224,1368,1.642,1385,2.049,1386,4.092,1393,1.611,1461,1.875,1495,8.218,1507,3.715,1553,2.274,1649,1.875,1694,4.144,1696,1.875,1888,2.094,2519,4.3,2531,1.821,2615,4.437,2618,6.882,2733,4.144,3119,2.205,3614,1.904,3821,5.648,3890,2.356,3891,2.274,3920,2.094,3941,2.274,3970,4.572,4267,2.356,4367,3.715,4369,2.356,4579,5.282,4659,1.97,4882,3.83,5141,2.274,5766,2.598,5768,2.598,5792,2.808,5793,2.808,5794,12.352,5795,2.808,5796,2.356,5797,2.598,5798,5.37,5799,4.732,5800,2.808,5801,2.808,5802,2.808,5803,2.808,5804,2.46,5805,2.808]],["component/17",[2,0.251,266,0.348]],["keyword/17",[]],["title/18-1",[0,28.028,323,40.04]],["name/18-1",[]],["text/18-1",[]],["component/18-1",[]],["keyword/18-1",[]],["title/18-2",[21,23.674,94,41.34,2392,35.865,5806,48.624]],["name/18-2",[]],["text/18-2",[]],["component/18-2",[]],["keyword/18-2",[]],["title/18-3",[24,30.232,74,35.015,1247,41.8]],["name/18-3",[]],["text/18-3",[]],["component/18-3",[]],["keyword/18-3",[]],["title/18-4",[287,49.719,391,42.583]],["name/18-4",[]],["text/18-4",[]],["component/18-4",[]],["keyword/18-4",[]],["title/18-5",[290,42.713,349,37.564,1221,43.203]],["name/18-5",[]],["text/18-5",[]],["component/18-5",[]],["keyword/18-5",[]],["title/18-6",[147,47.492,2657,46.073,3903,50.073]],["name/18-6",[]],["text/18-6",[]],["component/18-6",[]],["keyword/18-6",[]],["title/18",[44,48.736]],["name/18",[5807,0.832]],["text/18",[0,1.223,2,0.768,21,1.662,24,0.6,25,1.477,26,0.64,32,0.708,36,1.818,38,0.957,41,0.745,43,3.387,44,6.055,47,0.751,49,1.714,52,1.611,55,5.208,60,1.851,61,1.594,63,2.314,64,1.619,67,2.783,68,1.271,70,2.222,74,1.271,75,1.931,79,1.943,81,1.374,82,2.264,84,4.715,85,1.324,90,1.805,91,0.957,94,0.927,104,1.062,111,2.994,122,0.654,124,1.784,127,2.724,145,2.233,146,0.927,147,5.138,149,0.942,161,0.878,162,0.708,175,1.784,177,1.931,180,2.036,189,1.607,196,2.761,201,1.487,207,0.763,209,0.847,210,1.374,211,0.797,213,1.445,217,3.175,226,0.901,231,0.769,238,1.288,241,0.889,243,0.734,245,1.534,246,5.147,247,4.511,256,3.462,259,0.867,263,0.867,265,1.551,268,2.519,274,4.659,288,1.333,298,2.472,308,2.413,310,0.776,318,0.867,323,0.69,325,3.025,327,0.927,328,0.927,337,2.514,347,0.643,349,1.886,360,1.502,361,3.091,366,1.445,382,0.757,436,2.017,438,4.348,444,0.878,454,1.769,493,0.838,510,0.927,579,2.908,581,2.881,603,3.288,610,1.697,613,1.753,617,2.144,619,1.036,631,1.013,783,3.384,808,0.901,825,6.211,837,1.697,838,0.763,846,3.353,860,0.993,862,1.855,863,0.957,864,3.091,869,2.144,878,1.753,901,2.807,903,0.974,916,5.059,919,1.886,930,0.82,934,1.724,943,1.013,957,0.867,967,1.062,973,1.896,977,0.974,979,0.957,993,3.698,999,0.867,1005,0.974,1010,1.445,1017,0.79,1032,2.682,1033,1.855,1038,1.036,1041,0.993,1046,0.914,1059,1.013,1063,0.974,1068,3.974,1075,1.445,1077,1.036,1081,6.381,1086,2.077,1089,0.942,1090,1.753,1095,2.62,1110,1.996,1120,1.42,1121,1.062,1129,1.784,1131,0.804,1140,1.036,1145,0.867,1157,2.222,1159,0.763,1170,0.847,1177,1.036,1187,1.753,1190,3.556,1191,0.974,1202,1.697,1221,3.514,1223,0.867,1227,1.036,1228,1.091,1241,1.217,1247,0.829,1252,1.062,1254,1.013,1259,0.942,1262,1.649,1273,1.673,1274,1.062,1287,2.714,1329,2.281,1338,1.784,1393,0.797,1406,2.714,1409,0.927,1421,1.125,1453,0.942,1478,1.753,1479,1.217,1503,0.901,1513,0.878,1544,2.964,1546,1.036,1548,2.569,1563,4.374,1603,1.607,1610,0.957,1636,1.036,1642,0.942,1643,2.687,1648,1.125,1659,1.062,1675,0.914,1680,0.889,1697,1.996,1711,0.878,1723,0.974,1750,1.062,1892,0.942,1901,0.914,2308,1.285,2326,1.166,2392,0.804,2434,1.013,2446,1.285,2825,4.104,2959,1.013,2983,1.036,3056,1.062,3079,0.974,3124,1.166,3142,2.565,3186,2.623,3286,1.217,3667,2.748,3683,1.091,3841,1.062,3857,0.974,4260,1.217,4312,7.011,4315,1.217,4414,1.036,4999,1.166,5080,1.125,5549,1.062,5664,1.217,5734,1.217,5808,1.285,5809,1.285,5810,1.285,5811,5.272,5812,3.08,5813,1.389,5814,1.389,5815,5.698,5816,4.024,5817,3.253,5818,1.389,5819,5.698,5820,2.623,5821,1.389,5822,1.389,5823,1.389,5824,1.389,5825,6.252,5826,2.543,5827,2.543,5828,4.349,5829,2.543,5830,1.285,5831,2.353,5832,1.389,5833,3.517,5834,1.389,5835,1.389,5836,2.543,5837,1.389,5838,1.389,5839,2.543,5840,2.227,5841,1.996,5842,2.227,5843,1.389,5844,1.285,5845,1.389,5846,4.69,5847,2.543,5848,1.389,5849,1.285,5850,1.389,5851,2.543,5852,2.543,5853,1.285,5854,1.389,5855,1.389,5856,1.389,5857,1.217,5858,1.389,5859,1.389,5860,1.166,5861,1.389,5862,1.389,5863,1.389,5864,1.217,5865,1.389,5866,2.227,5867,3.08,5868,1.285,5869,1.389,5870,1.389,5871,1.389,5872,2.543,5873,1.389,5874,1.389,5875,1.389,5876,1.389,5877,1.389,5878,1.389,5879,1.389,5880,1.389,5881,1.389,5882,1.389,5883,1.389,5884,1.389,5885,1.389,5886,1.389,5887,2.543,5888,1.389,5889,1.389,5890,1.389,5891,1.389,5892,1.217,5893,2.543,5894,1.217,5895,1.389,5896,1.285,5897,2.543,5898,3.517,5899,3.253,5900,1.389,5901,1.389]],["component/18",[2,0.251,266,0.348]],["keyword/18",[]],["title/19-1",[0,28.028,323,40.04]],["name/19-1",[]],["text/19-1",[]],["component/19-1",[]],["keyword/19-1",[]],["title/19-2",[21,26.776,74,35.015,1247,41.8]],["name/19-2",[]],["text/19-2",[]],["component/19-2",[]],["keyword/19-2",[]],["title/19",[244,32.474,245,37.351,581,35.205,595,46.189]],["name/19",[5902,0.832]],["text/19",[2,1.483,25,3.108,31,2.312,43,4.581,44,3.799,47,3.999,49,5.655,51,2.792,55,4.538,62,4.446,63,2.719,64,4.101,70,3.103,72,4.416,88,2.962,90,3.799,111,2.9,118,2.557,122,5.006,127,1.984,162,2.504,177,2.697,217,4.192,231,2.72,243,6.679,244,3.88,245,2.962,270,5.198,274,2.521,306,3.723,307,3.385,308,2.338,309,3.065,327,3.278,329,3.51,331,3.938,360,2.9,371,2.72,379,3.143,434,4.8,436,2.817,453,3.856,581,5.062,588,4.416,595,5.519,617,2.994,809,3.065,825,2.557,861,5.017,869,2.994,916,3.278,919,2.633,937,3.385,984,3.029,1017,4.207,1120,2.743,1145,3.065,1258,3.663,1281,3.51,1393,2.817,1401,3.278,1459,3.582,1478,3.385,1642,3.33,2387,3.278,2392,2.844,2673,3.51,2684,3.582,3217,3.753,4313,6.482,4508,6.482,4578,4.544,5217,3.663,5294,4.544,5558,4.544,5567,4.544,5635,3.976,5903,4.911,5904,4.911,5905,4.911,5906,4.911,5907,8.239,5908,4.911,5909,4.911,5910,8.239,5911,4.911,5912,4.911,5913,4.911,5914,7.401,5915,4.911,5916,4.911,5917,4.911,5918,4.911,5919,4.911,5920,4.911,5921,4.911,5922,4.911]],["component/19",[2,0.251,266,0.348]],["keyword/19",[]],["title/20-1",[0,28.028,323,40.04]],["name/20-1",[]],["text/20-1",[]],["component/20-1",[]],["keyword/20-1",[]],["title/20-2",[21,30.816,74,40.297]],["name/20-2",[]],["text/20-2",[]],["component/20-2",[]],["keyword/20-2",[]],["title/20",[245,37.351,263,38.65,264,36.215,265,37.764]],["name/20",[5923,0.832]],["text/20",[0,2.977,2,2.129,11,4.458,19,2.693,25,1.934,26,4.418,42,3.175,43,1.767,49,4.676,55,5.557,60,1.961,62,1.926,63,1.407,122,3.318,127,1.861,145,2.365,155,5.553,162,2.349,180,2.667,189,2.91,208,2.595,244,2.415,245,4.251,251,2.948,263,6.452,264,6.376,265,5.849,268,4.082,274,3.619,298,2.618,306,3.546,308,2.193,374,3.075,382,2.509,578,5.386,590,3.52,595,5.257,818,2.451,825,3.67,837,3.075,838,3.871,978,4.859,1068,5.421,1075,4.007,1085,3.075,1120,2.573,1203,3.123,1223,2.875,1287,4.399,1393,2.642,1427,3.435,1510,4.034,1513,2.91,1522,3.865,1544,2.693,1548,2.72,1559,3.03,1563,5.553,2172,6.174,2681,3.175,2983,3.435,3142,3.36,5549,3.52,5550,4.034,5633,4.034,5924,7.049,5925,8.563,5926,4.262,5927,4.606,5928,4.606,5929,4.262,5930,4.262,5931,9.593,5932,8.402,5933,3.865,5934,4.606,5935,7.049,5936,4.262,5937,4.262,5938,4.262,5939,4.606,5940,7.049,5941,4.606,5942,6.522,5943,7.049,5944,4.262,5945,4.606,5946,4.606]],["component/20",[2,0.251,266,0.348]],["keyword/20",[]],["title/21-1",[0,28.028,323,40.04]],["name/21-1",[]],["text/21-1",[]],["component/21-1",[]],["keyword/21-1",[]],["title/21-2",[21,26.776,74,35.015,486,34.36]],["name/21-2",[]],["text/21-2",[]],["component/21-2",[]],["keyword/21-2",[]],["title/21-3",[202,34.229,278,30.48,1513,35.065,2365,37.628,2983,41.392]],["name/21-3",[]],["text/21-3",[]],["component/21-3",[]],["keyword/21-3",[]],["title/21-4",[60,23.623,61,25.16,86,29.994,259,34.636,4032,44.934]],["name/21-4",[]],["text/21-4",[]],["component/21-4",[]],["keyword/21-4",[]],["title/21-5",[355,32.015,617,37.764,2115,57.299,4033,50.141]],["name/21-5",[]],["text/21-5",[]],["component/21-5",[]],["keyword/21-5",[]],["title/21-6",[1513,44.257,2365,47.492,4034,61.354]],["name/21-6",[]],["text/21-6",[]],["component/21-6",[]],["keyword/21-6",[]],["title/21-7",[86,33.47,259,38.65,279,36.215,3857,43.444]],["name/21-7",[]],["text/21-7",[]],["component/21-7",[]],["keyword/21-7",[]],["title/21-8",[456,49.139,4037,56.713,5947,64.809]],["name/21-8",[]],["text/21-8",[]],["component/21-8",[]],["keyword/21-8",[]],["title/21-9",[86,37.857,405,46.073,4038,56.713]],["name/21-9",[]],["text/21-9",[]],["component/21-9",[]],["keyword/21-9",[]],["title/21-10",[39,36.578,280,39.128,920,41.34,5948,54.244]],["name/21-10",[]],["text/21-10",[]],["component/21-10",[]],["keyword/21-10",[]],["title/21-11",[86,37.857,990,49.139,4042,58.773]],["name/21-11",[]],["text/21-11",[]],["component/21-11",[]],["keyword/21-11",[]],["title/21-12",[86,37.857,259,43.716,4043,58.773]],["name/21-12",[]],["text/21-12",[]],["component/21-12",[]],["keyword/21-12",[]],["title/21-13",[59,40.167,283,44.27,534,47.325,1131,35.865]],["name/21-13",[]],["text/21-13",[]],["component/21-13",[]],["keyword/21-13",[]],["title/21-14",[59,40.167,131,41.989,180,35.865,4047,54.244]],["name/21-14",[]],["text/21-14",[]],["component/21-14",[]],["keyword/21-14",[]],["title/21-15",[59,40.167,1287,38.65,4048,54.244,5949,51.962]],["name/21-15",[]],["text/21-15",[]],["component/21-15",[]],["keyword/21-15",[]],["title/21-16",[284,46.189,1393,35.529,2590,33.211,2609,40.734]],["name/21-16",[]],["text/21-16",[]],["component/21-16",[]],["keyword/21-16",[]],["title/21-17",[1393,35.529,1415,40.734,2590,33.211,4052,54.244]],["name/21-17",[]],["text/21-17",[]],["component/21-17",[]],["keyword/21-17",[]],["title/21-18",[2590,37.564,2609,46.073,4053,61.354]],["name/21-18",[]],["text/21-18",[]],["component/21-18",[]],["keyword/21-18",[]],["title/21-19",[254,30.997,288,29.102,653,29.536,3857,38.933,4054,51.348]],["name/21-19",[]],["text/21-19",[]],["component/21-19",[]],["keyword/21-19",[]],["title/21",[86,43.568,259,50.31]],["name/21",[5950,0.832]],["text/21",[2,0.622,21,0.787,25,1.52,26,2.686,29,1.317,30,2.287,31,1.704,32,1.049,36,1.471,39,3.445,41,1.104,44,3.412,47,3.152,54,1.14,55,4.565,59,2.348,63,1.105,64,2.232,65,1.269,81,1.956,82,1.071,84,0.964,85,1.885,86,6.959,88,1.241,89,1.335,90,1.858,111,1.216,115,2.117,117,1.255,118,2.523,127,2.357,132,1.284,155,1.335,157,1.121,162,3.388,180,2.806,181,1.419,187,1.216,189,1.3,196,1.121,201,1.204,206,1.858,207,2.661,211,1.181,217,0.969,235,2.381,238,1.042,244,2.541,254,3.258,259,7.036,269,0.842,270,1.079,274,1.057,288,1.898,296,0.919,302,2.923,308,0.98,330,1.317,364,1.284,365,3.712,366,4.164,371,2.005,374,1.374,405,2.381,428,1.395,434,1.335,435,1.3,436,1.181,444,4.628,456,5.893,457,1.087,459,2.746,482,1.535,510,2.416,581,2.754,585,1.395,589,1.395,617,2.207,653,1.926,783,2.416,810,1.241,811,1.228,818,1.095,825,1.071,838,1.988,846,2.598,860,1.471,864,2.955,883,4.092,900,2.495,904,1.501,914,2.454,917,1.444,926,1.444,934,1.395,937,1.419,939,2.183,964,1.471,977,1.444,979,1.419,981,1.395,984,1.269,987,2.495,990,4.662,999,1.284,1015,3.234,1019,2.077,1024,2.955,1037,1.335,1072,1.616,1089,1.395,1093,1.354,1095,1.064,1120,2.022,1122,1.444,1131,3.848,1141,1.727,1147,2.207,1156,1.3,1161,1.535,1162,1.354,1163,1.573,1170,1.255,1171,1.573,1178,1.501,1180,1.471,1181,1.317,1190,1.284,1211,1.3,1218,1.395,1223,1.284,1254,1.501,1259,1.395,1261,2.416,1285,2.454,1287,1.284,1289,1.616,1292,1.616,1293,3.464,1314,1.573,1320,3.535,1321,1.419,1329,2.348,1335,1.501,1340,2.381,1356,2.931,1386,2.416,1393,1.181,1394,1.501,1415,1.354,1416,4.716,1432,1.535,1435,1.666,1439,3.285,1441,1.269,1465,1.535,1503,1.335,1513,3.685,1515,3.234,1519,1.666,1525,1.535,1548,1.216,1593,1.666,1603,3.685,1610,1.419,1613,1.904,1643,2.766,1675,1.354,1680,1.317,1696,1.374,1711,2.287,1832,2.641,1843,1.501,1873,4.092,1892,3.955,1901,1.354,1906,1.535,1909,3.234,2093,1.573,2365,2.454,2395,1.501,2405,1.573,2590,4.238,2609,1.354,2645,1.501,2648,1.535,2983,2.7,3056,1.573,3079,3.399,3081,2.641,3142,1.501,3215,1.616,3303,1.616,3373,1.666,3399,1.501,3608,1.904,3643,1.666,3828,1.616,3829,1.444,3857,4.092,3925,1.727,4259,1.727,4307,3.171,4316,1.616,4414,5.895,4443,1.803,4503,2.539,5229,1.666,5422,1.803,5635,1.666,5796,1.727,5820,2.7,5844,4.483,5947,5.397,5948,1.803,5951,1.616,5952,1.727,5953,2.058,5954,2.058,5955,4.846,5956,2.058,5957,2.058,5958,2.058,5959,2.058,5960,5.833,5961,5.833,5962,2.058,5963,3.62,5964,2.058,5965,2.058,5966,3.62,5967,2.058,5968,3.62,5969,3.62,5970,4.846,5971,2.058,5972,2.058,5973,2.842,5974,4.846,5975,2.058,5976,3.62,5977,2.058,5978,2.058,5979,2.058,5980,2.058,5981,2.058,5982,2.058,5983,2.058,5984,2.058,5985,2.058,5986,2.058,5987,2.058,5988,2.058,5989,1.904,5990,7.904,5991,2.058,5992,3.62,5993,3.62,5994,3.62,5995,2.058,5996,3.62,5997,2.058,5998,1.803,5999,1.904,6000,2.058,6001,2.058,6002,5.833,6003,1.904,6004,2.058,6005,2.058,6006,2.058,6007,2.058,6008,2.058,6009,2.058,6010,1.904,6011,2.058,6012,2.058,6013,2.058,6014,2.058,6015,2.058]],["component/21",[2,0.251,266,0.348]],["keyword/21",[]],["title/22-1",[0,28.028,323,40.04]],["name/22-1",[]],["text/22-1",[]],["component/22-1",[]],["keyword/22-1",[]],["title/22-2",[21,26.776,74,35.015,486,34.36]],["name/22-2",[]],["text/22-2",[]],["component/22-2",[]],["keyword/22-2",[]],["title/22-3",[154,35.865,278,34.012,391,32.713,1190,38.65]],["name/22-3",[]],["text/22-3",[]],["component/22-3",[]],["keyword/22-3",[]],["title/22-4",[162,35.716,279,40.961,3903,50.073]],["name/22-4",[]],["text/22-4",[]],["component/22-4",[]],["keyword/22-4",[]],["title/22-5",[67,44.827,280,44.257,3903,50.073]],["name/22-5",[]],["text/22-5",[]],["component/22-5",[]],["keyword/22-5",[]],["title/22",[63,18.912,67,39.633,68,30.958,238,31.366]],["name/22",[6016,0.832]],["text/22",[0,2.412,2,1.584,21,1.725,24,1.146,25,2.471,26,4.029,31,1.25,32,2.675,41,1.424,48,0.878,51,1.509,55,5.607,57,0.958,60,0.62,61,3.832,63,2.483,65,0.898,67,2.342,68,3.468,69,0.828,70,2.312,71,4.056,72,1.585,74,0.728,75,2.01,82,0.758,89,1.722,90,4.174,91,1.004,106,0.92,111,2.161,121,0.945,122,2.124,127,2.12,147,1.8,149,0.988,152,1.022,154,2.613,162,1.866,171,1.031,173,0.852,180,0.844,196,2.858,198,0.945,201,0.852,207,0.8,208,0.821,211,0.836,213,0.828,227,0.743,234,0.888,238,2.98,241,0.932,243,2.384,244,2.751,246,3.402,247,3.944,263,1.657,265,3.588,270,1.392,274,1.879,294,1.638,295,1.403,302,1.353,306,1.336,308,2.148,310,2.52,325,2.184,327,0.972,330,1.699,331,1.947,339,1.041,347,0.674,349,0.781,358,0.733,382,3.205,391,1.933,405,2.407,430,1.747,444,0.92,454,1.336,464,1.022,493,2.721,576,1.619,578,1.113,579,2.099,581,2.565,589,1.8,603,0.945,606,0.92,613,1.004,617,1.619,631,3.292,653,0.775,783,1.773,801,0.945,825,3.612,838,1.458,856,1.041,863,1.004,868,0.958,878,1.83,888,0.972,892,1.063,917,1.022,920,0.972,930,1.568,947,1.022,949,1.063,957,4.605,965,0.958,966,3.786,967,1.113,968,2.481,970,1.222,975,1.222,1009,0.958,1010,0.828,1019,1.523,1037,0.945,1046,0.958,1068,1.392,1075,2.08,1086,2.665,1157,3.717,1159,2.01,1162,1.747,1169,2.029,1170,4.5,1173,1.113,1190,1.657,1191,3.165,1203,0.988,1223,1.657,1229,1.113,1247,1.585,1262,2.927,1267,1.8,1312,1.041,1322,1.086,1327,1.276,1376,1.113,1400,1.086,1427,1.086,1461,0.972,1467,9.154,1506,1.144,1563,0.945,1565,3.816,1610,1.83,1675,2.407,1680,5.41,1750,1.113,1909,1.773,2311,3.448,2349,2.729,2392,0.844,2399,1.276,2423,3.952,2558,1.348,2828,1.144,3138,1.222,3142,1.063,3255,1.063,3302,1.179,3449,4.496,3667,0.92,3791,1.222,3829,1.863,3841,1.113,3903,3.75,4361,1.276,4499,1.222,4539,1.144,5141,2.963,5580,1.348,5820,5.504,5860,1.222,5868,1.348,5926,1.348,5932,2.326,6017,1.348,6018,1.348,6019,1.348,6020,1.457,6021,1.457,6022,1.457,6023,1.457,6024,2.656,6025,2.656,6026,1.276,6027,2.656,6028,2.656,6029,2.656,6030,2.656,6031,2.656,6032,2.656,6033,1.457,6034,1.348,6035,1.457,6036,8.748,6037,1.457,6038,1.457,6039,2.656,6040,1.457,6041,1.457,6042,1.348,6043,1.457,6044,1.457,6045,1.457,6046,1.457,6047,1.457,6048,1.457,6049,1.457,6050,4.513,6051,1.457,6052,5.247,6053,2.656,6054,1.348,6055,1.348,6056,2.656,6057,1.457,6058,2.15,6059,1.457,6060,1.457,6061,1.457,6062,1.457,6063,1.457,6064,1.457,6065,1.457,6066,1.457,6067,1.457,6068,1.457,6069,1.457,6070,1.457,6071,1.457,6072,1.457,6073,1.457,6074,1.457,6075,1.276,6076,1.457,6077,1.457,6078,2.656,6079,1.457,6080,1.457,6081,1.457,6082,1.457,6083,1.457,6084,2.656,6085,1.457,6086,1.457,6087,1.457,6088,1.457,6089,1.457,6090,3.66,6091,1.457,6092,1.457,6093,3.66,6094,1.457,6095,2.656,6096,1.457,6097,1.457,6098,1.457,6099,1.457,6100,1.457,6101,2.656,6102,3.66,6103,1.457,6104,1.457,6105,4.513,6106,2.656,6107,2.656,6108,4.513,6109,3.66,6110,1.457,6111,1.457,6112,2.457,6113,2.656,6114,2.656,6115,2.656,6116,5.884,6117,1.348]],["component/22",[2,0.251,266,0.348]],["keyword/22",[]],["title/23-1",[0,24.354,74,35.015,93,46.758]],["name/23-1",[]],["text/23-1",[]],["component/23-1",[]],["keyword/23-1",[]],["title/23-2",[3,46.758,84,32.792,245,42.247]],["name/23-2",[]],["text/23-2",[]],["component/23-2",[]],["keyword/23-2",[]],["title/23-3",[5,41.34,10,40.167,63,18.912,74,30.958]],["name/23-3",[]],["text/23-3",[]],["component/23-3",[]],["keyword/23-3",[]],["title/23",[4,44.643,63,24.617]],["name/23",[6118,0.832]],["text/23",[2,2.871,25,4.213,26,4.62,32,3.547,39,1.982,43,1.288,48,3.309,49,1.636,52,3.681,54,1.859,55,4.633,60,3.42,61,1.522,63,2.705,68,1.678,69,1.908,70,2.121,72,2.003,74,2.742,84,6.068,88,2.024,94,3.662,106,2.121,111,1.982,115,4.068,118,2.856,122,2.582,127,2.811,162,2.797,196,1.828,210,2.965,211,3.147,217,1.58,227,6.354,231,1.859,234,3.345,245,6.051,254,1.875,264,4.698,288,2.877,302,3.516,308,1.598,347,2.54,364,2.095,365,3.064,371,1.859,393,2.674,435,2.121,459,1.58,475,3.921,588,2.003,599,3.921,610,2.24,675,3.511,825,1.747,837,2.24,838,1.843,851,2.635,863,3.781,864,2.047,868,2.208,869,2.047,883,2.354,901,1.859,902,2.565,919,2.942,920,2.24,930,1.982,991,3.558,992,2.148,999,2.095,1005,2.354,1009,3.608,1024,5.797,1041,2.399,1044,2.399,1068,2.877,1080,2.399,1083,2.503,1129,3.848,1147,2.047,1211,2.121,1229,2.565,1262,4.512,1287,2.095,1302,4.441,1320,2.448,1385,4.002,1393,1.925,1406,3.424,1425,2.503,1453,2.276,1480,3.105,1483,2.313,1544,4.698,1610,2.313,1637,3.105,1675,4.576,1711,2.121,1750,2.565,1830,5.075,1842,2.503,1844,2.635,1873,2.354,1931,2.94,1952,2.565,2273,8.309,3129,3.105,3434,2.94,3436,2.94,3873,2.816,3881,2.816,3953,4.441,3970,2.503,4024,2.94,5057,2.635,5820,2.503,5857,2.94,5896,8.195,5949,2.816,6119,4.805,6120,3.357,6121,3.357,6122,5.486,6123,3.357,6124,3.357,6125,3.357,6126,3.357,6127,3.357,6128,5.486,6129,3.357,6130,3.357,6131,5.486,6132,3.357,6133,3.357,6134,3.357,6135,3.357,6136,5.486,6137,3.357,6138,3.357,6139,3.357,6140,3.357]],["component/23",[2,0.251,266,0.348]],["keyword/23",[]],["title/24-1",[0,28.028,206,41.385]],["name/24-1",[]],["text/24-1",[]],["component/24-1",[]],["keyword/24-1",[]],["title/24-2",[21,26.776,74,35.015,489,35.015]],["name/24-2",[]],["text/24-2",[]],["component/24-2",[]],["keyword/24-2",[]],["title/24-3",[61,25.16,260,37.047,261,42.41,278,30.48,6141,51.348]],["name/24-3",[]],["text/24-3",[]],["component/24-3",[]],["keyword/24-3",[]],["title/24-4",[260,41.34,1603,39.128,1909,41.34,4032,50.141]],["name/24-4",[]],["text/24-4",[]],["component/24-4",[]],["keyword/24-4",[]],["title/24-5",[238,31.366,2365,41.989,4033,50.141,6142,50.141]],["name/24-5",[]],["text/24-5",[]],["component/24-5",[]],["keyword/24-5",[]],["title/24-6",[987,42.687,2673,44.27,4034,54.244,6143,50.141]],["name/24-6",[]],["text/24-6",[]],["component/24-6",[]],["keyword/24-6",[]],["title/24-7",[190,40.167,279,36.215,362,44.27,5951,48.624]],["name/24-7",[]],["text/24-7",[]],["component/24-7",[]],["keyword/24-7",[]],["title/24-8",[280,35.065,347,25.698,619,41.392,1120,30.997,1632,43.574]],["name/24-8",[]],["text/24-8",[]],["component/24-8",[]],["keyword/24-8",[]],["title/24-9",[24,30.232,855,50.073,2392,40.566]],["name/24-9",[]],["text/24-9",[]],["component/24-9",[]],["keyword/24-9",[]],["title/24-10",[67,39.633,287,38.196,355,32.015,2983,46.189]],["name/24-10",[]],["text/24-10",[]],["component/24-10",[]],["keyword/24-10",[]],["title/24-11",[184,43.203,290,42.713,6142,56.713]],["name/24-11",[]],["text/24-11",[]],["component/24-11",[]],["keyword/24-11",[]],["title/24-12",[2657,46.073,2673,50.073,6143,56.713]],["name/24-12",[]],["text/24-12",[]],["component/24-12",[]],["keyword/24-12",[]],["title/24-13",[362,50.073,2659,47.492,5951,54.997]],["name/24-13",[]],["text/24-13",[]],["component/24-13",[]],["keyword/24-13",[]],["title/24-14",[862,51.1,1624,51.1,6144,70.055]],["name/24-14",[]],["text/24-14",[]],["component/24-14",[]],["keyword/24-14",[]],["title/24-15",[2666,53.528,3582,56.713,5840,61.354]],["name/24-15",[]],["text/24-15",[]],["component/24-15",[]],["keyword/24-15",[]],["title/24-16",[260,41.34,261,47.325,3829,43.444,4181,51.962]],["name/24-16",[]],["text/24-16",[]],["component/24-16",[]],["keyword/24-16",[]],["title/24-17",[371,38.792,1095,36.211,4189,58.773]],["name/24-17",[]],["text/24-17",[]],["component/24-17",[]],["keyword/24-17",[]],["title/24-18",[274,35.96,431,47.492,4194,58.773]],["name/24-18",[]],["text/24-18",[]],["component/24-18",[]],["keyword/24-18",[]],["title/24-19",[391,32.713,825,32.242,4204,51.962,6145,54.244]],["name/24-19",[]],["text/24-19",[]],["component/24-19",[]],["keyword/24-19",[]],["title/24-20",[162,25.636,177,27.613,241,32.175,1068,26.364,1221,31.009,4209,40.706]],["name/24-20",[]],["text/24-20",[]],["component/24-20",[]],["keyword/24-20",[]],["title/24",[260,53.812,261,61.602]],["name/24",[6146,0.832]],["text/24",[6,1.356,8,3.719,31,1.661,32,1.8,38,1.378,40,2.393,41,1.072,43,1.818,44,4.472,49,3.18,51,2.006,55,3.689,63,2.66,64,2.182,65,1.233,68,2.368,72,1.193,74,1,76,1.678,82,1.041,84,4.415,97,2.064,109,2.433,111,2.084,115,2.064,118,2.466,122,0.941,127,0.808,157,1.923,162,1.8,177,1.098,180,2.044,182,1.403,189,2.23,202,1.233,207,1.098,208,1.127,209,2.152,211,2.025,217,0.941,238,4.192,246,2.289,247,3.708,256,1.107,260,6.677,261,9.173,268,2.044,274,3.994,288,1.049,295,2.502,296,0.893,302,2.412,310,1.971,318,1.248,328,1.335,338,2.575,347,3.334,360,2.084,362,7.325,363,1.315,366,1.137,393,0.975,405,1.315,436,2.025,444,1.263,459,2.69,461,1.43,471,3.759,493,2.129,508,1.181,509,1.459,579,1.147,581,1.137,582,2.152,603,1.297,617,1.219,631,3.456,653,1.064,801,1.297,804,1.356,811,2.106,818,1.064,825,1.041,838,1.938,862,2.575,869,3.977,882,1.459,887,1.28,898,1.315,901,1.107,905,1.619,913,1.57,916,1.335,943,1.459,967,1.528,970,1.678,981,1.356,987,1.378,1017,2.006,1019,2.025,1024,1.219,1037,1.297,1061,2.259,1068,2.997,1071,1.528,1075,1.137,1089,1.356,1090,1.378,1092,1.43,1095,4.021,1098,2.857,1111,1.57,1114,1.43,1119,1.491,1120,4.022,1155,1.491,1156,2.993,1157,3.611,1167,1.678,1170,4.391,1176,1.43,1180,3.386,1187,1.378,1192,1.297,1193,3.386,1195,1.43,1203,3.212,1211,2.23,1219,1.57,1220,1.678,1224,1.678,1240,1.491,1248,1.57,1254,2.575,1259,3.212,1280,1.335,1285,2.393,1320,1.459,1321,1.378,1340,1.315,1351,2.575,1352,2.632,1367,1.43,1371,2.523,1405,1.335,1406,2.956,1458,1.57,1468,1.248,1525,1.491,1540,1.528,1596,1.528,1603,3.611,1635,1.459,1636,1.491,1648,2.857,1649,1.335,1659,6.948,1711,2.23,1740,1.528,1795,1.619,1832,1.459,1874,2.857,1892,4.422,2365,4.422,2418,2.857,2590,5.057,2681,1.378,2694,1.678,2959,2.575,3079,4.009,3081,2.575,3112,3.386,3115,1.57,3124,1.678,3255,1.459,3449,4.984,3466,1.528,3544,1.619,3667,1.263,3829,2.476,3857,4.009,3873,2.961,3903,1.43,3925,3.975,3938,3.265,4370,1.85,4677,1.752,4711,1.459,5217,1.491,5462,1.85,5840,3.091,5892,1.752,5951,2.771,6042,1.85,6075,4.149,6142,4.627,6143,5.281,6145,3.091,6147,2,6148,3.53,6149,3.53,6150,8.278,6151,2,6152,4.737,6153,8.712,6154,3.53,6155,3.53,6156,3.53,6157,3.53,6158,3.53,6159,5.715,6160,7.658,6161,1.85,6162,3.53,6163,5.715,6164,3.53,6165,1.85,6166,3.53,6167,4.737,6168,4.737,6169,2,6170,5.715,6171,4.737,6172,5.715,6173,4.383,6174,3.53,6175,2,6176,3.53,6177,3.53,6178,3.53,6179,3.53,6180,4.383,6181,2,6182,2,6183,2,6184,1.85,6185,3.53,6186,1.85,6187,1.752,6188,2,6189,2,6190,2,6191,2,6192,1.678,6193,2,6194,1.85,6195,2]],["component/24",[2,0.251,266,0.348]],["keyword/24",[]],["title/25-1",[0,24.354,74,35.015,93,46.758]],["name/25-1",[]],["text/25-1",[]],["component/25-1",[]],["keyword/25-1",[]],["title/25-2",[3,46.758,43,26.878,2272,53.528]],["name/25-2",[]],["text/25-2",[]],["component/25-2",[]],["keyword/25-2",[]],["title/25-3",[5,41.34,42,42.687,43,23.763,5652,57.299]],["name/25-3",[]],["text/25-3",[]],["component/25-3",[]],["keyword/25-3",[]],["title/25-4",[9,44.27,42,42.687,43,23.763,6196,61.936]],["name/25-4",[]],["text/25-4",[]],["component/25-4",[]],["keyword/25-4",[]],["title/25-5",[12,48.624,42,42.687,43,23.763,6197,61.936]],["name/25-5",[]],["text/25-5",[]],["component/25-5",[]],["keyword/25-5",[]],["title/25",[4,44.643,63,24.617]],["name/25",[6198,0.832]],["text/25",[0,2.525,2,2.193,24,1.023,25,3.957,26,4.147,31,1.927,32,1.208,42,2.821,43,4.383,44,3.302,46,2.554,49,4.39,52,2.475,54,4.717,55,5.294,57,1.558,59,1.537,60,1.742,61,1.074,62,0.991,63,2.989,64,1.885,69,2.326,73,2.286,74,1.184,81,1.281,82,2.813,84,4.731,86,1.281,88,1.429,115,4.246,118,2.131,122,2.543,127,2.598,145,2.101,171,0.92,177,1.301,209,1.445,243,1.252,254,4.056,258,5.191,264,3.159,288,1.242,302,1.998,306,1.192,308,2.572,331,1.261,347,1.097,351,1.537,358,4.53,361,1.445,364,1.479,365,1.323,382,2.23,390,1.399,437,1.694,459,2.543,468,1.537,486,1.162,489,1.184,588,1.414,597,1.633,599,1.694,604,3.457,675,3.457,737,3.314,783,6.935,785,5.386,808,1.537,810,1.429,863,1.633,864,3.294,871,1.694,892,1.728,898,1.558,901,1.312,907,1.662,916,1.582,934,5.386,957,1.479,983,4.242,1003,2.821,1010,1.347,1038,1.767,1074,1.811,1075,3.071,1090,1.633,1093,1.558,1147,2.496,1159,3.532,1223,1.479,1267,1.606,1280,1.582,1287,2.554,1312,1.694,1329,2.654,1401,1.582,1459,1.728,1461,1.582,1469,3.127,1508,1.728,1513,2.586,1523,1.767,1544,2.393,1563,1.537,1603,1.497,1629,1.988,1675,1.558,1707,1.811,1711,1.497,1971,5.549,2033,1.728,2065,5.265,2081,5.207,2082,5.05,2083,5.207,2217,2.075,2272,6.881,2273,3.79,2391,1.988,2423,5.633,2854,1.988,2861,1.86,3112,1.694,3254,1.86,3290,3.585,3667,1.497,3845,3.314,3846,3.434,4414,1.767,4541,1.918,5399,1.918,5549,1.811,5621,1.988,5638,3.585,5820,1.767,5929,2.192,5930,2.192,5944,2.192,6142,1.918,6199,3.787,6200,4.998,6201,3.434,6202,4.998,6203,3.585,6204,3.787,6205,7.262,6206,2.37,6207,2.37,6208,2.37,6209,6.432,6210,5.403,6211,2.37,6212,2.37,6213,2.37,6214,4.093,6215,4.093,6216,2.37,6217,2.37,6218,2.37,6219,2.37,6220,2.37,6221,2.37,6222,2.37,6223,2.37,6224,2.37,6225,2.37,6226,2.37,6227,2.37,6228,4.093,6229,2.37,6230,2.37,6231,2.37,6232,7.262,6233,2.37,6234,4.093,6235,4.093,6236,2.37,6237,2.37,6238,2.37,6239,2.37,6240,2.37,6241,2.37,6242,2.37,6243,2.37,6244,2.37,6245,2.37,6246,2.37,6247,2.37,6248,2.37,6249,2.37,6250,2.37,6251,2.37,6252,2.37,6253,2.37,6254,4.093,6255,2.192,6256,5.403]],["component/25",[2,0.251,266,0.348]],["keyword/25",[]],["title/26-1",[0,24.354,74,35.015,93,46.758]],["name/26-1",[]],["text/26-1",[]],["component/26-1",[]],["keyword/26-1",[]],["title/26-2",[3,41.34,43,23.763,63,18.912,256,34.296]],["name/26-2",[]],["text/26-2",[]],["component/26-2",[]],["keyword/26-2",[]],["title/26-3",[5,33.561,43,19.292,60,21.4,246,32.609,247,28.581,256,27.843]],["name/26-3",[]],["text/26-3",[]],["component/26-3",[]],["keyword/26-3",[]],["title/26-4",[9,35.94,43,19.292,44,25.811,63,15.353,256,27.843,1194,37.498]],["name/26-4",[]],["text/26-4",[]],["component/26-4",[]],["keyword/26-4",[]],["title/26",[4,44.643,63,24.617]],["name/26",[6257,0.832]],["text/26",[0,1.379,2,1.198,19,1.336,21,0.873,24,0.986,25,0.96,26,1.052,41,1.225,43,4.987,44,4.543,47,3.837,49,4.7,52,1.047,55,4.01,60,3.313,61,2.844,63,3.845,64,1.052,68,1.142,69,1.299,74,2.627,75,2.886,82,4.052,84,3.913,85,2.065,90,2.698,91,1.575,111,1.35,112,1.462,118,4.052,122,1.076,127,3.145,145,2.036,147,5.277,162,3.199,175,1.603,177,4.275,201,1.336,207,1.255,221,1.549,238,2.009,241,1.462,243,2.776,246,6.013,247,5.48,254,3.966,256,6.632,268,2.297,274,4.543,288,1.198,298,1.299,302,0.845,306,2.644,308,2.502,325,2.367,337,1.633,347,4.747,349,1.225,358,1.15,366,2.987,382,1.245,390,1.35,393,1.114,427,3.62,438,1.311,457,1.207,459,1.076,486,1.945,508,2.342,579,1.311,581,2.987,603,1.482,613,6.391,617,1.393,635,3.114,825,4.352,846,1.225,868,1.503,887,1.462,916,4.188,930,2.342,939,1.378,1068,5.055,1075,2.255,1081,6.599,1089,1.549,1091,2.893,1095,4.321,1120,2.215,1126,1.667,1140,1.704,1147,1.393,1159,3.9,1173,4.794,1190,1.426,1194,6.234,1202,2.647,1203,5.277,1221,2.446,1254,1.667,1273,1.503,1277,1.575,1297,1.704,1334,1.462,1352,1.704,1406,1.426,1409,1.525,1478,1.575,1513,1.444,1544,1.336,1548,4.597,1565,1.482,1642,2.689,1653,3.328,1680,1.462,1849,1.667,1873,1.603,1874,1.85,1901,2.609,1909,1.525,2065,1.336,2309,1.85,2590,2.127,3142,1.667,3208,1.746,3255,1.667,3286,2.001,3402,1.917,3667,1.444,3829,1.603,3868,2.001,3903,5.975,4414,3.919,4456,1.917,5549,3.031,5550,2.001,5812,2.001,5830,3.669,5831,2.114,5846,2.114,5849,2.114,5864,2.001,5866,2.001,5867,2.001,5942,2.114,6160,2.114,6258,2.285,6259,2.285,6260,2.285,6261,2.001,6262,2.285,6263,2.285,6264,2.285,6265,2.285,6266,2.285,6267,2.285,6268,2.114,6269,3.669,6270,2.285,6271,2.285,6272,2.285,6273,2.285,6274,2.285,6275,2.285,6276,2.285,6277,2.285,6278,2.285,6279,2.285,6280,2.114,6281,2.285,6282,2.285,6283,2.114,6284,1.85,6285,2.114,6286,2.114,6287,2.114,6288,2.114,6289,2.114,6290,2.114,6291,2.114,6292,2.114,6293,2.114,6294,2.114,6295,2.114,6296,2.114,6297,2.114]],["component/26",[2,0.251,266,0.348]],["keyword/26",[]],["title/27-1",[0,28.028,206,41.385]],["name/27-1",[]],["text/27-1",[]],["component/27-1",[]],["keyword/27-1",[]],["title/27-2",[21,26.776,74,35.015,93,46.758]],["name/27-2",[]],["text/27-2",[]],["component/27-2",[]],["keyword/27-2",[]],["title/27",[255,69.255]],["name/27",[255,0.607]],["text/27",[0,3.358,2,1.41,11,1.439,21,1.057,24,1.193,25,1.96,26,2.15,29,1.769,41,2.504,42,1.905,43,1.791,46,1.725,49,4.709,52,2.139,54,1.531,55,5.258,62,1.952,63,2.636,64,4.233,70,1.746,74,1.382,75,3.328,82,1.439,84,1.294,85,4.143,90,1.419,97,1.616,108,1.506,127,1.117,145,2.397,180,1.601,184,1.705,189,2.95,206,1.419,207,2.564,209,1.686,210,3.275,211,1.586,217,2.198,231,1.531,235,1.818,238,2.364,247,1.571,251,6.847,254,5.976,255,9.18,265,1.686,268,1.601,292,3.218,296,4.104,302,3.399,308,1.316,331,3.225,335,1.845,347,1.28,358,1.391,365,1.544,427,4.925,429,1.845,438,1.586,449,2.988,457,1.46,459,5.533,565,2.17,581,3.445,597,1.905,613,1.905,617,1.686,632,2.319,653,2.485,785,3.165,810,2.816,811,2.786,818,1.471,838,4.371,846,2.504,864,3.695,869,2.847,877,1.705,920,4.045,930,1.633,934,1.874,944,2.17,947,1.939,1018,2.112,1019,1.586,1063,1.939,1068,1.449,1075,1.571,1095,2.413,1116,1.976,1120,2.607,1131,1.601,1135,1.845,1136,2.238,1140,2.062,1141,2.319,1147,2.847,1156,2.95,1157,5.028,1159,1.518,1172,2.112,1187,1.905,1201,2.17,1209,2.17,1223,1.725,1236,2.112,1262,1.793,1273,1.818,1343,1.976,1362,1.939,1393,2.678,1409,1.845,1416,3.616,1478,1.905,1479,2.421,1540,2.112,1559,1.818,1565,3.028,1658,2.17,1680,1.769,1772,1.939,1844,2.17,1873,1.939,2027,2.319,2445,2.062,3112,1.976,3373,2.238,3621,2.557,3829,1.939,4230,2.421,4534,2.17,5820,2.062,5853,2.557,5860,2.319,6298,6.238,6299,6.061,6300,2.764,6301,2.764,6302,2.764,6303,4.669,6304,4.669,6305,2.764,6306,2.764,6307,2.764,6308,9.192,6309,2.764,6310,2.764,6311,2.764,6312,2.764,6313,2.764,6314,2.764,6315,2.764,6316,2.764,6317,2.764,6318,2.764,6319,2.764,6320,2.764,6321,2.764,6322,2.764,6323,2.764,6324,2.764,6325,2.764,6326,2.764,6327,2.764,6328,2.764,6329,2.764,6330,2.764,6331,2.764,6332,2.764,6333,7.122,6334,2.764,6335,2.764,6336,2.764,6337,4.669,6338,2.764,6339,4.669,6340,2.764,6341,2.764,6342,2.764]],["component/27",[2,0.251,266,0.348]],["keyword/27",[]],["title/28-1",[0,28.028,323,40.04]],["name/28-1",[]],["text/28-1",[]],["component/28-1",[]],["keyword/28-1",[]],["title/28-2",[21,26.776,74,35.015,486,34.36]],["name/28-2",[]],["text/28-2",[]],["component/28-2",[]],["keyword/28-2",[]],["title/28",[63,24.617,262,61.602]],["name/28",[6343,0.832]],["text/28",[2,3.085,29,4.954,49,3.774,62,3.237,63,3.119,74,3.87,85,5.318,108,4.217,121,5.021,122,4.808,127,4.911,159,5.168,180,4.483,183,5.648,262,7.805,308,3.686,355,4.002,365,5.705,581,4.401,785,5.249,810,4.669,846,5.477,930,4.572,1068,4.059,1145,4.831,1159,5.61,1223,4.831,1393,4.441,1538,5.534,1708,5.648,2393,5.774,2406,5.168,2580,10.23,3063,5.092,3350,6.268,3391,5.916,3841,5.916,4499,6.496,6344,10.576,6345,7.742,6346,7.742,6347,7.742,6348,7.742]],["component/28",[2,0.251,266,0.348]],["keyword/28",[]],["title/29-1",[0,28.028,323,40.04]],["name/29-1",[]],["text/29-1",[]],["component/29-1",[]],["keyword/29-1",[]],["title/29-2",[21,26.776,74,35.015,486,34.36]],["name/29-2",[]],["text/29-2",[]],["component/29-2",[]],["keyword/29-2",[]],["title/29-3",[84,18.356,257,29.963,274,20.13,278,21.535,295,20.712,457,32.843,1170,23.91,3217,29.963]],["name/29-3",[]],["text/29-3",[]],["component/29-3",[]],["keyword/29-3",[]],["title/29-4",[84,19.81,274,33.891,279,24.745,559,27.445,1170,25.803,1218,28.69,2858,30.87]],["name/29-4",[]],["text/29-4",[]],["component/29-4",[]],["keyword/29-4",[]],["title/29-5",[43,11.632,55,11.859,63,15.403,68,15.153,84,23.613,127,12.247,238,15.353,280,19.153,1068,15.896,6349,28.047,6350,28.047]],["name/29-5",[]],["text/29-5",[]],["component/29-5",[]],["keyword/29-5",[]],["title/29-6",[226,40.167,283,44.27,818,32.959,825,32.242]],["name/29-6",[]],["text/29-6",[]],["component/29-6",[]],["keyword/29-6",[]],["title/29-7",[226,40.167,284,46.189,653,32.959,825,32.242]],["name/29-7",[]],["text/29-7",[]],["component/29-7",[]],["keyword/29-7",[]],["title/29",[6351,87.834]],["name/29",[6352,0.832]],["text/29",[0,0.812,2,0.705,21,0.892,25,1.696,26,2.46,32,1.19,40,1.583,41,4.532,43,0.896,44,4.044,47,1.261,49,3.104,52,1.851,54,3.525,55,5.184,59,2.62,60,1.72,61,1.058,63,3.791,64,3.628,68,2.67,71,1.609,74,1.167,75,2.933,81,1.261,82,1.215,83,1.408,84,5.525,85,3.746,90,4.044,118,2.103,127,1.632,137,1.583,145,1.198,162,1.19,201,1.365,206,2.742,209,1.423,211,1.339,227,1.19,231,1.293,238,2.705,241,2.585,243,4.161,244,2.801,254,4.018,257,6.458,259,1.457,265,1.423,268,1.352,274,4.339,288,1.224,289,3.187,295,1.233,298,1.327,306,1.174,308,2.543,309,1.457,325,1.393,347,4.334,363,1.535,365,1.304,379,1.494,405,1.535,427,4.773,438,1.339,457,1.233,459,4.864,559,2.62,579,1.339,581,1.327,617,2.463,648,1.379,653,5.176,818,1.242,825,3.746,864,2.463,871,1.669,882,1.703,901,1.293,916,1.558,919,1.252,973,3.013,1011,1.703,1017,2.297,1068,1.224,1077,3.013,1079,1.784,1093,2.657,1095,2.761,1131,4.895,1138,1.535,1147,3.257,1157,4.546,1159,1.282,1187,1.609,1209,1.833,1218,4.316,1280,1.558,1329,3.464,1401,1.558,1403,1.583,1406,1.457,1459,1.703,1468,2.521,1513,2.552,1544,2.362,1559,1.535,1563,5.11,1565,2.62,1610,1.609,1645,5.89,1658,4.193,1678,2.16,1679,7.289,1711,1.475,1849,5.747,1873,1.637,1874,3.271,1892,2.739,1999,4.193,2326,1.958,2590,2.166,2648,1.741,2711,1.89,2807,1.833,2858,1.703,2983,1.741,3021,1.958,3112,2.888,3295,1.784,3449,3.087,4456,1.958,5549,3.087,5660,2.044,5734,2.044,5816,3.738,5817,5.89,5820,6.667,5841,4.998,5936,3.738,5937,2.16,5938,2.16,5999,4.942,6075,2.044,6117,2.16,6353,2.334,6354,2.334,6355,3.738,6356,4.04,6357,4.04,6358,2.334,6359,2.334,6360,2.334,6361,2.334,6362,2.334,6363,2.334,6364,5.341,6365,2.334,6366,2.334,6367,2.334,6368,2.334,6369,2.334,6370,2.334,6371,2.334,6372,6.367,6373,2.334,6374,2.334,6375,2.334,6376,2.334,6377,2.334,6378,2.334,6379,5.341,6380,2.334,6381,2.334,6382,6.657,6383,2.334,6384,2.334,6385,2.334,6386,2.334,6387,4.04,6388,2.334,6389,5.341,6390,4.04,6391,2.334,6392,2.334,6393,2.334,6394,2.334,6395,2.334,6396,2.334]],["component/29",[2,0.251,266,0.348]],["keyword/29",[]],["title/30-1",[0,21.532,2,18.702,208,34.892,2507,41.34]],["name/30-1",[]],["text/30-1",[]],["component/30-1",[]],["keyword/30-1",[]],["title/30-2",[21,26.776,208,39.465,6397,61.354]],["name/30-2",[]],["text/30-2",[]],["component/30-2",[]],["keyword/30-2",[]],["title/30",[2,16.76,55,21.711,2507,37.047,2679,34.636,6397,48.611]],["name/30",[6398,0.832]],["text/30",[0,1.369,2,3.855,31,1.854,32,2.008,55,5.255,208,5.757,248,3.762,288,3.271,289,3.722,302,2.307,331,3.32,336,4.046,344,3.941,347,4.081,360,2.325,376,4.551,378,4.551,379,2.52,392,2.669,393,1.92,427,2.008,597,2.714,865,3.009,947,8.656,984,3.847,1009,5.797,1017,5.461,1057,4.767,1061,7.896,1138,4.103,1368,3.648,1500,2.872,1556,4.459,2054,3.009,2060,2.59,2507,6.821,2533,2.714,2534,7.044,2535,5.234,2536,6.573,2537,7.719,2538,9.317,2539,5.464,2540,3.449,2590,2.111,2593,2.936,2638,3.248,2705,2.762,2714,2.669,2726,3.188,3244,3.449,3284,3.643,3865,3.449,4415,5.234,4549,3.449,4730,10.202,5337,3.304,6397,7.719,6399,3.643,6400,3.643,6401,3.643,6402,3.449,6403,3.643,6404,5.464,6405,5.771,6406,5.464,6407,7.748,6408,7.168,6409,7.748,6410,3.938,6411,3.938,6412,3.938,6413,3.938,6414,3.938,6415,3.938,6416,3.938,6417,3.938,6418,3.938,6419,3.938,6420,3.938,6421,3.938,6422,3.938,6423,3.938,6424,3.938,6425,3.938,6426,3.643,6427,3.938,6428,3.938,6429,4.898,6430,5.464,6431,3.449,6432,3.449,6433,3.449]],["component/30",[2,0.251,266,0.348]],["keyword/30",[]],["title/31-1",[0,14.712,2,12.779,97,24.745,127,17.096,286,21.576,2507,28.247,3888,35.505,6434,32.336]],["name/31-1",[]],["text/31-1",[]],["component/31-1",[]],["keyword/31-1",[]],["title/31-2",[2,11.841,21,14.989,64,18.059,127,15.842,286,19.993,984,24.184,1466,29.963,2507,26.174,6434,29.963]],["name/31-2",[]],["text/31-2",[]],["component/31-2",[]],["keyword/31-2",[]],["title/31",[2,11.032,55,14.291,186,21.799,187,21.576,286,18.626,1466,27.915,2507,39.222,2679,22.798,3888,30.651]],["name/31",[6435,0.832]],["text/31",[0,2.687,2,3.668,25,0.738,26,2.396,31,1.482,32,3.392,45,5.905,47,1.701,48,1.06,53,1.806,54,0.974,55,3.716,57,2.07,62,1.786,64,0.81,65,1.084,92,1.233,108,0.958,112,1.125,122,1.482,127,2.102,131,2.897,135,2.101,136,1.125,161,1.111,171,2.323,186,1.878,187,2.524,202,1.084,208,1.773,217,2.449,236,4.071,248,4.358,249,1.192,267,1.049,268,3.013,270,1.65,277,1.038,282,4.519,286,4.164,289,2.55,302,2.858,306,1.584,308,1.499,314,2.405,318,2.667,324,1.573,326,3.473,331,0.936,332,1.212,335,3.473,336,1.14,339,1.257,343,3.72,344,4.203,347,2.409,349,2.79,357,2.274,358,0.884,376,1.282,390,3.073,391,3.514,392,3.528,393,2.537,421,1.343,427,3.94,429,1.173,457,0.929,508,1.038,588,1.878,597,3.587,869,1.072,878,1.212,898,1.156,914,1.192,921,1.212,951,1.282,984,3.691,1009,2.07,1017,2.429,1061,2.014,1075,0.999,1123,1.282,1139,1.38,1156,1.988,1159,0.965,1334,1.125,1366,2.405,1368,3.043,1401,2.852,1466,7.455,1500,3.796,2054,3.976,2069,2.405,2095,1.423,2151,2.641,2440,2.208,2460,2.757,2507,8.155,2510,2.169,2531,2.041,2533,3.587,2534,2.945,2538,3.585,2582,2.25,2583,2.101,2585,1.964,2590,2.79,2610,1.54,2614,1.343,2615,4.766,2638,4.252,2679,4.51,2694,1.475,2705,3.65,2714,3.528,2726,4.213,2867,7.18,2896,3.743,3084,1.423,3141,1.423,3188,1.423,3217,1.343,3614,1.192,3667,1.111,3888,8.56,4298,1.423,4415,2.641,4464,1.626,4503,2.997,5141,4.213,5337,4.366,5380,1.54,5730,1.626,6404,2.757,6408,10.669,6426,2.912,6429,6.067,6430,6.768,6431,4.558,6432,4.558,6433,4.558,6434,3.265,6436,3.148,6437,3.148,6438,3.148,6439,3.148,6440,3.148,6441,10.901,6442,1.758,6443,3.148,6444,1.758,6445,1.758,6446,1.758,6447,1.758,6448,1.758,6449,2.912,6450,3.148,6451,3.148,6452,7.227,6453,1.758,6454,10.203,6455,1.758,6456,4.273,6457,4.273,6458,4.273,6459,3.148,6460,7.227,6461,5.204,6462,3.148,6463,3.148,6464,3.148,6465,3.148,6466,3.148,6467,4.273,6468,1.758,6469,1.758,6470,2.757,6471,3.148,6472,1.758,6473,1.758,6474,1.758,6475,1.758,6476,4.273,6477,4.273,6478,4.273,6479,1.758,6480,1.758,6481,1.758,6482,1.626,6483,1.758,6484,5.204,6485,3.148,6486,3.148,6487,1.758,6488,1.758,6489,1.758,6490,1.758,6491,3.148,6492,2.912,6493,1.626,6494,3.148,6495,3.148,6496,1.758,6497,1.758,6498,1.758,6499,1.758,6500,1.758]],["component/31",[2,0.251,266,0.348]],["keyword/31",[]],["title/32-1",[0,21.532,268,35.865,992,39.633,1017,35.205]],["name/32-1",[]],["text/32-1",[]],["component/32-1",[]],["keyword/32-1",[]],["title/32-2",[21,23.674,186,36.956,187,36.578,286,31.577]],["name/32-2",[]],["text/32-2",[]],["component/32-2",[]],["keyword/32-2",[]],["title/32",[186,25.251,187,24.993,268,24.506,286,21.576,992,27.08,1017,24.055,2679,26.409,3891,34.26]],["name/32",[6501,0.832]],["text/32",[0,3.471,2,3.997,21,1.489,25,0.659,26,2.849,32,2.822,40,1.927,45,6.694,53,1.631,55,2.641,57,2.562,62,1.188,64,0.723,84,2.238,121,1.018,122,1.338,127,2.499,135,1.898,157,0.855,161,0.992,177,0.862,186,2.324,187,2.301,196,0.855,208,3.804,217,2.912,248,2.883,249,4.916,267,0.937,268,4.199,269,0.642,273,1.316,275,3.02,277,0.927,286,4.749,288,0.823,289,3.303,297,9.168,302,2.681,303,0.806,324,0.785,326,4.84,327,1.048,328,1.048,331,0.836,335,3.191,336,4.011,340,4.613,343,4.421,344,3.908,347,4.425,357,2.544,373,2.977,382,4.93,390,3.653,391,4.272,392,1.927,393,3.015,416,0.947,421,1.2,427,4.466,597,1.959,648,3.988,653,0.836,939,0.947,964,2.032,969,1.145,992,5.606,1017,0.893,1052,1.271,1089,1.064,1138,1.87,1147,0.957,1156,0.992,1159,0.862,1334,3.059,1351,2.842,1406,0.98,1440,1.271,1461,1.048,1500,2.842,1563,5.681,1565,1.844,1623,5.417,1723,1.101,2054,2.172,2274,7.548,2383,2.12,2510,2.685,2522,2.49,2531,2.526,2533,1.959,2582,2.032,2583,1.898,2585,1.774,2590,1.524,2593,4.128,2638,2.489,2641,5.008,2679,2.983,2705,1.994,2714,1.927,2726,2.302,2867,5.19,3200,2.302,3667,0.992,3891,2.302,3892,3.604,4503,5.086,4966,1.453,5072,7.092,5257,2.385,5337,2.385,6429,3.753,6430,4.187,6431,2.49,6432,2.49,6433,2.49,6434,2.977,6449,2.63,6470,9.339,6493,3.604,6502,11.495,6503,8.617,6504,2.843,6505,2.843,6506,1.57,6507,4.78,6508,6.04,6509,1.375,6510,3.694,6511,8.441,6512,3.604,6513,5.535,6514,6.753,6515,3.604,6516,1.57,6517,3.896,6518,4.423,6519,5.417,6520,2.843,6521,2.843,6522,3.896,6523,1.57,6524,1.57,6525,1.57,6526,1.57,6527,2.843,6528,1.57,6529,9.315,6530,1.57,6531,1.57,6532,1.57,6533,10.663,6534,2.843,6535,2.843,6536,4.423,6537,2.63,6538,2.843,6539,2.843,6540,1.57,6541,6.186,6542,1.57,6543,1.453,6544,1.57,6545,7.251,6546,1.57,6547,1.57,6548,1.57]],["component/32",[2,0.251,266,0.348]],["keyword/32",[]],["title/33-1",[0,24.354,227,35.716,269,28.659]],["name/33-1",[]],["text/33-1",[]],["component/33-1",[]],["keyword/33-1",[]],["title/33-2",[21,26.776,270,36.731,2060,46.073]],["name/33-2",[]],["text/33-2",[]],["component/33-2",[]],["keyword/33-2",[]],["title/33-3",[24,26.728,168,40.734,286,31.577,302,22.902]],["name/33-3",[]],["text/33-3",[]],["component/33-3",[]],["keyword/33-3",[]],["title/33-4",[287,49.719,302,29.812]],["name/33-4",[]],["text/33-4",[]],["component/33-4",[]],["keyword/33-4",[]],["title/33-5",[911,57.626,4157,70.609]],["name/33-5",[]],["text/33-5",[]],["component/33-5",[]],["keyword/33-5",[]],["title/33-6",[290,49.157,6549,67.639]],["name/33-6",[]],["text/33-6",[]],["component/33-6",[]],["keyword/33-6",[]],["title/33-7",[2,12.779,55,16.554,510,28.247,2651,37.064,3769,39.151,3784,37.064,6510,28.247,6550,37.064]],["name/33-7",[]],["text/33-7",[]],["component/33-7",[]],["keyword/33-7",[]],["title/33-8",[874,40.566,877,43.203,2657,46.073]],["name/33-8",[]],["text/33-8",[]],["component/33-8",[]],["keyword/33-8",[]],["title/33-9",[168,40.734,286,31.577,357,32.959,454,31.16]],["name/33-9",[]],["text/33-9",[]],["component/33-9",[]],["keyword/33-9",[]],["title/33-10",[460,38.933,1123,40.487,2615,34.229,6551,51.348,6552,41.392]],["name/33-10",[]],["text/33-10",[]],["component/33-10",[]],["keyword/33-10",[]],["title/33-11",[49,22.404,84,21.513,1159,25.238,2615,28.343,2981,40.251,3857,32.237,6519,40.251]],["name/33-11",[]],["text/33-11",[]],["component/33-11",[]],["keyword/33-11",[]],["title/33-12",[19,40.961,357,37.279,465,51.1]],["name/33-12",[]],["text/33-12",[]],["component/33-12",[]],["keyword/33-12",[]],["title/33-13",[874,40.566,877,43.203,2669,54.997]],["name/33-13",[]],["text/33-13",[]],["component/33-13",[]],["keyword/33-13",[]],["title/33-14",[186,41.8,187,41.372,316,37.857]],["name/33-14",[]],["text/33-14",[]],["component/33-14",[]],["keyword/33-14",[]],["title/33-15",[75,25.238,168,46.281,286,23.431,314,35.117,481,38.558,6434,35.117]],["name/33-15",[]],["text/33-15",[]],["component/33-15",[]],["keyword/33-15",[]],["title/33-16",[286,31.577,324,30.958,492,51.962,6434,47.325]],["name/33-16",[]],["text/33-16",[]],["component/33-16",[]],["keyword/33-16",[]],["title/33-17",[0,19.296,324,27.743,494,51.348,939,33.472,2615,34.229]],["name/33-17",[]],["text/33-17",[]],["component/33-17",[]],["keyword/33-17",[]],["title/33-18",[21,19.219,267,30.003,324,25.133,495,46.518,939,30.323,6509,44.038]],["name/33-18",[]],["text/33-18",[]],["component/33-18",[]],["keyword/33-18",[]],["title/33-19",[282,40.961,431,47.492,500,61.354]],["name/33-19",[]],["text/33-19",[]],["component/33-19",[]],["keyword/33-19",[]],["title/33-20",[507,70.609,6553,61.602]],["name/33-20",[]],["text/33-20",[]],["component/33-20",[]],["keyword/33-20",[]],["title/33-21",[511,57.299,1282,43.444,2349,46.189,6510,41.34]],["name/33-21",[]],["text/33-21",[]],["component/33-21",[]],["keyword/33-21",[]],["title/33-22",[512,57.299,6510,41.34,6553,47.325,6554,48.624]],["name/33-22",[]],["text/33-22",[]],["component/33-22",[]],["keyword/33-22",[]],["title/33-23",[127,20.313,1272,36.678,6510,33.561,6553,38.42,6554,39.475,6555,50.283]],["name/33-23",[]],["text/33-23",[]],["component/33-23",[]],["keyword/33-23",[]],["title/33-24",[127,20.313,919,26.962,6510,33.561,6553,38.42,6554,39.475,6556,50.283]],["name/33-24",[]],["text/33-24",[]],["component/33-24",[]],["keyword/33-24",[]],["title/33-25",[268,40.566,513,64.809,6553,53.528]],["name/33-25",[]],["text/33-25",[]],["component/33-25",[]],["keyword/33-25",[]],["title/33-26",[517,51.348,559,35.995,1255,40.487,6510,37.047,6557,51.348]],["name/33-26",[]],["text/33-26",[]],["component/33-26",[]],["keyword/33-26",[]],["title/33-27",[303,31.793,518,57.299,617,37.764,3856,48.624]],["name/33-27",[]],["text/33-27",[]],["component/33-27",[]],["keyword/33-27",[]],["title/33-28",[171,24.039,519,57.299,559,40.167,1255,45.179]],["name/33-28",[]],["text/33-28",[]],["component/33-28",[]],["keyword/33-28",[]],["title/33-29",[130,37.047,559,35.995,1255,40.487,6510,37.047,6558,55.504]],["name/33-29",[]],["text/33-29",[]],["component/33-29",[]],["keyword/33-29",[]],["title/33-30",[559,32.609,1255,36.678,6510,33.561,6550,44.038,6559,50.283,6560,40.706]],["name/33-30",[]],["text/33-30",[]],["component/33-30",[]],["keyword/33-30",[]],["title/33-31",[3113,54.997,3461,54.997,6561,70.055]],["name/33-31",[]],["text/33-31",[]],["component/33-31",[]],["keyword/33-31",[]],["title/33-32",[524,61.354,874,40.566,877,43.203]],["name/33-32",[]],["text/33-32",[]],["component/33-32",[]],["keyword/33-32",[]],["title/33-33",[168,40.734,286,31.577,576,37.764,6562,48.624]],["name/33-33",[]],["text/33-33",[]],["component/33-33",[]],["keyword/33-33",[]],["title/33-34",[577,54.244,1306,45.179,2438,45.179,6562,48.624]],["name/33-34",[]],["text/33-34",[]],["component/33-34",[]],["keyword/33-34",[]],["title/33-35",[609,61.354,6508,54.997,6562,54.997]],["name/33-35",[]],["text/33-35",[]],["component/33-35",[]],["keyword/33-35",[]],["title/33-36",[207,27.613,611,46.518,4882,40.706,6508,39.475,6562,39.475,6563,50.283]],["name/33-36",[]],["text/33-36",[]],["component/33-36",[]],["keyword/33-36",[]],["title/33-37",[636,70.609,6549,67.639]],["name/33-37",[]],["text/33-37",[]],["component/33-37",[]],["keyword/33-37",[]],["title/33-38",[168,36.504,637,51.348,3460,44.934,3902,40.487,6510,37.047]],["name/33-38",[]],["text/33-38",[]],["component/33-38",[]],["keyword/33-38",[]],["title/33-39",[639,64.809,6508,54.997,6562,54.997]],["name/33-39",[]],["text/33-39",[]],["component/33-39",[]],["keyword/33-39",[]],["title/33-40",[874,40.566,877,43.203,6564,64.809]],["name/33-40",[]],["text/33-40",[]],["component/33-40",[]],["keyword/33-40",[]],["title/33-41",[136,39.633,168,40.734,303,31.793,642,41.34]],["name/33-41",[]],["text/33-41",[]],["component/33-41",[]],["keyword/33-41",[]],["title/33-42",[136,44.827,643,58.773,6552,52.243]],["name/33-42",[]],["text/33-42",[]],["component/33-42",[]],["keyword/33-42",[]],["title/33-43",[136,44.827,644,61.354,6552,52.243]],["name/33-43",[]],["text/33-43",[]],["component/33-43",[]],["keyword/33-43",[]],["title/33-44",[647,67.639,2349,60.123]],["name/33-44",[]],["text/33-44",[]],["component/33-44",[]],["keyword/33-44",[]],["title/33-45",[652,67.639,3582,65.268]],["name/33-45",[]],["text/33-45",[]],["component/33-45",[]],["keyword/33-45",[]],["title/33-46",[657,54.244,1402,51.962,1688,50.141,6510,41.34]],["name/33-46",[]],["text/33-46",[]],["component/33-46",[]],["keyword/33-46",[]],["title/33-47",[660,57.299,868,40.734,3019,45.179,6508,48.624]],["name/33-47",[]],["text/33-47",[]],["component/33-47",[]],["keyword/33-47",[]],["title/33-48",[51,35.205,62,25.891,162,31.577,662,57.299]],["name/33-48",[]],["text/33-48",[]],["component/33-48",[]],["keyword/33-48",[]],["title/33-49",[51,35.205,162,31.577,664,57.299,6565,57.299]],["name/33-49",[]],["text/33-49",[]],["component/33-49",[]],["keyword/33-49",[]],["title/33-50",[391,37.001,665,64.809,1374,38.792]],["name/33-50",[]],["text/33-50",[]],["component/33-50",[]],["keyword/33-50",[]],["title/33-51",[62,23.203,151,35.995,217,26.126,236,31.268,6566,55.504]],["name/33-51",[]],["text/33-51",[]],["component/33-51",[]],["keyword/33-51",[]],["title/33-52",[60,29.815,173,40.961,6567,70.055]],["name/33-52",[]],["text/33-52",[]],["component/33-52",[]],["keyword/33-52",[]],["title/33-53",[62,17.691,122,19.92,162,21.576,289,25.251,391,22.352,2531,27.445,4600,37.064,6568,42.32]],["name/33-53",[]],["text/33-53",[]],["component/33-53",[]],["keyword/33-53",[]],["title/33-54",[667,74.585,6549,67.639]],["name/33-54",[]],["text/33-54",[]],["component/33-54",[]],["keyword/33-54",[]],["title/33-55",[457,37.001,668,64.809,1089,47.492]],["name/33-55",[]],["text/33-55",[]],["component/33-55",[]],["keyword/33-55",[]],["title/33-56",[670,64.809,874,40.566,877,43.203]],["name/33-56",[]],["text/33-56",[]],["component/33-56",[]],["keyword/33-56",[]],["title/33-57",[55,21.711,62,23.203,217,26.126,236,31.268,449,35.517]],["name/33-57",[]],["text/33-57",[]],["component/33-57",[]],["keyword/33-57",[]],["title/33-58",[90,31.793,217,29.154,302,22.902,812,51.962]],["name/33-58",[]],["text/33-58",[]],["component/33-58",[]],["keyword/33-58",[]],["title/33-59",[445,45.431,817,56.713,3667,44.257]],["name/33-59",[]],["text/33-59",[]],["component/33-59",[]],["keyword/33-59",[]],["title/33-60",[168,40.734,217,29.154,236,34.892,822,51.962]],["name/33-60",[]],["text/33-60",[]],["component/33-60",[]],["keyword/33-60",[]],["title/33-61",[217,32.975,648,41.372,2990,61.354]],["name/33-61",[]],["text/33-61",[]],["component/33-61",[]],["keyword/33-61",[]],["title/33-62",[62,29.285,648,41.372,2997,61.354]],["name/33-62",[]],["text/33-62",[]],["component/33-62",[]],["keyword/33-62",[]],["title/33-63",[874,40.566,877,43.203,6569,64.809]],["name/33-63",[]],["text/33-63",[]],["component/33-63",[]],["keyword/33-63",[]],["title/33-64",[1494,40.734,2583,41.34,2987,44.27,4828,54.244]],["name/33-64",[]],["text/33-64",[]],["component/33-64",[]],["keyword/33-64",[]],["title/33-65",[1386,46.758,1434,52.243,2511,61.354]],["name/33-65",[]],["text/33-65",[]],["component/33-65",[]],["keyword/33-65",[]],["title/33-66",[168,40.734,286,31.577,2512,54.244,2583,41.34]],["name/33-66",[]],["text/33-66",[]],["component/33-66",[]],["keyword/33-66",[]],["title/33-67",[73,28.081,202,31.009,231,27.843,2513,44.038,2987,35.94,2988,42.185]],["name/33-67",[]],["text/33-67",[]],["component/33-67",[]],["keyword/33-67",[]],["title/33-68",[73,25.666,202,28.343,231,25.449,1768,32.85,2514,40.251,2987,32.85,2988,38.558]],["name/33-68",[]],["text/33-68",[]],["component/33-68",[]],["keyword/33-68",[]],["title/33-69",[62,25.891,1044,44.27,1386,41.34,2515,54.244]],["name/33-69",[]],["text/33-69",[]],["component/33-69",[]],["keyword/33-69",[]],["title/33-70",[277,41.372,286,35.716,6570,70.055]],["name/33-70",[]],["text/33-70",[]],["component/33-70",[]],["keyword/33-70",[]],["title/33-71",[277,36.578,286,31.577,302,22.902,6571,61.936]],["name/33-71",[]],["text/33-71",[]],["component/33-71",[]],["keyword/33-71",[]],["title/33-72",[118,32.242,277,36.578,6560,50.141,6572,61.936]],["name/33-72",[]],["text/33-72",[]],["component/33-72",[]],["keyword/33-72",[]],["title/33-73",[277,41.372,281,45.431,6573,70.055]],["name/33-73",[]],["text/33-73",[]],["component/33-73",[]],["keyword/33-73",[]],["title/33-74",[277,32.779,281,35.995,1334,35.517,6560,44.934,6574,55.504]],["name/33-74",[]],["text/33-74",[]],["component/33-74",[]],["keyword/33-74",[]],["title/33-75",[277,36.578,286,31.577,2851,46.189,6575,61.936]],["name/33-75",[]],["text/33-75",[]],["component/33-75",[]],["keyword/33-75",[]],["title/33-76",[55,21.788,184,21.089,238,17.318,333,22.825,2583,22.825,4730,28.69,5267,31.636,6576,29.95,6577,31.636,6578,31.636]],["name/33-76",[]],["text/33-76",[]],["component/33-76",[]],["keyword/33-76",[]],["title/33-77",[874,40.566,877,43.203,5680,64.809]],["name/33-77",[]],["text/33-77",[]],["component/33-77",[]],["keyword/33-77",[]],["title/33-78",[416,48.619,4579,53.023]],["name/33-78",[]],["text/33-78",[]],["component/33-78",[]],["keyword/33-78",[]],["title/33-79",[75,34.012,370,39.128,6579,61.936,6580,57.299]],["name/33-79",[]],["text/33-79",[]],["component/33-79",[]],["keyword/33-79",[]],["title/33-80",[303,28.491,370,35.065,4392,46.566,6552,41.392,6581,55.504]],["name/33-80",[]],["text/33-80",[]],["component/33-80",[]],["keyword/33-80",[]],["title/33-81",[157,38.159,5804,61.354,6582,70.055]],["name/33-81",[]],["text/33-81",[]],["component/33-81",[]],["keyword/33-81",[]],["title/33-82",[303,35.96,4579,46.073,6583,70.055]],["name/33-82",[]],["text/33-82",[]],["component/33-82",[]],["keyword/33-82",[]],["title/33-83",[269,32.982,6584,80.622]],["name/33-83",[]],["text/33-83",[]],["component/33-83",[]],["keyword/33-83",[]],["title/33-84",[2510,55.565,6585,74.585]],["name/33-84",[]],["text/33-84",[]],["component/33-84",[]],["keyword/33-84",[]],["title/33-85",[874,40.566,877,43.203,6586,70.055]],["name/33-85",[]],["text/33-85",[]],["component/33-85",[]],["keyword/33-85",[]],["title/33-86",[357,37.279,1056,49.139,6587,61.354]],["name/33-86",[]],["text/33-86",[]],["component/33-86",[]],["keyword/33-86",[]],["title/33-87",[75,34.012,357,32.959,6588,61.936,6589,54.244]],["name/33-87",[]],["text/33-87",[]],["component/33-87",[]],["keyword/33-87",[]],["title/33-88",[357,46.662,6589,54.244,6590,61.936]],["name/33-88",[]],["text/33-88",[]],["component/33-88",[]],["keyword/33-88",[]],["title/33-89",[6552,60.123,6591,80.622]],["name/33-89",[]],["text/33-89",[]],["component/33-89",[]],["keyword/33-89",[]],["title/33-90",[136,51.589,6592,80.622]],["name/33-90",[]],["text/33-90",[]],["component/33-90",[]],["keyword/33-90",[]],["title/33-91",[303,41.385,6593,80.622]],["name/33-91",[]],["text/33-91",[]],["component/33-91",[]],["keyword/33-91",[]],["title/33-92",[314,61.602,6594,80.622]],["name/33-92",[]],["text/33-92",[]],["component/33-92",[]],["keyword/33-92",[]],["title/33-93",[1346,58.809,6595,80.622]],["name/33-93",[]],["text/33-93",[]],["component/33-93",[]],["keyword/33-93",[]],["title/33-94",[55,24.227,2349,46.189,3582,50.141,6596,61.936]],["name/33-94",[]],["text/33-94",[]],["component/33-94",[]],["keyword/33-94",[]],["title/33-95",[55,22.986,268,21.156,6510,39.222,6553,56.325,6554,28.682,6597,36.534]],["name/33-95",[]],["text/33-95",[]],["component/33-95",[]],["keyword/33-95",[]],["title/33-96",[6598,80.622,6599,74.585]],["name/33-96",[]],["text/33-96",[]],["component/33-96",[]],["keyword/33-96",[]],["title/33-97",[559,40.167,1255,45.179,6510,41.34,6600,61.936]],["name/33-97",[]],["text/33-97",[]],["component/33-97",[]],["keyword/33-97",[]],["title/33-98",[874,40.566,877,43.203,6601,70.055]],["name/33-98",[]],["text/33-98",[]],["component/33-98",[]],["keyword/33-98",[]],["title/33-99",[140,48.282,420,47.492,3614,47.492]],["name/33-99",[]],["text/33-99",[]],["component/33-99",[]],["keyword/33-99",[]],["title/33-100",[2,18.702,275,39.128,2609,40.734,6602,61.936]],["name/33-100",[]],["text/33-100",[]],["component/33-100",[]],["keyword/33-100",[]],["title/33-101",[3032,63.293,6603,80.622]],["name/33-101",[]],["text/33-101",[]],["component/33-101",[]],["keyword/33-101",[]],["title/33-102",[6604,61.936,6605,51.962,6606,57.299,6607,57.299]],["name/33-102",[]],["text/33-102",[]],["component/33-102",[]],["keyword/33-102",[]],["title/33-103",[5222,47.325,6552,46.189,6608,61.936,6609,50.141]],["name/33-103",[]],["text/33-103",[]],["component/33-103",[]],["keyword/33-103",[]],["title/33-104",[1415,40.734,5222,47.325,6609,50.141,6610,61.936]],["name/33-104",[]],["text/33-104",[]],["component/33-104",[]],["keyword/33-104",[]],["title/33-105",[136,35.517,5222,42.41,6552,41.392,6609,44.934,6611,55.504]],["name/33-105",[]],["text/33-105",[]],["component/33-105",[]],["keyword/33-105",[]],["title/33-106",[267,41.8,457,37.001,6612,70.055]],["name/33-106",[]],["text/33-106",[]],["component/33-106",[]],["keyword/33-106",[]],["title/33-107",[130,46.758,1696,46.758,6613,70.055]],["name/33-107",[]],["text/33-107",[]],["component/33-107",[]],["keyword/33-107",[]],["title/33-108",[4333,61.602,6614,80.622]],["name/33-108",[]],["text/33-108",[]],["component/33-108",[]],["keyword/33-108",[]],["title/33-109",[874,40.566,877,43.203,6615,70.055]],["name/33-109",[]],["text/33-109",[]],["component/33-109",[]],["keyword/33-109",[]],["title/33-110",[168,40.734,286,31.577,648,36.578,1429,48.624]],["name/33-110",[]],["text/33-110",[]],["component/33-110",[]],["keyword/33-110",[]],["title/33",[2,26.478,227,31.577,2679,38.65]],["name/33",[6616,0.832]],["text/33",[0,0.931,2,0.584,4,0.081,6,0.099,10,0.095,11,0.076,14,0.212,19,1.792,20,0.386,21,0.906,23,0.099,24,0.246,28,0.101,29,0.537,30,0.273,31,0.692,32,0.428,34,0.446,35,0.4,36,0.105,38,0.101,39,0.417,41,1.643,43,0.166,44,0.564,46,0.917,47,0.233,48,0.506,49,2.033,51,0.696,52,1.802,53,0.405,54,0.608,55,4.118,59,0.095,60,0.467,61,0.066,62,2.648,63,0.089,64,3.719,65,1.262,72,1.476,73,1.264,75,1.184,79,0.112,81,0.729,82,0.888,84,1.109,85,0.572,87,0.322,88,0.662,89,0.458,90,1.893,92,0.103,97,0.252,100,0.28,102,0.204,104,0.641,106,1.995,108,1.175,109,0.393,111,0.939,115,1.324,116,0.128,118,1.007,122,0.268,123,0.464,124,0.103,126,0.109,127,3.21,130,5.347,131,0.386,132,0.44,133,0.136,134,0.105,136,3.379,137,1.157,138,2.76,139,0.315,140,0.2,144,0.204,145,1.621,146,0.194,147,0.099,154,0.636,157,1.115,159,0.194,160,0.212,161,0.852,162,1.465,165,0.105,166,0.123,168,7.056,171,2.189,173,0.716,175,0.103,177,1.063,178,0.115,180,0.085,182,0.495,184,3.684,185,1.733,186,1.018,187,1.697,189,0.093,193,0.723,196,2.591,198,0.188,201,0.333,202,1.052,203,0.303,206,1.323,207,1.683,208,2.35,209,0.177,211,0.405,213,1.226,215,0.204,216,0.204,217,2.206,227,2.628,229,0.136,231,2.179,232,0.288,234,0.512,236,1.931,238,0.744,239,0.288,241,0.094,242,3.22,243,0.647,244,0.576,247,0.245,248,0.958,249,0.745,256,0.88,259,0.092,260,0.098,264,0.252,266,0.061,267,2.998,268,3.364,269,0.343,270,0.642,273,0.508,274,0.293,275,0.694,277,1.4,281,0.544,282,1.132,285,0.103,286,5.104,288,0.44,289,1.018,292,0.2,294,0.906,295,0.712,296,1.451,297,0.228,298,1.847,302,2.305,303,2.369,306,1.635,308,2.895,309,0.181,310,0.082,314,2.944,316,0.233,318,1.544,323,0.283,324,0.353,326,0.56,327,0.288,328,0.098,330,0.621,331,2.178,332,0.844,333,3.915,335,0.194,347,4.275,348,0.436,349,0.231,351,0.629,353,0.349,355,0.076,356,0.222,357,3.263,358,1.03,359,0.228,360,0.723,361,0.177,363,0.552,364,0.092,365,0.753,366,0.324,370,1.004,371,0.88,373,0.112,374,2.461,379,0.094,382,0.598,390,0.573,391,0.901,393,0.473,405,0.805,420,0.099,428,0.293,430,0.464,431,0.657,432,0.512,433,0.115,434,0.37,435,1.078,436,0.912,437,0.308,438,0.084,444,0.852,445,0.629,455,0.393,457,2.948,458,0.115,459,0.395,461,0.208,468,0.874,489,1.338,493,0.585,508,0.337,509,0.107,551,0.794,559,0.874,579,0.327,581,0.083,582,2.682,583,0.222,588,0.088,608,0.235,613,0.101,617,1.571,631,0.212,648,1.4,653,1.917,658,0.217,675,0.276,780,0.099,808,1.327,809,0.605,810,0.088,820,0.107,825,0.367,827,0.103,830,0.109,838,1.301,839,0.115,841,0.322,846,0.52,856,0.105,857,0.589,859,0.693,865,0.436,866,0.641,867,0.105,868,0.096,869,1.445,870,0.204,871,0.6,874,0.25,876,0.436,877,0.179,878,3.181,880,0.112,882,0.107,883,0.303,884,0.612,887,1.516,888,0.288,889,0.235,892,0.107,896,0.386,897,0.115,898,0.722,900,0.297,901,0.391,902,0.741,903,0.495,904,0.612,907,1.031,910,0.119,911,0.964,912,0.416,914,0.745,916,0.733,917,0.303,918,2.162,919,1.038,920,0.098,921,0.101,923,0.339,926,0.589,928,0.605,929,0.897,930,0.337,931,0.212,936,0.526,937,0.2,939,1.492,943,0.315,945,0.407,947,0.589,948,0.235,949,0.107,951,0.315,952,0.115,964,0.208,968,0.197,969,0.416,972,0.208,973,0.217,978,1.56,979,0.393,984,1.89,987,0.101,990,0.4,991,0.095,992,0.783,999,1.065,1003,0.2,1005,0.204,1009,0.284,1010,1.226,1011,0.515,1012,0.112,1013,0.112,1014,0.228,1015,0.817,1017,1.949,1018,0.539,1019,0.912,1020,0.217,1021,0.991,1022,0.612,1038,0.109,1039,0.222,1040,0.228,1044,0.208,1045,0.212,1046,0.552,1059,0.212,1060,0.115,1061,0.276,1063,0.103,1066,0.112,1067,0.115,1068,0.44,1070,0.244,1075,0.165,1083,0.109,1085,0.981,1089,3.622,1090,0.101,1092,0.308,1093,0.552,1095,0.501,1096,0.119,1097,0.447,1098,0.119,1099,0.315,1112,0.119,1113,0.407,1120,0.241,1124,0.107,1127,0.254,1128,0.269,1129,0.103,1132,0.119,1133,0.123,1135,0.098,1138,0.464,1139,0.115,1144,0.322,1145,0.269,1147,0.177,1150,0.862,1151,0.308,1154,0.228,1155,0.217,1156,0.613,1157,1.628,1159,0.672,1161,0.526,1162,0.967,1165,0.269,1172,0.112,1174,0.109,1175,0.244,1176,0.875,1178,0.107,1181,0.452,1182,0.539,1184,0.322,1185,0.109,1190,0.356,1193,0.105,1195,0.208,1201,0.228,1207,0.115,1211,0.184,1215,0.112,1217,0.269,1218,0.478,1221,0.09,1222,2.023,1223,0.181,1225,1.811,1229,0.112,1234,0.109,1235,0.217,1236,0.112,1237,0.115,1238,0.123,1240,0.425,1242,0.859,1244,0.115,1247,0.173,1252,0.222,1253,0.235,1255,1.072,1256,0.378,1257,0.123,1261,1.216,1267,0.478,1272,0.893,1273,0.967,1274,0.222,1278,0.222,1280,0.194,1281,0.693,1282,0.495,1284,1.34,1285,0.914,1290,0.339,1306,1.729,1307,0.2,1310,0.128,1312,0.105,1319,0.339,1324,0.115,1329,0.37,1330,0.936,1334,0.863,1335,0.315,1338,0.103,1340,0.284,1341,0.107,1344,0.101,1346,5.355,1347,0.235,1351,1.159,1352,0.109,1356,0.349,1357,0.112,1359,0.235,1361,0.228,1363,0.123,1364,0.112,1365,0.228,1366,0.539,1367,0.208,1371,0.208,1372,0.222,1374,0.081,1376,0.436,1380,0.362,1383,0.208,1386,3.174,1387,0.222,1393,0.63,1394,0.212,1396,0.447,1397,0.119,1400,0.217,1401,0.38,1402,1.131,1404,0.128,1405,0.471,1406,0.841,1409,0.098,1415,0.967,1425,0.526,1427,0.109,1430,0.123,1431,0.128,1434,0.109,1437,0.228,1439,0.293,1442,0.33,1446,0.128,1452,0.115,1453,0.099,1458,0.228,1461,0.471,1465,0.109,1477,0.244,1478,0.578,1481,0.819,1483,0.101,1485,0.103,1498,0.109,1501,0.115,1512,0.228,1515,0.817,1531,1.36,1540,0.539,1541,0.461,1545,0.339,1548,0.337,1554,0.119,1559,0.284,1563,2.336,1565,0.095,1566,0.539,1580,0.123,1601,0.668,1603,0.273,1631,0.217,1635,0.212,1636,0.217,1642,0.197,1648,0.119,1649,1.439,1680,0.452,1684,0.112,1688,0.889,1690,0.222,1692,0.339,1693,0.119,1696,0.9,1712,0.679,1716,0.119,1737,0.425,1750,0.222,1763,0.128,1767,0.504,1768,0.693,1772,0.103,1778,0.128,1811,0.136,1819,0.128,1837,0.244,1838,0.393,1842,0.913,1843,0.416,1861,0.244,1863,0.109,1880,0.399,1888,0.109,1901,1.761,1909,0.733,1910,0.119,1927,0.123,1928,0.115,1933,0.416,1935,0.128,1937,0.235,1960,0.678,2033,0.107,2038,0.618,2060,0.096,2062,0.254,2065,0.17,2066,0.115,2091,0.228,2093,0.112,2106,0.921,2122,0.136,2169,0.962,2221,0.123,2223,0.119,2233,0.378,2274,3.099,2285,0.123,2304,0.123,2349,3.28,2354,0.128,2365,0.099,2375,0.228,2382,0.112,2383,0.425,2392,0.168,2393,0.322,2394,0.123,2405,0.222,2406,0.288,2434,0.612,2438,1.729,2440,0.4,2510,0.101,2519,1.436,2520,1.493,2531,0.458,2534,3.082,2547,0.504,2553,0.235,2557,0.194,2582,0.105,2583,1.216,2585,0.092,2593,0.626,2595,0.112,2609,0.552,2615,1.89,2617,0.235,2638,0.076,2643,0.612,2673,0.208,2679,2.405,2681,0.486,2683,0.119,2690,0.349,2693,0.123,2695,0.119,2718,0.844,2737,0.222,2837,1.072,2851,0.913,2867,0.123,2868,0.136,2959,0.212,2977,0.197,2986,0.322,2987,1.383,2988,2.162,3019,1.159,3027,0.115,3032,0.115,3034,0.128,3040,1.287,3056,0.222,3068,1.624,3077,0.128,3079,0.204,3089,2.167,3107,0.254,3108,0.115,3112,1.768,3113,0.228,3114,0.123,3115,0.339,3119,0.447,3123,0.212,3130,0.119,3132,0.499,3139,0.123,3141,0.119,3142,0.212,3143,0.254,3146,0.119,3151,0.228,3153,0.254,3154,0.107,3155,0.115,3159,0.119,3161,0.235,3169,0.136,3182,0.499,3186,0.526,3188,2.776,3192,0.478,3197,0.741,3200,0.461,3203,0.235,3208,0.112,3214,0.119,3215,0.447,3217,0.112,3222,0.101,3235,0.123,3249,0.679,3250,0.119,3256,0.136,3262,0.119,3272,0.254,3291,0.254,3295,0.112,3302,0.461,3304,0.136,3348,0.653,3369,0.136,3380,4.57,3400,0.136,3406,0.228,3428,0.128,3453,0.136,3460,0.349,3461,0.447,3478,0.136,3484,0.112,3514,1.495,3544,0.119,3567,0.653,3582,2.631,3583,0.136,3607,0.539,3614,0.099,3618,0.136,3619,0.136,3641,0.235,3643,0.119,3644,0.112,3667,0.273,3669,0.128,3687,0.571,3717,1.36,3740,0.592,3741,0.128,3742,0.478,3743,0.119,3754,0.136,3771,0.254,3798,0.269,3812,0.128,3815,0.235,3821,0.659,3856,0.228,3857,1.948,3878,0.269,3880,0.123,3890,4.533,3899,0.136,3902,2.025,3915,0.136,3917,0.228,3930,0.618,3940,0.115,3970,0.322,4203,0.447,4236,0.128,4237,0.269,4290,0.128,4298,0.235,4324,0.128,4333,0.839,4340,0.136,4350,0.399,4361,0.254,4367,0.339,4392,0.592,4399,0.136,4403,0.136,4445,0.136,4503,0.589,4539,0.115,4549,2.766,4579,1.559,4600,1.072,4634,0.399,4654,0.128,4730,0.362,4734,0.128,4828,1.072,4882,0.235,4953,0.269,5019,0.269,5072,0.785,5116,0.269,5140,0.128,5141,0.571,5195,0.123,5217,0.109,5221,0.128,5222,2.342,5229,0.119,5231,0.244,5328,0.128,5380,0.128,5396,0.136,5399,0.119,5401,0.128,5422,0.254,5458,0.618,5471,0.254,5520,0.269,5530,0.527,5657,1.072,5706,0.776,5709,0.269,5728,0.136,5796,0.244,5797,0.269,5804,0.128,5806,0.228,5842,0.128,5949,0.362,5952,0.123,5998,0.128,6026,0.128,6034,0.136,6187,0.254,6192,0.362,6201,0.704,6284,0.119,6406,1.287,6434,1.73,6470,1.392,6503,5.375,6508,2.102,6509,0.735,6510,4.874,6512,0.776,6515,0.136,6518,0.527,6519,0.962,6536,2.384,6543,0.269,6550,4.679,6551,4.649,6552,3.111,6553,3.581,6554,2.102,6557,1.36,6560,3.377,6562,1.058,6565,1.36,6576,2.432,6577,0.527,6578,0.399,6580,0.776,6587,0.499,6589,2.167,6599,1.016,6605,0.362,6606,0.527,6607,0.136,6609,0.461,6617,0.147,6618,0.147,6619,0.147,6620,0.147,6621,0.147,6622,0.136,6623,1.47,6624,0.147,6625,6.976,6626,8.835,6627,0.147,6628,0.147,6629,0.147,6630,5.754,6631,0.432,6632,1.098,6633,0.136,6634,8.259,6635,0.706,6636,1.707,6637,0.706,6638,2.047,6639,0.706,6640,0.147,6641,2.577,6642,2.474,6643,5.218,6644,2.474,6645,4.248,6646,3.771,6647,2.874,6648,4.248,6649,4.248,6650,3.34,6651,2.37,6652,4.093,6653,2.264,6654,0.432,6655,0.147,6656,0.147,6657,0.147,6658,0.147,6659,0.706,6660,0.147,6661,0.147,6662,0.147,6663,0.136,6664,0.147,6665,0.136,6666,0.147,6667,0.432,6668,0.147,6669,1.131,6670,1.098,6671,0.432,6672,0.706,6673,0.432,6674,0.128,6675,0.136,6676,0.839,6677,1.224,6678,0.291,6679,0.97,6680,0.147,6681,0.147,6682,0.147,6683,0.147,6684,0.147,6685,0.147,6686,0.291,6687,0.147,6688,0.147,6689,0.147,6690,0.147,6691,0.706,6692,0.147,6693,0.147,6694,0.147,6695,1.47,6696,0.147,6697,0.147,6698,0.432,6699,0.291,6700,1.589,6701,0.147,6702,0.147,6703,0.147,6704,0.57,6705,1.589,6706,1.589,6707,0.57,6708,0.291,6709,0.291,6710,0.291,6711,0.147,6712,0.147,6713,0.147,6714,0.147,6715,0.291,6716,0.291,6717,0.147,6718,0.147,6719,0.147,6720,0.147,6721,0.147,6722,1.016,6723,0.147,6724,0.147,6725,0.147,6726,0.123,6727,0.432,6728,0.147,6729,0.147,6730,0.269,6731,0.254,6732,0.291,6733,0.291,6734,0.147,6735,0.128,6736,0.291,6737,0.136,6738,0.378,6739,0.432,6740,0.291,6741,1.224,6742,0.147,6743,0.147,6744,0.291,6745,0.147,6746,0.291,6747,0.291,6748,0.291,6749,0.291,6750,0.291,6751,0.291,6752,0.291,6753,0.147,6754,0.128,6755,0.136,6756,0.147,6757,0.136,6758,0.291,6759,0.399,6760,0.147,6761,0.147,6762,0.706,6763,0.432,6764,0.291,6765,0.147,6766,0.839,6767,0.147,6768,0.57,6769,0.57,6770,0.147,6771,0.147,6772,0.147,6773,0.706,6774,0.432,6775,1.707,6776,0.706,6777,1.47,6778,0.147,6779,0.147,6780,0.147,6781,0.147,6782,0.147,6783,0.147,6784,0.147,6785,0.136,6786,5.464,6787,0.839,6788,1.589,6789,1.47,6790,0.147,6791,0.147,6792,0.147,6793,0.147,6794,0.57,6795,0.706,6796,0.706,6797,0.136,6798,0.57,6799,0.291,6800,0.147,6801,0.399,6802,0.147,6803,0.291,6804,0.399,6805,0.291,6806,0.147,6807,0.147,6808,0.147,6809,0.839,6810,0.147,6811,0.147,6812,0.147,6813,0.147,6814,0.147,6815,0.147,6816,0.291,6817,0.378,6818,0.147,6819,1.19,6820,1.47,6821,0.432,6822,0.147,6823,0.147,6824,0.147,6825,0.269,6826,0.147,6827,0.147,6828,0.147,6829,0.839,6830,0.839,6831,0.136,6832,0.147,6833,0.706,6834,0.147,6835,0.147,6836,0.147,6837,0.147,6838,0.291,6839,0.432,6840,0.147,6841,0.147,6842,0.147,6843,0.706,6844,0.432,6845,1.224,6846,0.839,6847,1.707,6848,1.707,6849,1.822,6850,0.147,6851,0.147,6852,0.147,6853,0.432,6854,0.291,6855,0.147,6856,0.147,6857,0.291,6858,0.97,6859,0.432,6860,0.147,6861,0.147,6862,0.147,6863,0.147,6864,0.147,6865,0.291,6866,0.147,6867,0.147,6868,0.147,6869,0.147,6870,0.147,6871,0.147,6872,0.147,6873,0.432,6874,0.136,6875,0.147,6876,0.147,6877,0.291,6878,0.706,6879,0.147,6880,0.147,6881,0.147,6882,0.147,6883,1.47,6884,0.147,6885,0.432,6886,0.291,6887,0.432,6888,0.147,6889,0.128,6890,0.147,6891,2.264,6892,0.147,6893,0.147,6894,0.147,6895,0.147,6896,0.291,6897,0.147,6898,0.291,6899,0.147,6900,0.147,6901,0.147,6902,0.147,6903,0.147,6904,0.291,6905,0.147,6906,0.147,6907,0.57,6908,0.147,6909,1.348,6910,0.706,6911,1.098,6912,0.349,6913,0.432,6914,0.147,6915,0.527,6916,0.147,6917,0.254,6918,0.269,6919,0.269,6920,0.291,6921,0.147,6922,0.291,6923,0.839,6924,1.47,6925,0.839,6926,0.291,6927,0.291,6928,0.136,6929,0.147,6930,0.147,6931,0.128,6932,0.706,6933,0.57,6934,0.432,6935,0.147,6936,0.147,6937,0.432,6938,0.147,6939,0.147,6940,0.147,6941,0.147,6942,0.147,6943,0.147,6944,0.147,6945,0.136,6946,0.291,6947,0.147,6948,0.57,6949,0.147,6950,0.147,6951,0.147,6952,0.839,6953,0.706,6954,0.57,6955,0.57,6956,0.244,6957,0.706,6958,0.432,6959,0.269,6960,0.147,6961,0.147,6962,0.147,6963,0.147,6964,0.432,6965,0.147,6966,0.147,6967,0.147,6968,0.147,6969,0.147,6970,0.147,6971,0.432,6972,0.147,6973,0.147,6974,0.147,6975,0.57,6976,0.147,6977,0.147,6978,0.147,6979,0.97,6980,0.147,6981,0.147,6982,0.147,6983,1.935,6984,0.147,6985,0.147,6986,0.291,6987,0.291,6988,0.291,6989,0.147,6990,0.147,6991,0.147,6992,0.147,6993,0.147,6994,0.147,6995,0.147,6996,0.147,6997,0.147,6998,0.147,6999,0.147,7000,0.147,7001,0.147,7002,0.147,7003,0.291,7004,0.147,7005,0.147,7006,0.147,7007,0.147,7008,0.147,7009,0.147,7010,0.147,7011,0.147,7012,0.57,7013,0.147,7014,0.147,7015,0.147,7016,0.147,7017,0.128,7018,0.147,7019,0.147,7020,0.432,7021,0.147,7022,0.128,7023,0.291,7024,0.147,7025,0.147,7026,0.147,7027,0.147,7028,0.147,7029,0.147,7030,0.136,7031,0.291,7032,0.147,7033,0.147,7034,0.147,7035,0.527,7036,0.147,7037,0.147,7038,0.136,7039,0.291,7040,0.136,7041,0.147,7042,0.432,7043,0.291,7044,0.57,7045,0.147,7046,0.147,7047,0.706,7048,0.432,7049,0.291,7050,0.839,7051,0.147,7052,0.147,7053,0.432]],["component/33",[2,0.251,266,0.348]],["keyword/33",[]],["title/34-1",[0,28.028,3353,65.268]],["name/34-1",[]],["text/34-1",[]],["component/34-1",[]],["keyword/34-1",[]],["title/34-2",[3,53.812,1928,63.293]],["name/34-2",[]],["text/34-2",[]],["component/34-2",[]],["keyword/34-2",[]],["title/34-3",[5,46.758,93,46.758,5500,61.354]],["name/34-3",[]],["text/34-3",[]],["component/34-3",[]],["keyword/34-3",[]],["title/34-4",[9,44.27,100,40.167,486,30.378,1585,51.962]],["name/34-4",[]],["text/34-4",[]],["component/34-4",[]],["keyword/34-4",[]],["title/34-5",[21,26.776,827,49.139,7054,70.055]],["name/34-5",[]],["text/34-5",[]],["component/34-5",[]],["keyword/34-5",[]],["title/34-6",[278,34.012,508,36.578,1019,35.529,1438,38.196]],["name/34-6",[]],["text/34-6",[]],["component/34-6",[]],["keyword/34-6",[]],["title/34-7",[270,36.731,2060,46.073,4032,56.713]],["name/34-7",[]],["text/34-7",[]],["component/34-7",[]],["keyword/34-7",[]],["title/34-8",[2,18.702,1438,38.196,2725,47.325,4033,50.141]],["name/34-8",[]],["text/34-8",[]],["component/34-8",[]],["keyword/34-8",[]],["title/34-9",[108,38.159,279,40.961,1438,43.203]],["name/34-9",[]],["text/34-9",[]],["component/34-9",[]],["keyword/34-9",[]],["title/34-10",[122,32.975,1438,43.203,4037,56.713]],["name/34-10",[]],["text/34-10",[]],["component/34-10",[]],["keyword/34-10",[]],["title/34-11",[1960,34.296,4038,50.141,7055,61.936,7056,61.936]],["name/34-11",[]],["text/34-11",[]],["component/34-11",[]],["keyword/34-11",[]],["title/34-12",[2,16.76,324,27.743,1441,34.229,4039,48.611,4226,44.934]],["name/34-12",[]],["text/34-12",[]],["component/34-12",[]],["keyword/34-12",[]],["title/34-13",[2,16.76,228,41.392,1203,37.628,1232,44.934,4040,51.348]],["name/34-13",[]],["text/34-13",[]],["component/34-13",[]],["keyword/34-13",[]],["title/34-14",[438,31.839,3484,42.41,4041,51.348,6889,48.611,7057,48.611]],["name/34-14",[]],["text/34-14",[]],["component/34-14",[]],["keyword/34-14",[]],["title/34-15",[1438,43.203,7058,70.055,7059,64.809]],["name/34-15",[]],["text/34-15",[]],["component/34-15",[]],["keyword/34-15",[]],["title/34-16",[280,50.933,1438,49.719]],["name/34-16",[]],["text/34-16",[]],["component/34-16",[]],["keyword/34-16",[]],["title/34-17",[122,32.975,3808,58.773,4042,58.773]],["name/34-17",[]],["text/34-17",[]],["component/34-17",[]],["keyword/34-17",[]],["title/34-18",[19,32.454,32,28.298,457,29.316,2688,42.41,4043,46.566]],["name/34-18",[]],["text/34-18",[]],["component/34-18",[]],["keyword/34-18",[]],["title/34-19",[2718,48.282,4044,61.354,7060,61.354]],["name/34-19",[]],["text/34-19",[]],["component/34-19",[]],["keyword/34-19",[]],["title/34-20",[2718,48.282,3970,52.243,4045,64.809]],["name/34-20",[]],["text/34-20",[]],["component/34-20",[]],["keyword/34-20",[]],["title/34-21",[34,39.128,38,42.687,2520,45.179,4046,57.299]],["name/34-21",[]],["text/34-21",[]],["component/34-21",[]],["keyword/34-21",[]],["title/34-22",[24,30.232,1181,44.827,4659,49.139]],["name/34-22",[]],["text/34-22",[]],["component/34-22",[]],["keyword/34-22",[]],["title/34-23",[90,28.491,111,32.779,287,34.229,1181,35.517,1315,35.517]],["name/34-23",[]],["text/34-23",[]],["component/34-23",[]],["keyword/34-23",[]],["title/34-24",[84,28.992,1181,39.633,4157,54.244,7061,61.936]],["name/34-24",[]],["text/34-24",[]],["component/34-24",[]],["keyword/34-24",[]],["title/34-25",[152,49.139,4158,64.809,4659,49.139]],["name/34-25",[]],["text/34-25",[]],["component/34-25",[]],["keyword/34-25",[]],["title/34-26",[122,32.975,454,35.244,1438,43.203]],["name/34-26",[]],["text/34-26",[]],["component/34-26",[]],["keyword/34-26",[]],["title/34-27",[111,32.779,223,44.934,460,38.933,5217,41.392,7062,55.504]],["name/34-27",[]],["text/34-27",[]],["component/34-27",[]],["keyword/34-27",[]],["title/34-28",[223,44.934,351,35.995,465,40.487,1009,36.504,2583,37.047]],["name/34-28",[]],["text/34-28",[]],["component/34-28",[]],["keyword/34-28",[]],["title/34-29",[90,28.491,152,38.933,302,20.524,2669,43.574,5973,43.574]],["name/34-29",[]],["text/34-29",[]],["component/34-29",[]],["keyword/34-29",[]],["title/34-30",[122,23.669,1159,27.613,1751,44.038,1960,27.843,2519,35.27,2670,40.706]],["name/34-30",[]],["text/34-30",[]],["component/34-30",[]],["keyword/34-30",[]],["title/34-31",[34,39.128,846,33.211,2671,50.141,3432,54.244]],["name/34-31",[]],["text/34-31",[]],["component/34-31",[]],["keyword/34-31",[]],["title/34-32",[310,28.081,1409,33.561,2672,42.185,3123,36.678,6912,40.706,7063,50.283]],["name/34-32",[]],["text/34-32",[]],["component/34-32",[]],["keyword/34-32",[]],["title/34-33",[242,37.047,302,20.524,2536,41.392,7064,51.348,7065,55.504]],["name/34-33",[]],["text/34-33",[]],["component/34-33",[]],["keyword/34-33",[]],["title/34-34",[316,37.857,4659,49.139,7066,58.773]],["name/34-34",[]],["text/34-34",[]],["component/34-34",[]],["keyword/34-34",[]],["title/34-35",[242,41.34,481,51.962,2536,46.189,7067,61.936]],["name/34-35",[]],["text/34-35",[]],["component/34-35",[]],["keyword/34-35",[]],["title/34-36",[177,34.012,492,51.962,7066,51.962,7068,61.936]],["name/34-36",[]],["text/34-36",[]],["component/34-36",[]],["keyword/34-36",[]],["title/34-37",[500,61.354,7066,58.773,7069,70.055]],["name/34-37",[]],["text/34-37",[]],["component/34-37",[]],["keyword/34-37",[]],["title/34-38",[576,42.713,1960,38.792,2519,49.139]],["name/34-38",[]],["text/34-38",[]],["component/34-38",[]],["keyword/34-38",[]],["title/34-39",[508,47.613,577,70.609]],["name/34-39",[]],["text/34-39",[]],["component/34-39",[]],["keyword/34-39",[]],["title/34-40",[609,70.609,1438,49.719]],["name/34-40",[]],["text/34-40",[]],["component/34-40",[]],["keyword/34-40",[]],["title/34-41",[636,70.609,1010,45.826]],["name/34-41",[]],["text/34-41",[]],["component/34-41",[]],["keyword/34-41",[]],["title/34-42",[171,31.291,6564,74.585]],["name/34-42",[]],["text/34-42",[]],["component/34-42",[]],["keyword/34-42",[]],["title/34-43",[508,41.372,6738,61.354,7070,70.055]],["name/34-43",[]],["text/34-43",[]],["component/34-43",[]],["keyword/34-43",[]],["title/34-44",[846,33.211,1315,39.633,3920,46.189,7071,57.299]],["name/34-44",[]],["text/34-44",[]],["component/34-44",[]],["keyword/34-44",[]],["title/34-45",[642,46.758,4659,49.139,7072,61.354]],["name/34-45",[]],["text/34-45",[]],["component/34-45",[]],["keyword/34-45",[]],["title/34-46",[508,47.613,643,67.639]],["name/34-46",[]],["text/34-46",[]],["component/34-46",[]],["keyword/34-46",[]],["title/34-47",[647,67.639,7073,80.622]],["name/34-47",[]],["text/34-47",[]],["component/34-47",[]],["keyword/34-47",[]],["title/34-48",[652,67.639,1438,49.719]],["name/34-48",[]],["text/34-48",[]],["component/34-48",[]],["keyword/34-48",[]],["title/34-49",[657,70.609,1010,45.826]],["name/34-49",[]],["text/34-49",[]],["component/34-49",[]],["keyword/34-49",[]],["title/34-50",[659,64.809,1010,39.819,4659,49.139]],["name/34-50",[]],["text/34-50",[]],["component/34-50",[]],["keyword/34-50",[]],["title/34-51",[360,41.372,7072,61.354,7074,70.055]],["name/34-51",[]],["text/34-51",[]],["component/34-51",[]],["keyword/34-51",[]],["title/34-52",[228,46.189,449,39.633,827,43.444,1438,38.196]],["name/34-52",[]],["text/34-52",[]],["component/34-52",[]],["keyword/34-52",[]],["title/34-53",[812,67.639,1438,49.719]],["name/34-53",[]],["text/34-53",[]],["component/34-53",[]],["keyword/34-53",[]],["title/34-54",[309,43.716,817,56.713,1159,38.471]],["name/34-54",[]],["text/34-54",[]],["component/34-54",[]],["keyword/34-54",[]],["title/34-55",[41,37.564,822,58.773,1315,44.827]],["name/34-55",[]],["text/34-55",[]],["component/34-55",[]],["keyword/34-55",[]],["title/34-56",[324,40.297,2990,70.609]],["name/34-56",[]],["text/34-56",[]],["component/34-56",[]],["keyword/34-56",[]],["title/34-57",[1315,39.633,2679,38.65,2997,54.244,3920,46.189]],["name/34-57",[]],["text/34-57",[]],["component/34-57",[]],["keyword/34-57",[]],["title/34-58",[480,63.293,6569,74.585]],["name/34-58",[]],["text/34-58",[]],["component/34-58",[]],["keyword/34-58",[]],["title/34",[2,18.702,100,40.167,827,43.444,1438,38.196]],["name/34",[7075,0.832]],["text/34",[0,2.668,2,2.833,10,1.813,11,0.698,21,2.462,22,0.34,23,0.322,24,2.034,28,0.635,30,2.977,31,1.869,32,1.075,34,2.672,35,0.646,39,0.544,40,0.909,41,1.983,44,0.244,48,0.808,49,0.232,53,1.957,55,4.871,56,1.024,57,0.312,62,0.199,63,1.129,65,4.069,72,2.369,73,1.375,75,1.535,81,0.938,82,0.904,83,0.287,84,0.222,85,0.247,86,0.498,87,1.294,88,1.876,89,1.813,90,2.038,92,0.333,93,0.317,97,0.539,98,0.44,99,0.44,100,3.729,102,0.646,103,0.704,104,0.363,108,1.859,109,0.635,110,0.385,111,2.498,112,0.858,113,0.44,117,1.704,118,0.479,122,3.556,123,1.142,127,3.052,134,0.34,135,1.407,137,0.624,138,2.183,142,0.327,144,0.333,145,1.082,152,0.333,154,0.275,157,0.259,160,0.978,161,1.555,168,1.387,171,3.336,175,0.94,177,0.953,185,1.744,186,0.284,187,0.792,189,0.582,196,2.69,197,0.347,198,0.308,201,0.539,202,0.568,207,2.322,208,0.978,209,0.29,211,0.273,213,3.569,215,0.333,216,0.646,217,1.606,221,0.322,222,0.373,223,3.815,226,0.597,227,0.47,228,1.294,232,0.615,234,1.501,236,0.268,238,0.241,242,3.579,243,0.917,247,2.93,248,0.555,252,0.247,256,0.51,260,0.615,263,2.308,266,0.726,269,0.71,270,1.106,273,0.22,281,0.308,285,0.333,288,0.703,292,0.327,294,2.906,295,1.643,296,0.212,298,0.762,302,0.78,303,0.244,306,3.074,308,3.067,309,3.346,310,0.749,316,0.938,318,0.297,324,1.23,325,0.284,327,0.615,328,0.317,331,0.253,332,0.635,338,0.347,343,0.34,347,2.073,351,0.597,358,0.674,360,0.544,363,0.312,364,0.297,365,0.514,366,0.27,371,0.961,374,1.407,382,0.259,416,0.555,420,0.624,421,0.704,428,2.867,430,0.606,431,0.909,432,0.29,434,1.126,435,2.156,436,0.528,438,4.19,444,0.582,445,0.308,449,0.589,454,1.406,455,1.196,457,2.364,464,0.646,468,2.018,475,0.658,486,0.233,493,0.287,508,0.792,576,0.817,581,1.199,588,0.8,589,0.624,595,1.294,603,0.597,604,0.304,606,1.097,642,0.895,653,3.06,799,0.978,801,0.308,810,0.555,818,0.49,830,1,835,0.672,839,0.373,846,1.32,853,0.399,856,0.34,857,0.94,859,0.34,860,0.34,864,1.286,867,0.34,869,1.704,870,1.479,871,0.34,872,1.993,874,0.776,875,0.958,877,0.827,878,1.453,882,1.538,883,0.646,886,0.704,887,0.304,888,0.317,892,0.978,895,0.354,896,4.473,898,1.619,901,1.889,902,0.363,903,1.726,907,0.646,911,0.34,912,0.672,914,0.624,919,1.32,923,0.723,926,0.333,930,0.544,936,0.687,937,1.696,939,0.287,947,1.479,949,0.347,962,0.347,964,0.34,965,2.244,966,0.399,968,0.624,972,5.221,974,1.125,977,0.333,978,1.453,979,0.635,981,0.624,986,0.704,987,0.327,992,1.111,995,0.385,1008,0.399,1009,0.312,1010,0.524,1011,0.672,1012,1.326,1017,0.524,1019,2.833,1020,1,1022,0.672,1024,5.398,1032,1.919,1033,2.039,1034,0.373,1039,0.704,1041,0.658,1042,0.399,1046,1.142,1054,0.589,1056,0.646,1057,0.704,1060,0.373,1061,0.589,1063,0.333,1066,0.363,1075,0.987,1078,1.707,1080,1.241,1113,0.34,1116,0.34,1119,0.354,1120,0.265,1124,0.672,1129,0.333,1131,0.275,1135,0.895,1139,0.373,1145,3.703,1147,1.058,1152,0.807,1159,3.259,1162,1.619,1168,0.723,1171,0.363,1178,1.266,1180,0.34,1181,1.789,1184,0.354,1191,1.217,1192,0.308,1200,4.978,1203,0.624,1205,0.416,1211,0.582,1221,0.827,1225,1.024,1232,1.707,1242,0.646,1243,0.385,1247,0.55,1257,0.399,1261,0.615,1262,0.308,1277,0.327,1280,0.895,1282,0.646,1284,0.373,1285,1.43,1287,0.297,1290,0.373,1297,1,1305,0.354,1315,2.54,1321,0.327,1322,0.354,1329,1.596,1335,0.347,1341,0.672,1343,0.34,1344,0.327,1347,1.707,1357,0.363,1359,0.385,1368,0.784,1371,0.958,1372,0.704,1375,0.385,1383,0.658,1385,0.672,1387,0.363,1401,0.615,1409,2.277,1429,0.723,1434,0.687,1438,3.872,1439,0.322,1441,0.568,1452,0.373,1453,0.322,1461,0.615,1468,1.083,1469,2.378,1470,0.416,1481,0.354,1483,0.635,1485,1.217,1487,0.385,1492,1.52,1494,0.606,1495,0.354,1503,0.308,1506,0.373,1507,0.723,1515,0.317,1518,0.773,1523,1,1538,0.658,1540,1.326,1548,0.281,1553,0.746,1559,0.312,1596,0.704,1636,0.354,1642,0.322,1649,1.407,1652,0.852,1653,0.399,1660,0.373,1662,0.385,1684,0.363,1693,0.385,1694,0.807,1732,0.723,1751,0.416,1768,0.958,1772,0.646,1779,0.399,1813,1.456,1817,1.835,1838,0.327,1840,0.373,1841,0.373,1849,2.697,1862,0.385,1863,0.354,1901,0.312,1906,0.687,1933,0.978,1960,4.903,1961,0.399,2054,0.363,2060,1.142,2065,3.014,2091,1.655,2095,0.746,2107,0.704,2140,1.707,2198,0.399,2280,0.672,2284,0.363,2310,1.363,2375,2.443,2382,0.363,2383,0.687,2390,4.341,2392,0.275,2442,0.363,2519,1.217,2520,3.911,2533,0.327,2534,1.696,2536,4.146,2553,0.746,2557,1.407,2582,4.488,2583,1.407,2585,1.744,2586,0.852,2593,0.354,2614,0.704,2618,0.606,2638,2.453,2643,1.266,2673,0.958,2679,0.297,2681,1.696,2688,0.704,2689,0.373,2692,0.354,2718,0.327,2725,2.136,2761,0.347,2807,3.32,2828,0.373,2837,0.347,2851,0.354,2959,0.672,3021,0.399,3026,0.44,3034,0.416,3056,0.363,3063,0.312,3078,1.43,3081,0.347,3110,0.416,3112,0.34,3123,0.347,3138,1.125,3185,0.416,3191,0.399,3196,0.385,3208,0.363,3255,0.347,3288,0.399,3295,0.363,3303,1.363,3351,4.96,3380,0.416,3399,0.347,3406,0.373,3461,0.723,3484,1.024,3500,0.399,3568,0.373,3607,0.363,3626,0.416,3641,0.385,3642,0.354,3644,0.363,3654,3.912,3669,0.807,3683,0.373,3685,0.416,3742,0.399,3757,0.399,3772,0.704,3819,0.807,3823,1.847,3920,1,3940,3.514,3941,1.405,3942,0.399,3965,1.24,3966,1.174,3967,1.24,3970,3.998,4226,1.993,4231,0.399,4267,0.399,4372,0.416,4503,0.333,4659,4.034,4690,0.44,4830,0.385,4905,1.456,4958,2.448,5038,1.363,5041,0.416,5217,2.545,5229,1.405,5488,0.416,5500,0.807,5531,0.807,5534,1.085,5613,0.385,5623,1.606,5697,1.606,5704,3.815,5738,2.586,5794,3.912,5806,0.373,5973,2.443,6026,2.988,6187,1.52,6560,0.385,6675,0.44,6754,0.416,6817,1.52,6819,0.746,6912,1.993,7057,2.156,7059,1.24,7060,1.174,7066,2.345,7072,4.325,7076,4.87,7077,0.44,7078,0.416,7079,0.475,7080,0.475,7081,1.736,7082,0.475,7083,0.44,7084,0.921,7085,0.44,7086,0.475,7087,0.475,7088,0.475,7089,0.475,7090,0.475,7091,0.475,7092,0.475,7093,0.475,7094,0.475,7095,0.475,7096,0.773,7097,0.475,7098,0.475,7099,8.481,7100,0.475,7101,0.852,7102,0.44,7103,0.44,7104,0.44,7105,0.44,7106,0.44,7107,3.698,7108,4.498,7109,1.736,7110,0.475,7111,0.475,7112,0.475,7113,0.475,7114,0.475,7115,0.416,7116,0.44,7117,0.44,7118,0.44,7119,0.44,7120,0.44,7121,0.44,7122,0.44,7123,0.44,7124,0.44,7125,0.416,7126,0.44,7127,0.44,7128,0.416,7129,0.44,7130,0.852,7131,0.44,7132,0.44,7133,0.44,7134,0.44,7135,0.44,7136,0.44,7137,0.44,7138,0.852,7139,0.807,7140,0.44,7141,0.416,7142,0.44,7143,0.475,7144,0.475,7145,0.475,7146,0.475,7147,0.475,7148,0.475,7149,0.921,7150,0.475,7151,0.475,7152,0.475,7153,0.921,7154,2.461,7155,1.341,7156,0.475,7157,0.475,7158,0.475,7159,0.475,7160,0.475,7161,0.44,7162,0.475,7163,0.921,7164,0.416,7165,0.921,7166,0.475,7167,1.736,7168,0.921,7169,0.852,7170,0.921,7171,0.921,7172,0.921,7173,0.921,7174,0.921,7175,0.921,7176,2.109,7177,2.109,7178,1.736,7179,1.341,7180,1.341,7181,5.959,7182,0.44,7183,0.921,7184,0.921,7185,0.475,7186,1.341,7187,0.921,7188,0.475,7189,0.475,7190,0.44,7191,0.475,7192,0.475,7193,0.475,7194,0.475,7195,0.475,7196,2.795,7197,0.921,7198,1.736,7199,2.795,7200,2.109,7201,0.921,7202,0.475,7203,1.736,7204,0.921,7205,0.475,7206,0.475,7207,0.475,7208,2.109,7209,0.475,7210,0.475,7211,0.852,7212,1.951,7213,0.475,7214,0.475,7215,0.44,7216,0.416,7217,0.475,7218,0.475,7219,0.475,7220,0.475,7221,0.475,7222,1.341,7223,0.475,7224,0.475,7225,0.475,7226,0.475,7227,0.475,7228,0.475,7229,0.475,7230,0.475,7231,0.475,7232,1.736,7233,1.341,7234,0.475,7235,0.416,7236,0.44,7237,1.736,7238,0.475,7239,0.475,7240,0.475,7241,0.475,7242,0.475,7243,0.475,7244,0.475,7245,0.475,7246,0.475,7247,0.475]],["component/34",[2,0.251,266,0.348]],["keyword/34",[]],["title/35-1",[0,28.028,1438,49.719]],["name/35-1",[]],["text/35-1",[]],["component/35-1",[]],["keyword/35-1",[]],["title/35-2",[21,26.776,270,36.731,2060,46.073]],["name/35-2",[]],["text/35-2",[]],["component/35-2",[]],["keyword/35-2",[]],["title/35-3",[2,18.702,24,26.728,1438,38.196,2725,47.325]],["name/35-3",[]],["text/35-3",[]],["component/35-3",[]],["keyword/35-3",[]],["title/35-4",[122,32.975,454,35.244,3808,58.773]],["name/35-4",[]],["text/35-4",[]],["component/35-4",[]],["keyword/35-4",[]],["title/35-5",[19,32.454,32,28.298,316,29.994,457,29.316,2688,42.41]],["name/35-5",[]],["text/35-5",[]],["component/35-5",[]],["keyword/35-5",[]],["title/35-6",[576,42.713,2718,48.282,7060,61.354]],["name/35-6",[]],["text/35-6",[]],["component/35-6",[]],["keyword/35-6",[]],["title/35-7",[642,46.758,2718,48.282,3970,52.243]],["name/35-7",[]],["text/35-7",[]],["component/35-7",[]],["keyword/35-7",[]],["title/35-8",[34,39.128,38,42.687,449,39.633,2520,45.179]],["name/35-8",[]],["text/35-8",[]],["component/35-8",[]],["keyword/35-8",[]],["title/35",[2729,83.152]],["name/35",[2729,0.729]],["text/35",[0,0.772,2,3.385,10,5.34,22,1.587,31,1.045,32,3.556,34,5.202,35,2.713,41,1.191,48,1.339,63,1.878,65,3.794,72,1.325,73,2.871,75,1.219,87,1.656,88,3.71,90,1.14,92,1.557,100,5.34,102,2.713,103,2.956,104,1.697,108,3.799,109,1.53,111,1.311,112,3.289,117,3.751,118,1.156,122,3.605,123,2.544,127,2.485,137,1.505,138,1.557,142,1.53,145,1.14,154,1.286,185,1.386,186,1.325,187,3.036,196,2.8,197,1.62,198,1.44,201,2.262,202,1.369,207,1.219,208,2.179,211,1.274,213,1.262,222,1.743,234,2.359,242,6.109,243,1.173,247,1.262,248,2.333,256,1.23,270,1.164,281,1.44,285,1.557,288,1.164,294,3.17,298,1.262,306,1.117,308,2.447,324,2.569,325,1.325,328,1.482,347,1.028,360,1.311,363,1.46,374,3.431,435,1.403,436,2.219,438,4.393,444,1.403,457,5.203,468,5.34,588,3.067,606,2.444,653,1.182,799,2.822,830,1.656,835,2.822,839,1.743,846,2.074,853,1.863,857,1.557,859,1.587,860,2.765,864,1.354,865,1.697,870,3.606,878,1.53,887,1.421,901,1.23,903,3.606,911,1.587,912,2.822,914,1.505,919,1.191,936,2.885,939,1.339,966,1.863,977,1.557,979,2.666,987,1.53,995,1.798,1011,1.62,1012,3.928,1017,1.262,1019,1.274,1020,2.885,1022,1.62,1033,1.62,1042,1.863,1060,1.743,1061,1.421,1066,1.697,1080,1.587,1113,2.765,1116,1.587,1119,1.656,1120,1.24,1131,1.286,1135,1.482,1147,1.354,1159,1.219,1162,4.046,1171,1.697,1180,1.587,1181,1.421,1191,2.713,1192,1.44,1211,2.444,1221,1.369,1232,1.798,1242,2.713,1243,1.798,1247,1.325,1261,2.582,1280,1.482,1321,1.53,1329,3.989,1335,2.822,1343,1.587,1347,5.646,1371,3.674,1372,2.956,1438,5.644,1439,1.505,1468,2.414,1470,1.945,1481,1.656,1483,1.53,1485,1.557,1503,1.44,1506,1.743,1515,1.482,1642,1.505,1732,3.037,1772,2.713,1813,5.161,1817,1.656,1838,1.53,1840,1.743,1849,5.586,1862,1.798,1863,1.656,1960,2.142,1961,1.863,2060,3.381,2284,1.697,2310,3.037,2382,1.697,2442,1.697,2520,5.088,2536,7.346,2557,4.655,2582,2.765,2638,1.156,2643,4.487,2681,2.666,2688,1.697,2689,1.743,2692,1.656,2718,1.53,2725,6.291,2761,1.62,2837,1.62,2959,1.62,3078,1.505,3112,1.587,3196,1.798,3208,1.697,3255,1.62,3295,1.697,3399,1.62,3484,1.697,3500,1.863,3568,1.743,3626,1.945,3644,1.697,3683,1.743,3772,1.697,3823,1.945,3940,5.476,3941,4.161,3942,1.863,3970,7.346,4231,1.863,4503,1.557,4659,4.315,4830,1.798,4905,5.161,5041,1.945,5217,2.885,5229,3.132,5488,1.945,5531,3.388,5534,4.161,5613,1.798,5806,1.743,5973,3.037,6754,1.945,6817,1.945,6819,3.132,6912,3.132,7057,6.108,7076,7.211,7077,2.054,7078,1.945,7101,3.579,7102,2.054,7103,2.054,7104,2.054,7105,2.054,7106,2.054,7115,1.945,7116,2.054,7117,2.054,7118,2.054,7119,2.054,7120,2.054,7121,2.054,7122,2.054,7123,2.054,7124,2.054,7125,1.945,7126,2.054,7127,2.054,7128,1.945,7129,2.054,7130,3.579,7131,2.054,7132,4.755,7133,2.054,7134,2.054,7135,2.054,7136,2.054,7137,2.054,7138,2.054,7139,1.945,7140,2.054,7141,1.945,7142,2.054]],["component/35",[2,0.251,266,0.348]],["keyword/35",[]],["title/36",[455,48.282,1306,51.1,2686,53.528]],["name/36",[7248,0.832]],["text/36",[0,3.061,2,2.659,21,3.366,24,3.8,225,5.97,252,4.584,308,4.192,347,4.077,454,4.43,455,7.65,811,5.254,1306,6.423,2508,10.706,2509,10.706,2686,8.481,2714,5.97,2716,6.567,3886,8.147,5251,8.147,7249,8.806,7250,8.806,7251,8.147,7252,8.806,7253,8.806,7254,8.147,7255,8.806,7256,8.806,7257,8.806,7258,8.806,7259,8.806]],["component/36",[2,0.251,266,0.348]],["keyword/36",[]],["title/37",[85,36.468,227,35.716,2686,53.528]],["name/37",[7260,0.832]],["text/37",[0,0.911,1,2.057,2,0.791,6,1.777,10,1.7,11,3.033,14,1.912,19,4.511,20,3.025,21,1.002,23,1.777,24,1.131,25,2.447,28,3.075,30,5.303,31,3.631,40,1.777,51,1.49,60,2.928,74,1.31,80,6.246,82,1.364,83,2.691,85,5.941,89,1.7,90,1.345,97,2.609,100,4.461,117,5.462,118,2.323,124,1.838,145,2.991,151,4.461,153,2.057,154,1.518,160,1.912,164,2.424,165,4.917,167,6.057,170,5.569,179,2.002,183,1.912,185,1.635,186,5.009,187,1.548,196,1.427,197,3.255,213,1.49,217,2.1,225,1.777,226,3.779,227,5.352,231,3.227,236,2.514,239,6.297,240,2.002,252,1.364,269,1.825,273,2.066,285,4.087,298,1.49,308,1.248,323,1.302,347,1.213,349,3.124,393,1.277,436,2.56,454,1.318,455,3.075,458,2.057,507,2.295,533,2.424,582,2.721,589,1.777,603,1.7,809,1.635,811,1.564,831,2.057,832,2.424,838,1.439,840,2.424,841,1.954,846,2.393,856,1.873,857,1.838,870,4.087,888,1.749,901,1.451,945,1.873,1006,2.057,1017,2.536,1044,1.873,1057,3.409,1059,1.912,1063,3.13,1092,4.165,1124,1.912,1142,2.002,1144,1.954,1145,2.784,1192,1.7,1195,1.873,1203,1.777,1205,2.295,1262,1.7,1281,1.873,1338,1.838,1442,2.002,1459,1.912,1478,1.806,1493,3.744,1585,2.199,1675,2.935,1687,1.873,1737,1.954,1772,1.838,1838,1.806,1888,1.954,2021,1.724,2095,2.122,2140,2.122,2196,5.771,2352,2.295,2389,2.002,2391,2.199,2392,3.983,2393,1.954,2396,2.002,2440,1.838,2520,3.255,2534,3.075,2630,2.122,2638,1.364,2679,1.635,2684,1.912,2686,2.002,2688,2.002,2705,4.087,2716,1.954,2718,1.806,2737,3.409,2761,5.018,2851,1.954,2977,3.025,3027,2.057,3056,2.002,3078,1.777,3110,8.262,3203,2.122,3254,2.057,3296,2.122,3450,3.612,3487,2.295,3607,3.409,3774,2.122,3809,2.295,3832,2.122,3841,3.409,3894,2.295,3896,2.295,3954,2.424,4203,4.575,4209,2.122,4358,2.424,4499,2.199,5080,2.122,5222,2.002,5327,2.424,5519,5.771,5613,3.612,5660,2.295,5810,4.128,5841,3.503,6055,4.128,6141,2.424,6192,3.744,6429,2.057,6585,2.424,6731,2.295,6819,2.122,7071,4.128,7083,2.424,7085,2.424,7235,2.295,7251,2.424,7254,2.424,7261,5.827,7262,4.462,7263,2.621,7264,7.715,7265,2.621,7266,5.103,7267,2.621,7268,2.621,7269,2.122,7270,2.621,7271,2.621,7272,2.424,7273,4.462,7274,2.621,7275,4.462,7276,2.621,7277,2.621,7278,2.621,7279,4.462,7280,2.621,7281,2.424,7282,2.621,7283,2.424,7284,2.621,7285,6.879,7286,2.621,7287,2.621,7288,4.462,7289,5.827,7290,2.621,7291,2.621,7292,4.462,7293,2.424,7294,2.621,7295,4.462,7296,2.621,7297,2.621,7298,2.621,7299,2.621,7300,2.621,7301,2.424,7302,2.424,7303,2.621,7304,2.424,7305,2.621,7306,2.621,7307,2.621,7308,2.621,7309,2.621,7310,4.462,7311,2.621,7312,2.621,7313,2.621,7314,2.621,7315,2.621,7316,2.621,7317,2.621]],["component/37",[2,0.251,266,0.348]],["keyword/37",[]],["title/38-1",[2,16.76,25,23.306,167,43.574,438,31.839,3063,36.504]],["name/38-1",[]],["text/38-1",[]],["component/38-1",[]],["keyword/38-1",[]],["title/38",[]],["name/38",[7318,0.832]],["text/38",[0,1.056,2,2.736,19,2.955,20,2.06,21,1.161,24,1.311,25,2.724,26,1.399,28,2.094,29,4.152,30,1.92,31,1.43,32,1.549,40,2.06,44,1.56,46,1.896,51,1.727,52,4.782,55,1.188,60,4.28,62,4.364,63,2.932,68,1.519,69,4.771,81,1.642,82,2.631,85,4.37,89,1.97,90,1.56,100,1.97,106,1.92,117,3.956,118,2.631,122,3.054,127,2.042,132,1.896,144,2.131,145,4.93,151,3.277,155,4.208,157,1.655,159,2.028,162,3.308,167,3.968,177,2.775,179,2.322,184,1.874,185,1.896,186,3.015,196,2.753,198,1.97,203,4.551,204,2.266,205,4.426,206,1.56,207,1.669,209,1.853,210,1.642,213,1.727,217,2.379,221,2.06,226,3.277,227,2.577,231,1.682,236,1.712,238,2.559,239,3.373,241,4.152,242,2.028,243,1.605,244,1.593,273,1.407,288,3.402,290,1.853,294,1.874,295,1.605,298,1.727,308,1.447,316,1.642,324,1.519,347,1.407,355,2.612,366,1.727,371,1.682,392,2.06,393,1.481,416,1.832,431,2.06,432,1.853,438,1.743,449,1.944,454,1.529,471,3.324,486,1.49,576,1.853,579,1.743,642,2.028,730,2.266,804,5.691,811,3.015,825,2.631,846,1.629,869,3.081,887,1.944,928,1.896,1006,2.385,1024,3.956,1046,3.324,1056,2.131,1062,2.131,1075,1.727,1092,3.612,1095,1.571,1120,1.697,1144,2.266,1145,1.896,1173,2.322,1192,1.97,1202,2.028,1247,1.813,1259,3.426,1264,2.385,1279,3.234,1320,2.216,1334,1.944,1344,3.483,1374,1.682,1418,2.385,1428,2.661,1438,1.874,1441,1.874,1494,1.998,1603,3.193,1633,2.216,1635,2.216,1691,4.24,1713,3.769,1884,2.661,1888,2.266,1892,2.06,1909,2.028,1960,1.682,2065,1.777,2390,2.46,2444,2.811,2445,2.266,2534,2.094,2557,2.028,2615,3.117,2638,3.936,2665,2.549,2684,2.216,2686,3.862,2690,2.46,2755,2.661,2818,5.778,2975,2.385,3027,2.385,3063,7.081,3078,2.06,3085,2.385,3114,2.549,3134,2.549,3154,2.216,3613,3.769,3614,3.426,3642,3.769,3646,2.266,3772,2.322,3856,2.385,3900,2.385,3902,3.686,3904,2.385,3906,4.24,3907,6.622,3908,2.385,3910,4.426,3911,2.266,3916,2.549,3917,3.968,3920,2.266,3921,2.46,3923,2.385,3926,2.46,3931,5.682,4068,2.549,4324,2.661,4357,2.385,4579,1.998,4659,2.131,5038,2.385,7076,2.661,7108,2.549,7266,5.682,7319,3.038,7320,3.038,7321,2.549,7322,2.661,7323,2.811,7324,3.038,7325,3.038,7326,2.811,7327,2.811,7328,2.811,7329,2.811,7330,2.811,7331,2.811,7332,2.549,7333,3.038,7334,2.811,7335,3.038]],["component/38",[2,0.251,266,0.348]],["keyword/38",[]],["title/39-1",[0,28.028,4,44.643]],["name/39-1",[]],["text/39-1",[]],["component/39-1",[]],["keyword/39-1",[]],["title/39-2",[21,26.776,270,36.731,292,48.282]],["name/39-2",[]],["text/39-2",[]],["component/39-2",[]],["keyword/39-2",[]],["title/39-3",[269,32.982,278,44.274]],["name/39-3",[]],["text/39-3",[]],["component/39-3",[]],["keyword/39-3",[]],["title/39-4",[279,47.14,303,41.385]],["name/39-4",[]],["text/39-4",[]],["component/39-4",[]],["keyword/39-4",[]],["title/39-5",[24,30.232,171,27.189,1374,38.792]],["name/39-5",[]],["text/39-5",[]],["component/39-5",[]],["keyword/39-5",[]],["title/39-6",[23,47.492,287,43.203,1374,38.792]],["name/39-6",[]],["text/39-6",[]],["component/39-6",[]],["keyword/39-6",[]],["title/39-7",[171,27.189,290,42.713,7336,64.809]],["name/39-7",[]],["text/39-7",[]],["component/39-7",[]],["keyword/39-7",[]],["title/39-8",[171,27.189,2657,46.073,7337,64.809]],["name/39-8",[]],["text/39-8",[]],["component/39-8",[]],["keyword/39-8",[]],["title/39-9",[109,48.282,240,53.528,454,35.244]],["name/39-9",[]],["text/39-9",[]],["component/39-9",[]],["keyword/39-9",[]],["title/39-10",[360,36.578,460,43.444,3808,51.962,4369,51.962]],["name/39-10",[]],["text/39-10",[]],["component/39-10",[]],["keyword/39-10",[]],["title/39-11",[171,24.039,366,35.205,465,45.179,1548,36.578]],["name/39-11",[]],["text/39-11",[]],["component/39-11",[]],["keyword/39-11",[]],["title/39",[7332,79.654]],["name/39",[7332,0.698]],["text/39",[0,2.14,2,0.937,4,0.665,6,1.507,8,0.942,11,1.157,21,1.48,24,1.962,25,0.933,29,1.986,31,0.565,32,1.133,37,3.25,41,0.644,52,2.82,53,0.688,55,5.328,60,1.648,62,2.373,63,0.366,64,1.429,65,0.74,69,2.584,73,2.539,81,0.649,82,1.157,83,0.724,85,1.157,90,0.616,94,0.801,97,1.299,102,0.842,108,1.211,109,0.827,117,0.732,118,1.157,127,3.095,131,0.814,136,1.422,142,0.827,143,0.827,146,0.801,155,0.778,157,0.654,159,0.801,162,2.318,171,1.503,177,0.659,180,0.695,181,0.827,185,1.387,186,0.716,187,1.313,192,3.189,196,1.211,202,0.74,208,0.676,209,1.893,210,5.149,213,2.584,216,0.842,217,3.748,227,0.612,231,2.144,234,0.732,239,1.483,241,1.422,244,2.384,247,0.682,251,1.422,254,3.438,258,0.858,263,0.749,267,0.716,269,1.86,270,0.629,273,0.556,288,1.165,289,2.31,294,0.74,295,1.174,296,0.992,298,1.263,299,1.559,302,2.099,303,1.987,306,1.118,308,1.058,316,4.303,324,1.111,325,1.852,328,2.072,347,2.105,355,1.604,358,1.562,361,3.136,363,0.789,365,1.733,366,1.764,370,0.758,371,0.665,382,2.476,390,0.709,393,3.576,420,2.625,421,1.698,427,5.024,430,1.462,434,1.441,435,0.758,438,0.688,443,1.007,454,3.69,458,5.479,459,4.485,468,0.778,471,2.041,473,4.49,486,1.09,489,1.111,576,0.732,579,1.275,582,2.772,617,0.732,730,0.895,799,0.875,808,4.757,810,0.724,811,4.751,818,2.419,825,0.625,835,0.875,838,2.825,846,4.417,867,0.858,870,0.842,874,1.797,882,0.875,883,3.189,884,0.875,886,0.917,900,0.827,910,0.972,914,0.814,919,0.644,926,0.842,939,1.34,954,4.972,985,3.391,993,0.875,999,0.749,1010,1.263,1019,0.688,1022,0.875,1024,3.136,1025,0.942,1032,2.804,1037,0.778,1046,1.462,1054,1.422,1067,0.942,1068,1.627,1071,1.698,1089,2.625,1092,1.589,1095,2.659,1106,0.972,1108,2.437,1114,1.589,1118,0.917,1121,0.917,1124,1.621,1126,1.621,1131,0.695,1147,0.732,1157,1.961,1168,0.942,1181,0.768,1185,2.315,1192,0.778,1195,0.858,1208,1.745,1218,1.507,1221,0.74,1223,0.749,1227,0.895,1247,1.326,1272,0.875,1274,0.917,1282,1.559,1293,3.25,1300,0.875,1303,0.917,1346,0.875,1364,0.917,1367,2.219,1368,2.658,1393,1.275,1405,0.801,1406,1.387,1437,0.942,1468,0.749,1498,0.895,1508,0.875,1544,1.299,1546,0.895,1548,0.709,1563,0.778,1592,1.11,1651,0.917,1680,1.986,1892,2.104,1937,0.972,1997,1.007,2011,1.11,2023,1.11,2046,3.982,2054,0.917,2065,0.702,2097,0.972,2164,1.11,2280,0.875,2396,0.917,2442,0.917,2541,2.871,2557,2.584,2566,1.11,2579,1.865,2580,0.972,2582,0.858,2583,0.801,2585,1.387,2590,2.076,2591,0.942,2595,0.917,2597,1.11,2609,0.789,2614,0.917,2671,0.972,2716,0.895,2725,0.917,2735,1.051,2813,0.972,2840,1.051,2905,4.206,3039,1.007,3081,1.621,3188,1.799,3202,1.799,3206,0.972,3211,0.942,3353,0.972,3391,1.698,3495,1.946,3557,0.942,3642,2.315,3647,1.946,3667,0.758,3670,1.11,3671,1.11,3708,1.11,3727,1.11,3743,0.972,3785,1.007,3829,0.842,3856,4.038,3943,1.11,4357,0.942,4369,2.604,4523,1.946,4637,2.056,4662,1.007,5072,3.681,5080,0.972,5534,0.972,5654,1.946,5657,3.982,5704,0.972,5808,1.11,5841,0.942,6058,5.939,6344,1.11,6402,1.051,6665,2.056,6669,1.007,6722,1.11,6735,1.051,6819,0.972,7108,1.865,7139,4.505,7266,3.982,7304,1.11,7332,3.248,7334,1.11,7336,2.871,7337,1.11,7338,1.2,7339,2.222,7340,4.546,7341,7.662,7342,2.222,7343,1.2,7344,3.104,7345,2.222,7346,1.2,7347,1.2,7348,1.2,7349,6.155,7350,6.155,7351,1.2,7352,1.2,7353,1.2,7354,1.2,7355,1.11,7356,2.056,7357,1.11,7358,1.2,7359,1.11,7360,1.2,7361,1.2,7362,1.2,7363,1.2,7364,1.11,7365,1.2,7366,1.2,7367,1.2,7368,1.2,7369,1.2,7370,1.2,7371,1.2,7372,1.2,7373,1.2,7374,1.2,7375,1.2,7376,1.2,7377,1.2,7378,1.2,7379,3.872,7380,1.2,7381,1.2,7382,1.2,7383,1.2,7384,1.2,7385,1.2,7386,1.2,7387,1.2,7388,1.2,7389,1.2,7390,1.2,7391,1.2,7392,1.2,7393,1.2,7394,4.546,7395,1.2,7396,4.546,7397,1.11,7398,1.2,7399,1.2,7400,4.546,7401,1.2,7402,1.2,7403,1.2,7404,1.2,7405,1.2,7406,1.2,7407,1.2,7408,1.2,7409,1.2,7410,1.2,7411,1.2,7412,1.2,7413,1.2,7414,1.2,7415,1.2,7416,1.2,7417,1.2,7418,1.2,7419,4.546,7420,1.2,7421,1.2,7422,1.2,7423,1.2,7424,3.104,7425,1.2,7426,1.2,7427,1.2,7428,1.2,7429,6.155,7430,1.2,7431,1.2,7432,1.2,7433,1.2,7434,1.2,7435,1.2,7436,1.2,7437,1.2,7438,1.2,7439,1.2,7440,1.2,7441,1.2,7442,1.2,7443,1.2,7444,1.2,7445,1.2,7446,1.2]],["component/39",[2,0.251,266,0.348]],["keyword/39",[]],["title/40-1",[0,28.028,4,44.643]],["name/40-1",[]],["text/40-1",[]],["component/40-1",[]],["keyword/40-1",[]],["title/40-2",[21,26.776,269,28.659,303,35.96]],["name/40-2",[]],["text/40-2",[]],["component/40-2",[]],["keyword/40-2",[]],["title/40-3",[31,32.975,269,28.659,278,38.471]],["name/40-3",[]],["text/40-3",[]],["component/40-3",[]],["keyword/40-3",[]],["title/40-4",[279,36.215,303,31.793,306,31.16,2409,47.325]],["name/40-4",[]],["text/40-4",[]],["component/40-4",[]],["keyword/40-4",[]],["title/40-5",[275,44.257,280,44.257,2615,43.203]],["name/40-5",[]],["text/40-5",[]],["component/40-5",[]],["keyword/40-5",[]],["title/40-6",[283,35.94,302,18.593,355,25.991,2618,33.07,2638,26.175,3900,39.475]],["name/40-6",[]],["text/40-6",[]],["component/40-6",[]],["keyword/40-6",[]],["title/40-7",[10,40.167,24,26.728,63,18.912,1374,34.296]],["name/40-7",[]],["text/40-7",[]],["component/40-7",[]],["keyword/40-7",[]],["title/40-8",[287,38.196,302,22.902,3614,41.989,3902,45.179]],["name/40-8",[]],["text/40-8",[]],["component/40-8",[]],["keyword/40-8",[]],["title/40-9",[236,39.465,290,42.713,3614,47.492]],["name/40-9",[]],["text/40-9",[]],["component/40-9",[]],["keyword/40-9",[]],["title/40",[3900,74.537]],["name/40",[3900,0.653]],["text/40",[0,2.957,2,2.317,18,2.726,24,1.343,30,1.966,31,3.106,32,3.913,52,3.896,54,1.723,55,5.402,62,4.058,63,0.95,64,3.039,68,1.556,81,1.682,86,2.786,108,3.595,122,1.465,127,1.257,131,2.11,136,1.991,137,2.11,144,2.183,146,2.077,162,1.587,171,1.208,184,1.919,207,3.624,208,4.792,213,1.769,227,1.587,234,1.898,236,1.753,238,2.611,268,1.802,269,3.14,273,3.056,274,1.598,275,1.966,286,1.587,288,1.632,289,1.857,292,2.145,295,1.644,302,1.906,303,2.646,308,1.482,316,4.147,329,2.224,331,2.743,344,1.966,345,2.321,347,3.056,349,1.669,355,3.967,357,2.743,358,1.566,364,1.942,368,2.726,370,1.966,371,3.654,374,2.077,382,4.18,391,1.644,393,4.146,416,1.877,427,1.587,430,2.047,437,2.224,459,1.465,477,2.321,551,2.018,581,1.769,589,2.11,606,1.966,610,3.441,648,4.532,653,2.743,808,2.018,810,1.877,868,2.047,884,2.27,900,2.145,901,1.723,914,2.11,919,1.669,928,1.942,930,1.838,984,1.919,1004,2.378,1017,1.769,1032,1.919,1095,5.445,1207,2.443,1211,1.966,1247,3.076,1262,2.018,1273,2.047,1334,1.991,1362,2.183,1393,1.785,1394,2.27,1423,2.378,1478,2.145,1494,3.391,1501,2.443,1559,2.047,1594,2.443,1660,5.181,1680,1.991,1687,2.224,1723,2.183,1762,2.726,1767,2.224,1817,3.845,1838,2.145,1901,2.047,1960,1.723,2050,2.726,2064,2.879,2068,4.174,2069,2.378,2091,4.047,2101,2.611,2107,3.939,2408,2.519,2582,2.224,2583,3.441,2585,1.942,2615,1.919,2638,1.62,2714,2.11,2837,5.598,2838,8.029,2975,2.443,3083,2.726,3085,5.181,3174,2.879,3614,7.863,3807,4.174,3857,2.183,3889,2.611,3900,8.27,3902,5.598,4086,2.321,4333,2.378,4338,2.611,5654,2.726,5785,2.879,6605,2.611,6674,2.726,7030,2.879,7447,2.879,7448,2.321,7449,2.321,7450,3.112,7451,2.879,7452,3.112,7453,3.112,7454,2.27,7455,2.27,7456,2.27,7457,3.112,7458,3.112,7459,2.879,7460,2.879,7461,5.155,7462,3.112,7463,3.112,7464,3.112,7465,3.112]],["component/40",[2,0.251,266,0.348]],["keyword/40",[]],["title/41-1",[0,28.028,4,44.643]],["name/41-1",[]],["text/41-1",[]],["component/41-1",[]],["keyword/41-1",[]],["title/41-2",[11,36.468,21,26.776,582,42.713]],["name/41-2",[]],["text/41-2",[]],["component/41-2",[]],["keyword/41-2",[]],["title/41-3",[24,30.232,269,28.659,2679,43.716]],["name/41-3",[]],["text/41-3",[]],["component/41-3",[]],["keyword/41-3",[]],["title/41-4",[287,49.719,7355,74.585]],["name/41-4",[]],["text/41-4",[]],["component/41-4",[]],["keyword/41-4",[]],["title/41-5",[269,25.338,290,37.764,2590,33.211,3904,48.624]],["name/41-5",[]],["text/41-5",[]],["component/41-5",[]],["keyword/41-5",[]],["title/41-6",[303,25.811,355,25.991,1019,28.844,1832,36.678,2657,33.07,7466,50.283]],["name/41-6",[]],["text/41-6",[]],["component/41-6",[]],["keyword/41-6",[]],["title/41-7",[302,22.902,355,32.015,1176,44.27,2659,41.989]],["name/41-7",[]],["text/41-7",[]],["component/41-7",[]],["keyword/41-7",[]],["title/41-8",[454,40.56,1374,44.643]],["name/41-8",[]],["text/41-8",[]],["component/41-8",[]],["keyword/41-8",[]],["title/41",[3904,74.537]],["name/41",[3904,0.653]],["text/41",[0,1.996,2,2.05,8,4.506,43,1.683,46,1.603,49,2.798,52,1.176,53,2.516,55,4.438,60,1.867,62,3.187,64,2.02,73,1.434,84,1.202,97,2.564,108,2.389,112,2.806,118,1.337,120,1.962,121,1.665,130,3.831,131,2.973,140,1.77,150,2.079,151,1.665,154,1.487,155,1.665,157,1.399,161,1.622,162,2.236,171,0.997,185,1.603,196,1.399,202,1.584,206,1.318,207,1.41,209,1.566,213,1.46,217,1.209,226,1.665,227,3.461,231,1.422,232,1.714,239,1.714,267,4.549,269,3.119,273,1.189,274,1.318,275,3.626,288,1.347,302,1.622,303,2.946,308,1.223,324,1.284,331,2.334,332,3.023,335,1.714,347,2.031,349,1.377,355,3.509,360,1.517,365,2.449,378,1.873,390,1.517,392,2.973,393,2.798,416,5.637,427,1.309,434,1.665,445,2.844,457,1.356,459,3.588,468,1.665,579,1.473,581,1.46,582,4.648,606,1.622,648,2.59,653,3.612,809,1.603,818,2.334,838,1.41,846,1.377,857,1.801,863,1.77,881,2.079,901,1.422,903,3.076,907,3.076,912,1.873,919,3.078,926,1.801,928,7.61,943,1.873,977,3.076,978,1.77,999,1.603,1024,1.566,1052,7.568,1062,1.801,1068,1.347,1095,1.327,1138,1.689,1145,1.603,1159,2.408,1197,6.171,1211,1.622,1264,2.016,1287,1.603,1303,1.962,1330,1.962,1368,3.969,1403,1.741,1406,1.603,1437,2.016,1453,1.741,1585,2.155,1691,3.68,1696,1.714,1708,1.873,1768,1.836,1838,1.77,1892,3.891,1909,1.714,2097,7.568,2119,8.187,2389,1.962,2406,1.714,2408,2.079,2409,3.351,2557,1.714,2568,2.016,2585,1.603,2638,1.337,2684,3.199,2735,2.249,2741,3.135,2818,8.803,3063,1.689,3079,1.801,3134,2.155,3154,1.873,3159,2.079,3190,2.079,3277,2.249,3296,2.079,3314,3.443,3613,4.281,3643,2.079,3667,1.622,3687,2.079,3774,2.079,3827,2.376,3904,8.18,4331,2.155,4503,1.801,4541,2.079,5131,2.249,5360,2.376,5490,2.376,6058,7.181,6429,2.016,6549,2.155,6726,2.155,7272,2.376,7302,2.376,7454,1.873,7455,1.873,7456,3.199,7467,2.568,7468,4.057,7469,2.568,7470,4.386,7471,2.376,7472,2.568,7473,2.568,7474,2.568,7475,2.568,7476,2.568,7477,2.568,7478,2.568,7479,2.568,7480,2.376,7481,2.568,7482,2.568,7483,2.568,7484,2.376,7485,2.568,7486,2.568,7487,2.568,7488,2.568,7489,2.568,7490,7.623,7491,4.386,7492,7.623,7493,2.568,7494,2.568,7495,6.788,7496,9.348,7497,5.74,7498,4.386,7499,6.788,7500,2.568,7501,2.568,7502,2.568,7503,2.568,7504,2.568,7505,2.568,7506,2.568,7507,2.568,7508,2.568,7509,2.568,7510,2.568,7511,4.386,7512,2.568,7513,2.568,7514,5.74]],["component/41",[2,0.251,266,0.348]],["keyword/41",[]],["title/42-1",[0,28.028,4,44.643]],["name/42-1",[]],["text/42-1",[]],["component/42-1",[]],["keyword/42-1",[]],["title/42-2",[21,30.816,269,32.982]],["name/42-2",[]],["text/42-2",[]],["component/42-2",[]],["keyword/42-2",[]],["title/42-3",[31,32.975,269,28.659,278,38.471]],["name/42-3",[]],["text/42-3",[]],["component/42-3",[]],["keyword/42-3",[]],["title/42-4",[24,21.699,302,18.593,355,25.991,2618,33.07,2638,26.175,3913,44.038]],["name/42-4",[]],["text/42-4",[]],["component/42-4",[]],["keyword/42-4",[]],["title/42-5",[454,40.56,1374,44.643]],["name/42-5",[]],["text/42-5",[]],["component/42-5",[]],["keyword/42-5",[]],["title/42",[3613,52.243,7321,58.773,7322,61.354]],["name/42",[7321,0.698]],["text/42",[0,1.384,2,2.917,6,2.7,14,2.905,20,2.7,28,2.745,31,2.963,32,3.979,35,2.793,52,1.824,55,4.77,60,1.695,62,3.708,63,2.708,64,2.899,69,2.263,82,3.277,84,1.864,85,2.073,108,4.251,111,2.352,117,2.428,120,3.043,122,2.963,123,2.619,127,2.543,135,2.658,145,2.044,146,2.658,149,2.7,151,2.582,154,2.306,161,3.976,162,4.925,201,2.328,206,4.553,207,2.187,210,2.152,211,3.611,214,3.224,217,1.874,227,2.03,234,2.428,236,2.243,252,3.277,269,4.809,273,4.472,274,2.044,288,2.088,294,2.456,295,3.324,296,1.778,298,2.263,302,3.572,308,1.896,316,3.401,324,1.99,330,2.548,331,3.349,345,4.694,347,2.914,355,4.584,357,2.119,360,2.352,364,3.928,371,3.485,390,2.352,391,2.103,393,1.941,427,2.03,432,2.428,436,3.611,456,2.793,457,2.103,459,2.963,489,1.99,579,2.284,606,2.516,825,2.073,846,4.185,874,3.645,896,2.7,901,4.322,915,3.043,919,2.135,920,2.658,1010,2.263,1015,2.658,1062,2.793,1086,2.352,1095,2.058,1108,3.126,1131,2.306,1187,2.745,1192,2.582,1195,2.846,1273,2.619,1334,2.548,1335,2.905,1374,2.205,1383,2.846,1416,2.376,1515,2.658,1548,2.352,1603,2.516,1612,3.126,1675,2.619,1687,2.846,1960,2.205,2065,2.328,2392,2.306,2395,6.469,2585,2.485,2609,2.619,2638,2.073,2648,2.97,2714,2.7,2818,3.043,2977,2.7,3023,3.126,3063,2.619,3078,2.7,3202,3.224,3613,4.694,3913,8.46,4086,4.694,4847,3.684,5519,3.341,7096,3.341,7321,8.616,7322,3.488,7323,5.823,7448,2.97,7449,2.97,7454,2.905,7455,2.905,7456,2.905,7515,3.982,7516,3.982,7517,3.982,7518,3.043,7519,6.294]],["component/42",[2,0.251,266,0.348]],["keyword/42",[]],["title/43-1",[0,28.028,4,44.643]],["name/43-1",[]],["text/43-1",[]],["component/43-1",[]],["keyword/43-1",[]],["title/43-2",[21,30.816,269,32.982]],["name/43-2",[]],["text/43-2",[]],["component/43-2",[]],["keyword/43-2",[]],["title/43-3",[278,44.274,1131,46.686]],["name/43-3",[]],["text/43-3",[]],["component/43-3",[]],["keyword/43-3",[]],["title/43-4",[269,25.338,588,36.956,4032,50.141,7520,57.299]],["name/43-4",[]],["text/43-4",[]],["component/43-4",[]],["keyword/43-4",[]],["title/43-5",[269,28.659,4033,56.713,7521,64.809]],["name/43-5",[]],["text/43-5",[]],["component/43-5",[]],["keyword/43-5",[]],["title/43-6",[269,25.338,279,36.215,2590,33.211,3911,46.189]],["name/43-6",[]],["text/43-6",[]],["component/43-6",[]],["keyword/43-6",[]],["title/43-7",[31,23.669,122,23.669,135,33.561,1713,37.498,3911,37.498,4037,40.706]],["name/43-7",[]],["text/43-7",[]],["component/43-7",[]],["keyword/43-7",[]],["title/43-8",[2590,43.23,4038,65.268]],["name/43-8",[]],["text/43-8",[]],["component/43-8",[]],["keyword/43-8",[]],["title/43-9",[24,21.699,302,18.593,355,25.991,2618,33.07,2638,26.175,3911,37.498]],["name/43-9",[]],["text/43-9",[]],["component/43-9",[]],["keyword/43-9",[]],["title/43-10",[454,40.56,1374,44.643]],["name/43-10",[]],["text/43-10",[]],["component/43-10",[]],["keyword/43-10",[]],["title/43",[3911,70.803]],["name/43",[3911,0.621]],["text/43",[0,1.907,2,2.871,11,1.747,19,1.963,29,5.668,30,2.121,31,2.582,32,4.516,47,1.814,52,1.538,55,4.704,57,2.208,60,2.335,62,2.293,63,2.124,64,1.546,69,3.955,82,1.747,83,2.024,85,1.747,100,2.177,108,3.79,112,2.148,118,1.747,122,1.58,127,2.811,145,2.816,151,2.177,159,2.24,171,2.129,181,2.313,182,2.354,186,3.274,192,2.354,193,2.503,196,2.988,197,2.448,203,2.354,208,1.891,210,1.814,217,1.58,227,1.711,231,3.853,252,3.622,269,4.986,273,3.221,274,2.816,285,2.354,294,2.07,295,1.773,296,2.449,298,3.118,299,3.848,302,2.573,308,3.313,330,2.148,331,3.702,347,2.54,355,3.596,357,1.786,364,2.095,370,4.396,371,1.859,379,4.452,391,1.773,392,2.276,393,2.674,427,2.797,429,2.24,432,2.047,455,2.313,588,2.003,597,2.313,606,2.121,804,6.005,811,2.003,838,1.843,867,2.399,874,3.177,875,2.399,919,2.942,949,2.448,1006,2.635,1019,1.925,1024,5.401,1095,2.836,1116,2.399,1142,2.565,1176,2.399,1188,2.717,1192,2.177,1227,2.503,1272,2.448,1306,2.448,1315,2.148,1364,2.565,1374,1.859,1389,2.717,1500,2.448,1548,1.982,1606,2.635,1612,2.635,1675,2.208,1960,1.859,2390,2.717,2533,2.313,2568,2.635,2585,2.095,2590,3.731,2591,4.307,2595,4.192,2609,2.208,2638,4.183,2684,2.448,2694,4.603,2705,2.354,2714,3.719,2741,2.399,3019,2.448,3063,2.208,3078,3.719,3203,2.717,3882,2.94,3911,8.969,4086,2.503,4298,2.717,4534,2.635,5255,4.805,6429,2.635,6735,2.94,7040,3.105,7108,2.816,7235,2.94,7328,6.437,7329,3.105,7330,3.105,7448,2.503,7449,2.503,7454,2.448,7455,2.448,7456,2.448,7520,3.105,7521,9.683,7522,3.357,7523,3.357,7524,3.357,7525,3.357,7526,3.357,7527,3.357,7528,3.357,7529,5.486,7530,3.105,7531,3.357,7532,3.357,7533,3.357,7534,3.357,7535,3.357,7536,3.357,7537,3.105,7538,3.357,7539,3.357,7540,3.357,7541,3.357,7542,5.486,7543,2.717,7544,3.357,7545,3.357,7546,3.357,7547,3.357,7548,3.357,7549,3.357]],["component/43",[2,0.251,266,0.348]],["keyword/43",[]],["title/44-1",[0,28.028,4,44.643]],["name/44-1",[]],["text/44-1",[]],["component/44-1",[]],["keyword/44-1",[]],["title/44-2",[21,30.816,269,32.982]],["name/44-2",[]],["text/44-2",[]],["component/44-2",[]],["keyword/44-2",[]],["title/44-3",[31,32.975,269,28.659,278,38.471]],["name/44-3",[]],["text/44-3",[]],["component/44-3",[]],["keyword/44-3",[]],["title/44-4",[24,21.699,302,18.593,355,25.991,2618,33.07,2638,26.175,3908,39.475]],["name/44-4",[]],["text/44-4",[]],["component/44-4",[]],["keyword/44-4",[]],["title/44-5",[454,40.56,1374,44.643]],["name/44-5",[]],["text/44-5",[]],["component/44-5",[]],["keyword/44-5",[]],["title/44",[3908,74.537]],["name/44",[3908,0.653]],["text/44",[0,1.35,2,2.641,10,2.518,14,2.833,19,3.608,30,3.898,31,2.904,48,2.342,52,4.006,55,4.979,62,4.247,63,1.186,65,2.395,83,2.342,89,2.518,97,3.608,108,4.182,117,3.762,127,1.569,142,2.677,154,2.249,155,6.188,159,4.118,181,4.253,192,2.724,193,2.896,196,2.115,201,2.271,202,2.395,203,4.328,216,4.328,221,5.929,231,4.251,234,3.762,236,3.476,243,2.051,269,4.773,273,1.798,294,2.395,295,2.051,299,4.328,302,2.282,308,1.849,316,2.099,331,2.067,345,4.601,347,2.857,353,3.144,355,4.932,357,2.067,364,3.85,371,4.843,391,2.051,393,1.893,427,1.98,428,2.633,471,4.058,551,2.518,606,2.453,617,2.368,838,2.133,843,3.258,846,2.082,863,2.677,901,2.15,919,2.082,1006,3.049,1037,2.518,1063,2.724,1074,2.967,1095,2.007,1131,4.446,1234,2.896,1272,2.833,1281,2.776,1283,3.593,1361,3.049,1374,2.15,1383,4.41,1438,2.395,1463,3.258,1548,2.293,1633,2.833,1687,2.776,1707,2.967,1708,2.833,1960,2.15,2440,6.693,2442,2.967,2533,2.677,2568,3.049,2585,3.85,2590,2.082,2591,3.049,2595,2.967,2614,2.967,2615,2.395,2638,3.997,2741,2.776,2755,5.404,3078,2.633,3151,3.049,3206,3.144,3214,3.144,3642,2.896,3852,3.593,3903,2.776,3906,6.441,3907,3.401,3908,9.159,3910,5.404,4024,3.401,4215,3.401,5029,3.401,5057,3.049,5080,3.144,5798,3.401,7096,3.258,7331,3.593,7356,7.103,7454,2.833,7455,2.833,7456,2.833,7518,2.967,7543,3.144,7550,3.883,7551,3.883,7552,3.593,7553,3.883,7554,3.883,7555,3.883,7556,3.883,7557,3.883,7558,3.883,7559,3.883,7560,3.883,7561,3.883,7562,3.883,7563,3.883,7564,3.883,7565,3.883,7566,3.883,7567,6.17,7568,3.883,7569,3.593]],["component/44",[2,0.251,266,0.348]],["keyword/44",[]],["title/45-1",[0,28.028,4,44.643]],["name/45-1",[]],["text/45-1",[]],["component/45-1",[]],["keyword/45-1",[]],["title/45-2",[21,30.816,269,32.982]],["name/45-2",[]],["text/45-2",[]],["component/45-2",[]],["keyword/45-2",[]],["title/45-3",[31,32.975,269,28.659,278,38.471]],["name/45-3",[]],["text/45-3",[]],["component/45-3",[]],["keyword/45-3",[]],["title/45-4",[24,21.699,302,18.593,355,25.991,2618,33.07,2638,26.175,3917,39.475]],["name/45-4",[]],["text/45-4",[]],["component/45-4",[]],["keyword/45-4",[]],["title/45-5",[454,40.56,1374,44.643]],["name/45-5",[]],["text/45-5",[]],["component/45-5",[]],["keyword/45-5",[]],["title/45",[3916,67.639,3917,63.293]],["name/45",[7570,0.832]],["text/45",[0,1.201,2,2.716,10,2.241,19,4.15,20,2.342,28,2.381,30,2.183,31,3.848,32,2.864,44,1.774,51,1.964,52,4.653,55,4.67,62,4.425,63,1.715,64,1.591,68,1.727,73,1.93,82,2.924,83,2.084,97,2.02,108,3.06,117,3.425,122,1.626,127,2.269,135,2.306,145,2.884,146,2.306,149,2.342,151,4.603,157,1.882,159,2.306,162,2.864,177,1.897,196,1.882,201,2.02,207,3.085,210,1.867,211,3.222,217,1.626,227,1.762,234,4.328,238,2.845,241,4.542,242,3.749,243,1.825,252,3.695,269,5.021,273,2.601,289,2.062,294,2.131,295,2.967,298,1.964,299,3.94,302,2.077,306,1.738,308,1.645,309,2.156,316,3.036,323,1.716,330,2.211,331,1.839,345,4.189,347,2.601,355,4.649,357,1.839,364,2.156,371,3.111,391,1.825,393,1.684,427,1.762,432,2.107,436,3.222,440,2.47,457,1.825,459,1.626,551,2.241,606,2.183,648,3.317,653,1.839,799,4.098,838,1.897,843,2.899,867,2.47,874,2.001,882,2.52,901,3.111,915,2.64,953,3.197,962,2.52,1006,2.713,1062,2.424,1095,1.786,1131,4.11,1180,2.47,1190,3.505,1191,2.424,1195,2.47,1273,2.272,1315,2.211,1334,6.167,1344,2.381,1346,2.52,1357,2.64,1374,1.913,1393,3.222,1415,3.694,1513,2.183,1687,2.47,1960,1.913,2392,2.001,2440,2.424,2579,4.713,2585,2.156,2590,1.853,2591,2.713,2595,4.292,2609,2.272,2615,3.464,2638,1.799,2645,2.52,2714,2.342,2718,2.381,2741,2.47,3063,2.272,3078,2.342,3123,2.52,3347,3.026,3856,4.41,3916,8.88,3917,9.372,3920,6.096,3948,3.026,4086,2.577,4253,2.899,4659,3.94,5704,2.797,6669,2.899,7115,3.026,7326,5.197,7327,3.197,7359,5.197,7448,2.577,7449,2.577,7454,2.52,7455,2.52,7456,2.52,7518,2.64,7543,2.797,7571,3.455,7572,3.026,7573,3.455,7574,3.455,7575,3.197,7576,3.455,7577,5.617,7578,5.617,7579,3.455,7580,3.455,7581,5.617]],["component/45",[2,0.251,266,0.348]],["keyword/45",[]],["title/46-1",[0,28.028,4,44.643]],["name/46-1",[]],["text/46-1",[]],["component/46-1",[]],["keyword/46-1",[]],["title/46-2",[21,30.816,93,53.812]],["name/46-2",[]],["text/46-2",[]],["component/46-2",[]],["keyword/46-2",[]],["title/46-3",[278,44.274,7582,74.585]],["name/46-3",[]],["text/46-3",[]],["component/46-3",[]],["keyword/46-3",[]],["title/46-4",[279,47.14,7583,74.585]],["name/46-4",[]],["text/46-4",[]],["component/46-4",[]],["keyword/46-4",[]],["title/46-5",[24,34.792,269,32.982]],["name/46-5",[]],["text/46-5",[]],["component/46-5",[]],["keyword/46-5",[]],["title/46-6",[31,29.154,122,29.154,269,25.338,287,38.196]],["name/46-6",[]],["text/46-6",[]],["component/46-6",[]],["keyword/46-6",[]],["title/46-7",[25,29.415,26,32.261,454,35.244]],["name/46-7",[]],["text/46-7",[]],["component/46-7",[]],["keyword/46-7",[]],["title/46-8",[52,32.09,84,32.792,460,49.139]],["name/46-8",[]],["text/46-8",[]],["component/46-8",[]],["keyword/46-8",[]],["title/46-9",[246,45.431,247,39.819,465,51.1]],["name/46-9",[]],["text/46-9",[]],["component/46-9",[]],["keyword/46-9",[]],["title/46-10",[68,40.297,2669,63.293]],["name/46-10",[]],["text/46-10",[]],["component/46-10",[]],["keyword/46-10",[]],["title/46-11",[63,24.617,2670,65.268]],["name/46-11",[]],["text/46-11",[]],["component/46-11",[]],["keyword/46-11",[]],["title/46",[3926,76.862]],["name/46",[3926,0.674]],["text/46",[0,1.381,2,3.175,19,1.338,21,1.518,25,1.668,26,3.853,31,1.077,32,3.203,39,2.346,41,1.227,43,1.524,44,2.039,47,2.146,48,1.38,49,1.116,52,4.057,55,4.728,60,0.974,62,2.2,63,1.213,64,1.054,68,1.985,69,1.301,73,1.278,82,1.191,84,1.071,93,1.528,97,2.322,108,2.164,117,1.396,118,2.068,121,1.484,122,1.077,127,2.538,132,1.428,139,1.67,143,1.578,145,2.701,146,1.528,149,1.552,150,1.853,151,1.484,155,1.484,157,1.247,159,1.528,161,1.446,177,1.257,179,1.749,181,1.578,185,2.479,186,2.37,187,1.352,189,1.446,196,2.164,197,1.67,198,1.484,200,3.479,201,3.673,203,2.786,207,2.181,210,3.395,213,3.57,215,1.605,217,2.477,221,1.552,227,2.025,231,2.199,232,1.528,234,1.396,236,1.289,238,2.011,241,1.465,243,2.098,244,1.2,248,1.38,267,1.366,268,2.3,269,2.908,273,1.06,286,1.167,288,1.2,294,1.412,295,1.209,296,1.022,299,2.786,302,3.431,310,2.938,316,2.843,324,1.144,325,2.37,327,1.528,331,1.218,336,3.412,345,1.707,347,2.908,355,4.325,370,1.446,371,1.267,382,2.164,391,2.779,392,1.552,393,1.936,427,1.167,430,1.505,432,1.396,436,1.313,438,3.018,444,1.446,459,1.87,468,2.576,493,3.173,579,1.313,582,1.396,780,1.552,804,3.567,808,1.484,811,4.992,818,2.114,835,1.67,838,2.889,846,1.227,866,3.035,869,3.208,887,2.542,901,1.267,919,1.227,931,1.67,948,1.853,972,1.636,984,1.412,987,2.738,1032,1.412,1046,2.612,1054,2.542,1063,2.786,1068,2.083,1074,1.749,1085,1.528,1093,3.461,1142,3.035,1170,1.396,1203,1.552,1204,1.853,1230,1.92,1261,1.528,1262,2.576,1280,3.512,1305,2.962,1317,4.414,1320,1.67,1368,2.322,1374,1.267,1405,1.528,1418,1.797,1436,1.749,1465,1.707,1478,1.578,1483,1.578,1503,2.576,1507,1.797,1508,1.67,1546,1.707,1559,1.505,1601,4.329,1633,4.582,1717,2.117,1860,2.005,1884,2.005,1901,1.505,1960,1.267,1973,4.131,2021,1.505,2285,1.92,2352,3.479,2438,2.897,2536,1.707,2582,1.636,2583,1.528,2585,1.428,2638,1.191,2681,1.578,2858,1.67,3030,2.117,3068,1.92,3084,3.216,3113,1.797,3186,1.707,3399,2.897,3466,1.749,3486,1.853,3570,2.117,3607,1.749,3614,1.552,3642,1.707,3667,1.446,3668,1.92,3771,3.479,3772,1.749,3785,1.92,3903,4.49,3926,7.81,3931,9.208,4086,1.707,4353,2.005,4534,1.797,4771,2.005,5057,1.797,5519,1.92,5798,3.479,5841,1.797,5973,1.797,6201,3.332,6730,6.576,7078,2.005,7182,3.675,7283,2.117,7460,3.675,7518,1.749,7552,7.74,7582,7.208,7583,4.868,7584,2.289,7585,2.289,7586,2.289,7587,2.005,7588,2.289,7589,2.289,7590,2.289,7591,2.289,7592,2.289,7593,2.289,7594,2.289,7595,2.289,7596,2.289,7597,2.289,7598,2.117,7599,2.289,7600,2.289,7601,2.117,7602,2.289,7603,2.289,7604,2.289,7605,3.972,7606,2.289,7607,5.262,7608,2.289,7609,2.289,7610,2.289,7611,2.289,7612,2.289,7613,3.972,7614,6.282,7615,2.289,7616,7.108,7617,3.675,7618,3.675,7619,3.675,7620,2.289,7621,2.289,7622,2.289,7623,2.289]],["component/46",[2,0.251,266,0.348]],["keyword/46",[]],["title/47-1",[0,28.028,4,44.643]],["name/47-1",[]],["text/47-1",[]],["component/47-1",[]],["keyword/47-1",[]],["title/47-2",[21,30.816,269,32.982]],["name/47-2",[]],["text/47-2",[]],["component/47-2",[]],["keyword/47-2",[]],["title/47-3",[31,32.975,269,28.659,278,38.471]],["name/47-3",[]],["text/47-3",[]],["component/47-3",[]],["keyword/47-3",[]],["title/47-4",[24,21.699,302,18.593,355,25.991,2618,33.07,2638,26.175,3923,39.475]],["name/47-4",[]],["text/47-4",[]],["component/47-4",[]],["keyword/47-4",[]],["title/47-5",[454,40.56,1374,44.643]],["name/47-5",[]],["text/47-5",[]],["component/47-5",[]],["keyword/47-5",[]],["title/47-6",[63,18.912,288,32.474,460,43.444,992,39.633]],["name/47-6",[]],["text/47-6",[]],["component/47-6",[]],["keyword/47-6",[]],["title/47",[3923,74.537]],["name/47",[3923,0.653]],["text/47",[0,1.303,2,2.265,6,2.542,11,1.952,21,1.433,28,2.584,31,3.531,32,1.911,39,2.214,55,4.989,61,2.72,62,2.508,63,3.207,64,1.727,68,2.999,69,3.41,82,1.952,84,2.808,94,2.502,108,4.086,117,4.573,122,4.035,127,1.515,135,2.502,143,2.584,154,3.474,155,2.431,171,1.455,185,2.34,211,2.151,213,3.41,217,1.765,231,3.322,238,3.038,239,2.502,252,1.952,269,3.507,273,3.969,274,5.134,288,4.495,294,2.312,295,1.98,298,2.131,299,2.63,302,3.17,308,1.785,310,2.094,316,3.242,325,2.237,328,4.005,331,1.995,345,2.796,347,3.473,355,3.101,357,1.995,360,2.214,364,2.34,366,4.873,368,3.284,370,2.369,371,4.153,374,2.502,391,1.98,393,3.656,427,3.059,432,2.286,493,2.261,510,2.502,581,2.131,606,2.369,837,2.502,863,2.584,896,2.542,901,2.076,919,2.01,969,2.735,991,3.891,1010,2.131,1019,2.151,1024,3.658,1068,3.146,1095,3.877,1120,3.351,1135,2.502,1151,2.68,1170,2.286,1173,2.865,1181,3.839,1247,3.58,1273,2.466,1368,2.192,1374,2.076,1383,2.68,1439,2.542,1453,4.067,1594,2.943,1687,2.68,1779,3.145,1955,3.284,1960,3.322,2383,2.796,2392,2.171,2393,2.796,2445,2.796,2585,2.34,2638,1.952,2645,2.735,2714,2.542,2741,2.68,3078,4.067,3154,2.735,3261,3.469,3298,3.284,3314,2.943,3772,2.865,3923,9.062,3925,3.145,4068,5.034,4071,5.55,4086,2.796,4357,2.943,4372,5.255,4999,5.034,5112,3.469,5333,5.255,5573,5.55,7448,2.796,7449,2.796,7451,3.469,7454,2.735,7455,2.735,7456,2.735,7484,6.939,7543,3.035,7624,6,7625,3.749,7626,3.749,7627,3.749,7628,6,7629,3.749,7630,3.749,7631,6,7632,6,7633,3.749,7634,6,7635,3.749,7636,3.749,7637,3.749,7638,3.749]],["component/47",[2,0.251,266,0.348]],["keyword/47",[]],["title/48-1",[0,28.028,4,44.643]],["name/48-1",[]],["text/48-1",[]],["component/48-1",[]],["keyword/48-1",[]],["title/48-2",[21,30.816,269,32.982]],["name/48-2",[]],["text/48-2",[]],["component/48-2",[]],["keyword/48-2",[]],["title/48-3",[31,29.154,122,29.154,269,25.338,278,34.012]],["name/48-3",[]],["text/48-3",[]],["component/48-3",[]],["keyword/48-3",[]],["title/48-4",[24,21.699,204,37.498,302,18.593,355,25.991,1176,35.94,2638,26.175]],["name/48-4",[]],["text/48-4",[]],["component/48-4",[]],["keyword/48-4",[]],["title/48-5",[127,32.57,454,40.56]],["name/48-5",[]],["text/48-5",[]],["component/48-5",[]],["keyword/48-5",[]],["title/48",[204,70.803]],["name/48",[204,0.621]],["text/48",[0,1.576,2,3.407,25,1.903,31,2.133,32,2.311,43,2.671,49,3.394,53,2.6,55,5.437,62,1.895,63,1.384,84,2.122,88,2.733,100,4.515,108,3.792,109,3.124,117,2.764,118,2.359,122,2.133,127,1.831,145,2.327,150,3.669,151,2.939,177,2.489,204,9.503,207,2.489,217,2.133,269,5.148,273,4.404,294,5.228,295,2.394,298,2.576,299,4.884,302,2.574,303,3.574,308,2.158,316,2.449,331,2.412,347,3.224,355,3.599,357,2.412,366,2.576,371,2.51,391,2.394,393,3.394,427,2.311,432,5.169,457,2.394,588,5.058,606,2.863,978,3.124,1005,3.179,1095,2.343,1131,2.625,1315,2.9,1338,3.179,1440,3.669,1441,2.795,1465,3.38,1624,3.306,1960,2.51,2533,3.124,2568,3.558,2574,5.636,2585,2.828,2590,2.43,2591,3.558,2595,8.621,2602,6.098,2605,4.193,2618,2.981,2665,7.112,2714,3.073,2741,3.24,3078,3.073,3906,3.803,4717,4.193,5257,3.803,7448,3.38,7449,3.38,7454,3.306,7455,3.306,7456,3.306,7518,3.463,7543,3.669,7569,4.193,7639,4.532,7640,4.532,7641,4.532,7642,4.532,7643,4.532,7644,4.532,7645,4.532,7646,4.532,7647,4.532,7648,4.532,7649,4.532,7650,6.962,7651,4.532,7652,4.532,7653,4.532,7654,4.532]],["component/48",[2,0.251,266,0.348]],["keyword/48",[]],["title/49-1",[0,28.028,4,44.643]],["name/49-1",[]],["text/49-1",[]],["component/49-1",[]],["keyword/49-1",[]],["title/49-2",[21,30.816,269,32.982]],["name/49-2",[]],["text/49-2",[]],["component/49-2",[]],["keyword/49-2",[]],["title/49-3",[31,29.154,122,29.154,269,25.338,278,34.012]],["name/49-3",[]],["text/49-3",[]],["component/49-3",[]],["keyword/49-3",[]],["title/49-4",[24,23.953,302,20.524,355,28.69,2618,36.504,2638,28.893]],["name/49-4",[]],["text/49-4",[]],["component/49-4",[]],["keyword/49-4",[]],["title/49-5",[55,31.536,454,40.56]],["name/49-5",[]],["text/49-5",[]],["component/49-5",[]],["keyword/49-5",[]],["title/49",[3921,76.862]],["name/49",[3921,0.674]],["text/49",[0,3.931,2,3.772,21,1.585,25,1.741,26,1.909,31,3.058,32,2.114,47,2.241,55,4.998,62,1.733,63,1.266,85,3.382,108,3.539,122,3.058,127,1.675,135,2.767,145,2.128,157,2.258,252,2.158,269,4.029,273,1.92,290,2.528,302,2.403,308,1.974,316,3.511,331,2.206,345,3.092,347,3.008,355,4.688,357,2.206,371,2.296,379,2.653,391,2.19,393,5.909,427,6.063,458,3.255,606,2.619,1053,3.836,1095,2.143,1145,2.587,1279,4.158,1340,2.727,2021,7.822,2585,2.587,2590,2.223,2638,2.158,2705,2.908,2714,2.811,3028,6.011,3921,7.973,4579,2.727,5252,3.836,6956,3.478,7293,3.836,7448,4.845,7449,3.092,7454,3.024,7455,3.024,7456,3.024,7518,4.964,7601,6.011,7655,4.146,7656,3.836,7657,4.146,7658,4.146,7659,6.497,7660,4.146,7661,4.146,7662,4.146,7663,6.497,7664,4.146,7665,4.146,7666,4.146,7667,4.146,7668,4.146,7669,4.146,7670,4.146,7671,4.146,7672,6.497,7673,4.146,7674,6.497,7675,4.146,7676,6.497,7677,4.146,7678,4.146,7679,4.146,7680,4.146,7681,4.146,7682,4.146,7683,4.146,7684,4.146,7685,4.146,7686,4.146,7687,4.146,7688,4.146,7689,4.146,7690,4.146,7691,4.146,7692,4.146,7693,4.146,7694,4.146,7695,4.146,7696,4.146,7697,4.146,7698,4.146,7699,4.146,7700,4.146,7701,4.146,7702,4.146,7703,6.497,7704,4.146,7705,6.497,7706,4.146,7707,6.497,7708,4.146,7709,6.497,7710,4.146,7711,4.146,7712,6.497,7713,4.146,7714,4.146,7715,4.146,7716,4.146,7717,4.146]],["component/49",[2,0.251,266,0.348]],["keyword/49",[]],["title/50-1",[0,28.028,4,44.643]],["name/50-1",[]],["text/50-1",[]],["component/50-1",[]],["keyword/50-1",[]],["title/50-2",[21,30.816,269,32.982]],["name/50-2",[]],["text/50-2",[]],["component/50-2",[]],["keyword/50-2",[]],["title/50-3",[31,29.154,122,29.154,269,25.338,278,34.012]],["name/50-3",[]],["text/50-3",[]],["component/50-3",[]],["keyword/50-3",[]],["title/50-4",[279,36.215,303,31.793,306,31.16,1159,34.012]],["name/50-4",[]],["text/50-4",[]],["component/50-4",[]],["keyword/50-4",[]],["title/50-5",[24,34.792,127,32.57]],["name/50-5",[]],["text/50-5",[]],["component/50-5",[]],["keyword/50-5",[]],["title/50",[7718,83.152]],["name/50",[7718,0.729]],["text/50",[0,3.725,2,2.191,30,2.255,31,2.714,49,1.74,53,2.047,55,5.414,62,2.411,64,3.341,73,1.993,108,3.952,111,3.406,115,2.087,122,2.714,135,2.382,162,1.82,173,2.087,180,4.202,206,1.832,217,1.68,252,1.858,267,2.13,269,3.741,270,3.024,273,1.652,275,2.255,282,4.243,299,4.045,302,2.132,304,2.662,305,2.889,306,3.65,308,3.455,309,2.227,313,4.668,315,2.889,316,3.116,318,3.599,320,5.696,331,1.899,335,2.382,336,3.74,343,4.122,344,4.584,347,3.858,351,2.315,355,1.845,357,1.899,361,4.424,366,2.029,371,1.976,379,4.643,416,3.478,457,5.167,459,4.305,582,2.176,648,3.406,653,3.069,818,3.069,825,1.858,846,1.914,869,2.176,901,1.976,939,2.152,957,2.227,962,2.603,965,2.347,968,4.919,991,5.403,1009,2.347,1015,2.382,1033,2.603,1095,2.981,1120,1.993,1159,1.96,1222,5.696,1340,2.347,1368,6.019,1403,4.919,1566,2.727,2065,2.087,2092,5.544,2574,7.404,2585,2.227,2590,3.092,2638,1.858,2643,2.603,2714,2.42,2727,5.874,3063,2.347,3084,2.889,3347,5.05,4278,2.994,4579,2.347,6633,3.302,6917,5.05,7448,2.662,7449,2.662,7518,4.406,7656,3.302,7718,5.05,7719,3.569,7720,3.569,7721,3.569,7722,5.767,7723,3.569,7724,3.569,7725,3.569,7726,3.569,7727,3.302,7728,3.569,7729,3.569,7730,5.767,7731,5.767,7732,3.569,7733,3.569,7734,10.715,7735,3.302,7736,5.767,7737,5.767,7738,5.767,7739,5.767,7740,5.767,7741,5.767,7742,5.767,7743,5.767,7744,5.767]],["component/50",[2,0.251,266,0.348]],["keyword/50",[]],["title/51-1",[0,24.354,1362,49.139,1643,53.528]],["name/51-1",[]],["text/51-1",[]],["component/51-1",[]],["keyword/51-1",[]],["title/51-2",[3,46.758,23,47.492,1362,49.139]],["name/51-2",[]],["text/51-2",[]],["component/51-2",[]],["keyword/51-2",[]],["title/51-3",[5,41.34,972,44.27,1307,42.687,3215,48.624]],["name/51-3",[]],["text/51-3",[]],["component/51-3",[]],["keyword/51-3",[]],["title/51-4",[9,44.27,653,32.959,1118,47.325,1279,39.633]],["name/51-4",[]],["text/51-4",[]],["component/51-4",[]],["keyword/51-4",[]],["title/51-5",[12,48.624,198,40.167,653,32.959,1321,42.687]],["name/51-5",[]],["text/51-5",[]],["component/51-5",[]],["keyword/51-5",[]],["title/51-6",[15,40.706,173,29.401,1367,35.94,1368,29.401,1369,42.185,1439,34.088]],["name/51-6",[]],["text/51-6",[]],["component/51-6",[]],["keyword/51-6",[]],["title/51-7",[18,61.354,2629,54.997,3807,56.713]],["name/51-7",[]],["text/51-7",[]],["component/51-7",[]],["keyword/51-7",[]],["title/51-8",[21,26.776,1643,53.528,4294,58.773]],["name/51-8",[]],["text/51-8",[]],["component/51-8",[]],["keyword/51-8",[]],["title/51-9",[24,26.728,144,43.444,306,31.16,928,38.65]],["name/51-9",[]],["text/51-9",[]],["component/51-9",[]],["keyword/51-9",[]],["title/51-10",[186,30.003,187,29.695,282,29.401,454,25.297,2406,33.561,7587,44.038]],["name/51-10",[]],["text/51-10",[]],["component/51-10",[]],["keyword/51-10",[]],["title/51-11",[106,39.128,149,41.989,460,43.444,730,46.189]],["name/51-11",[]],["text/51-11",[]],["component/51-11",[]],["keyword/51-11",[]],["title/51-12",[1211,39.128,1307,42.687,2981,54.244,4333,47.325]],["name/51-12",[]],["text/51-12",[]],["component/51-12",[]],["keyword/51-12",[]],["title/51-13",[85,26.175,247,28.581,282,29.401,306,25.297,2982,46.518,3189,42.185]],["name/51-13",[]],["text/51-13",[]],["component/51-13",[]],["keyword/51-13",[]],["title/51-14",[360,32.779,876,42.41,928,34.636,2984,51.348,4247,46.566]],["name/51-14",[]],["text/51-14",[]],["component/51-14",[]],["keyword/51-14",[]],["title/51-15",[180,40.566,282,40.961,7745,70.055]],["name/51-15",[]],["text/51-15",[]],["component/51-15",[]],["keyword/51-15",[]],["title/51-16",[118,26.175,267,30.003,277,29.695,282,29.401,1415,33.07,7746,50.283]],["name/51-16",[]],["text/51-16",[]],["component/51-16",[]],["keyword/51-16",[]],["title/51-17",[118,28.893,162,28.298,282,32.454,7572,48.611,7747,55.504]],["name/51-17",[]],["text/51-17",[]],["component/51-17",[]],["keyword/51-17",[]],["title/51-18",[282,36.215,433,48.624,7748,61.936,7749,54.244]],["name/51-18",[]],["text/51-18",[]],["component/51-18",[]],["keyword/51-18",[]],["title/51-19",[282,36.215,431,41.989,7749,54.244,7750,61.936]],["name/51-19",[]],["text/51-19",[]],["component/51-19",[]],["keyword/51-19",[]],["title/51-20",[277,32.779,349,29.762,465,40.487,928,34.636,4247,46.566]],["name/51-20",[]],["text/51-20",[]],["component/51-20",[]],["keyword/51-20",[]],["title/51-21",[467,74.585,471,53.023]],["name/51-21",[]],["text/51-21",[]],["component/51-21",[]],["keyword/51-21",[]],["title/51-22",[227,31.577,277,36.578,349,33.211,469,57.299]],["name/51-22",[]],["text/51-22",[]],["component/51-22",[]],["keyword/51-22",[]],["title/51-23",[267,33.118,277,32.779,349,29.762,470,51.348,508,32.779]],["name/51-23",[]],["text/51-23",[]],["component/51-23",[]],["keyword/51-23",[]],["title/51-24",[64,25.56,277,32.779,349,29.762,984,34.229,7751,55.504]],["name/51-24",[]],["text/51-24",[]],["component/51-24",[]],["keyword/51-24",[]],["title/51-25",[281,45.431,282,40.961,7752,70.055]],["name/51-25",[]],["text/51-25",[]],["component/51-25",[]],["keyword/51-25",[]],["title/51-26",[2547,57.626,7753,80.622]],["name/51-26",[]],["text/51-26",[]],["component/51-26",[]],["keyword/51-26",[]],["title/51-27",[4579,53.023,7754,80.622]],["name/51-27",[]],["text/51-27",[]],["component/51-27",[]],["keyword/51-27",[]],["title/51-28",[282,40.961,2092,53.528,7755,70.055]],["name/51-28",[]],["text/51-28",[]],["component/51-28",[]],["keyword/51-28",[]],["title/51-29",[210,29.994,282,32.454,2092,42.41,4756,48.611,7756,55.504]],["name/51-29",[]],["text/51-29",[]],["component/51-29",[]],["keyword/51-29",[]],["title/51-30",[171,27.189,303,35.96,7757,70.055]],["name/51-30",[]],["text/51-30",[]],["component/51-30",[]],["keyword/51-30",[]],["title/51-31",[282,40.961,5952,58.773,7758,70.055]],["name/51-31",[]],["text/51-31",[]],["component/51-31",[]],["keyword/51-31",[]],["title/51-32",[282,40.961,431,47.492,7759,70.055]],["name/51-32",[]],["text/51-32",[]],["component/51-32",[]],["keyword/51-32",[]],["title/51-33",[23,47.492,303,35.96,7760,70.055]],["name/51-33",[]],["text/51-33",[]],["component/51-33",[]],["keyword/51-33",[]],["title/51-34",[277,36.578,431,41.989,1046,40.734,7761,61.936]],["name/51-34",[]],["text/51-34",[]],["component/51-34",[]],["keyword/51-34",[]],["title/51-35",[231,38.792,471,46.073,7762,70.055]],["name/51-35",[]],["text/51-35",[]],["component/51-35",[]],["keyword/51-35",[]],["title/51-36",[186,36.956,187,36.578,471,40.734,7763,61.936]],["name/51-36",[]],["text/51-36",[]],["component/51-36",[]],["keyword/51-36",[]],["title/51-37",[89,40.167,277,36.578,2986,46.189,7764,61.936]],["name/51-37",[]],["text/51-37",[]],["component/51-37",[]],["keyword/51-37",[]],["title/51-38",[2669,63.293,4333,61.602]],["name/51-38",[]],["text/51-38",[]],["component/51-38",[]],["keyword/51-38",[]],["title/51-39",[277,41.372,2670,56.713,7269,56.713]],["name/51-39",[]],["text/51-39",[]],["component/51-39",[]],["keyword/51-39",[]],["title/51-40",[4,38.792,1121,53.528,7765,70.055]],["name/51-40",[]],["text/51-40",[]],["component/51-40",[]],["keyword/51-40",[]],["title/51-41",[210,33.47,1498,46.189,1548,36.578,7766,61.936]],["name/51-41",[]],["text/51-41",[]],["component/51-41",[]],["keyword/51-41",[]],["title/51-42",[4,38.792,7767,70.055,7768,70.055]],["name/51-42",[]],["text/51-42",[]],["component/51-42",[]],["keyword/51-42",[]],["title/51-43",[43,21.296,277,32.779,295,29.316,7269,44.934,7769,55.504]],["name/51-43",[]],["text/51-43",[]],["component/51-43",[]],["keyword/51-43",[]],["title/51-44",[3001,70.609,7770,80.622]],["name/51-44",[]],["text/51-44",[]],["component/51-44",[]],["keyword/51-44",[]],["title/51",[144,66.597]],["name/51",[7771,0.832]],["text/51",[0,0.252,2,0.418,6,0.397,7,0.127,8,0.118,11,0.305,14,0.218,16,0.127,19,1.776,20,0.202,21,0.17,22,0.317,28,0.686,29,1.269,30,0.28,31,0.071,32,0.768,34,2.927,35,0.881,36,0.806,37,0.108,38,0.306,39,0.262,40,0.301,41,0.16,43,1.603,44,0.579,46,0.784,47,1.893,48,1.832,49,2.363,51,0.333,52,2.832,53,0.416,54,1.284,55,2.942,56,0.115,60,0.424,62,2.606,63,0.422,64,3.598,65,2.375,68,0.222,69,0.252,72,1.114,73,2.288,74,0.362,75,0.083,79,0.115,81,1.369,82,0.848,83,0.52,84,0.588,85,2.595,86,0.945,88,0.758,89,1.286,90,2.062,91,0.404,92,0.97,94,0.838,97,0.175,100,0.288,102,0.411,103,0.447,104,0.339,106,1.253,107,0.132,108,1.017,109,0.686,110,0.122,111,1.103,112,1.119,115,0.504,117,0.27,118,1.824,120,0.228,121,0.194,122,0.071,123,0.477,124,0.106,126,0.642,127,3.212,130,0.199,131,1.926,132,0.094,134,0.317,136,0.191,137,1.186,138,1.057,139,0.11,140,1.367,142,0.594,143,0.104,144,0.311,145,1.076,146,0.575,147,0.102,149,0.675,151,0.098,152,0.508,153,0.234,154,0.339,155,0.098,157,1.379,159,0.101,160,0.529,161,1.253,162,0.575,165,0.108,166,0.127,169,0.372,171,1.141,173,4.89,177,1.273,178,0.46,179,0.228,180,1.081,181,0.206,182,0.311,183,0.218,184,1.223,185,0.277,186,1.114,187,1.238,189,0.952,190,1.057,192,1.626,193,0.642,196,2.232,198,0.559,201,1.291,202,0.853,203,0.209,207,2.504,208,3.233,209,0.607,210,3.397,211,0.793,213,2.236,214,0.474,215,0.106,216,0.106,217,2.003,220,0.127,221,0.202,222,0.118,223,0.122,224,0.132,227,1.693,228,0.112,231,1.517,232,0.665,233,0.132,234,0.357,235,0.292,236,0.779,238,0.504,240,0.447,241,0.284,242,1.168,243,1.989,244,1.272,245,0.091,247,0.412,248,0.267,249,0.397,251,0.191,253,0.11,254,1.171,256,0.324,259,0.452,263,0.452,264,0.088,267,5.502,268,0.087,269,0.181,270,1.789,271,0.518,273,0.138,275,0.952,277,6.726,281,2.657,282,4.527,285,0.106,286,0.575,288,0.522,289,0.514,295,0.383,296,0.781,298,1.127,302,0.817,303,1.977,304,0.541,305,0.474,306,3.541,308,0.718,309,0.621,310,0.629,311,0.132,312,0.388,313,0.242,314,0.228,315,0.587,317,0.513,318,0.703,320,0.234,323,0.56,324,0.222,325,1.383,326,0.665,327,0.484,328,0.484,329,0.616,330,0.284,331,2.347,332,1.123,333,0.665,335,0.101,336,0.098,338,0.323,339,0.213,347,1.361,348,0.115,349,5.503,350,0.127,351,0.194,354,0.122,355,0.154,356,0.228,357,2.759,358,0.82,359,0.234,360,2.274,361,0.766,362,0.712,363,0.991,364,0.703,365,1.355,366,0.412,371,0.246,374,1.4,375,0.127,376,0.11,379,0.375,382,0.163,387,0.132,390,0.817,393,0.674,394,0.372,405,1.453,406,0.262,416,0.091,425,0.132,427,2.741,428,0.102,429,0.296,430,0.477,431,3.602,432,0.687,433,1.086,434,2.709,435,1.395,436,0.254,438,1.004,440,0.108,444,0.629,445,0.646,454,0.076,455,0.104,456,0.209,457,2.633,459,3.965,461,0.419,464,0.209,466,0.292,468,1.907,471,0.91,473,1.529,475,0.108,480,0.569,482,0.223,489,1.048,493,0.6,508,1.304,509,0.323,510,0.665,534,0.339,542,1.82,550,0.262,551,0.38,565,0.118,579,0.087,581,0.17,582,0.182,588,0.178,597,0.866,603,0.38,604,0.096,606,0.095,617,0.442,623,0.331,631,0.218,648,1.557,653,2.542,658,0.331,663,0.388,675,0.284,725,0.132,730,0.112,780,0.102,799,0.218,808,0.815,809,0.277,811,1.635,818,1.348,820,0.529,825,0.078,830,0.112,835,0.11,837,0.101,838,0.547,839,0.234,841,0.223,846,1.184,851,0.118,855,0.213,856,0.616,857,0.698,859,1.657,860,2.101,861,0.202,864,0.525,865,0.658,866,1.515,867,1.077,868,0.292,869,2.399,870,0.106,871,2.307,872,0.122,874,0.42,875,0.419,876,0.447,877,0.531,878,0.306,879,0.262,881,0.359,882,0.726,883,0.411,884,0.822,886,1.771,887,0.721,888,0.484,889,0.242,892,0.11,896,0.102,897,1.086,898,0.991,900,1.672,901,1.517,902,1.515,903,0.209,904,1.1,907,0.698,909,0.218,911,0.898,912,0.427,914,1.572,915,0.861,916,0.391,917,0.604,919,2.24,920,0.101,921,0.104,924,0.262,925,0.108,926,1.549,928,3.723,930,2.372,931,0.11,934,0.102,935,0.372,936,0.112,937,0.206,938,0.132,939,1.332,943,0.916,944,0.676,945,0.213,947,0.791,948,0.122,949,0.11,951,0.218,952,0.234,958,0.359,962,0.11,964,0.317,965,0.196,968,0.301,969,2.355,972,2.24,973,0.437,978,0.306,979,2.16,982,0.359,983,0.234,984,2.322,989,0.14,990,2.457,992,1.195,993,0.11,996,0.14,998,0.348,999,0.784,1003,0.206,1004,0.228,1005,0.311,1009,0.385,1010,0.566,1011,0.218,1012,0.554,1013,0.96,1014,0.234,1015,1.4,1017,0.857,1018,0.115,1019,1.138,1020,1.124,1022,0.218,1032,0.447,1033,1.362,1034,0.118,1037,1.211,1038,0.331,1039,1.245,1040,0.348,1041,0.213,1044,0.317,1045,0.726,1046,1.596,1054,0.464,1059,0.529,1061,0.885,1062,0.106,1066,0.228,1067,0.348,1068,0.591,1069,0.122,1072,0.46,1073,0.122,1074,0.115,1075,0.17,1077,0.112,1083,0.642,1085,0.923,1086,0.089,1089,1.421,1093,0.477,1095,1.468,1096,0.122,1097,0.676,1098,0.122,1099,0.218,1105,1.877,1110,0.234,1111,0.118,1112,0.122,1113,1.077,1114,0.616,1115,0.127,1116,0.518,1117,0.359,1118,0.228,1119,0.937,1120,1.75,1121,0.115,1122,1.31,1123,0.323,1124,0.218,1126,0.427,1127,0.132,1129,1.227,1130,0.127,1131,0.577,1132,0.587,1134,0.835,1135,1.168,1136,0.242,1137,0.228,1138,0.292,1140,1.966,1142,0.339,1143,0.723,1144,0.331,1145,1.237,1146,0.372,1147,0.525,1148,0.118,1149,0.132,1150,0.569,1151,1.579,1154,0.569,1155,0.541,1156,1.029,1157,0.458,1158,3.088,1159,0.895,1161,0.112,1162,0.292,1163,0.115,1166,0.262,1168,0.348,1169,0.115,1170,0.092,1171,0.861,1172,0.339,1174,0.223,1175,0.127,1176,0.108,1177,0.642,1178,0.427,1181,1.269,1182,0.447,1183,0.132,1184,0.223,1185,0.437,1187,0.306,1188,0.242,1189,0.122,1190,0.186,1191,1.227,1192,0.646,1193,0.213,1194,0.112,1195,0.518,1198,0.127,1199,0.372,1201,1.183,1202,0.101,1203,0.202,1207,0.118,1209,0.46,1211,1.666,1213,0.437,1215,0.115,1222,0.234,1223,0.703,1225,0.115,1226,0.127,1227,0.112,1229,0.228,1234,0.331,1235,0.642,1236,0.228,1237,0.234,1240,0.223,1241,0.262,1242,0.311,1243,0.359,1244,0.118,1247,0.75,1248,0.569,1250,0.122,1251,0.841,1252,0.228,1253,0.122,1258,0.642,1259,0.301,1260,0.132,1261,1.69,1262,0.098,1264,0.118,1265,0.372,1267,0.491,1270,0.127,1272,0.529,1273,0.385,1274,0.96,1275,2.407,1277,0.206,1278,1.245,1279,2.005,1280,1.246,1281,0.712,1282,0.311,1285,0.301,1286,0.223,1287,0.365,1289,1.086,1290,0.348,1291,0.118,1292,0.118,1293,0.616,1295,0.542,1296,0.251,1297,0.112,1300,0.218,1303,0.339,1305,0.112,1307,2.093,1312,0.213,1314,1.057,1315,1.818,1318,0.359,1319,0.782,1320,0.218,1321,1.888,1322,0.112,1323,0.697,1324,0.986,1329,0.098,1330,0.339,1331,0.276,1334,0.191,1338,0.209,1339,0.491,1340,0.477,1341,1.009,1342,0.132,1343,1.499,1344,0.104,1346,0.323,1347,0.587,1349,1.017,1352,0.112,1353,0.14,1354,0.372,1356,0.122,1357,0.339,1358,0.132,1359,0.242,1361,0.348,1362,5.803,1363,0.835,1364,0.228,1365,0.676,1366,1.245,1367,0.806,1368,1.542,1369,1.367,1371,1.81,1372,0.447,1373,0.755,1374,0.477,1375,0.474,1376,0.658,1377,0.242,1378,0.14,1379,0.276,1382,0.835,1383,0.806,1385,0.11,1386,1.006,1387,0.228,1389,0.242,1393,0.171,1394,1.923,1395,0.122,1396,2.23,1397,0.697,1398,0.806,1400,0.112,1401,0.199,1405,0.296,1406,0.094,1408,0.262,1409,0.296,1410,0.132,1411,0.223,1413,1.22,1415,1.304,1416,0.514,1418,0.118,1419,0.46,1421,0.242,1423,0.658,1425,0.223,1427,0.112,1431,0.132,1432,0.541,1435,0.697,1436,0.447,1439,0.301,1441,0.273,1448,0.122,1452,0.118,1453,0.202,1454,0.262,1456,0.41,1458,0.118,1459,0.323,1461,1.006,1463,0.127,1465,0.642,1468,0.277,1472,0.262,1477,0.251,1481,0.541,1483,0.206,1485,0.311,1487,0.122,1491,0.127,1498,3.056,1500,0.323,1501,1.183,1508,0.529,1511,0.251,1512,1.183,1515,1.474,1518,0.608,1519,0.122,1520,0.251,1523,0.223,1525,0.112,1528,0.127,1536,0.372,1541,0.122,1543,0.127,1544,0.088,1545,0.348,1546,0.331,1548,0.509,1549,0.251,1554,0.242,1559,0.099,1563,0.098,1565,0.098,1577,0.491,1581,0.132,1594,0.118,1595,0.127,1601,0.104,1603,0.28,1606,0.46,1611,0.132,1612,0.234,1628,0.14,1629,0.127,1631,0.223,1632,0.234,1633,0.11,1635,0.427,1642,0.202,1643,0.115,1649,0.391,1650,0.14,1651,0.115,1660,2.151,1662,0.122,1664,0.127,1665,0.14,1673,0.14,1684,0.228,1687,0.898,1688,0.806,1690,0.447,1691,0.127,1692,0.348,1693,0.587,1696,0.101,1699,0.14,1701,0.127,1707,0.115,1711,0.28,1712,0.122,1713,0.112,1716,0.122,1723,1.057,1740,0.115,1763,0.262,1765,0.127,1766,0.132,1767,0.712,1768,0.419,1772,0.209,1778,0.262,1788,0.234,1795,0.122,1805,0.14,1810,0.14,1815,0.127,1817,0.112,1824,0.251,1833,0.372,1834,0.132,1836,0.14,1838,0.306,1840,0.234,1841,0.234,1842,0.331,1843,0.916,1849,0.218,1861,0.251,1863,0.223,1873,0.106,1892,2.252,1901,0.196,1906,0.642,1909,0.199,1910,0.122,1913,0.697,1929,0.388,1933,0.323,1937,0.587,1952,0.115,1960,0.084,1999,0.118,2027,0.127,2060,0.385,2065,0.175,2066,0.348,2068,0.122,2069,0.115,2082,0.234,2092,1.337,2093,0.115,2223,0.122,2274,0.11,2280,0.11,2284,0.658,2354,0.132,2365,0.584,2382,0.339,2383,2.871,2392,0.173,2393,0.112,2394,0.608,2395,0.529,2406,1.088,2438,0.427,2440,0.411,2445,0.331,2531,0.098,2547,0.712,2554,0.228,2557,0.484,2580,0.122,2609,1.072,2618,0.826,2623,0.782,2625,0.251,2629,3.522,2630,0.242,2638,1.479,2639,0.242,2643,0.427,2645,0.323,2648,0.223,2677,0.14,2681,0.594,2683,1.319,2688,0.554,2689,0.676,2691,0.14,2692,0.223,2695,0.242,2700,1.22,2705,0.209,2737,0.339,2761,0.218,2807,0.234,2825,0.242,2828,0.118,2837,0.11,2838,0.132,2851,0.841,2858,0.323,2862,0.242,2871,0.14,2872,0.14,2959,0.323,2975,0.348,2977,0.102,2986,3.174,2987,2.812,2993,0.127,3019,5.286,3027,0.118,3032,0.676,3038,0.388,3039,0.251,3040,0.132,3048,0.122,3056,0.115,3063,0.196,3079,0.311,3085,1.086,3089,0.262,3090,0.14,3091,0.388,3092,0.276,3093,0.41,3094,0.262,3115,0.118,3119,0.234,3123,0.218,3124,0.127,3125,0.132,3127,0.635,3130,0.474,3137,0.872,3141,0.122,3142,0.218,3146,0.242,3150,0.132,3151,0.348,3154,0.726,3155,0.118,3159,0.122,3161,0.359,3162,0.132,3177,0.132,3178,0.359,3184,0.513,3185,0.132,3186,0.331,3187,1.427,3189,0.251,3190,1.788,3191,0.127,3192,0.835,3196,0.242,3197,0.339,3199,0.835,3200,0.122,3201,0.242,3202,0.359,3206,0.122,3207,0.276,3208,0.228,3209,0.276,3210,0.132,3211,0.118,3214,0.122,3215,0.676,3221,0.127,3222,0.104,3225,0.946,3235,0.251,3249,0.242,3250,0.474,3251,0.251,3252,0.132,3254,0.118,3255,0.822,3262,0.242,3263,0.14,3264,0.14,3278,0.41,3283,0.14,3288,0.127,3295,0.115,3298,0.132,3300,0.262,3303,0.234,3310,0.723,3314,0.118,3342,0.755,3346,0.14,3353,0.122,3367,0.262,3373,0.474,3386,0.755,3387,0.14,3391,0.339,3399,0.11,3418,0.372,3449,0.115,3450,0.697,3460,0.122,3499,0.946,3501,0.132,3503,0.132,3544,0.359,3557,0.348,3568,0.118,3591,0.491,3592,0.388,3613,0.331,3614,0.301,3616,0.132,3639,0.14,3640,0.14,3642,0.112,3643,0.122,3644,0.228,3646,0.541,3667,0.458,3668,0.127,3683,0.348,3743,0.242,3748,1.618,3756,0.262,3767,0.276,3768,0.132,3778,0.372,3779,0.276,3780,0.276,3783,0.388,3785,0.491,3787,0.14,3791,0.127,3792,0.132,3796,0.251,3797,0.276,3800,0.262,3801,0.513,3804,0.262,3807,1.319,3812,0.388,3815,0.912,3828,0.676,3832,0.122,3838,0.276,3880,0.127,3902,1.1,3930,0.755,3948,0.132,3953,1.12,4112,0.132,4120,0.132,4150,0.132,4161,0.388,4182,0.132,4203,0.569,4220,0.276,4230,0.132,4231,0.127,4247,1.265,4253,0.251,4254,0.14,4259,0.251,4267,0.127,4269,0.14,4271,0.388,4272,0.276,4274,0.388,4275,0.513,4276,1.279,4278,0.251,4294,0.608,4298,0.122,4309,0.388,4316,0.118,4319,0.14,4323,0.14,4329,0.14,4331,0.251,4333,1.771,4338,0.127,4345,0.755,4352,0.14,4353,0.262,4357,0.118,4483,0.41,4503,0.106,4508,0.132,4510,0.276,4511,0.262,4522,0.276,4534,0.348,4539,0.234,4541,0.242,4546,0.276,4547,0.14,4564,0.14,4573,0.251,4579,0.385,4581,1.162,4584,0.132,4635,0.14,4649,0.262,4653,0.132,4654,0.388,4669,0.542,4700,0.542,4701,0.262,4711,0.427,4712,0.14,4734,0.262,4756,0.132,4798,0.14,4816,0.276,4817,0.14,4827,0.14,4830,2.459,4849,0.251,4850,0.276,4851,0.132,4852,0.14,4853,0.14,4856,0.276,4898,0.14,4905,0.372,4926,0.388,4958,0.132,5029,0.132,5051,0.14,5069,1.727,5071,0.14,5072,1.017,5073,0.14,5074,1.737,5075,3.068,5093,0.14,5131,0.755,5140,0.132,5171,0.872,5174,0.542,5195,0.251,5208,0.797,5249,0.14,5258,0.14,5272,0.14,5328,0.262,5331,0.513,5333,0.132,5401,0.132,5413,0.262,5414,0.132,5425,0.276,5491,0.14,5504,0.14,5508,0.132,5513,0.276,5514,0.14,5522,0.14,5525,0.14,5533,0.276,5534,0.122,5611,0.276,5664,0.872,5704,0.242,5796,0.251,5806,0.118,5809,0.14,5811,0.14,5857,0.132,5894,0.132,5948,0.132,5952,1.265,5998,0.132,6010,0.671,6058,0.122,6112,0.14,6161,0.14,6184,0.14,6284,0.359,6298,0.132,6537,1.043,6554,0.234,6576,0.755,6605,0.372,6609,1.017,6663,0.14,6669,0.127,6674,0.132,6731,0.132,6737,0.14,6755,0.14,6785,0.14,6804,0.14,6825,0.14,6889,0.262,6915,0.14,6924,0.14,6931,0.132,6945,0.14,6959,0.41,7017,0.132,7022,0.132,7096,0.127,7141,0.262,7161,0.14,7164,0.755,7181,0.14,7211,0.14,7216,0.388,7236,0.14,7269,2.763,7281,0.14,7447,0.14,7468,0.276,7471,1.162,7572,0.388,7587,0.388,7727,0.14,7749,0.388,7772,0.299,7773,0.299,7774,0.151,7775,0.151,7776,0.299,7777,0.151,7778,0.151,7779,0.151,7780,0.586,7781,0.151,7782,0.151,7783,0.862,7784,0.151,7785,0.151,7786,0.151,7787,0.862,7788,0.151,7789,0.151,7790,0.151,7791,0.299,7792,0.586,7793,0.443,7794,0.151,7795,0.151,7796,0.151,7797,0.586,7798,0.151,7799,0.151,7800,1.127,7801,0.151,7802,0.151,7803,0.151,7804,0.151,7805,0.151,7806,0.299,7807,0.996,7808,0.299,7809,1.127,7810,0.299,7811,1.629,7812,0.299,7813,0.299,7814,0.151,7815,0.151,7816,0.151,7817,0.151,7818,0.443,7819,0.151,7820,0.14,7821,0.151,7822,0.151,7823,0.299,7824,0.443,7825,1.383,7826,0.299,7827,0.151,7828,0.151,7829,0.151,7830,0.151,7831,0.151,7832,0.14,7833,0.151,7834,0.151,7835,0.151,7836,0.151,7837,0.151,7838,0.151,7839,0.151,7840,0.151,7841,0.151,7842,0.151,7843,0.299,7844,0.151,7845,0.151,7846,0.151,7847,0.151,7848,0.151,7849,0.151,7850,0.151,7851,0.299,7852,0.151,7853,0.151,7854,0.151,7855,0.151,7856,0.151,7857,0.151,7858,0.151,7859,0.151,7860,0.151,7861,0.151,7862,0.151,7863,0.151,7864,0.151,7865,0.151,7866,0.151,7867,0.151,7868,0.262,7869,0.151,7870,0.151,7871,0.151,7872,0.151,7873,0.151,7874,0.151,7875,0.299,7876,0.151,7877,0.151,7878,0.41,7879,0.151,7880,0.443,7881,0.151,7882,0.14,7883,0.151,7884,0.151,7885,0.151,7886,0.299,7887,0.299,7888,0.151,7889,0.151,7890,0.151,7891,0.299,7892,0.151,7893,0.299,7894,0.14,7895,0.299,7896,0.132,7897,0.299,7898,0.299,7899,0.299,7900,0.151,7901,0.151,7902,0.132,7903,0.151,7904,0.151,7905,0.151,7906,0.299,7907,0.299,7908,0.299,7909,0.151,7910,0.151,7911,0.151,7912,0.151,7913,0.151,7914,0.151,7915,0.443,7916,0.443,7917,0.151,7918,0.41,7919,0.299,7920,1.256,7921,0.299,7922,0.443,7923,0.443,7924,0.443,7925,0.443,7926,0.151,7927,0.151,7928,0.151,7929,0.151,7930,0.151,7931,0.151,7932,0.151,7933,0.151,7934,0.299,7935,0.151,7936,0.151,7937,0.151,7938,0.299,7939,0.299,7940,0.299,7941,0.299,7942,0.132,7943,0.151,7944,0.14,7945,0.151,7946,0.443,7947,0.151,7948,0.41,7949,0.725,7950,0.586,7951,0.151,7952,0.299,7953,0.151,7954,0.443,7955,0.299,7956,0.299,7957,0.151,7958,0.276,7959,0.151,7960,0.151,7961,0.41,7962,0.151,7963,0.151,7964,0.151,7965,0.151,7966,0.151,7967,0.151,7968,0.151,7969,0.151,7970,0.14,7971,0.996,7972,0.996,7973,0.586,7974,0.41,7975,0.151,7976,0.151,7977,0.151,7978,0.14,7979,0.299,7980,0.151,7981,0.151,7982,0.151,7983,0.151,7984,0.151,7985,0.151,7986,0.151,7987,0.151,7988,0.151,7989,0.151,7990,0.151,7991,0.151,7992,0.299,7993,0.151,7994,0.151,7995,0.151,7996,0.996,7997,1.256,7998,0.299,7999,0.151,8000,0.151,8001,0.151,8002,0.151,8003,0.151,8004,0.151,8005,0.151,8006,0.132,8007,0.151,8008,0.151,8009,0.299,8010,0.132,8011,0.151,8012,0.151,8013,0.151,8014,0.151,8015,0.151,8016,0.41,8017,0.151,8018,0.151,8019,0.151,8020,0.797,8021,0.151,8022,0.151,8023,0.151,8024,0.151,8025,0.132,8026,0.14,8027,0.151,8028,0.299,8029,0.151,8030,0.151,8031,0.151,8032,0.151,8033,0.151]],["component/51",[2,0.251,266,0.348]],["keyword/51",[]],["title/52-1",[0,21.532,62,25.891,131,41.989,4579,40.734]],["name/52-1",[]],["text/52-1",[]],["component/52-1",[]],["keyword/52-1",[]],["title/52-2",[3,41.34,154,35.865,352,48.624,999,38.65]],["name/52-2",[]],["text/52-2",[]],["component/52-2",[]],["keyword/52-2",[]],["title/52-3",[5,41.34,85,32.242,1279,39.633,4849,51.962]],["name/52-3",[]],["text/52-3",[]],["component/52-3",[]],["keyword/52-3",[]],["title/52-4",[303,31.793,1279,39.633,3646,46.189,8034,61.936]],["name/52-4",[]],["text/52-4",[]],["component/52-4",[]],["keyword/52-4",[]],["title/52-5",[86,37.857,1279,44.827,8035,70.055]],["name/52-5",[]],["text/52-5",[]],["component/52-5",[]],["keyword/52-5",[]],["title/52-6",[7868,70.609,8036,80.622]],["name/52-6",[]],["text/52-6",[]],["component/52-6",[]],["keyword/52-6",[]],["title/52-7",[394,67.639,8037,80.622]],["name/52-7",[]],["text/52-7",[]],["component/52-7",[]],["keyword/52-7",[]],["title/52-8",[8038,80.622,8039,74.585]],["name/52-8",[]],["text/52-8",[]],["component/52-8",[]],["keyword/52-8",[]],["title/52-9",[7942,70.609,8040,80.622]],["name/52-9",[]],["text/52-9",[]],["component/52-9",[]],["keyword/52-9",[]],["title/52-10",[8041,80.622,8042,74.585]],["name/52-10",[]],["text/52-10",[]],["component/52-10",[]],["keyword/52-10",[]],["title/52-11",[8043,80.622,8044,74.585]],["name/52-11",[]],["text/52-11",[]],["component/52-11",[]],["keyword/52-11",[]],["title/52-12",[8045,80.622,8046,74.585]],["name/52-12",[]],["text/52-12",[]],["component/52-12",[]],["keyword/52-12",[]],["title/52-13",[8047,80.622,8048,74.585]],["name/52-13",[]],["text/52-13",[]],["component/52-13",[]],["keyword/52-13",[]],["title/52-14",[8049,80.622,8050,74.585]],["name/52-14",[]],["text/52-14",[]],["component/52-14",[]],["keyword/52-14",[]],["title/52-15",[8051,80.622,8052,74.585]],["name/52-15",[]],["text/52-15",[]],["component/52-15",[]],["keyword/52-15",[]],["title/52-16",[8053,80.622,8054,74.585]],["name/52-16",[]],["text/52-16",[]],["component/52-16",[]],["keyword/52-16",[]],["title/52-17",[8055,80.622,8056,74.585]],["name/52-17",[]],["text/52-17",[]],["component/52-17",[]],["keyword/52-17",[]],["title/52-18",[4573,67.639,8057,80.622]],["name/52-18",[]],["text/52-18",[]],["component/52-18",[]],["keyword/52-18",[]],["title/52-19",[8006,70.609,8058,80.622]],["name/52-19",[]],["text/52-19",[]],["component/52-19",[]],["keyword/52-19",[]],["title/52-20",[8025,70.609,8059,80.622]],["name/52-20",[]],["text/52-20",[]],["component/52-20",[]],["keyword/52-20",[]],["title/52-21",[8060,80.622,8061,74.585]],["name/52-21",[]],["text/52-21",[]],["component/52-21",[]],["keyword/52-21",[]],["title/52-22",[8062,80.622,8063,74.585]],["name/52-22",[]],["text/52-22",[]],["component/52-22",[]],["keyword/52-22",[]],["title/52-23",[8064,80.622,8065,74.585]],["name/52-23",[]],["text/52-23",[]],["component/52-23",[]],["keyword/52-23",[]],["title/52-24",[8066,80.622,8067,74.585]],["name/52-24",[]],["text/52-24",[]],["component/52-24",[]],["keyword/52-24",[]],["title/52-25",[8068,80.622,8069,74.585]],["name/52-25",[]],["text/52-25",[]],["component/52-25",[]],["keyword/52-25",[]],["title/52-26",[8070,80.622,8071,74.585]],["name/52-26",[]],["text/52-26",[]],["component/52-26",[]],["keyword/52-26",[]],["title/52-27",[63,21.39,1279,44.827,8072,70.055]],["name/52-27",[]],["text/52-27",[]],["component/52-27",[]],["keyword/52-27",[]],["title/52-28",[9,50.073,86,37.857,1158,54.997]],["name/52-28",[]],["text/52-28",[]],["component/52-28",[]],["keyword/52-28",[]],["title/52-29",[12,54.997,1441,43.203,3222,48.282]],["name/52-29",[]],["text/52-29",[]],["component/52-29",[]],["keyword/52-29",[]],["title/52-30",[1275,46.189,1441,38.196,3222,42.687,7530,57.299]],["name/52-30",[]],["text/52-30",[]],["component/52-30",[]],["keyword/52-30",[]],["title/52-31",[302,20.524,811,33.118,1441,34.229,3222,38.254,8073,55.504]],["name/52-31",[]],["text/52-31",[]],["component/52-31",[]],["keyword/52-31",[]],["title/52-32",[1362,43.444,1441,38.196,3222,42.687,8074,61.936]],["name/52-32",[]],["text/52-32",[]],["component/52-32",[]],["keyword/52-32",[]],["title/52-33",[286,31.577,1441,38.196,3222,42.687,8075,61.936]],["name/52-33",[]],["text/52-33",[]],["component/52-33",[]],["keyword/52-33",[]],["title/52-34",[118,28.893,333,37.047,1441,34.229,3222,38.254,8076,55.504]],["name/52-34",[]],["text/52-34",[]],["component/52-34",[]],["keyword/52-34",[]],["title/52-35",[1061,39.633,1441,38.196,3222,42.687,8077,61.936]],["name/52-35",[]],["text/52-35",[]],["component/52-35",[]],["keyword/52-35",[]],["title/52-36",[15,56.713,4711,51.1,5142,58.773]],["name/52-36",[]],["text/52-36",[]],["component/52-36",[]],["keyword/52-36",[]],["title/52-37",[2590,33.211,4711,45.179,5142,51.962,8078,61.936]],["name/52-37",[]],["text/52-37",[]],["component/52-37",[]],["keyword/52-37",[]],["title/52-38",[83,42.247,3466,53.528,8079,70.055]],["name/52-38",[]],["text/52-38",[]],["component/52-38",[]],["keyword/52-38",[]],["title/52-39",[127,28.301,3466,53.528,8080,70.055]],["name/52-39",[]],["text/52-39",[]],["component/52-39",[]],["keyword/52-39",[]],["title/52-40",[90,31.793,115,36.215,3466,47.325,8081,61.936]],["name/52-40",[]],["text/52-40",[]],["component/52-40",[]],["keyword/52-40",[]],["title/52-41",[21,23.674,1307,42.687,1374,34.296,4579,40.734]],["name/52-41",[]],["text/52-41",[]],["component/52-41",[]],["keyword/52-41",[]],["title/52-42",[278,34.012,1093,40.734,1307,42.687,1374,34.296]],["name/52-42",[]],["text/52-42",[]],["component/52-42",[]],["keyword/52-42",[]],["title/52-43",[29,39.633,279,36.215,1307,42.687,1439,41.989]],["name/52-43",[]],["text/52-43",[]],["component/52-43",[]],["keyword/52-43",[]],["title/52",[4579,62.442]],["name/52",[8082,0.832]],["text/52",[0,0.641,2,0.557,7,0.103,11,0.064,19,0.414,21,0.138,22,1.11,25,0.052,26,0.057,28,0.788,29,1.057,30,0.078,31,0.385,34,0.981,35,0.574,36,0.174,39,0.144,41,0.439,43,0.671,44,0.848,46,0.713,47,0.839,48,0.494,49,1.036,51,1.409,52,2.583,53,0.533,54,0.574,55,3.392,57,0.238,59,0.158,60,0.441,62,3.081,63,1.5,64,1.258,65,3.325,72,1.776,73,4.079,75,0.569,80,0.293,81,3.763,82,1.153,83,0.427,84,2.299,85,1.901,86,3.433,88,0.358,89,0.385,90,1.273,91,0.085,92,0.336,97,0.414,100,0.235,106,0.722,108,0.261,111,0.612,112,0.524,115,0.543,117,0.148,118,0.911,121,0.158,122,0.437,123,0.081,124,0.086,126,0.693,127,2.679,130,0.242,131,2.663,134,0.174,136,0.38,137,0.325,138,0.086,139,0.09,140,0.33,142,0.085,143,0.085,145,0.694,146,0.242,151,0.08,152,0.086,153,0.096,154,0.071,157,2.14,160,0.09,161,2.482,162,0.244,171,0.484,173,3.854,177,2.904,178,0.096,180,1.23,182,0.171,183,0.35,184,1.582,187,1.308,189,0.078,190,0.08,192,0.086,196,0.736,198,0.876,201,0.347,202,0.896,203,0.086,206,0.641,207,0.45,208,1.677,209,1.239,210,3.15,211,0.341,213,0.883,214,0.099,215,0.171,217,1.752,221,0.703,225,0.325,226,0.08,227,0.842,231,1.022,232,0.397,234,0.221,235,3.267,236,0.523,238,0.415,239,0.163,241,0.156,242,1.655,243,4.289,244,0.429,245,0.074,246,0.08,247,2.792,248,0.289,249,0.48,251,0.93,254,2.648,256,0.265,259,0.152,263,0.226,264,0.543,265,2.094,267,0.422,268,0.21,270,2.982,271,0.259,274,0.125,275,0.078,277,1.985,281,1.981,282,2.176,286,1.083,288,0.312,289,0.554,295,0.065,296,0.109,298,0.138,302,1.71,303,0.694,304,0.182,306,3.431,307,0.25,308,0.283,309,0.226,310,0.638,314,0.094,318,0.441,323,0.121,324,0.061,325,0.216,328,0.62,330,0.594,331,2.265,332,0.715,333,1.597,334,0.499,338,0.834,344,0.154,347,2.863,348,0.186,349,3.174,350,0.304,351,0.942,352,0.555,354,0.573,355,0.954,357,2.814,358,0.68,360,3.273,361,0.761,362,0.088,363,0.315,364,1.091,365,0.457,366,0.402,371,0.392,374,1.768,375,0.204,376,0.597,378,0.09,379,1.904,382,0.736,387,0.107,390,3.03,391,0.191,393,0.757,394,0.687,395,1.861,396,0.225,397,0.225,398,0.213,399,0.443,400,0.225,401,0.225,402,0.225,404,0.225,405,2.111,406,0.107,407,0.114,408,0.114,409,0.114,410,0.114,411,0.114,412,0.225,413,0.114,414,0.114,415,0.114,420,0.083,425,0.107,427,3.238,428,0.325,429,0.32,430,0.391,431,1.681,432,0.221,433,0.376,434,3.626,435,0.229,436,0.208,438,0.595,444,0.078,445,0.08,449,0.079,456,0.651,457,1.074,458,0.096,459,3.76,461,0.259,464,1.019,466,2.307,468,0.311,471,0.611,473,3.781,475,0.259,480,0.191,482,0.357,486,1.992,489,0.922,493,0.996,508,0.484,510,4.041,542,0.729,551,0.235,579,0.14,581,1.6,582,0.075,585,0.083,588,0.286,597,0.168,599,0.088,603,0.158,604,0.156,615,0.954,617,1.459,619,0.182,635,0.096,638,0.096,648,0.214,653,2.018,658,0.443,675,0.156,780,0.165,783,1.167,785,0.63,804,0.083,808,0.158,809,0.077,810,0.218,811,4.782,818,0.664,820,0.09,825,0.189,830,0.357,835,0.178,837,0.62,838,0.907,846,0.319,855,0.342,856,0.088,857,0.254,859,0.174,860,2.294,861,4.163,864,0.148,866,0.454,867,0.342,868,0.16,869,2.633,870,0.086,871,0.664,874,0.071,875,0.892,876,1.262,877,0.295,878,0.085,883,0.086,885,0.107,886,1.41,887,0.453,888,0.472,891,0.103,892,0.09,898,0.539,900,0.488,901,1.126,903,0.802,905,0.099,906,0.107,907,0.254,908,0.107,911,0.425,913,0.096,914,0.703,915,0.094,916,0.32,917,0.171,919,0.556,920,0.163,925,0.585,926,0.948,928,1.547,930,5.198,931,0.09,936,0.182,937,0.085,939,0.074,943,0.35,944,0.284,945,0.342,947,1.616,951,0.516,957,2.575,965,0.391,968,0.325,969,0.178,972,0.664,973,0.528,978,0.25,979,0.33,981,0.083,982,0.099,984,0.958,986,1.032,990,0.727,991,2.228,992,0.594,993,0.756,995,0.388,998,0.096,999,0.371,1003,2.316,1004,0.366,1005,0.336,1008,0.103,1009,0.081,1010,1.155,1011,0.433,1013,0.186,1015,0.62,1017,2.886,1018,0.277,1019,0.775,1020,0.092,1021,0.099,1022,0.09,1024,2.312,1025,0.096,1032,0.295,1037,0.158,1038,0.182,1039,0.186,1040,0.284,1044,0.506,1045,0.264,1046,0.238,1054,0.156,1059,0.09,1061,1.359,1068,1.254,1072,0.376,1073,0.197,1075,0.206,1077,0.092,1078,1.793,1080,0.088,1083,0.092,1085,0.242,1086,0.072,1089,0.63,1092,0.425,1093,0.465,1095,1.737,1097,0.466,1098,0.099,1105,1.865,1106,0.481,1108,0.376,1110,0.191,1111,0.466,1112,1.01,1113,0.425,1114,0.174,1115,0.103,1116,0.088,1117,0.099,1119,1.784,1120,2.341,1122,1.554,1123,1.205,1124,0.178,1126,2.112,1129,0.254,1131,0.071,1134,0.103,1135,0.082,1137,0.186,1138,0.611,1139,0.466,1140,1.652,1145,0.58,1147,0.886,1148,1.297,1149,0.107,1150,0.376,1151,0.342,1152,0.107,1155,1.158,1156,0.655,1157,0.854,1158,4.312,1159,0.263,1162,0.081,1168,0.729,1169,0.094,1172,0.094,1174,1.008,1176,0.088,1177,0.092,1178,0.178,1180,0.088,1181,0.38,1182,0.186,1184,0.611,1185,0.092,1187,0.564,1188,0.197,1189,0.293,1190,2.051,1191,0.875,1192,0.459,1193,1.386,1197,0.752,1198,0.204,1201,0.376,1202,0.472,1204,0.197,1208,0.376,1209,0.466,1211,2.482,1212,0.729,1213,2.929,1214,0.103,1215,0.186,1219,1.878,1220,0.103,1223,0.647,1224,0.103,1225,0.454,1230,0.204,1232,1.416,1233,0.284,1234,0.27,1237,0.191,1240,0.092,1242,0.171,1247,1.268,1248,0.643,1251,1.008,1252,0.094,1258,0.357,1259,0.246,1261,0.472,1267,0.246,1273,0.16,1275,1.784,1277,0.86,1278,2.274,1279,4.456,1280,1.824,1284,0.096,1285,0.165,1286,0.182,1287,0.077,1288,0.304,1289,0.466,1290,1.668,1291,0.096,1292,0.096,1293,0.088,1296,0.687,1299,0.107,1305,0.092,1307,2.661,1312,0.174,1314,0.094,1315,1.641,1318,0.099,1319,0.191,1321,0.41,1322,0.182,1323,2.007,1324,0.191,1326,0.107,1329,0.942,1330,0.792,1333,0.099,1334,0.232,1338,0.086,1340,0.16,1341,2.053,1343,0.342,1344,0.168,1346,0.09,1349,1.094,1350,0.107,1352,0.443,1354,0.499,1357,0.094,1361,0.096,1362,3.406,1365,0.191,1366,0.186,1367,0.174,1368,2.135,1373,0.42,1374,0.453,1376,0.873,1382,0.103,1383,0.088,1385,0.264,1386,0.082,1387,0.186,1393,0.14,1394,0.433,1396,0.191,1397,1.72,1398,0.197,1401,0.163,1403,0.48,1405,0.163,1406,0.077,1408,0.213,1412,0.107,1413,0.839,1414,4.152,1415,0.081,1416,0.073,1419,1.596,1423,1.894,1432,1.083,1434,0.092,1435,1.646,1436,0.186,1439,0.165,1441,1.98,1448,0.099,1454,0.107,1458,0.729,1459,0.516,1461,0.472,1468,0.647,1481,0.27,1483,0.33,1485,0.086,1491,0.204,1498,0.931,1499,0.225,1500,0.178,1512,0.466,1513,0.303,1515,0.32,1516,0.103,1523,0.092,1525,0.092,1543,0.103,1544,0.072,1548,0.351,1559,0.16,1560,0.573,1563,0.08,1594,0.096,1596,0.094,1601,0.085,1603,0.375,1606,0.096,1611,0.107,1612,0.096,1616,0.094,1629,0.103,1630,6.645,1631,0.182,1632,0.191,1633,0.09,1635,0.264,1642,0.165,1649,0.472,1651,0.094,1658,0.096,1659,1.262,1664,0.204,1680,0.524,1688,0.197,1697,0.376,1704,0.107,1707,0.366,1711,0.229,1723,2.611,1732,0.096,1740,0.186,1762,0.107,1765,0.103,1767,0.259,1768,0.342,1772,0.086,1788,0.191,1794,0.213,1806,0.204,1807,0.213,1808,0.204,1832,0.09,1841,0.096,1842,0.092,1843,0.178,1844,0.284,1845,0.103,1849,0.264,1859,0.213,1873,5.054,1888,0.092,1892,0.63,1901,0.238,1909,0.242,1913,0.197,1933,0.834,1937,0.293,1960,0.068,1997,0.103,2033,2.171,2060,0.081,2066,0.284,2092,1.761,2148,0.103,2274,0.09,2289,0.813,2304,0.304,2310,0.096,2365,0.246,2375,0.096,2383,8.116,2395,0.597,2405,0.366,2406,0.082,2421,1.532,2434,0.178,2438,1.616,2445,0.182,2531,0.08,2534,0.085,2547,0.259,2552,0.402,2554,0.094,2557,0.163,2590,0.194,2593,0.357,2609,0.391,2618,0.081,2623,3.722,2625,1.219,2627,0.42,2629,1.668,2630,0.573,2638,0.189,2641,0.099,2643,0.09,2644,0.107,2645,0.433,2648,0.092,2689,0.096,2692,0.27,2693,0.204,2700,1.257,2705,0.254,2737,0.366,2813,0.925,2825,1.01,2826,0.114,2851,0.27,2858,0.35,2862,0.197,2882,1.88,2986,1.446,2987,0.966,3015,0.213,3019,5.467,3032,0.814,3038,0.107,3061,0.55,3063,0.465,3079,0.086,3081,0.09,3085,0.466,3108,0.191,3109,0.107,3119,0.096,3120,0.103,3123,0.516,3130,0.099,3138,0.103,3139,0.103,3146,0.099,3151,0.814,3154,0.597,3161,0.099,3162,0.107,3178,0.388,3179,5.739,3190,0.481,3197,0.094,3199,0.103,3201,0.197,3214,0.099,3220,0.114,3221,0.103,3222,1.883,3223,0.335,3225,0.103,3242,0.114,3249,2.344,3250,0.925,3255,0.178,3259,0.114,3262,0.099,3297,0.213,3302,0.197,3310,0.779,3314,0.897,3365,0.114,3366,1.001,3367,0.317,3371,0.959,3373,0.752,3374,1.344,3389,0.107,3391,0.094,3394,0.114,3399,0.35,3406,0.096,3417,0.859,3418,0.402,3449,2.334,3460,0.099,3461,0.096,3466,4.626,3484,0.094,3487,0.42,3497,0.959,3499,0.87,3502,0.225,3514,0.317,3515,0.107,3544,0.099,3557,1.739,3566,0.114,3591,0.103,3613,0.092,3614,0.083,3617,0.114,3641,0.099,3642,0.092,3644,0.186,3646,1.158,3667,0.078,3685,0.317,3687,0.293,3735,0.107,3742,0.204,3743,0.099,3765,1.058,3768,0.213,3774,0.197,3776,0.317,3778,0.204,3786,0.717,3789,0.225,3795,1.36,3796,1.858,3800,3.136,3801,0.42,3803,0.317,3807,0.388,3815,0.293,3828,0.096,3829,0.171,3832,0.099,3880,0.103,3902,0.09,3942,0.204,3953,0.388,3969,0.225,4226,0.099,4253,0.103,4259,0.304,4260,0.317,4271,0.107,4274,0.107,4275,0.213,4278,1.782,4294,1.627,4309,0.107,4313,0.62,4316,2.014,4331,0.959,4338,0.594,4345,0.107,4392,0.402,4443,0.908,4470,0.114,4503,0.086,4511,0.107,4523,0.107,4534,0.191,4542,0.335,4565,0.114,4566,0.335,4573,0.499,4579,0.682,4580,0.55,4584,1.616,4648,0.114,4649,0.813,4653,0.62,4677,0.107,4692,1.058,4701,0.317,4711,0.834,4830,0.752,4836,0.114,4849,0.87,4851,0.107,4926,0.213,5024,0.225,5057,0.191,5065,0.107,5074,1.183,5075,0.317,5123,0.114,5142,1.134,5154,0.114,5171,0.213,5172,0.114,5195,0.103,5217,0.693,5221,1.272,5222,0.792,5241,0.114,5257,0.204,5271,0.114,5292,0.114,5331,2.32,5357,0.114,5361,0.114,5399,0.099,5413,0.107,5414,0.107,5430,0.225,5431,0.107,5471,0.107,5484,0.114,5508,0.107,5516,0.114,5806,0.284,5820,1.083,5860,0.687,5910,0.114,5949,0.103,5951,0.284,5989,1.344,6054,1.344,6058,0.099,6142,0.099,6173,0.114,6194,0.114,6284,1.57,6492,0.114,6587,0.42,6622,0.225,6757,0.114,6759,0.114,6797,0.225,6874,0.114,6928,0.225,6956,0.103,7022,0.213,7035,0.114,7099,0.225,7128,0.107,7164,0.213,7169,0.443,7216,0.107,7269,0.197,7301,0.114,7364,0.654,7480,0.114,7575,0.335,7820,0.225,7832,0.959,7868,0.908,7878,0.114,7918,0.114,7942,0.317,7944,0.114,7948,0.114,7961,0.114,7970,0.225,7974,0.335,7978,0.114,8006,0.42,8010,0.107,8016,0.225,8020,0.225,8025,0.813,8026,0.114,8039,0.443,8042,0.335,8044,0.225,8046,0.55,8048,0.335,8050,0.335,8052,0.443,8054,0.443,8056,0.443,8061,0.654,8063,0.654,8065,0.654,8067,0.654,8069,0.654,8071,0.55,8083,0.123,8084,0.123,8085,0.123,8086,0.479,8087,0.123,8088,0.114,8089,0.707,8090,1.143,8091,0.123,8092,0.123,8093,0.123,8094,0.243,8095,0.123,8096,0.123,8097,0.123,8098,0.123,8099,0.123,8100,0.123,8101,0.123,8102,0.717,8103,0.123,8104,0.362,8105,0.123,8106,0.123,8107,0.123,8108,0.243,8109,0.123,8110,0.243,8111,0.243,8112,0.362,8113,0.123,8114,0.123,8115,0.123,8116,0.362,8117,0.362,8118,0.123,8119,0.123,8120,0.123,8121,0.123,8122,0.123,8123,0.123,8124,0.123,8125,0.243,8126,0.123,8127,0.123,8128,0.362,8129,0.243,8130,0.123,8131,0.123,8132,0.123,8133,0.123,8134,0.362,8135,0.243,8136,0.479,8137,0.243,8138,0.243,8139,0.243,8140,0.123,8141,0.362,8142,0.243,8143,0.362,8144,0.362,8145,0.362,8146,0.479,8147,0.243,8148,0.243,8149,0.243,8150,0.243,8151,0.243,8152,0.243,8153,0.243,8154,0.243,8155,0.243,8156,0.123,8157,0.123,8158,3.21,8159,0.123,8160,0.123,8161,0.123,8162,0.243,8163,1.037,8164,0.123,8165,0.362,8166,0.594,8167,0.243,8168,0.123,8169,0.243,8170,0.123,8171,0.362,8172,1.453,8173,0.243,8174,0.123,8175,0.243,8176,0.707,8177,0.123,8178,0.123,8179,0.123,8180,0.123,8181,0.479,8182,0.362,8183,0.123,8184,0.707,8185,0.362,8186,0.594,8187,0.123,8188,1.939,8189,0.225,8190,0.123,8191,0.123,8192,0.123,8193,0.123,8194,0.123,8195,0.123,8196,0.123,8197,0.123,8198,0.123,8199,0.123,8200,0.123,8201,0.123,8202,0.123,8203,0.123,8204,0.123,8205,0.123,8206,0.123,8207,0.123,8208,0.123,8209,0.123,8210,0.123,8211,0.123,8212,0.123,8213,0.123,8214,0.123,8215,0.123,8216,0.123,8217,0.123,8218,0.123,8219,0.123,8220,0.123,8221,0.123,8222,0.123,8223,0.123,8224,0.123,8225,0.123,8226,0.123,8227,0.123,8228,0.123,8229,0.123,8230,0.123,8231,0.123,8232,0.123,8233,0.123,8234,0.123,8235,0.123,8236,0.123,8237,0.123,8238,0.123,8239,0.123,8240,0.123,8241,0.123,8242,0.123,8243,0.123,8244,0.123,8245,0.123,8246,0.123,8247,0.123,8248,0.123,8249,0.123,8250,0.123,8251,0.123,8252,0.123,8253,0.123,8254,0.123,8255,0.123,8256,0.123,8257,0.123,8258,0.123,8259,0.123,8260,0.123,8261,0.123,8262,0.123,8263,0.123,8264,0.123,8265,0.123,8266,0.123,8267,0.123,8268,0.123,8269,0.123,8270,0.123,8271,0.123,8272,0.123,8273,0.123,8274,0.123,8275,0.123,8276,0.123,8277,0.123,8278,0.123,8279,0.123,8280,0.123,8281,0.123,8282,0.123,8283,0.123,8284,0.123,8285,0.123,8286,0.123,8287,0.123,8288,0.123,8289,0.123,8290,0.123,8291,0.123,8292,0.123,8293,0.123,8294,0.123,8295,1.143,8296,0.123,8297,0.123,8298,0.123,8299,0.123,8300,0.123,8301,0.123,8302,0.123,8303,0.123,8304,0.123,8305,0.123,8306,0.123,8307,0.123,8308,0.123,8309,0.123,8310,0.123,8311,0.123,8312,0.123,8313,0.123,8314,0.123,8315,0.123,8316,0.123,8317,0.123,8318,0.123,8319,0.123,8320,0.123,8321,0.123,8322,0.123,8323,0.123,8324,0.123,8325,0.123,8326,0.123,8327,0.123,8328,0.123,8329,0.123,8330,0.123,8331,0.123,8332,0.243,8333,0.123,8334,0.123,8335,0.123,8336,0.123,8337,0.123,8338,0.123,8339,0.123,8340,0.123,8341,0.123,8342,0.123,8343,0.123,8344,0.123,8345,0.123,8346,0.123,8347,0.123,8348,0.123,8349,0.123,8350,0.123,8351,0.123,8352,0.123,8353,0.123,8354,0.123,8355,0.123,8356,0.123,8357,0.123,8358,0.123,8359,0.123,8360,0.123,8361,0.123,8362,0.123,8363,0.123,8364,0.123,8365,0.123,8366,0.123,8367,0.123,8368,0.123,8369,0.123,8370,0.123,8371,0.123,8372,0.123,8373,0.123,8374,0.123,8375,0.123,8376,0.123,8377,0.123,8378,0.362,8379,0.123,8380,0.243,8381,0.123,8382,0.123,8383,0.123,8384,0.123,8385,0.123,8386,0.123,8387,0.123,8388,0.123,8389,0.123,8390,0.123,8391,0.123,8392,0.123,8393,0.123,8394,0.123,8395,0.123,8396,0.123,8397,0.123,8398,0.123,8399,0.123,8400,0.123,8401,0.123,8402,0.123,8403,0.123,8404,0.123,8405,0.123,8406,0.123,8407,0.123,8408,0.123,8409,0.123,8410,0.123,8411,0.123,8412,0.123,8413,0.123,8414,0.123,8415,0.123,8416,0.123,8417,0.123,8418,0.123,8419,0.123,8420,0.123,8421,0.123,8422,0.123,8423,0.123,8424,0.123,8425,0.123,8426,1.143,8427,0.479,8428,0.123,8429,0.479,8430,0.123,8431,0.123,8432,0.123,8433,0.123,8434,0.123,8435,0.123,8436,0.123,8437,0.819,8438,0.123,8439,0.123,8440,0.123,8441,0.123,8442,0.243,8443,0.243,8444,0.243,8445,0.243,8446,0.123,8447,0.123,8448,0.123,8449,0.123,8450,0.243,8451,0.243,8452,0.243,8453,0.243,8454,0.123,8455,0.123,8456,0.123,8457,0.123,8458,0.123,8459,0.243,8460,0.243,8461,0.123,8462,0.123,8463,0.123,8464,0.243,8465,0.243,8466,0.123,8467,0.362,8468,0.123,8469,0.123,8470,0.123,8471,0.243,8472,0.123,8473,0.243,8474,0.123,8475,0.123,8476,0.123,8477,0.123,8478,0.123,8479,0.123,8480,0.123,8481,0.123,8482,0.123,8483,0.123,8484,0.123,8485,0.123,8486,0.123,8487,0.123,8488,0.243,8489,0.123,8490,0.123,8491,0.819,8492,0.707,8493,0.819,8494,0.819,8495,0.594,8496,0.594,8497,0.362,8498,0.362,8499,0.243,8500,0.243,8501,0.123,8502,0.123,8503,0.123,8504,0.123,8505,0.362,8506,0.362,8507,0.123,8508,0.123,8509,0.123,8510,0.123,8511,0.123,8512,0.123,8513,0.123,8514,0.362,8515,0.123,8516,0.123,8517,0.243,8518,0.243,8519,0.243,8520,0.123,8521,0.123,8522,0.123,8523,0.123,8524,0.123,8525,0.123,8526,0.243,8527,0.243,8528,0.123,8529,0.123,8530,0.123,8531,0.123,8532,0.123,8533,0.123,8534,0.123,8535,0.123,8536,0.123,8537,0.123,8538,0.123,8539,0.123,8540,0.123,8541,0.123,8542,0.123,8543,0.123,8544,0.123,8545,0.707,8546,0.123,8547,0.123,8548,0.243,8549,0.479,8550,0.123,8551,0.123,8552,0.123,8553,0.123,8554,0.123,8555,0.123,8556,0.123,8557,0.123,8558,0.123,8559,0.123,8560,0.123,8561,0.123,8562,0.123,8563,0.123,8564,0.123,8565,0.362,8566,0.243,8567,0.362,8568,0.123,8569,0.123,8570,0.123,8571,0.123,8572,0.123,8573,0.123,8574,0.123,8575,0.243,8576,0.243,8577,0.123,8578,0.123,8579,0.123,8580,0.123,8581,0.123,8582,0.123,8583,0.123,8584,0.123,8585,0.123,8586,0.123,8587,0.123,8588,0.243,8589,0.243,8590,0.123,8591,0.243,8592,0.123,8593,0.123,8594,0.123,8595,0.123,8596,0.123,8597,0.123,8598,0.123,8599,0.707,8600,0.123,8601,0.123,8602,0.123,8603,0.123,8604,0.362,8605,0.123,8606,0.123,8607,0.123,8608,0.123,8609,0.123,8610,0.123,8611,0.123,8612,0.123,8613,0.123,8614,0.123,8615,0.123,8616,0.123,8617,0.123,8618,0.123,8619,0.123,8620,0.243,8621,0.123,8622,0.123,8623,0.123,8624,0.123,8625,0.123,8626,0.243,8627,0.243,8628,0.243,8629,0.123,8630,0.123,8631,0.123,8632,0.479,8633,0.479,8634,0.123,8635,0.123,8636,0.123,8637,0.123,8638,0.123,8639,0.123,8640,0.123,8641,0.123,8642,0.123,8643,0.123,8644,0.123,8645,0.123,8646,0.243,8647,0.243,8648,0.123,8649,0.243,8650,0.243,8651,0.123,8652,0.123,8653,0.123,8654,0.479,8655,0.123,8656,0.123,8657,0.123,8658,0.243,8659,0.123,8660,0.243,8661,0.123,8662,0.123,8663,0.123,8664,0.123,8665,0.123,8666,1.248,8667,0.123,8668,0.479,8669,0.123,8670,1.248,8671,0.123,8672,0.594,8673,3.722,8674,0.123,8675,0.123,8676,0.243,8677,2.304,8678,1.248,8679,1.248,8680,1.248,8681,0.594,8682,0.243,8683,1.248,8684,1.248,8685,0.929,8686,0.707,8687,0.479,8688,0.362,8689,0.123,8690,0.123,8691,0.479,8692,0.707,8693,0.707,8694,0.707,8695,0.123,8696,0.123,8697,0.243,8698,0.243,8699,0.362,8700,0.243,8701,0.123,8702,0.123,8703,0.123,8704,0.362,8705,0.123,8706,0.362,8707,0.123,8708,0.123,8709,0.123,8710,0.123,8711,0.123,8712,0.243,8713,0.123,8714,0.123,8715,0.123,8716,0.123,8717,0.243,8718,0.243,8719,0.123,8720,0.123,8721,0.123,8722,0.243,8723,0.123,8724,0.123,8725,0.123,8726,0.123,8727,0.123,8728,0.123,8729,0.594,8730,0.123,8731,0.123,8732,0.123,8733,0.123,8734,0.123,8735,0.123,8736,0.123,8737,0.123,8738,0.123,8739,0.123,8740,0.123,8741,0.123,8742,0.123,8743,0.123,8744,0.123,8745,0.123,8746,0.243,8747,0.243,8748,0.123,8749,0.123,8750,0.123,8751,0.243,8752,0.123,8753,0.114,8754,0.123,8755,0.123,8756,0.123,8757,0.123,8758,0.123,8759,0.123,8760,0.123,8761,0.123,8762,0.123,8763,0.123,8764,0.123,8765,0.362]],["component/52",[2,0.251,266,0.348]],["keyword/52",[]],["title/53-1",[0,24.354,919,37.564,6738,61.354]],["name/53-1",[]],["text/53-1",[]],["component/53-1",[]],["keyword/53-1",[]],["title/53-2",[21,26.776,269,28.659,292,48.282]],["name/53-2",[]],["text/53-2",[]],["component/53-2",[]],["keyword/53-2",[]],["title/53-3",[269,28.659,278,38.471,293,53.528]],["name/53-3",[]],["text/53-3",[]],["component/53-3",[]],["keyword/53-3",[]],["title/53-4",[2,18.702,208,34.892,279,36.215,2507,41.34]],["name/53-4",[]],["text/53-4",[]],["component/53-4",[]],["keyword/53-4",[]],["title/53-5",[2,21.154,24,30.232,357,37.279]],["name/53-5",[]],["text/53-5",[]],["component/53-5",[]],["keyword/53-5",[]],["title/53",[270,42.272,292,55.565]],["name/53",[8766,0.832]],["text/53",[0,0.921,2,3.865,10,2.921,31,2.12,40,1.797,41,1.421,43,1.728,51,1.506,53,2.584,54,3.253,55,4.607,60,1.128,62,4.133,64,2.706,72,1.581,75,1.455,81,1.432,84,1.241,85,2.345,88,2.717,108,1.444,111,1.565,127,1.82,177,1.455,180,1.535,184,1.634,185,4.846,196,2.454,208,3.904,209,1.616,213,3.34,215,1.859,217,3.655,227,1.351,231,1.467,232,1.769,238,1.342,248,1.598,269,3.455,270,4.428,273,3.208,274,3.986,281,2.921,282,1.55,286,1.351,288,1.39,289,1.581,292,1.827,293,2.025,294,2.778,295,3.66,296,4.233,299,3.16,302,3.123,303,2.312,306,3.486,307,1.827,308,1.262,309,1.654,316,1.432,329,3.22,330,1.696,331,1.41,336,2.921,340,1.976,343,1.894,344,6.246,346,6.069,347,3.208,349,3.151,357,3.688,358,1.333,360,1.565,361,1.616,365,1.48,367,3.945,369,2.321,370,2.846,371,1.467,373,4.489,376,3.286,377,2.145,378,4.286,379,6.067,382,4.907,384,7.292,391,4.102,392,1.797,428,1.797,432,1.616,437,3.22,445,1.719,454,2.266,808,1.719,873,2.025,874,2.609,919,2.416,925,1.894,928,1.654,937,1.827,984,1.634,1009,2.963,1017,2.561,1019,1.52,1037,1.719,1091,1.933,1123,1.933,1138,2.963,1156,1.674,1306,1.933,1340,1.743,1368,1.55,1405,1.769,1442,2.025,1494,1.743,1508,1.933,1538,1.894,1556,1.894,1737,1.976,1767,1.894,1901,1.743,2060,1.743,2284,2.025,2387,3.922,2440,4.121,2507,5.637,2519,1.859,2520,1.933,2521,4.168,2522,2.321,2523,3.945,2524,2.452,2525,4.168,2526,4.168,2527,2.452,2528,2.452,2529,2.452,2530,2.452,2531,1.719,2532,2.223,2533,1.827,2534,3.105,2535,2.223,2536,1.976,2537,3.945,2538,4.929,2539,2.321,2540,2.321,2557,1.769,2574,5.61,2612,2.452,2613,2.452,2615,1.634,2616,2.452,2617,2.145,2618,1.743,2621,2.452,2623,2.081,2625,2.223,2627,2.321,2629,2.081,2630,3.647,2635,2.321,2636,2.452,2637,2.452,2638,1.38,2639,2.145,2640,2.452,2641,2.145,2642,2.452,2706,2.452,2761,1.933,3740,2.223,3814,2.452,4203,2.081,4415,2.223,6399,2.452,6400,2.452,6401,2.452,6402,2.321,6403,2.452,6404,2.321,6405,2.452,6406,2.321,8088,2.452,8767,2.65,8768,2.65,8769,2.65,8770,2.65,8771,2.65,8772,2.65,8773,2.65,8774,2.65,8775,2.65,8776,2.65,8777,8.445,8778,9.008,8779,2.65,8780,2.65,8781,2.65,8782,2.65,8783,2.65,8784,2.65,8785,2.65,8786,2.65,8787,2.65]],["component/53",[2,0.251,266,0.348]],["keyword/53",[]],["title/54-1",[0,24.354,74,35.015,93,46.758]],["name/54-1",[]],["text/54-1",[]],["component/54-1",[]],["keyword/54-1",[]],["title/54-2",[21,21.215,43,21.296,60,23.623,1351,40.487,3858,42.41]],["name/54-2",[]],["text/54-2",[]],["component/54-2",[]],["keyword/54-2",[]],["title/54-3",[24,23.953,43,21.296,60,23.623,1351,40.487,8788,51.348]],["name/54-3",[]],["text/54-3",[]],["component/54-3",[]],["keyword/54-3",[]],["title/54",[4,44.643,11,41.969]],["name/54",[3854,0.653]],["text/54",[2,1.116,19,3.945,25,0.885,26,0.971,30,2.335,39,1.245,43,3.572,49,3.622,51,1.198,54,2.047,55,3.888,59,2.397,60,0.897,62,4.266,63,1.811,64,1.702,69,4.223,71,1.453,72,1.258,73,1.177,74,1.847,81,6.134,83,2.977,85,3.088,86,4.015,91,1.453,93,1.407,127,4.385,131,5.764,140,1.453,145,1.897,162,3.024,170,2.992,175,1.478,177,1.157,180,1.22,190,1.367,201,1.232,206,2.534,210,1.139,217,5.527,225,1.429,227,3.024,234,2.254,238,1.067,239,4.959,244,3.538,249,1.429,251,1.349,252,1.097,273,0.976,298,2.101,302,1.825,306,1.859,308,1.76,310,3.768,318,2.306,325,1.258,326,1.407,347,4.724,348,1.61,351,1.367,357,1.122,358,2.483,365,1.177,371,1.167,393,3.289,429,1.407,435,1.331,436,3.403,439,2.824,445,4.818,457,3.133,459,0.992,464,2.593,493,1.271,581,4.833,604,2.365,648,1.245,653,1.122,675,1.349,785,1.429,801,2.397,818,1.122,823,3.237,825,3.513,838,1.157,863,1.453,864,1.285,880,1.61,896,1.429,907,3.463,909,3.601,921,1.453,928,2.306,930,1.245,931,1.537,934,2.506,945,1.506,951,2.696,952,1.655,962,4.922,968,1.429,984,1.3,999,1.315,1037,1.367,1054,3.159,1068,6.156,1080,4.823,1095,2.552,1120,3.313,1122,8.315,1147,1.285,1157,5.058,1169,4.532,1170,1.285,1181,1.349,1190,3.08,1211,1.331,1233,2.902,1235,5.54,1240,1.572,1259,1.429,1264,2.902,1280,2.467,1281,4.24,1314,2.824,1350,3.237,1351,1.537,1368,1.232,1403,4.574,1416,1.258,1500,1.537,1503,2.397,1509,1.768,1565,1.367,1603,2.335,1636,1.572,1649,1.407,1680,1.349,1690,1.61,1711,2.335,1740,3.772,1788,1.655,1873,1.478,1892,2.506,2065,1.232,2223,4.802,2273,4.161,2309,1.706,2311,1.61,2319,3.237,2365,2.506,2519,1.478,2547,1.506,2818,6.497,3104,1.846,3112,3.528,3123,2.696,3134,3.101,3845,1.706,3854,1.655,3858,3.772,4236,1.846,4711,1.537,5231,1.768,5431,1.846,5892,1.846,7537,1.95,8788,4.567,8789,2.108,8790,2.108,8791,2.108,8792,3.696,8793,3.696,8794,5.932,8795,3.419,8796,2.108,8797,2.108,8798,2.108,8799,2.108,8800,2.108,8801,6.748,8802,2.108,8803,5.932,8804,3.696,8805,2.108,8806,2.108,8807,3.696,8808,2.108,8809,2.108,8810,2.108,8811,2.108,8812,2.108,8813,1.95,8814,3.419,8815,1.95,8816,1.95,8817,2.108,8818,2.108,8819,3.696,8820,1.95,8821,1.95,8822,2.108,8823,2.108,8824,3.696]],["component/54",[2,0.251,266,0.348]],["keyword/54",[]],["title/55-1",[0,24.354,74,35.015,93,46.758]],["name/55-1",[]],["text/55-1",[]],["component/55-1",[]],["keyword/55-1",[]],["title/55-2",[21,26.776,43,26.878,60,29.815]],["name/55-2",[]],["text/55-2",[]],["component/55-2",[]],["keyword/55-2",[]],["title/55",[4,44.643,11,41.969]],["name/55",[3858,0.636]],["text/55",[0,1.713,2,2.241,24,2.127,25,2.069,39,2.911,43,3.424,44,2.53,49,2.403,55,5.073,62,2.06,63,3.65,64,2.27,69,5.645,70,3.114,74,3.709,81,5.367,83,4.475,85,2.566,115,2.882,127,2.998,140,5.114,145,2.53,162,3.783,171,1.913,177,2.706,180,2.854,198,3.196,217,3.493,227,2.513,268,2.854,288,2.584,302,1.822,306,2.479,308,2.346,326,3.29,347,3.436,382,2.685,393,2.403,436,4.257,444,4.688,445,3.196,581,2.801,604,3.154,783,3.29,1010,2.801,1068,6.267,1075,2.801,1122,6.966,1157,5.638,1223,3.075,1351,3.595,1368,2.882,1468,3.075,1513,4.688,1680,3.154,1952,3.766,2222,4.135,2273,3.457,2434,3.595,2547,3.523,2557,3.29,2575,4.559,2818,3.766,3854,3.869,3858,7.588,4307,4.316,5549,3.766,5932,4.316,6643,4.559,8795,4.559,8813,4.559,8815,4.559,8816,4.559,8820,4.559,8821,4.559,8825,4.928,8826,4.928,8827,4.928,8828,4.928,8829,4.928,8830,4.928,8831,4.928,8832,4.928,8833,4.928,8834,4.928,8835,4.928,8836,4.928,8837,4.928,8838,4.928,8839,4.928,8840,4.928,8841,4.928,8842,4.928,8843,4.559,8844,4.928,8845,4.928,8846,4.928,8847,4.928,8848,4.928,8849,4.559,8850,4.928,8851,4.928,8852,4.928,8853,4.928,8854,4.928,8855,4.928,8856,4.928,8857,4.928,8858,4.928,8859,4.928,8860,4.928]],["component/55",[2,0.251,266,0.348]],["keyword/55",[]],["title/56-1",[0,28.028,206,41.385]],["name/56-1",[]],["text/56-1",[]],["component/56-1",[]],["keyword/56-1",[]],["title/56-2",[21,26.776,63,21.39,486,34.36]],["name/56-2",[]],["text/56-2",[]],["component/56-2",[]],["keyword/56-2",[]],["title/56-3",[24,30.232,244,36.731,324,35.015]],["name/56-3",[]],["text/56-3",[]],["component/56-3",[]],["keyword/56-3",[]],["title/56",[25,26.006,26,28.522,246,40.167,247,35.205]],["name/56",[8861,0.832]],["text/56",[2,2.711,25,4.353,26,2.95,53,3.675,55,4.628,60,2.726,61,4.07,62,2.678,63,1.956,68,3.202,70,4.047,74,3.202,82,3.335,85,3.335,102,6.298,122,4.227,154,3.709,196,3.489,206,3.288,211,3.675,238,3.244,244,4.708,246,7.287,247,6.387,297,5.029,302,2.369,310,5.79,349,3.435,391,4.743,416,5.415,464,4.493,493,5.415,579,3.675,825,3.335,901,3.547,949,4.673,991,4.154,1032,3.951,1054,5.746,1095,3.311,1113,6.418,1162,4.213,1170,5.475,1190,3.997,1221,3.951,1356,5.186,1503,7.287,1601,8.452,1960,4.972,1979,5.926,2065,3.746,2392,3.709,2808,9.591,2828,7.049,4711,4.673,5255,5.61,7882,10.395,8862,6.406]],["component/56",[2,0.251,266,0.348]],["keyword/56",[]],["title/57-1",[0,21.532,52,28.371,83,37.351,84,28.992]],["name/57-1",[]],["text/57-1",[]],["component/57-1",[]],["keyword/57-1",[]],["title/57-2",[21,26.776,63,21.39,83,42.247]],["name/57-2",[]],["text/57-2",[]],["component/57-2",[]],["keyword/57-2",[]],["title/57-3",[24,26.728,63,18.912,83,37.351,486,30.378]],["name/57-3",[]],["text/57-3",[]],["component/57-3",[]],["keyword/57-3",[]],["title/57-4",[63,21.39,287,43.203,711,58.773]],["name/57-4",[]],["text/57-4",[]],["component/57-4",[]],["keyword/57-4",[]],["title/57-5",[63,21.39,290,42.713,682,58.773]],["name/57-5",[]],["text/57-5",[]],["component/57-5",[]],["keyword/57-5",[]],["title/57-6",[63,21.39,706,58.773,2657,46.073]],["name/57-6",[]],["text/57-6",[]],["component/57-6",[]],["keyword/57-6",[]],["title/57-7",[63,21.39,701,58.773,2659,47.492]],["name/57-7",[]],["text/57-7",[]],["component/57-7",[]],["keyword/57-7",[]],["title/57-8",[63,21.39,695,58.773,1624,51.1]],["name/57-8",[]],["text/57-8",[]],["component/57-8",[]],["keyword/57-8",[]],["title/57-9",[63,21.39,2666,53.528,8863,64.809]],["name/57-9",[]],["text/57-9",[]],["component/57-9",[]],["keyword/57-9",[]],["title/57-10",[63,21.39,4181,58.773,8864,64.809]],["name/57-10",[]],["text/57-10",[]],["component/57-10",[]],["keyword/57-10",[]],["title/57-11",[63,21.39,4189,58.773,7896,61.354]],["name/57-11",[]],["text/57-11",[]],["component/57-11",[]],["keyword/57-11",[]],["title/57-12",[63,21.39,715,58.773,4194,58.773]],["name/57-12",[]],["text/57-12",[]],["component/57-12",[]],["keyword/57-12",[]],["title/57-13",[63,21.39,4204,58.773,8865,64.809]],["name/57-13",[]],["text/57-13",[]],["component/57-13",[]],["keyword/57-13",[]],["title/57-14",[63,21.39,720,58.773,4209,56.713]],["name/57-14",[]],["text/57-14",[]],["component/57-14",[]],["keyword/57-14",[]],["title/57-15",[63,21.39,3874,61.354,4215,61.354]],["name/57-15",[]],["text/57-15",[]],["component/57-15",[]],["keyword/57-15",[]],["title/57-16",[63,21.39,8866,70.055,8867,64.809]],["name/57-16",[]],["text/57-16",[]],["component/57-16",[]],["keyword/57-16",[]],["title/57-17",[63,21.39,3876,61.354,8868,70.055]],["name/57-17",[]],["text/57-17",[]],["component/57-17",[]],["keyword/57-17",[]],["title/57-18",[63,21.39,8869,70.055,8870,64.809]],["name/57-18",[]],["text/57-18",[]],["component/57-18",[]],["keyword/57-18",[]],["title/57-19",[63,21.39,7357,64.809,8871,64.809]],["name/57-19",[]],["text/57-19",[]],["component/57-19",[]],["keyword/57-19",[]],["title/57-20",[63,21.39,8872,70.055,8873,64.809]],["name/57-20",[]],["text/57-20",[]],["component/57-20",[]],["keyword/57-20",[]],["title/57-21",[63,21.39,8874,70.055,8875,64.809]],["name/57-21",[]],["text/57-21",[]],["component/57-21",[]],["keyword/57-21",[]],["title/57-22",[63,21.39,934,47.492,8876,70.055]],["name/57-22",[]],["text/57-22",[]],["component/57-22",[]],["keyword/57-22",[]],["title/57-23",[63,21.39,8877,70.055,8878,64.809]],["name/57-23",[]],["text/57-23",[]],["component/57-23",[]],["keyword/57-23",[]],["title/57-24",[39,41.372,63,21.39,8879,70.055]],["name/57-24",[]],["text/57-24",[]],["component/57-24",[]],["keyword/57-24",[]],["title/57-25",[63,21.39,8880,70.055,8881,64.809]],["name/57-25",[]],["text/57-25",[]],["component/57-25",[]],["keyword/57-25",[]],["title/57-26",[63,21.39,8882,70.055,8883,64.809]],["name/57-26",[]],["text/57-26",[]],["component/57-26",[]],["keyword/57-26",[]],["title/57-27",[63,21.39,8884,70.055,8885,64.809]],["name/57-27",[]],["text/57-27",[]],["component/57-27",[]],["keyword/57-27",[]],["title/57-28",[63,21.39,8886,70.055,8887,64.809]],["name/57-28",[]],["text/57-28",[]],["component/57-28",[]],["keyword/57-28",[]],["title/57-29",[63,21.39,737,56.713,8888,70.055]],["name/57-29",[]],["text/57-29",[]],["component/57-29",[]],["keyword/57-29",[]],["title/57-30",[63,21.39,732,58.773,8889,70.055]],["name/57-30",[]],["text/57-30",[]],["component/57-30",[]],["keyword/57-30",[]],["title/57-31",[63,21.39,742,58.773,8890,70.055]],["name/57-31",[]],["text/57-31",[]],["component/57-31",[]],["keyword/57-31",[]],["title/57-32",[63,21.39,747,58.773,8891,70.055]],["name/57-32",[]],["text/57-32",[]],["component/57-32",[]],["keyword/57-32",[]],["title/57-33",[63,21.39,762,58.773,8892,70.055]],["name/57-33",[]],["text/57-33",[]],["component/57-33",[]],["keyword/57-33",[]],["title/57-34",[63,21.39,752,58.773,8893,70.055]],["name/57-34",[]],["text/57-34",[]],["component/57-34",[]],["keyword/57-34",[]],["title/57-35",[63,21.39,757,58.773,8894,70.055]],["name/57-35",[]],["text/57-35",[]],["component/57-35",[]],["keyword/57-35",[]],["title/57-36",[63,21.39,2259,64.809,8895,64.809]],["name/57-36",[]],["text/57-36",[]],["component/57-36",[]],["keyword/57-36",[]],["title/57-37",[63,21.39,8896,70.055,8897,64.809]],["name/57-37",[]],["text/57-37",[]],["component/57-37",[]],["keyword/57-37",[]],["title/57-38",[63,21.39,8898,70.055,8899,64.809]],["name/57-38",[]],["text/57-38",[]],["component/57-38",[]],["keyword/57-38",[]],["title/57-39",[63,21.39,677,58.773,8900,70.055]],["name/57-39",[]],["text/57-39",[]],["component/57-39",[]],["keyword/57-39",[]],["title/57-40",[63,21.39,686,58.773,8901,70.055]],["name/57-40",[]],["text/57-40",[]],["component/57-40",[]],["keyword/57-40",[]],["title/57-41",[63,21.39,691,58.773,8902,70.055]],["name/57-41",[]],["text/57-41",[]],["component/57-41",[]],["keyword/57-41",[]],["title/57-42",[63,21.39,8903,70.055,8904,64.809]],["name/57-42",[]],["text/57-42",[]],["component/57-42",[]],["keyword/57-42",[]],["title/57-43",[63,21.39,8905,70.055,8906,64.809]],["name/57-43",[]],["text/57-43",[]],["component/57-43",[]],["keyword/57-43",[]],["title/57-44",[63,21.39,3858,53.528,8907,70.055]],["name/57-44",[]],["text/57-44",[]],["component/57-44",[]],["keyword/57-44",[]],["title/57-45",[63,21.39,8908,70.055,8909,64.809]],["name/57-45",[]],["text/57-45",[]],["component/57-45",[]],["keyword/57-45",[]],["title/57-46",[63,21.39,8910,70.055,8911,64.809]],["name/57-46",[]],["text/57-46",[]],["component/57-46",[]],["keyword/57-46",[]],["title/57-47",[63,21.39,8912,70.055,8913,64.809]],["name/57-47",[]],["text/57-47",[]],["component/57-47",[]],["keyword/57-47",[]],["title/57-48",[63,21.39,1466,53.528,8914,70.055]],["name/57-48",[]],["text/57-48",[]],["component/57-48",[]],["keyword/57-48",[]],["title/57-49",[63,21.39,8915,70.055,8916,64.809]],["name/57-49",[]],["text/57-49",[]],["component/57-49",[]],["keyword/57-49",[]],["title/57-50",[63,21.39,3854,54.997,8917,70.055]],["name/57-50",[]],["text/57-50",[]],["component/57-50",[]],["keyword/57-50",[]],["title/57",[52,25.425,63,16.948,83,48.871,84,25.981]],["name/57",[8918,0.832]],["text/57",[0,4.154,2,0.716,5,0.363,21,0.581,24,1.024,29,1.254,31,0.494,37,0.388,39,2.42,41,0.815,43,3.31,48,0.328,49,3.31,52,2.136,54,2.099,55,3.718,60,3.535,62,1.585,63,3.088,64,0.7,65,0.647,69,0.309,71,0.374,72,1.647,73,5.222,74,0.272,79,0.415,81,4.606,82,0.546,84,2.182,85,1.235,86,1.059,91,0.374,106,1.974,111,3.194,118,1.02,127,1.115,130,0.7,140,1.047,152,0.381,162,0.277,171,0.407,177,0.835,197,0.765,201,1.146,209,0.639,210,4.769,213,0.309,217,0.494,231,0.301,238,0.531,243,0.287,244,4.944,245,0.328,251,0.348,254,1.095,259,0.339,264,5.16,270,2.581,273,0.252,288,1.447,302,0.388,308,4.413,310,0.586,316,0.821,324,4.591,325,1.17,327,0.363,347,0.485,351,0.68,355,0.281,358,1.194,361,1.195,365,0.586,382,0.571,393,5.715,416,2.646,420,0.368,421,0.415,423,0.849,427,5.859,435,0.343,436,0.601,440,0.388,454,0.765,457,0.287,459,0.923,461,1.696,486,0.266,489,0.76,509,0.396,576,0.639,589,0.368,592,0.88,599,1.086,603,0.352,604,5.647,610,1.014,613,2.613,641,0.44,642,1.014,648,0.619,658,1.133,675,6.546,677,0.88,682,1.275,686,0.88,691,1.991,695,1.275,701,1.275,706,1.275,711,1.991,715,0.456,720,1.644,732,1.991,737,1.587,742,1.644,747,1.275,752,0.456,757,0.456,762,1.275,783,1.014,785,4.486,804,1.329,818,2.335,859,0.388,864,0.639,874,0.315,877,1.209,887,0.348,888,0.7,896,0.711,898,1.56,901,0.301,926,1.066,930,4.01,931,1.109,934,2.57,939,2.471,945,0.388,969,0.396,972,1.973,984,0.335,985,0.476,986,0.801,991,3.653,992,0.348,993,2.013,999,0.654,1003,2.39,1004,2.649,1009,2.28,1016,0.476,1017,0.309,1024,5.438,1031,0.503,1033,1.109,1041,1.696,1051,0.503,1056,0.735,1068,4.523,1075,1.349,1080,1.696,1090,1.635,1122,1.375,1133,1.275,1154,0.426,1157,0.662,1159,0.298,1162,0.69,1174,0.405,1178,1.43,1180,0.388,1182,0.415,1192,0.68,1221,0.937,1247,0.626,1259,1.03,1285,0.368,1313,0.456,1327,0.476,1340,0.357,1343,0.388,1368,0.889,1375,0.849,1401,0.363,1405,1.014,1406,2.366,1425,0.405,1432,0.782,1466,0.801,1469,0.415,1483,1.047,1488,0.88,1494,1.56,1495,0.405,1516,1.275,1525,0.782,1544,4.335,1546,0.782,1548,0.321,1556,0.388,1559,0.357,1563,0.68,1565,0.68,1616,0.415,1620,0.918,1633,0.396,1636,0.405,1642,0.711,1649,0.363,1658,0.823,1696,0.363,1723,1.066,1767,0.388,1768,0.388,1777,0.456,1806,0.88,1815,0.456,1817,5.064,1842,0.405,1906,0.405,1909,0.363,1957,0.503,1971,0.415,2021,7.259,2033,5.301,2036,1.813,2040,0.503,2046,1.717,2050,0.918,2053,2.553,2054,2.109,2055,0.97,2057,0.97,2062,0.918,2065,2.396,2068,2.529,2069,1.498,2070,2.553,2076,0.503,2081,1.23,2082,1.193,2083,1.587,2084,0.503,2087,7.117,2088,3.208,2091,5.195,2093,0.415,2095,0.849,2097,0.849,2101,0.456,2106,1.991,2107,0.415,2110,0.476,2140,3.069,2155,0.88,2160,0.476,2169,4.529,2172,0.918,2217,0.476,2227,0.97,2229,0.503,2231,0.476,2233,0.476,2273,4.99,2280,0.396,2310,0.823,2388,0.918,2400,2.553,2405,0.801,2431,3.037,2432,2.078,2434,1.43,2693,0.456,2717,0.503,2891,0.503,3079,0.381,3177,2.078,3350,1.23,3399,0.396,3402,0.456,3432,1.717,3450,0.44,3497,0.456,3667,0.662,3829,0.381,3844,0.503,3854,0.823,3858,0.415,3874,3.589,3876,4.736,4662,0.456,4771,0.476,5027,3.507,5066,1.813,5231,0.456,5933,3.681,5973,0.426,6119,0.918,6186,0.503,6912,0.44,7038,0.503,7459,0.97,7598,0.503,7894,3.507,7896,1.717,7958,0.503,8814,0.503,8843,0.503,8849,0.503,8863,1.406,8864,1.406,8865,0.97,8867,0.503,8870,0.503,8871,2.195,8873,2.195,8875,2.195,8878,2.89,8881,2.195,8883,2.553,8885,2.553,8887,0.97,8895,1.406,8897,1.406,8899,1.813,8904,0.97,8906,1.406,8909,2.553,8911,0.97,8913,1.406,8916,0.97,8919,0.543,8920,0.543,8921,0.543,8922,7.115,8923,0.543,8924,2.553,8925,0.543,8926,0.543,8927,0.543,8928,0.543,8929,0.543,8930,0.543,8931,0.543,8932,0.543,8933,1.813,8934,1.813,8935,0.543,8936,1.048,8937,1.048,8938,0.543,8939,0.543,8940,0.543,8941,0.543,8942,0.543,8943,0.543,8944,0.543,8945,0.543,8946,0.543,8947,1.048,8948,0.543,8949,0.543,8950,0.543,8951,1.048,8952,0.543,8953,0.543,8954,1.52,8955,0.543,8956,0.543,8957,0.543,8958,0.543,8959,0.543,8960,0.543,8961,0.543,8962,1.048,8963,1.048,8964,1.048,8965,0.543,8966,0.543,8967,2.373,8968,0.543,8969,1.048,8970,0.543,8971,0.543,8972,1.048,8973,0.543,8974,0.543,8975,2.373,8976,2.76,8977,2.373,8978,0.543,8979,0.543,8980,3.467,8981,1.048,8982,1.048,8983,1.048,8984,0.543,8985,0.543,8986,0.543,8987,0.543,8988,1.048,8989,0.543,8990,0.543,8991,0.543,8992,0.543,8993,0.543,8994,0.543,8995,0.543,8996,0.543,8997,0.543,8998,0.543,8999,1.048,9000,1.048,9001,0.543,9002,1.048,9003,0.543,9004,0.543,9005,0.543,9006,0.543,9007,0.543,9008,0.543,9009,0.543,9010,0.543,9011,1.048,9012,0.543,9013,0.543,9014,0.543,9015,1.048,9016,0.543,9017,0.543,9018,0.543,9019,0.543,9020,2.76,9021,1.048,9022,1.048,9023,0.543,9024,0.543,9025,1.048,9026,1.048,9027,0.543,9028,1.048,9029,0.543,9030,0.543,9031,0.543,9032,0.543,9033,1.96,9034,1.96,9035,0.543,9036,0.543,9037,0.543,9038,5.633,9039,0.543,9040,0.543,9041,0.543,9042,0.543,9043,0.543,9044,0.543,9045,0.543,9046,0.543,9047,0.543,9048,0.543,9049,0.543,9050,0.543,9051,0.543,9052,0.543,9053,0.543,9054,1.048,9055,0.543,9056,1.52,9057,1.048,9058,0.543,9059,0.543,9060,1.048,9061,0.543,9062,0.543,9063,0.543,9064,0.543,9065,0.543,9066,0.543,9067,0.543,9068,0.543,9069,0.543,9070,0.543,9071,0.543,9072,0.543,9073,0.543,9074,0.543,9075,0.543,9076,0.543,9077,0.543,9078,0.543,9079,1.048,9080,0.543,9081,0.543,9082,0.543,9083,2.373,9084,2.373,9085,0.543,9086,1.048,9087,0.543,9088,0.543,9089,0.543,9090,0.543,9091,0.543,9092,0.543,9093,0.543,9094,0.543,9095,0.543,9096,1.048,9097,0.543,9098,0.543,9099,0.543,9100,0.543,9101,0.543,9102,0.543,9103,0.543,9104,0.543,9105,0.543,9106,0.543,9107,0.543,9108,1.048,9109,0.543,9110,0.543,9111,1.048,9112,0.543,9113,0.543,9114,0.543,9115,1.048,9116,0.503,9117,0.543,9118,0.543,9119,0.543,9120,0.543,9121,0.543,9122,0.543,9123,0.543,9124,0.543,9125,0.543,9126,0.543,9127,0.543,9128,0.543,9129,0.543,9130,0.543,9131,0.543]],["component/57",[2,0.251,266,0.348]],["keyword/57",[]],["title/58-1",[0,28.028,206,41.385]],["name/58-1",[]],["text/58-1",[]],["component/58-1",[]],["keyword/58-1",[]],["title/58-2",[11,36.468,21,26.776,486,34.36]],["name/58-2",[]],["text/58-2",[]],["component/58-2",[]],["keyword/58-2",[]],["title/58-3",[24,30.232,244,36.731,324,35.015]],["name/58-3",[]],["text/58-3",[]],["component/58-3",[]],["keyword/58-3",[]],["title/58-4",[44,21.724,63,12.922,274,21.724,287,26.099,318,26.409,325,25.251,818,22.52,1711,26.735]],["name/58-4",[]],["text/58-4",[]],["component/58-4",[]],["keyword/58-4",[]],["title/58-5",[44,28.491,68,27.743,238,28.109,252,28.893,290,33.842]],["name/58-5",[]],["text/58-5",[]],["component/58-5",[]],["keyword/58-5",[]],["title/58-6",[43,31.093,44,28.491,358,27.924,2657,36.504]],["name/58-6",[]],["text/58-6",[]],["component/58-6",[]],["keyword/58-6",[]],["title/58-7",[43,19.292,274,25.811,295,26.558,1081,37.498,1086,29.695,2659,34.088]],["name/58-7",[]],["text/58-7",[]],["component/58-7",[]],["keyword/58-7",[]],["title/58-8",[43,14.017,44,18.754,52,16.735,60,15.549,84,17.101,256,20.23,825,19.018,993,26.649,1468,22.798,1624,26.649]],["name/58-8",[]],["text/58-8",[]],["component/58-8",[]],["keyword/58-8",[]],["title/58-9",[207,25.238,274,23.592,361,28.022,1071,35.117,1081,52.478,2666,35.117]],["name/58-9",[]],["text/58-9",[]],["component/58-9",[]],["keyword/58-9",[]],["title/58",[25,29.415,44,35.96,70,44.257]],["name/58",[9132,0.832]],["text/58",[0,1.35,2,4.18,21,0.853,37,2.776,39,4.131,41,1.196,43,3.787,44,6.469,49,2.515,52,1.022,55,5.195,59,1.447,60,2.627,61,2.339,63,3.316,64,1.027,68,4.933,75,1.225,79,1.705,82,1.161,84,3.275,94,1.489,106,1.409,115,1.304,127,2.493,161,5.215,206,1.145,207,1.225,238,3.125,241,1.428,243,3.26,252,4.774,256,4.252,263,1.392,264,1.304,274,5.989,302,4.151,310,4.288,316,1.206,318,2.424,324,3.497,337,4.411,358,3.863,361,2.368,366,3.508,393,1.088,416,1.345,427,1.137,459,1.828,493,4.219,508,1.318,551,2.519,599,1.595,642,1.489,801,3.346,818,2.745,825,2.022,857,2.725,859,1.595,873,1.705,896,2.633,930,5.829,957,1.392,991,1.447,993,2.833,1010,1.268,1068,3.668,1071,2.968,1075,1.268,1079,2.968,1081,7.117,1086,3.047,1090,4.821,1170,1.36,1218,1.512,1280,1.489,1343,1.595,1374,2.151,1406,1.392,1432,1.664,1468,1.392,1503,1.447,1601,2.677,1696,2.593,1711,4.419,1843,1.627,2006,1.872,2273,2.725,2278,1.954,2280,1.627,2296,1.954,2298,3.259,2592,3.402,3186,1.664,3233,7.66,3777,1.954,3889,3.259,4999,1.872,8010,1.954,9133,2.231,9134,2.231,9135,5.159,9136,2.231,9137,2.231,9138,3.594,9139,3.884,9140,3.884,9141,2.231,9142,2.231,9143,2.231,9144,8.255,9145,2.231,9146,2.231,9147,2.231,9148,2.231,9149,2.231,9150,6.172,9151,2.231,9152,2.231,9153,3.884,9154,3.884,9155,3.884,9156,2.231,9157,6.172,9158,2.231,9159,8.255,9160,3.884,9161,6.172,9162,2.231,9163,3.884,9164,5.159,9165,3.594,9166,2.231,9167,6.172,9168,2.231]],["component/58",[2,0.251,266,0.348]],["keyword/58",[]],["title/59-1",[0,28.028,206,41.385]],["name/59-1",[]],["text/59-1",[]],["component/59-1",[]],["keyword/59-1",[]],["title/59-2",[21,30.816,63,24.617]],["name/59-2",[]],["text/59-2",[]],["component/59-2",[]],["keyword/59-2",[]],["title/59-3",[47,24.836,244,24.097,245,27.716,278,25.238,358,23.121,1401,30.675,1743,37.206]],["name/59-3",[]],["text/59-3",[]],["component/59-3",[]],["keyword/59-3",[]],["title/59-4",[51,35.205,62,25.891,279,36.215,286,31.577]],["name/59-4",[]],["text/59-4",[]],["component/59-4",[]],["keyword/59-4",[]],["title/59-5",[127,28.301,244,36.731,280,44.257]],["name/59-5",[]],["text/59-5",[]],["component/59-5",[]],["keyword/59-5",[]],["title/59",[244,29.102,245,33.472,295,29.316,581,31.549,2392,32.141]],["name/59",[9169,0.832]],["text/59",[0,3.897,2,4.014,21,1.132,24,0.709,25,0.69,26,1.863,41,0.881,42,3.41,43,1.898,45,3.09,47,2.186,49,2.412,51,0.934,52,0.753,53,0.943,55,5.399,57,1.081,62,0.687,64,4.84,70,1.038,190,1.066,235,7.115,244,3.341,245,2.984,286,0.838,295,1.565,296,0.734,302,3.823,306,0.827,365,6.042,366,6.15,382,5.171,393,6.403,427,4.399,459,5.763,581,4.705,588,1.768,641,2.398,937,1.133,957,6.451,965,7.115,986,4.869,990,4.469,1015,6.9,1032,1.013,1041,2.891,1075,0.934,1120,0.918,1156,1.038,1157,2.555,1178,4.648,1218,3.355,1401,1.097,1425,1.226,1487,5.158,1510,2.595,1544,2.365,1743,4.006,1949,5.286,2290,6.518,2296,8.315,2387,1.097,2392,0.952,2684,1.199,4336,3.542,4727,5.895,5635,3.274,5907,4.578,8753,10.258,9170,1.643,9171,1.643,9172,1.643,9173,1.643,9174,4.044,9175,1.643,9176,1.643,9177,1.643,9178,8.277,9179,8.946,9180,7.884,9181,1.643,9182,1.643,9183,1.643,9184,7.884,9185,8.629,9186,8.629,9187,1.643,9188,1.643,9189,1.643,9190,6.372,9191,8.277,9192,6.372]],["component/59",[2,0.251,266,0.348]],["keyword/59",[]],["title/60-1",[0,28.028,323,40.04]],["name/60-1",[]],["text/60-1",[]],["component/60-1",[]],["keyword/60-1",[]],["title/60-2",[11,36.468,21,26.776,486,34.36]],["name/60-2",[]],["text/60-2",[]],["component/60-2",[]],["keyword/60-2",[]],["title/60-3",[24,30.232,244,36.731,324,35.015]],["name/60-3",[]],["text/60-3",[]],["component/60-3",[]],["keyword/60-3",[]],["title/60",[25,23.306,26,25.56,263,34.636,264,32.454,265,33.842]],["name/60",[9193,0.832]],["text/60",[0,3.838,2,3.519,11,3.204,25,3.665,26,4.671,43,3.892,46,3.84,47,4.717,49,5.381,52,2.819,55,4.318,60,3.715,62,2.573,121,3.991,127,3.526,145,3.159,184,6.256,189,3.888,210,5.482,245,3.711,263,7.273,264,6.815,265,7.89,288,3.227,289,3.672,302,3.751,324,3.076,358,3.096,382,3.352,390,3.635,393,4.255,427,5.172,459,5.196,818,5.874,838,3.38,957,3.84,1185,6.51,1277,4.242,1287,3.84,1368,6.454,1393,3.53,1544,5.931,5633,8.884,5933,9.261]],["component/60",[2,0.251,266,0.348]],["keyword/60",[]],["title/61-1",[0,28.028,323,40.04]],["name/61-1",[]],["text/61-1",[]],["component/61-1",[]],["keyword/61-1",[]],["title/61-2",[11,36.468,21,26.776,486,34.36]],["name/61-2",[]],["text/61-2",[]],["component/61-2",[]],["keyword/61-2",[]],["title/61-3",[24,30.232,244,36.731,324,35.015]],["name/61-3",[]],["text/61-3",[]],["component/61-3",[]],["keyword/61-3",[]],["title/61-4",[86,27.173,259,31.378,287,31.009,302,18.593,1131,29.117,3081,36.678]],["name/61-4",[]],["text/61-4",[]],["component/61-4",[]],["keyword/61-4",[]],["title/61-5",[290,37.764,1393,35.529,2590,33.211,2987,44.27]],["name/61-5",[]],["text/61-5",[]],["component/61-5",[]],["keyword/61-5",[]],["title/61-6",[1300,40.487,1439,37.628,2590,29.762,2657,36.504,3088,48.611]],["name/61-6",[]],["text/61-6",[]],["component/61-6",[]],["keyword/61-6",[]],["title/61",[86,43.568,259,50.31]],["name/61",[9194,0.832]],["text/61",[0,1.437,2,2.415,26,1.904,39,3.828,40,2.802,49,2.015,52,1.894,55,3.128,59,4.204,60,1.759,63,1.262,85,2.152,86,7.414,108,2.252,118,2.152,132,2.58,145,2.122,157,3.531,162,2.108,206,2.122,210,2.234,217,1.946,259,7.415,267,2.467,295,2.183,302,4.394,323,2.053,361,4.876,365,2.309,366,5.146,390,2.441,393,3.898,436,2.371,459,4.629,582,2.521,818,2.2,838,2.27,883,2.9,886,3.159,900,4.468,903,5.609,904,4.728,914,4.395,919,2.217,939,2.493,957,4.045,977,2.9,979,4.468,987,2.849,990,6.351,1014,3.245,1024,3.952,1068,4.193,1099,3.015,1131,6.725,1138,2.719,1259,2.802,1261,4.327,1287,2.58,1293,5.716,1300,4.728,1303,3.159,1371,2.955,1386,2.759,1393,5.194,1415,2.719,1416,5.868,1468,2.58,1503,2.681,1515,2.759,1544,2.417,1603,5.052,1707,3.159,1824,5.438,1843,3.015,1960,2.289,2590,6.372,3081,5.833,3088,3.62,3406,3.245,3828,3.245,4414,4.834,4503,4.547,5065,3.62,5399,3.347,5951,3.245,6003,3.824,7397,3.824,9195,4.134,9196,9.835,9197,9.054,9198,9.054,9199,7.997,9200,4.134,9201,6.482]],["component/61",[2,0.251,266,0.348]],["keyword/61",[]],["title/62-1",[0,28.028,323,40.04]],["name/62-1",[]],["text/62-1",[]],["component/62-1",[]],["keyword/62-1",[]],["title/62-2",[21,26.776,25,29.415,60,29.815]],["name/62-2",[]],["text/62-2",[]],["component/62-2",[]],["keyword/62-2",[]],["title/62-3",[60,21.4,61,22.793,63,15.353,278,27.613,302,18.593,3862,44.038]],["name/62-3",[]],["text/62-3",[]],["component/62-3",[]],["keyword/62-3",[]],["title/62-4",[60,19.56,61,20.833,63,14.033,279,26.872,302,16.994,1068,24.097,1610,31.675]],["name/62-4",[]],["text/62-4",[]],["component/62-4",[]],["keyword/62-4",[]],["title/62-5",[43,14.017,55,14.291,61,16.561,63,22.508,280,23.08,302,13.509,347,16.915,1079,27.915]],["name/62-5",[]],["text/62-5",[]],["component/62-5",[]],["keyword/62-5",[]],["title/62-6",[43,12.331,49,15.668,54,17.797,61,14.569,63,9.814,283,22.973,302,11.885,303,16.498,331,17.103,930,18.981,1135,21.452,4539,25.232]],["name/62-6",[]],["text/62-6",[]],["component/62-6",[]],["keyword/62-6",[]],["title/62-7",[55,14.291,61,16.561,63,11.155,127,14.759,284,27.245,302,13.509,391,19.296,825,19.018,968,24.768,2311,27.915]],["name/62-7",[]],["text/62-7",[]],["component/62-7",[]],["keyword/62-7",[]],["title/62-8",[61,19.184,63,12.922,274,21.724,302,15.649,1019,24.276,1170,25.803,1610,29.167,4057,37.064]],["name/62-8",[]],["text/62-8",[]],["component/62-8",[]],["keyword/62-8",[]],["title/62-9",[43,16.237,60,18.011,61,19.184,63,12.922,256,23.434,302,15.649,3863,37.064,4063,39.151]],["name/62-9",[]],["text/62-9",[]],["component/62-9",[]],["keyword/62-9",[]],["title/62-10",[60,19.56,61,20.833,63,14.033,302,16.994,1086,27.142,1211,29.034,4068,38.558]],["name/62-10",[]],["text/62-10",[]],["component/62-10",[]],["keyword/62-10",[]],["title/62-11",[60,14.554,63,10.442,302,12.645,358,17.204,457,18.062,921,23.569,2318,28.69,4074,31.636,9202,31.636,9203,34.197,9204,34.197]],["name/62-11",[]],["text/62-11",[]],["component/62-11",[]],["keyword/62-11",[]],["title/62-12",[60,21.4,61,22.793,63,15.353,157,27.389,302,18.593,4085,46.518]],["name/62-12",[]],["text/62-12",[]],["component/62-12",[]],["keyword/62-12",[]],["title/62-13",[60,19.56,61,20.833,63,14.033,302,16.994,358,23.121,441,32.237,4090,42.518]],["name/62-13",[]],["text/62-13",[]],["component/62-13",[]],["keyword/62-13",[]],["title/62-14",[60,19.56,61,20.833,63,14.033,302,16.994,1086,27.142,4097,42.518,7902,40.251]],["name/62-14",[]],["text/62-14",[]],["component/62-14",[]],["keyword/62-14",[]],["title/62-15",[60,19.56,61,20.833,63,14.033,302,16.994,1086,27.142,4103,42.518,9205,42.518]],["name/62-15",[]],["text/62-15",[]],["component/62-15",[]],["keyword/62-15",[]],["title/62-16",[60,19.56,61,20.833,63,14.033,302,16.994,1086,27.142,4111,42.518,9206,42.518]],["name/62-16",[]],["text/62-16",[]],["component/62-16",[]],["keyword/62-16",[]],["title/62-17",[60,19.56,61,20.833,63,14.033,302,16.994,477,34.273,1086,27.142,4119,42.518]],["name/62-17",[]],["text/62-17",[]],["component/62-17",[]],["keyword/62-17",[]],["title/62-18",[60,19.56,61,20.833,63,14.033,302,16.994,1086,27.142,4125,42.518,6726,38.558]],["name/62-18",[]],["text/62-18",[]],["component/62-18",[]],["keyword/62-18",[]],["title/62-19",[60,19.56,61,20.833,63,14.033,302,16.994,1086,27.142,4132,42.518,9207,42.518]],["name/62-19",[]],["text/62-19",[]],["component/62-19",[]],["keyword/62-19",[]],["title/62-20",[25,23.306,61,25.16,63,16.948,1416,33.118,4137,51.348]],["name/62-20",[]],["text/62-20",[]],["component/62-20",[]],["keyword/62-20",[]],["title/62-21",[60,21.4,61,22.793,68,25.133,302,18.593,3862,44.038,4141,46.518]],["name/62-21",[]],["text/62-21",[]],["component/62-21",[]],["keyword/62-21",[]],["title/62-22",[43,14.017,55,14.291,61,16.561,68,36.845,302,13.509,347,16.915,1079,27.915,4149,33.799]],["name/62-22",[]],["text/62-22",[]],["component/62-22",[]],["keyword/62-22",[]],["title/62-23",[55,14.291,61,16.561,68,18.261,127,14.759,302,13.509,391,19.296,825,19.018,968,24.768,2311,27.915,9208,36.534]],["name/62-23",[]],["text/62-23",[]],["component/62-23",[]],["keyword/62-23",[]],["title/62-24",[60,19.56,61,20.833,68,22.972,302,16.994,1086,27.142,1211,29.034,2258,42.518]],["name/62-24",[]],["text/62-24",[]],["component/62-24",[]],["keyword/62-24",[]],["title/62-25",[60,18.011,61,19.184,68,21.153,302,15.649,358,21.291,441,29.684,1086,24.993,9209,42.32]],["name/62-25",[]],["text/62-25",[]],["component/62-25",[]],["keyword/62-25",[]],["title/62-26",[60,18.011,61,19.184,68,21.153,302,15.649,1086,24.993,2318,35.505,9202,39.151,9210,42.32]],["name/62-26",[]],["text/62-26",[]],["component/62-26",[]],["keyword/62-26",[]],["title/62-27",[60,19.56,61,20.833,68,22.972,157,25.034,302,16.994,1086,27.142,9211,45.959]],["name/62-27",[]],["text/62-27",[]],["component/62-27",[]],["keyword/62-27",[]],["title/62-28",[25,23.306,61,25.16,68,27.743,1416,33.118,9212,55.504]],["name/62-28",[]],["text/62-28",[]],["component/62-28",[]],["keyword/62-28",[]],["title/62-29",[43,23.763,63,18.912,68,30.958,9213,61.936]],["name/62-29",[]],["text/62-29",[]],["component/62-29",[]],["keyword/62-29",[]],["title/62-30",[63,15.353,68,25.133,86,27.173,235,33.07,238,25.464,9214,50.283]],["name/62-30",[]],["text/62-30",[]],["component/62-30",[]],["keyword/62-30",[]],["title/62-31",[55,39.237,60,21.4,9215,50.283]],["name/62-31",[]],["text/62-31",[]],["component/62-31",[]],["keyword/62-31",[]],["title/62-32",[41,17.234,55,12.572,65,19.821,162,16.386,306,16.169,310,17.949,333,21.452,1603,20.304,2311,24.558,3023,25.232,9216,32.14,9217,32.14]],["name/62-32",[]],["text/62-32",[]],["component/62-32",[]],["keyword/62-32",[]],["title/62",[63,18.912,67,39.633,68,30.958,238,31.366]],["name/62",[9218,0.832]],["text/62",[0,3.489,2,0.609,25,0.454,26,1.638,32,1.029,39,6.784,44,0.555,55,5.512,60,0.859,61,1.285,63,3.673,64,0.929,68,5.525,70,0.683,71,0.745,72,0.645,74,0.541,82,1.05,84,0.944,106,0.683,115,4.993,127,1.696,149,0.733,157,4.973,185,0.675,198,0.701,201,0.632,208,0.609,234,0.659,238,0.548,252,1.05,256,1.117,286,2.694,302,4.271,303,0.555,306,0.544,308,0.96,310,6.415,335,1.347,336,6.667,358,4.401,393,0.983,416,1.217,427,0.551,441,6.137,459,0.509,477,2.652,493,6.927,588,3.684,780,3.583,825,0.563,838,0.594,888,0.722,957,4.878,991,7.27,1010,0.615,1054,4.424,1056,0.759,1057,5.973,1068,6.354,1075,0.615,1086,2.101,1211,6.634,1223,0.675,1251,3.941,1262,0.701,1415,1.327,1416,4.125,1453,0.733,1503,5.237,1556,1.442,1601,5.566,1977,1.693,2021,1.327,2263,1.693,2274,6.525,2318,8.194,2319,4.629,2590,3.084,3049,1.767,3079,1.415,3291,0.947,3841,0.826,3857,4.85,3863,1.767,4357,3.745,4539,0.849,6017,1,6018,1,6019,1,6143,0.875,6726,1.693,7618,7.232,7902,5.407,9205,5.32,9206,4.889,9207,1,9219,4.889,9220,10.037,9221,3.29,9222,1.081,9223,2.836,9224,2.836,9225,2.836,9226,2.836,9227,2.836,9228,1.081,9229,1.081,9230,1.081,9231,8.749,9232,7.817,9233,8.749,9234,5.285,9235,4.77,9236,4.197,9237,4.197,9238,1.081,9239,3.557,9240,2.017,9241,4.197,9242,1.081,9243,2.017,9244,2.836,9245,1.081,9246,1.081,9247,1.081,9248,1.081,9249,1.081,9250,1.081,9251,1.081,9252,1.081,9253,1.081,9254,1.081,9255,1.081]],["component/62",[2,0.251,266,0.348]],["keyword/62",[]],["title/63-1",[0,28.028,206,41.385]],["name/63-1",[]],["text/63-1",[]],["component/63-1",[]],["keyword/63-1",[]],["title/63-2",[21,26.776,63,21.39,486,34.36]],["name/63-2",[]],["text/63-2",[]],["component/63-2",[]],["keyword/63-2",[]],["title/63-3",[24,30.232,244,36.731,324,35.015]],["name/63-3",[]],["text/63-3",[]],["component/63-3",[]],["keyword/63-3",[]],["title/63",[25,33.852,26,37.127]],["name/63",[9256,0.832]],["text/63",[2,1.302,23,1.707,24,1.086,25,1.057,26,1.986,49,3.266,55,5.655,60,1.072,62,1.052,70,1.591,73,3.158,74,1.258,84,3.136,118,1.311,121,1.633,127,1.742,145,1.292,210,3.62,211,1.444,227,1.284,254,1.406,264,3.307,265,1.535,302,1.594,324,1.258,347,1.166,382,1.371,393,3.672,427,3.841,454,2.845,459,1.185,617,1.535,675,1.611,818,3.565,930,1.487,957,2.691,1003,1.735,1024,3.448,1282,1.766,1302,2.038,1333,2.038,1368,6.209,1393,1.444,1538,1.8,1544,2.521,1610,1.735,1960,1.394,1973,6.45,2033,3.145,2106,10.358,2188,2.329,2273,1.766,3881,2.112,6119,5.867,6192,2.112,6917,5.867,6918,6.198,6919,5.232,6931,2.205,6956,10.358,7215,10.599,8924,10.434,8933,9.569,8934,9.569,9257,10.032,9258,10.344,9259,4.312,9260,8.215,9261,2.518,9262,2.518,9263,2.518,9264,2.518,9265,2.518,9266,2.518,9267,2.518,9268,2.518,9269,2.518,9270,2.518,9271,2.518,9272,2.518,9273,6.198,9274,6.699,9275,6.699,9276,6.699,9277,6.699,9278,6.699,9279,5.656,9280,5.656,9281,5.656,9282,6.699,9283,6.699,9284,6.699,9285,6.699]],["component/63",[2,0.251,266,0.348]],["keyword/63",[]],["title/64-1",[0,28.028,206,41.385]],["name/64-1",[]],["text/64-1",[]],["component/64-1",[]],["keyword/64-1",[]],["title/64-2",[11,36.468,21,26.776,486,34.36]],["name/64-2",[]],["text/64-2",[]],["component/64-2",[]],["keyword/64-2",[]],["title/64-3",[24,30.232,244,36.731,324,35.015]],["name/64-3",[]],["text/64-3",[]],["component/64-3",[]],["keyword/64-3",[]],["title/64",[25,26.006,26,28.522,260,41.34,261,47.325]],["name/64",[9286,0.832]],["text/64",[0,1.494,2,1.298,8,6.436,26,1.979,43,1.649,44,3.43,52,1.969,55,5.22,60,1.829,63,3.238,68,2.148,69,4.66,84,3.128,115,2.513,127,1.736,157,2.341,207,2.36,234,2.62,246,2.787,247,3.798,260,5.472,261,7.066,274,3.43,310,6.181,325,3.987,347,1.99,351,2.787,362,5.86,382,2.341,405,2.826,434,2.787,493,6.675,589,2.914,603,2.787,625,3.764,653,2.287,808,2.787,827,3.015,981,2.914,991,7.421,1024,4.999,1035,3.764,1037,2.787,1057,3.284,1068,6,1170,5.638,1180,3.072,1193,3.072,1202,2.868,1300,3.135,1471,3.764,1503,7.623,1601,8.28,1632,5.246,1659,5.106,1697,3.374,1711,2.715,1723,3.015,2274,3.135,2309,6.637,2434,4.874,3303,3.374,3873,3.606,5842,3.764,6143,3.479,6145,5.852,6165,3.976,6180,3.976,9287,4.298,9288,10.604,9289,6.682,9290,6.682,9291,8.198,9292,6.682,9293,6.682,9294,10.016,9295,10.604,9296,6.682,9297,6.682,9298,4.298,9299,4.298,9300,6.682,9301,4.298,9302,4.298,9303,4.298,9304,4.298,9305,4.298,9306,4.298,9307,4.298]],["component/64",[2,0.251,266,0.348]],["keyword/64",[]],["title/65-1",[0,28.028,323,40.04]],["name/65-1",[]],["text/65-1",[]],["component/65-1",[]],["keyword/65-1",[]],["title/65-2",[21,30.816,486,39.543]],["name/65-2",[]],["text/65-2",[]],["component/65-2",[]],["keyword/65-2",[]],["title/65-3",[64,25.56,258,39.673,278,30.48,675,35.517,3290,48.611]],["name/65-3",[]],["text/65-3",[]],["component/65-3",[]],["keyword/65-3",[]],["title/65-4",[258,35.94,279,29.401,675,32.175,1003,34.655,1267,34.088,2065,29.401]],["name/65-4",[]],["text/65-4",[]],["component/65-4",[]],["keyword/65-4",[]],["title/65-5",[43,23.763,64,28.522,280,39.128,2272,47.325]],["name/65-5",[]],["text/65-5",[]],["component/65-5",[]],["keyword/65-5",[]],["title/65-6",[64,25.56,258,39.673,283,39.673,1469,42.41,6203,48.611]],["name/65-6",[]],["text/65-6",[]],["component/65-6",[]],["keyword/65-6",[]],["title/65",[43,30.933,258,57.626]],["name/65",[9308,0.832]],["text/65",[0,3.763,2,3.798,11,1.606,21,1.956,25,4.249,26,4.835,43,4.261,46,3.194,49,1.504,54,4.687,55,5.201,60,1.313,62,1.29,63,1.563,64,5.228,69,1.753,73,1.723,82,1.606,84,2.396,86,1.667,127,2.068,145,1.584,171,2.963,258,3.658,264,2.992,295,1.629,302,1.892,308,1.469,310,1.723,331,1.642,347,1.428,351,3.319,358,4.259,366,2.909,382,3.573,390,4.508,393,4.933,416,6.103,427,4.93,437,2.205,459,2.409,486,1.513,576,3.12,599,2.205,604,1.974,675,4.197,783,4.378,785,5.175,810,1.86,818,2.723,864,3.12,916,2.059,934,5.175,965,3.366,967,2.357,983,2.422,1003,3.527,1019,1.77,1045,2.25,1052,8.192,1075,1.753,1090,2.126,1093,2.029,1122,2.164,1147,1.881,1159,1.694,1287,1.925,1416,1.841,1461,2.059,1465,2.301,1469,3.911,1544,1.804,1743,2.497,1816,2.854,1827,4.482,1971,2.357,2033,2.25,2065,5.654,2081,2.497,2082,2.422,2083,2.497,2107,7.732,2272,5.011,2273,2.164,2391,2.588,2854,2.588,2861,2.422,3845,2.497,3846,2.588,4414,2.301,4541,2.497,5621,5.502,5635,5.31,5638,2.702,6199,2.854,6200,2.854,6201,4.294,6202,4.735,6203,4.482,6204,9.362,6255,7.061,7212,2.854,9116,2.854,9273,4.735,9309,3.085,9310,10.12,9311,6.559,9312,8.465,9313,3.085,9314,3.085,9315,3.085,9316,5.118,9317,3.085,9318,5.118,9319,3.085,9320,6.559,9321,3.085,9322,3.085,9323,3.085,9324,3.085,9325,3.085]],["component/65",[2,0.251,266,0.348]],["keyword/65",[]],["title/66-1",[0,28.028,206,41.385]],["name/66-1",[]],["text/66-1",[]],["component/66-1",[]],["keyword/66-1",[]],["title/66-2",[21,26.776,63,21.39,486,34.36]],["name/66-2",[]],["text/66-2",[]],["component/66-2",[]],["keyword/66-2",[]],["title/66-3",[43,23.763,63,18.912,256,34.296,278,34.012]],["name/66-3",[]],["text/66-3",[]],["component/66-3",[]],["keyword/66-3",[]],["title/66-4",[43,19.292,60,21.4,246,32.609,247,28.581,256,27.843,279,29.401]],["name/66-4",[]],["text/66-4",[]],["component/66-4",[]],["keyword/66-4",[]],["title/66-5",[43,19.292,44,25.811,63,15.353,256,27.843,280,31.766,1194,37.498]],["name/66-5",[]],["text/66-5",[]],["component/66-5",[]],["keyword/66-5",[]],["title/66-6",[24,30.232,171,27.189,324,35.015]],["name/66-6",[]],["text/66-6",[]],["component/66-6",[]],["keyword/66-6",[]],["title/66-7",[43,23.763,63,18.912,256,34.296,287,38.196]],["name/66-7",[]],["text/66-7",[]],["component/66-7",[]],["keyword/66-7",[]],["title/66-8",[43,19.292,60,21.4,246,32.609,247,28.581,256,27.843,290,30.658]],["name/66-8",[]],["text/66-8",[]],["component/66-8",[]],["keyword/66-8",[]],["title/66",[43,30.933,256,44.643]],["name/66",[9326,0.832]],["text/66",[0,2.514,2,3.889,11,1.049,21,2.505,24,0.869,25,2,26,2.194,31,0.948,32,1.027,39,3.392,43,3.849,44,3.713,47,1.919,49,3.807,52,1.627,53,1.155,54,1.115,55,5.587,60,3.078,61,2.16,63,3.544,64,0.928,67,2.273,68,1.007,69,2.019,74,1.007,75,1.106,81,1.089,82,3.411,84,3.385,85,1.849,90,1.823,91,2.448,112,1.289,115,1.178,118,1.049,122,1.672,126,1.502,127,1.925,143,1.388,145,2.949,147,2.408,162,1.027,171,0.782,190,1.306,201,1.178,211,1.155,217,0.948,239,2.371,243,1.064,246,1.306,247,1.145,256,6.708,265,2.905,274,2.949,302,2.888,308,1.691,310,3.66,316,1.089,324,1.775,337,2.539,347,3.616,358,3.639,366,3.725,382,1.935,393,0.982,427,2.429,459,0.948,466,1.325,493,3.952,508,2.098,610,1.344,613,3.283,623,1.502,783,1.344,801,3.09,825,4.551,887,1.289,888,1.344,901,1.115,916,1.344,945,2.539,957,2.216,965,2.336,981,1.366,991,2.303,1025,4.51,1054,2.273,1068,5.95,1075,1.145,1081,4.887,1090,2.448,1091,2.591,1095,1.836,1170,2.166,1177,1.502,1179,1.764,1192,1.306,1194,3.553,1244,1.581,1297,1.502,1334,2.273,1341,1.469,1374,1.115,1478,1.388,1503,1.306,1548,2.098,1565,1.306,1603,1.272,1636,1.502,1653,2.98,1675,1.325,1680,1.289,1711,1.272,1931,1.764,1952,1.539,1960,1.115,1964,1.764,1971,5.007,2013,1.764,2289,4.172,2396,1.539,2690,1.631,3208,1.539,3868,1.764,4414,2.649,4456,1.69,5038,2.788,5812,1.764,5841,1.581,5864,1.764,5866,1.764,5867,1.764,5894,1.764,5899,1.863,6261,3.111,6268,3.286,6269,3.286,6280,1.863,6283,1.863,6284,1.631,6285,1.863,6286,1.863,6287,1.863,6288,1.863,6289,1.863,6290,1.863,6291,1.863,6292,1.863,6293,1.863,6294,1.863,6295,1.863,6296,1.863,6297,1.863,9327,4.764,9328,3.552,9329,2.014,9330,2.014,9331,2.014,9332,2.014,9333,2.014,9334,2.014,9335,2.014,9336,2.014,9337,2.014,9338,2.014,9339,2.014,9340,2.014,9341,2.014,9342,2.014,9343,2.014,9344,2.014,9345,2.014,9346,4.764,9347,2.014,9348,3.552,9349,3.552,9350,2.014,9351,2.014,9352,1.863,9353,2.014,9354,2.014,9355,2.014,9356,2.014,9357,2.014,9358,2.014]],["component/66",[2,0.251,266,0.348]],["keyword/66",[]],["title/67-1",[0,28.028,206,41.385]],["name/67-1",[]],["text/67-1",[]],["component/67-1",[]],["keyword/67-1",[]],["title/67-2",[21,26.776,63,21.39,838,38.471]],["name/67-2",[]],["text/67-2",[]],["component/67-2",[]],["keyword/67-2",[]],["title/67-3",[42,34.655,43,19.292,63,15.353,278,27.613,436,28.844,838,27.613]],["name/67-3",[]],["text/67-3",[]],["component/67-3",[]],["keyword/67-3",[]],["title/67-4",[63,11.974,75,21.535,255,28.605,279,22.929,296,17.507,459,18.459,825,20.414,838,21.535,920,26.174]],["name/67-4",[]],["text/67-4",[]],["component/67-4",[]],["keyword/67-4",[]],["title/67-5",[55,12.572,63,9.814,64,14.801,255,23.444,280,20.304,331,17.103,365,17.949,459,24.921,838,17.65,1095,16.613,1416,19.177]],["name/67-5",[]],["text/67-5",[]],["component/67-5",[]],["keyword/67-5",[]],["title/67",[255,69.255]],["name/67",[9359,0.832]],["text/67",[0,1.896,2,3.356,11,1.735,21,1.274,24,1.438,25,2.29,26,2.512,41,1.787,43,1.279,46,2.08,47,1.801,49,2.659,55,5.63,62,2.28,63,2.443,64,3.188,82,2.839,84,3.241,86,1.801,94,2.225,121,2.161,127,2.797,137,2.259,145,2.8,157,3.771,180,1.93,182,2.338,184,4.27,196,1.815,207,2.995,210,1.801,211,3.129,217,2.567,253,5.05,254,5.586,255,9.077,292,2.297,296,2.435,302,3.995,308,1.587,331,2.903,344,5.055,358,4.025,390,1.968,427,3.53,429,2.225,432,4.221,441,4.856,459,5.914,486,3.396,565,2.616,581,1.894,810,2.01,811,1.989,818,1.774,838,4.394,846,1.787,864,2.032,869,3.326,919,1.787,939,2.01,957,4.321,997,4.576,1046,2.192,1068,1.747,1116,2.382,1156,2.105,1159,1.83,1213,5.163,1216,2.919,1259,3.698,1261,2.225,1393,3.129,1409,2.225,1416,4.774,1565,2.161,1696,4.621,1976,6.064,1977,5.809,1999,2.616,3155,5.435,3211,5.435,3436,2.919,6298,2.919,8102,6.064,9360,6.924,9361,3.333,9362,3.333,9363,3.333,9364,3.333,9365,3.333,9366,3.333,9367,5.454,9368,3.333]],["component/67",[2,0.251,266,0.348]],["keyword/67",[]],["title/68-1",[0,28.028,323,40.04]],["name/68-1",[]],["text/68-1",[]],["component/68-1",[]],["keyword/68-1",[]],["title/68-2",[21,26.776,171,27.189,1374,38.792]],["name/68-2",[]],["text/68-2",[]],["component/68-2",[]],["keyword/68-2",[]],["title/68-3",[24,15.766,49,17.81,63,11.155,262,27.915,267,21.799,302,13.509,358,18.38,459,17.197,582,22.276,846,19.59]],["name/68-3",[]],["text/68-3",[]],["component/68-3",[]],["keyword/68-3",[]],["title/68-4",[52,19.385,75,23.24,90,21.724,267,25.251,454,21.291,582,25.803,1161,31.56,1393,24.276]],["name/68-4",[]],["text/68-4",[]],["component/68-4",[]],["keyword/68-4",[]],["title/68",[63,24.617,262,61.602]],["name/68",[9369,0.832]],["text/68",[0,2.969,2,2.579,49,5.306,55,4.258,62,3.57,63,2.607,121,5.538,159,5.7,262,9.642,265,5.207,267,5.095,302,3.158,358,4.296,393,4.163,427,4.354,459,4.02,581,4.854,582,5.207,785,5.789,810,5.15,818,4.544,846,5.837,930,5.043,1068,4.477,1145,5.329,1538,6.104,2014,7.9,2018,7.9,2019,7.9,2021,5.616,3350,6.913,3391,6.525,9165,7.9,9370,8.539,9371,8.539,9372,8.539,9373,7.9]],["component/68",[2,0.251,266,0.348]],["keyword/68",[]],["title/69-1",[0,28.028,323,40.04]],["name/69-1",[]],["text/69-1",[]],["component/69-1",[]],["keyword/69-1",[]],["title/69-2",[21,26.776,63,21.39,486,34.36]],["name/69-2",[]],["text/69-2",[]],["component/69-2",[]],["keyword/69-2",[]],["title/69-3",[84,18.356,257,29.963,274,20.13,278,21.535,295,20.712,457,32.843,1170,23.91,3217,29.963]],["name/69-3",[]],["text/69-3",[]],["component/69-3",[]],["keyword/69-3",[]],["title/69-4",[84,19.81,274,33.891,279,24.745,559,27.445,1170,25.803,1218,28.69,2858,30.87]],["name/69-4",[]],["text/69-4",[]],["component/69-4",[]],["keyword/69-4",[]],["title/69-5",[43,11.632,55,11.859,63,15.403,68,15.153,84,23.613,127,12.247,238,15.353,280,19.153,1068,15.896,6349,28.047,6350,28.047]],["name/69-5",[]],["text/69-5",[]],["component/69-5",[]],["keyword/69-5",[]],["title/69-6",[226,40.167,283,44.27,818,32.959,825,32.242]],["name/69-6",[]],["text/69-6",[]],["component/69-6",[]],["keyword/69-6",[]],["title/69-7",[226,40.167,284,46.189,653,32.959,825,32.242]],["name/69-7",[]],["text/69-7",[]],["component/69-7",[]],["keyword/69-7",[]],["title/69",[6351,87.834]],["name/69",[9374,0.832]],["text/69",[0,3.687,2,1.38,21,1.03,24,1.972,25,1.919,26,2.105,39,2.699,43,1.034,44,2.346,49,3.824,52,2.725,55,5.421,59,1.748,60,1.147,63,3.319,64,1.241,68,1.347,71,1.858,82,2.379,84,4.823,90,2.346,115,1.576,145,2.346,171,2.72,217,1.269,254,2.552,257,5.354,265,4.272,274,2.346,289,1.608,295,1.424,302,3.358,308,2.176,309,1.682,310,5.072,316,3.215,325,1.608,347,4.61,358,1.356,366,1.532,393,4.657,405,3.006,427,5.076,438,1.546,454,1.356,457,1.424,459,4.275,493,5.139,648,1.592,653,1.435,818,4.174,900,1.858,904,1.966,914,3.099,957,4.373,965,1.773,981,1.828,1056,1.891,1068,2.396,1095,2.363,1138,3.913,1151,1.927,1159,1.48,1170,5.538,1174,3.408,1235,2.01,1368,4.097,1403,1.828,1416,3.55,1468,2.852,1503,4.544,1515,1.799,1563,2.964,1601,5.873,1659,2.06,1750,2.06,1874,4.817,1875,5.504,1944,4.228,1960,1.493,1971,3.492,1999,2.116,2013,7.463,2021,3.006,2198,3.835,2326,2.262,2396,2.06,2590,2.451,2711,6.899,2727,2.182,2983,2.01,3434,7.954,4003,4.228,4790,2.494,5526,5.504,5933,2.262,6261,2.361,6355,7.884,6382,2.494,7735,2.494,9352,2.494,9373,2.494,9375,5.95,9376,2.696,9377,2.696,9378,2.696,9379,8.522,9380,2.696,9381,2.696,9382,2.696,9383,2.696,9384,7.844,9385,4.571,9386,2.696,9387,2.696,9388,2.696,9389,2.696,9390,5.95,9391,5.95,9392,2.696,9393,5.95,9394,5.95,9395,5.95,9396,5.95,9397,2.696,9398,2.696,9399,2.696,9400,4.571,9401,2.494,9402,7.007,9403,5.95,9404,4.571,9405,4.571,9406,2.696,9407,2.696,9408,2.696,9409,2.696,9410,2.696,9411,4.571,9412,2.696,9413,2.696]],["component/69",[2,0.251,266,0.348]],["keyword/69",[]],["title/70-1",[0,28.028,206,41.385]],["name/70-1",[]],["text/70-1",[]],["component/70-1",[]],["keyword/70-1",[]],["title/70-2",[21,26.776,63,21.39,486,34.36]],["name/70-2",[]],["text/70-2",[]],["component/70-2",[]],["keyword/70-2",[]],["title/70-3",[24,30.232,244,36.731,324,35.015]],["name/70-3",[]],["text/70-3",[]],["component/70-3",[]],["keyword/70-3",[]],["title/70-4",[253,40.487,254,30.997,287,34.229,302,20.524,459,26.126]],["name/70-4",[]],["text/70-4",[]],["component/70-4",[]],["keyword/70-4",[]],["title/70-5",[49,27.057,253,40.487,254,30.997,290,33.842,818,29.536]],["name/70-5",[]],["text/70-5",[]],["component/70-5",[]],["keyword/70-5",[]],["title/70-6",[253,40.487,254,30.997,361,33.842,1277,38.254,2657,36.504]],["name/70-6",[]],["text/70-6",[]],["component/70-6",[]],["keyword/70-6",[]],["title/70-7",[26,16.824,47,19.743,60,15.549,253,26.649,254,20.403,344,23.08,391,19.296,837,24.385,1649,24.385,2659,24.768]],["name/70-7",[]],["text/70-7",[]],["component/70-7",[]],["keyword/70-7",[]],["title/70-8",[454,40.56,808,52.285]],["name/70-8",[]],["text/70-8",[]],["component/70-8",[]],["keyword/70-8",[]],["title/70",[253,58.809,254,45.024]],["name/70",[9414,0.832]],["text/70",[0,3.317,1,2.654,2,2.881,11,1.76,19,5.199,21,1.292,24,2.381,26,2.541,46,2.11,47,1.827,49,3.934,52,1.549,54,3.056,55,5.531,60,2.349,62,1.413,63,1.032,65,2.085,70,2.136,75,1.857,81,1.827,82,1.76,84,1.583,90,2.833,108,3.809,127,3.26,132,3.444,157,3.809,184,2.085,207,3.03,210,1.827,211,1.939,213,3.137,217,2.598,226,3.579,227,2.813,236,1.905,253,9.192,254,7.403,302,2.041,344,3.486,347,1.565,358,1.701,361,2.061,365,1.888,366,3.137,382,1.842,390,1.997,391,1.786,393,3.934,427,2.813,429,2.256,430,2.223,432,2.061,438,4.011,441,2.371,457,1.786,459,5.111,486,1.658,588,5.306,603,2.192,610,2.256,818,5.585,825,3.64,837,2.256,841,2.521,843,2.836,846,1.813,873,2.583,884,2.466,957,4.363,965,2.223,1010,1.922,1017,1.922,1032,4.312,1038,5.214,1054,5.164,1062,2.371,1083,2.521,1120,3.082,1159,1.857,1162,2.223,1213,2.521,1218,3.741,1277,2.33,1321,3.803,1340,2.223,1441,2.085,1515,2.256,1649,2.256,1696,3.683,1731,9.31,1976,2.961,1977,5.866,2392,1.958,2638,1.76,3155,2.654,3211,5.489,3216,2.737,3251,2.836,3686,3.128,4766,3.128,6801,3.128,7617,3.128,7619,5.105,8102,2.961,9415,3.381,9416,3.381,9417,3.381]],["component/70",[2,0.251,266,0.348]],["keyword/70",[]],["title/71-1",[0,28.028,206,41.385]],["name/71-1",[]],["text/71-1",[]],["component/71-1",[]],["keyword/71-1",[]],["title/71-2",[21,26.776,63,21.39,486,34.36]],["name/71-2",[]],["text/71-2",[]],["component/71-2",[]],["keyword/71-2",[]],["title/71-3",[252,32.242,278,34.012,302,22.902,1010,35.205]],["name/71-3",[]],["text/71-3",[]],["component/71-3",[]],["keyword/71-3",[]],["title/71-4",[252,32.242,279,36.215,302,22.902,801,40.167]],["name/71-4",[]],["text/71-4",[]],["component/71-4",[]],["keyword/71-4",[]],["title/71-5",[252,36.468,280,44.257,1416,41.8]],["name/71-5",[]],["text/71-5",[]],["component/71-5",[]],["keyword/71-5",[]],["title/71-6",[252,42.186,283,39.673,801,35.995,1015,37.047]],["name/71-6",[]],["text/71-6",[]],["component/71-6",[]],["keyword/71-6",[]],["title/71-7",[252,36.468,284,52.243,1286,52.243]],["name/71-7",[]],["text/71-7",[]],["component/71-7",[]],["keyword/71-7",[]],["title/71-8",[127,17.096,177,23.24,252,34.369,391,22.352,801,27.445,4057,37.064,9418,37.064]],["name/71-8",[]],["text/71-8",[]],["component/71-8",[]],["keyword/71-8",[]],["title/71-9",[24,30.232,244,36.731,324,35.015]],["name/71-9",[]],["text/71-9",[]],["component/71-9",[]],["keyword/71-9",[]],["title/71-10",[252,32.242,287,38.196,302,22.902,1010,35.205]],["name/71-10",[]],["text/71-10",[]],["component/71-10",[]],["keyword/71-10",[]],["title/71-11",[252,32.242,290,37.764,302,22.902,801,40.167]],["name/71-11",[]],["text/71-11",[]],["component/71-11",[]],["keyword/71-11",[]],["title/71-12",[252,36.468,1416,41.8,2657,46.073]],["name/71-12",[]],["text/71-12",[]],["component/71-12",[]],["keyword/71-12",[]],["title/71-13",[252,42.186,801,35.995,1015,37.047,2659,37.628]],["name/71-13",[]],["text/71-13",[]],["component/71-13",[]],["keyword/71-13",[]],["title/71-14",[252,36.468,1286,52.243,1624,51.1]],["name/71-14",[]],["text/71-14",[]],["component/71-14",[]],["keyword/71-14",[]],["title/71-15",[127,17.096,177,23.24,252,34.369,391,22.352,801,27.445,2666,32.336,9418,37.064]],["name/71-15",[]],["text/71-15",[]],["component/71-15",[]],["keyword/71-15",[]],["title/71",[252,49.424]],["name/71",[252,0.433]],["text/71",[0,1.137,2,3.953,11,0.956,21,1.691,25,1.858,26,1.507,32,0.936,39,4.673,41,0.984,55,5.622,60,0.781,62,1.85,63,2.774,68,4.54,72,1.952,74,1.635,81,0.992,82,0.956,85,2.304,86,0.992,90,0.942,115,3.604,127,2.761,136,2.094,145,2.272,177,1.797,190,2.87,196,1,206,3.509,217,1.54,235,2.91,238,2.241,239,1.225,243,0.97,252,6.991,274,0.942,296,0.82,302,3.669,309,1.146,310,4.88,331,2.355,347,2.487,358,1.646,364,1.146,365,1.025,391,1.728,427,2.256,435,1.16,438,3.536,439,4.105,441,1.288,445,4.807,454,0.924,464,1.288,486,0.9,493,4.47,551,1.191,585,1.245,648,3.173,801,6.959,825,4.347,863,1.265,871,1.312,898,1.207,919,2.373,920,1.225,939,1.107,968,1.245,991,7.34,992,2.094,1010,4.967,1015,4.947,1017,1.044,1068,4.379,1095,0.949,1121,2.5,1159,1.797,1169,2.5,1170,1.995,1184,1.369,1223,1.146,1282,1.288,1286,4.006,1321,1.265,1344,1.265,1368,1.913,1403,5.025,1405,1.225,1416,4.078,1434,1.369,1603,1.16,1960,1.017,2196,2.745,2389,1.403,2396,1.403,2592,7.314,2727,4.99,2861,1.441,3113,1.441,3115,1.441,3402,2.745,3646,2.44,3871,1.698,4315,1.608,9138,5.702,9219,4.094,9221,1.698,9401,3.027,9418,6.93,9419,1.836,9420,1.836,9421,1.836,9422,4.425,9423,6.164,9424,4.425,9425,3.272,9426,3.272,9427,1.836,9428,3.272,9429,1.836,9430,1.836,9431,1.836,9432,3.272,9433,3.272,9434,1.836,9435,1.836,9436,1.836]],["component/71",[2,0.251,266,0.348]],["keyword/71",[]],["title/72-1",[0,28.028,206,41.385]],["name/72-1",[]],["text/72-1",[]],["component/72-1",[]],["keyword/72-1",[]],["title/72-2",[21,30.816,63,24.617]],["name/72-2",[]],["text/72-2",[]],["component/72-2",[]],["keyword/72-2",[]],["title/72-3",[24,30.232,324,35.015,432,42.713]],["name/72-3",[]],["text/72-3",[]],["component/72-3",[]],["keyword/72-3",[]],["title/72",[25,21.113,26,23.156,47,27.173,75,27.613,248,30.323,249,34.088]],["name/72",[9437,0.832]],["text/72",[26,3.645,41,5.558,43,3.037,52,4.748,54,4.383,55,4.054,57,5.206,63,3.165,90,4.064,175,5.553,181,5.456,196,5.646,243,4.181,248,7.395,249,7.027,270,4.151,303,5.321,318,6.468,329,7.409,336,5.134,344,6.548,357,5.516,510,6.918,887,5.065,1032,4.882,1135,5.284,1236,6.049,1566,7.92,1697,6.215,1901,5.206,1906,5.903,2387,5.284,3060,6.933,6482,7.323,9438,7.916,9439,7.916,9440,10.365,9441,7.916,9442,7.916]],["component/72",[2,0.251,266,0.348]],["keyword/72",[]],["title/73-1",[0,28.028,206,41.385]],["name/73-1",[]],["text/73-1",[]],["component/73-1",[]],["keyword/73-1",[]],["title/73-2",[21,26.776,63,21.39,486,34.36]],["name/73-2",[]],["text/73-2",[]],["component/73-2",[]],["keyword/73-2",[]],["title/73-3",[24,30.232,244,36.731,324,35.015]],["name/73-3",[]],["text/73-3",[]],["component/73-3",[]],["keyword/73-3",[]],["title/73",[25,29.415,26,32.261,251,44.827]],["name/73",[251,0.533]],["text/73",[0,3.84,2,3.842,25,3.034,26,3.328,49,3.523,62,4.078,63,2.207,70,4.565,86,5.272,127,4.462,157,3.936,206,3.71,251,8.813,270,3.789,275,4.565,302,3.607,393,4.756,416,5.883,427,4.974,459,4.592,809,4.51,887,4.624,991,4.687,1015,6.512,1032,6.016,1106,8.941,1351,5.271,1416,5.821,1559,4.753,1960,4.002,2021,6.416,2027,9.266,2028,6.685,2392,4.185,9443,7.227,9444,7.227,9445,9.756]],["component/73",[2,0.251,266,0.348]],["keyword/73",[]],["title/74-1",[0,28.028,206,41.385]],["name/74-1",[]],["text/74-1",[]],["component/74-1",[]],["keyword/74-1",[]],["title/74-2",[21,26.776,74,35.015,93,46.758]],["name/74-2",[]],["text/74-2",[]],["component/74-2",[]],["keyword/74-2",[]],["title/74-3",[24,30.232,25,29.415,63,21.39]],["name/74-3",[]],["text/74-3",[]],["component/74-3",[]],["keyword/74-3",[]],["title/74-4",[63,18.912,250,50.141,322,48.624,454,31.16]],["name/74-4",[]],["text/74-4",[]],["component/74-4",[]],["keyword/74-4",[]],["title/74-5",[52,28.371,459,29.154,460,43.444,508,36.578]],["name/74-5",[]],["text/74-5",[]],["component/74-5",[]],["keyword/74-5",[]],["title/74-6",[465,58.809,9446,74.585]],["name/74-6",[]],["text/74-6",[]],["component/74-6",[]],["keyword/74-6",[]],["title/74-7",[2669,63.293,9447,74.585]],["name/74-7",[]],["text/74-7",[]],["component/74-7",[]],["keyword/74-7",[]],["title/74-8",[2670,65.268,9448,74.585]],["name/74-8",[]],["text/74-8",[]],["component/74-8",[]],["keyword/74-8",[]],["title/74-9",[2671,65.268,9449,74.585]],["name/74-9",[]],["text/74-9",[]],["component/74-9",[]],["keyword/74-9",[]],["title/74-10",[2672,67.639,9450,74.585]],["name/74-10",[]],["text/74-10",[]],["component/74-10",[]],["keyword/74-10",[]],["title/74-11",[7064,74.585,9451,74.585]],["name/74-11",[]],["text/74-11",[]],["component/74-11",[]],["keyword/74-11",[]],["title/74-12",[9452,80.622,9453,74.585]],["name/74-12",[]],["text/74-12",[]],["component/74-12",[]],["keyword/74-12",[]],["title/74-13",[9454,80.622,9455,74.585]],["name/74-13",[]],["text/74-13",[]],["component/74-13",[]],["keyword/74-13",[]],["title/74-14",[9456,80.622,9457,74.585]],["name/74-14",[]],["text/74-14",[]],["component/74-14",[]],["keyword/74-14",[]],["title/74-15",[9458,80.622,9459,74.585]],["name/74-15",[]],["text/74-15",[]],["component/74-15",[]],["keyword/74-15",[]],["title/74-16",[9460,80.622,9461,74.585]],["name/74-16",[]],["text/74-16",[]],["component/74-16",[]],["keyword/74-16",[]],["title/74-17",[9462,80.622,9463,74.585]],["name/74-17",[]],["text/74-17",[]],["component/74-17",[]],["keyword/74-17",[]],["title/74",[250,76.862]],["name/74",[9464,0.832]],["text/74",[0,3.969,1,1.488,2,3.683,21,2.406,24,0.818,25,3.169,26,3.21,32,2.803,37,1.355,43,2.109,44,0.973,45,1.448,48,1.143,49,3.398,52,3.686,54,4.698,55,4.673,61,0.859,62,0.792,63,3.747,64,1.55,65,2.075,69,2.58,70,1.197,72,1.131,74,2.269,75,1.041,78,1.753,84,2.125,88,1.143,94,2.246,97,1.108,106,2.126,108,1.833,118,1.752,121,1.229,122,1.584,123,1.246,127,4.309,130,1.265,132,2.1,139,1.382,142,1.306,143,1.306,144,1.329,145,2.822,147,1.285,151,1.229,162,2.803,165,1.355,180,1.097,183,1.382,186,1.131,189,2.868,196,1.032,206,2.33,207,1.041,211,1.087,213,1.077,217,2.137,225,1.285,236,1.068,238,0.96,241,1.213,243,2.904,250,9.596,264,1.108,268,5.512,288,1.765,298,3.579,302,2.577,309,3.929,316,1.024,322,1.488,323,0.941,324,2.269,330,1.213,332,1.306,335,1.265,347,1.558,355,1.74,360,1.119,365,1.879,371,4.912,382,3.429,393,5.108,416,1.143,420,1.285,427,5.236,430,1.246,449,1.213,454,0.953,459,3.281,576,1.156,579,1.931,603,1.229,610,2.246,642,1.265,648,1.119,653,1.008,818,5.676,825,0.987,837,1.265,864,1.156,896,1.285,901,1.049,919,1.805,930,1.119,957,2.833,998,1.488,999,1.183,1005,1.329,1010,1.077,1017,1.077,1019,1.931,1024,1.156,1037,1.229,1043,1.59,1054,4.029,1056,1.329,1062,2.361,1063,1.329,1068,1.765,1069,1.534,1075,1.077,1111,5.925,1129,1.329,1151,1.355,1202,1.265,1250,1.534,1254,1.382,1262,2.182,1282,1.329,1329,1.229,1368,1.108,1400,1.413,1406,1.183,1409,2.246,1468,1.183,1478,1.306,1483,1.306,1494,1.246,1513,1.197,1544,1.108,1565,1.229,1596,1.448,1610,2.319,1708,1.382,1713,2.51,1772,1.329,1859,1.66,1933,1.382,1960,1.049,1973,1.488,2006,2.823,2021,6.261,2065,2.654,2602,1.66,2681,1.306,2977,1.285,3031,1.66,3048,1.534,3063,2.213,3486,2.724,3841,1.448,5057,1.488,5613,1.534,5658,3.113,6831,1.753,7017,1.66,7125,1.66,7190,3.113,8189,1.753,9446,1.753,9447,4.199,9448,4.199,9449,3.113,9450,3.113,9451,5.086,9453,3.113,9455,3.113,9457,3.113,9459,3.113,9461,3.113,9463,4.199,9465,7.548,9466,1.895,9467,1.895,9468,3.365,9469,1.895,9470,3.365,9471,1.895,9472,1.895,9473,1.895,9474,4.539,9475,1.895,9476,1.895,9477,1.895,9478,4.539,9479,3.365,9480,3.365,9481,1.895,9482,1.895,9483,1.895,9484,1.895,9485,1.895,9486,1.895,9487,1.895,9488,1.895,9489,1.895,9490,1.895,9491,3.365,9492,1.895,9493,3.365,9494,1.895,9495,3.365,9496,3.365,9497,1.895,9498,1.895,9499,1.895,9500,1.895,9501,4.539,9502,1.895,9503,1.895,9504,4.539,9505,4.539,9506,1.895,9507,1.895,9508,1.895,9509,1.895,9510,3.365]],["component/74",[2,0.251,266,0.348]],["keyword/74",[]]],"invertedIndex":[["",{"_index":55,"title":{"30":{},"31":{},"3-20":{},"3-27":{},"3-34":{},"3-41":{},"3-48":{},"3-55":{},"3-63":{},"3-70":{},"3-77":{},"3-84":{},"3-89":{},"3-95":{},"8-6":{},"29-5":{},"33-7":{},"33-57":{},"33-76":{},"33-94":{},"33-95":{},"49-5":{},"62-5":{},"62-7":{},"62-22":{},"62-23":{},"62-31":{},"62-32":{},"67-5":{},"69-5":{}},"name":{},"text":{"1":{},"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"12":{},"14":{},"15":{},"16":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"74":{}},"component":{},"keyword":{}}],["0",{"_index":382,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"9":{},"15":{},"16":{},"18":{},"20":{},"22":{},"25":{},"26":{},"32":{},"33":{},"34":{},"39":{},"40":{},"46":{},"51":{},"52":{},"53":{},"55":{},"57":{},"59":{},"60":{},"63":{},"64":{},"65":{},"66":{},"70":{},"74":{}},"component":{},"keyword":{}}],["0\"synonymi",{"_index":9170,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["0*#*#*#*#abcd",{"_index":9014,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["0,0,0",{"_index":7706,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["0,0,0,100,0,0,0",{"_index":7673,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["0,1,2,3,4,5,6,0",{"_index":2078,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["0..9",{"_index":4796,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["0.0",{"_index":2882,"title":{},"name":{},"text":{"6":{},"52":{}},"component":{},"keyword":{}}],["0.0.0.0/0",{"_index":319,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["0.0.0.0:5434",{"_index":6405,"title":{},"name":{},"text":{"30":{},"53":{}},"component":{},"keyword":{}}],["0.00000",{"_index":5265,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["0.00002",{"_index":5264,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["0.00007",{"_index":5287,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["0.000113",{"_index":3707,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0.000114",{"_index":3711,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0.000133",{"_index":3703,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0.00015",{"_index":5263,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["0.001333",{"_index":3729,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0.001367",{"_index":3725,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0.0014",{"_index":3722,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0.001433",{"_index":3718,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0.001633",{"_index":3714,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0.001967",{"_index":3710,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0.002",{"_index":3706,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0.002167",{"_index":3702,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0.0027",{"_index":3733,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0.003067",{"_index":3698,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0.003467",{"_index":3694,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0.00981",{"_index":5325,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["0.01",{"_index":3378,"title":{},"name":{},"text":{"7":{},"9":{}},"component":{},"keyword":{}}],["0.01357",{"_index":5285,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["0.021",{"_index":7431,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["0.021m",{"_index":7435,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["0.034",{"_index":3542,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0.040",{"_index":3536,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0.05",{"_index":4694,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["0.07810",{"_index":5283,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["0.079",{"_index":3564,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0.083",{"_index":3525,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0.088",{"_index":3555,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0.096",{"_index":3598,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0.1",{"_index":6492,"title":{},"name":{},"text":{"31":{},"52":{}},"component":{},"keyword":{}}],["0.1.1",{"_index":7333,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["0.144",{"_index":3543,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0.17.0",{"_index":5685,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["0.181",{"_index":3494,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0.194",{"_index":3519,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0.220",{"_index":3504,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0.284859",{"_index":3634,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0.31",{"_index":7323,"title":{},"name":{},"text":{"38":{},"42":{}},"component":{},"keyword":{}}],["0.336",{"_index":3599,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0.35",{"_index":3732,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0.363388",{"_index":3627,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0.423",{"_index":3556,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0.423130",{"_index":3664,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0.430",{"_index":7432,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["0.5",{"_index":1787,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["0.5,2))'::polygon",{"_index":3535,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0.5,2.0",{"_index":3530,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0.501",{"_index":3496,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0.8.1",{"_index":7320,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["0.95",{"_index":7813,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["0.967741935483871",{"_index":8938,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["0.the",{"_index":4908,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["0.when",{"_index":4528,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["0/0",{"_index":2868,"title":{},"name":{},"text":{"6":{},"33":{}},"component":{},"keyword":{}}],["0/1",{"_index":6515,"title":{},"name":{},"text":{"32":{},"33":{}},"component":{},"keyword":{}}],["0/7000060",{"_index":386,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["0/7000148",{"_index":424,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["0/82112",{"_index":2884,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["00",{"_index":2233,"title":{},"name":{},"text":{"3":{},"33":{},"57":{}},"component":{},"keyword":{}}],["000",{"_index":7613,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["0000000",{"_index":3327,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["000000000",{"_index":2227,"title":{},"name":{},"text":{"3":{},"57":{}},"component":{},"keyword":{}}],["000000001",{"_index":2229,"title":{},"name":{},"text":{"3":{},"57":{}},"component":{},"keyword":{}}],["000000004",{"_index":9098,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["00000001000000320000004a",{"_index":5183,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["00000001000000320000004b",{"_index":5184,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["00000003",{"_index":1444,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["000000100",{"_index":2234,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["0000001b",{"_index":1445,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["0000020",{"_index":3329,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0000040",{"_index":3333,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0000060",{"_index":3334,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0000100",{"_index":3336,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0000120",{"_index":3337,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0000140",{"_index":3338,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0000160",{"_index":3340,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0000200",{"_index":3341,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0007",{"_index":5211,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["001",{"_index":1625,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["0011",{"_index":5213,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["002",{"_index":3331,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["003",{"_index":3330,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0044",{"_index":9074,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["006",{"_index":3339,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["007",{"_index":3335,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["00:00:00",{"_index":384,"title":{},"name":{},"text":{"2":{},"3":{},"5":{},"16":{},"53":{}},"component":{},"keyword":{}}],["00:00:00+08",{"_index":2166,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["00:02:00",{"_index":2236,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["00:02:00.000000000",{"_index":2235,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["00:03:07",{"_index":5724,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["01",{"_index":2088,"title":{},"name":{},"text":{"3":{},"57":{}},"component":{},"keyword":{}}],["01'))from",{"_index":8930,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["012",{"_index":9020,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["012',1",{"_index":9023,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["012',1,1",{"_index":9024,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["01234abcd56789",{"_index":9015,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["012a",{"_index":9028,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["012a',1,1,'c",{"_index":9029,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["012a',1,1,'i",{"_index":9027,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["012a012ab34",{"_index":9025,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["012ab34",{"_index":9021,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["013",{"_index":3332,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["01:40:00.000000000",{"_index":9101,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["02",{"_index":2046,"title":{},"name":{},"text":{"3":{},"39":{},"57":{}},"component":{},"keyword":{}}],["02:20:05",{"_index":2175,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["02:30:00",{"_index":2058,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["02:45",{"_index":2620,"title":{},"name":{},"text":{"5":{}},"component":{},"keyword":{}}],["03",{"_index":2053,"title":{},"name":{},"text":{"3":{},"57":{}},"component":{},"keyword":{}}],["04",{"_index":5657,"title":{},"name":{},"text":{"15":{},"33":{},"39":{}},"component":{},"keyword":{}}],["04:00",{"_index":8946,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["04:00:00.000000000",{"_index":9099,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["05",{"_index":423,"title":{},"name":{},"text":{"2":{},"3":{},"7":{},"15":{},"57":{}},"component":{},"keyword":{}}],["06",{"_index":2169,"title":{},"name":{},"text":{"3":{},"33":{},"57":{}},"component":{},"keyword":{}}],["06'),to_date('2023",{"_index":8937,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["07",{"_index":2087,"title":{},"name":{},"text":{"3":{},"57":{}},"component":{},"keyword":{}}],["07/10/2023",{"_index":9066,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["077",{"_index":5146,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["08",{"_index":2036,"title":{},"name":{},"text":{"3":{},"57":{}},"component":{},"keyword":{}}],["08'::timestamptz",{"_index":2100,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["08:00",{"_index":8924,"title":{},"name":{},"text":{"57":{},"63":{}},"component":{},"keyword":{}}],["08:00:00",{"_index":9108,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["09",{"_index":2106,"title":{},"name":{},"text":{"3":{},"33":{},"57":{},"63":{}},"component":{},"keyword":{}}],["09:00'::timestamptz",{"_index":2056,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["09:12:31',null",{"_index":2044,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["09:12:39",{"_index":2039,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["09:12:39','asia/shanghai",{"_index":2037,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["09:12:39','sast",{"_index":2041,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["09:18:15.896472",{"_index":9105,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["09:18:16.100000",{"_index":9107,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["09:30:00')a",{"_index":9095,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["09:45:36",{"_index":6531,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["09:46",{"_index":5781,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["09:46:44.000000",{"_index":9068,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["0:00",{"_index":8090,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["0x",{"_index":5168,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["0x01",{"_index":6242,"title":{},"name":{},"text":{"25":{}},"component":{},"keyword":{}}],["0x02",{"_index":6244,"title":{},"name":{},"text":{"25":{}},"component":{},"keyword":{}}],["0x04",{"_index":6246,"title":{},"name":{},"text":{"25":{}},"component":{},"keyword":{}}],["0x07",{"_index":2459,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0x08",{"_index":6248,"title":{},"name":{},"text":{"25":{}},"component":{},"keyword":{}}],["0x0f",{"_index":2457,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0x10000",{"_index":5194,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["0x100000",{"_index":5210,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["0x1200000",{"_index":5214,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["0x1f",{"_index":2452,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0x2c",{"_index":8994,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["0x3f",{"_index":2454,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0x700000",{"_index":5212,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["0x7f",{"_index":2449,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0x7ff",{"_index":2450,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0x80",{"_index":2453,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0x8130d330",{"_index":2469,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0x8136a531",{"_index":2470,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0x8137a839",{"_index":2472,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0x8138fd38",{"_index":2473,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0x8230a633",{"_index":2475,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0x8230f237",{"_index":2476,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0x8231d438",{"_index":2478,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0x8232af32",{"_index":2479,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0x8232c937",{"_index":2481,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0x8232f837",{"_index":2482,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0x8233a339",{"_index":2484,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0x8233c931",{"_index":2485,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0x8233e838",{"_index":2487,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0x82349638",{"_index":2488,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0x8234a131",{"_index":2490,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0x8234e733",{"_index":2491,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0x82358f33",{"_index":2493,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0x8336c738",{"_index":2494,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0x8336d030",{"_index":2496,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0x84308534",{"_index":2497,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0x84309c38",{"_index":2499,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0x84318537",{"_index":2500,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0x8431a234",{"_index":2502,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0x8431a439",{"_index":2503,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0x90308130",{"_index":2505,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0xc0",{"_index":2451,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0xcc80",{"_index":5203,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["0xe0",{"_index":2456,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0xe3329a35",{"_index":2506,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0xf0",{"_index":2458,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0xffff",{"_index":2455,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["0–15",{"_index":3299,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["0–7",{"_index":1569,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["0–9",{"_index":1573,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["1",{"_index":0,"title":{"1-1":{},"2-1":{},"3-1":{},"4-1":{},"5-1":{},"6-1":{},"7-1":{},"8-1":{},"9-1":{},"11-1":{},"12-1":{},"13-1":{},"14-1":{},"15-1":{},"16-1":{},"17-1":{},"18-1":{},"19-1":{},"20-1":{},"21-1":{},"22-1":{},"23-1":{},"24-1":{},"25-1":{},"26-1":{},"27-1":{},"28-1":{},"29-1":{},"30-1":{},"31-1":{},"32-1":{},"33-1":{},"33-17":{},"34-1":{},"35-1":{},"39-1":{},"40-1":{},"41-1":{},"42-1":{},"43-1":{},"44-1":{},"45-1":{},"46-1":{},"47-1":{},"48-1":{},"49-1":{},"50-1":{},"51-1":{},"52-1":{},"53-1":{},"54-1":{},"55-1":{},"56-1":{},"57-1":{},"58-1":{},"59-1":{},"60-1":{},"61-1":{},"62-1":{},"63-1":{},"64-1":{},"65-1":{},"66-1":{},"67-1":{},"68-1":{},"69-1":{},"70-1":{},"71-1":{},"72-1":{},"73-1":{},"74-1":{}},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"9":{},"15":{},"16":{},"18":{},"20":{},"22":{},"25":{},"26":{},"27":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"55":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"73":{},"74":{}},"component":{},"keyword":{}}],["1\"synonymi",{"_index":9171,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["1','1234560",{"_index":9041,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["1,\"(systemd)\",864793,0,0.34,13840384",{"_index":7713,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["1,2,23",{"_index":1853,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["1,2,3",{"_index":7617,"title":{},"name":{},"text":{"46":{},"70":{}},"component":{},"keyword":{}}],["1,2,7",{"_index":1851,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["1,2},{2,4},{3,6},{4,8},{5,10",{"_index":1882,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["1,2},{3,4",{"_index":1856,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["1,2},{3,4}},{{5,6},{7,8}},{{9,10},{11,12",{"_index":1870,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["1,&1",{"_index":5524,"title":{},"name":{},"text":{"9":{},"16":{}},"component":{},"keyword":{}}],["2>>cleanup.log",{"_index":5119,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["2g",{"_index":3164,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["2gb",{"_index":7823,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["2m2d",{"_index":2226,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["2m39",{"_index":6522,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["2m47",{"_index":7049,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["2mb",{"_index":6839,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["2nd",{"_index":7182,"title":{},"name":{},"text":{"34":{},"46":{}},"component":{},"keyword":{}}],["2、implement",{"_index":6121,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["3",{"_index":24,"title":{"1-9":{},"2-12":{},"3-7":{},"5-3":{},"6-3":{},"7-7":{},"8-3":{},"9-122":{},"11-3":{},"14-3":{},"17-7":{},"18-3":{},"24-9":{},"33-3":{},"34-22":{},"35-3":{},"39-5":{},"40-7":{},"41-3":{},"42-4":{},"43-9":{},"44-4":{},"45-4":{},"46-5":{},"47-4":{},"48-4":{},"49-4":{},"50-5":{},"51-9":{},"53-5":{},"54-3":{},"56-3":{},"57-3":{},"58-3":{},"60-3":{},"61-3":{},"63-3":{},"64-3":{},"66-6":{},"68-3":{},"70-3":{},"71-9":{},"72-3":{},"73-3":{},"74-3":{}},"name":{},"text":{"3":{},"4":{},"6":{},"7":{},"9":{},"15":{},"18":{},"22":{},"25":{},"26":{},"27":{},"33":{},"34":{},"36":{},"37":{},"38":{},"39":{},"40":{},"55":{},"57":{},"59":{},"63":{},"66":{},"67":{},"69":{},"70":{},"74":{}},"component":{},"keyword":{}}],["3','1b3b560",{"_index":9043,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["3,\"(pool_workqueue_release)\",864793,0,0,0",{"_index":7715,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["3.0",{"_index":3028,"title":{},"name":{},"text":{"7":{},"49":{}},"component":{},"keyword":{}}],["3.1",{"_index":287,"title":{"2-13":{},"6-4":{},"8-4":{},"9-123":{},"14-4":{},"17-8":{},"18-4":{},"24-10":{},"33-4":{},"34-23":{},"39-6":{},"40-8":{},"41-4":{},"46-6":{},"57-4":{},"58-4":{},"61-4":{},"66-7":{},"70-4":{},"71-10":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.1.1",{"_index":4157,"title":{"9-124":{},"33-5":{},"34-24":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.1.2",{"_index":4158,"title":{"9-125":{},"34-25":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.1.3",{"_index":4159,"title":{"9-126":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.1.4",{"_index":4160,"title":{"9-127":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.10",{"_index":4204,"title":{"9-176":{},"17-17":{},"24-19":{},"57-13":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.10.1",{"_index":4205,"title":{"9-177":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.10.2",{"_index":4206,"title":{"9-178":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.10.3",{"_index":4207,"title":{"9-179":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.10.4",{"_index":4208,"title":{"9-180":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.11",{"_index":4209,"title":{"9-181":{},"17-18":{},"24-20":{},"57-14":{}},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["3.11.1",{"_index":4211,"title":{"9-182":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.11.2",{"_index":4212,"title":{"9-183":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.11.3",{"_index":4213,"title":{"9-184":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.11.4",{"_index":4214,"title":{"9-185":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.12",{"_index":4215,"title":{"9-186":{},"57-15":{}},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["3.12.1",{"_index":4216,"title":{"9-187":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.12.10",{"_index":4227,"title":{"9-196":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.12.11",{"_index":4228,"title":{"9-197":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.12.2",{"_index":4217,"title":{"9-188":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.12.3",{"_index":4218,"title":{"9-189":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.12.4",{"_index":4219,"title":{"9-190":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.12.5",{"_index":4221,"title":{"9-191":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.12.6",{"_index":4222,"title":{"9-192":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.12.7",{"_index":4223,"title":{"9-193":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.12.8",{"_index":4224,"title":{"9-194":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.12.9",{"_index":4225,"title":{"9-195":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.13",{"_index":8866,"title":{"57-16":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.14",{"_index":8868,"title":{"57-17":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.15",{"_index":8869,"title":{"57-18":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.16",{"_index":7357,"title":{"57-19":{}},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["3.17",{"_index":8872,"title":{"57-20":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.18",{"_index":8874,"title":{"57-21":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.19",{"_index":8876,"title":{"57-22":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.2",{"_index":290,"title":{"2-14":{},"6-5":{},"8-5":{},"9-128":{},"14-5":{},"17-9":{},"18-5":{},"24-11":{},"33-6":{},"39-7":{},"40-9":{},"41-5":{},"57-5":{},"58-5":{},"61-5":{},"66-8":{},"70-5":{},"71-11":{}},"name":{},"text":{"7":{},"38":{},"49":{}},"component":{},"keyword":{}}],["3.2.1",{"_index":2651,"title":{"6-6":{},"9-129":{},"33-7":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.2.2",{"_index":2652,"title":{"6-7":{},"9-130":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.2.3",{"_index":2654,"title":{"6-8":{},"9-131":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.2.4",{"_index":2656,"title":{"6-9":{},"9-132":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.20",{"_index":8877,"title":{"57-23":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.21",{"_index":8879,"title":{"57-24":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.22",{"_index":8880,"title":{"57-25":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.23",{"_index":8882,"title":{"57-26":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.24",{"_index":8884,"title":{"57-27":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.25",{"_index":8886,"title":{"57-28":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.26",{"_index":8888,"title":{"57-29":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.27",{"_index":8889,"title":{"57-30":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.28",{"_index":8890,"title":{"57-31":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.29",{"_index":8891,"title":{"57-32":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.3",{"_index":2657,"title":{"6-10":{},"8-6":{},"9-133":{},"14-6":{},"17-10":{},"18-6":{},"24-12":{},"33-8":{},"39-8":{},"41-6":{},"57-6":{},"58-6":{},"61-6":{},"70-6":{},"71-12":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.3.1",{"_index":4163,"title":{"9-134":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.3.2",{"_index":4164,"title":{"9-135":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.3.3",{"_index":4165,"title":{"9-136":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.3.4",{"_index":4166,"title":{"9-137":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.30",{"_index":8892,"title":{"57-33":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.31",{"_index":8893,"title":{"57-34":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.32",{"_index":8894,"title":{"57-35":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.33",{"_index":2259,"title":{"57-36":{}},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["3.34",{"_index":8896,"title":{"57-37":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.35",{"_index":8898,"title":{"57-38":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.36",{"_index":8900,"title":{"57-39":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.37",{"_index":8901,"title":{"57-40":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.38",{"_index":8902,"title":{"57-41":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.39",{"_index":8903,"title":{"57-42":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.3e",{"_index":3715,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["3.4",{"_index":2659,"title":{"6-11":{},"8-7":{},"9-138":{},"14-7":{},"17-11":{},"24-13":{},"41-7":{},"57-7":{},"58-7":{},"70-7":{},"71-13":{}},"name":{},"text":{"6":{},"7":{}},"component":{},"keyword":{}}],["3.4.1",{"_index":4168,"title":{"9-139":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.4.2",{"_index":4169,"title":{"9-140":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.40",{"_index":8905,"title":{"57-43":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.41",{"_index":8907,"title":{"57-44":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.42",{"_index":8908,"title":{"57-45":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.43",{"_index":8910,"title":{"57-46":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.44",{"_index":8912,"title":{"57-47":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.45",{"_index":8914,"title":{"57-48":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.46",{"_index":8915,"title":{"57-49":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.47",{"_index":8917,"title":{"57-50":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.5",{"_index":1624,"title":{"6-12":{},"9-141":{},"17-12":{},"24-14":{},"57-8":{},"58-8":{},"71-14":{}},"name":{},"text":{"3":{},"48":{}},"component":{},"keyword":{}}],["3.5.1",{"_index":2660,"title":{"6-13":{},"9-142":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.5.2",{"_index":2661,"title":{"6-14":{},"9-143":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.5.3",{"_index":2663,"title":{"6-15":{},"9-144":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.5.4",{"_index":2665,"title":{"6-16":{},"9-145":{}},"name":{},"text":{"38":{},"48":{}},"component":{},"keyword":{}}],["3.5.4.tar.gz",{"_index":7650,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["3.5.5",{"_index":4170,"title":{"9-146":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.5.6",{"_index":4171,"title":{"9-147":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.5.6.1",{"_index":4172,"title":{"9-148":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.5.6.2",{"_index":4173,"title":{"9-149":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.5.6.3",{"_index":4174,"title":{"9-150":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.5.6.4",{"_index":4175,"title":{"9-151":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.579545",{"_index":5313,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["3.59518",{"_index":5261,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["3.6",{"_index":2666,"title":{"6-17":{},"9-152":{},"17-13":{},"24-15":{},"57-9":{},"58-9":{},"71-15":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.6.1",{"_index":4177,"title":{"9-153":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.6.2",{"_index":4178,"title":{"9-154":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.6.3",{"_index":4179,"title":{"9-155":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.6.4",{"_index":4180,"title":{"9-156":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.7",{"_index":4181,"title":{"9-157":{},"17-14":{},"24-16":{},"57-10":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.7.1",{"_index":4183,"title":{"9-158":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.7.2",{"_index":4184,"title":{"9-159":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.7.3",{"_index":4185,"title":{"9-160":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.7.4",{"_index":4186,"title":{"9-161":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.7.5",{"_index":4187,"title":{"9-162":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.7.6",{"_index":4188,"title":{"9-163":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.8",{"_index":4189,"title":{"9-164":{},"17-15":{},"24-17":{},"57-11":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.8.0",{"_index":2755,"title":{},"name":{},"text":{"6":{},"38":{},"44":{}},"component":{},"keyword":{}}],["3.8.0.tar.gz",{"_index":7567,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["3.8.1",{"_index":4191,"title":{"9-165":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.8.2",{"_index":4192,"title":{"9-166":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.8.3",{"_index":4193,"title":{"9-167":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.80.tar.gz",{"_index":2753,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["3.9",{"_index":4194,"title":{"9-168":{},"17-16":{},"24-18":{},"57-12":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.9.1",{"_index":4195,"title":{"9-169":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.9.2",{"_index":4196,"title":{"9-170":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.9.3",{"_index":4197,"title":{"9-171":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.9.3.1",{"_index":4198,"title":{"9-172":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.9.3.2",{"_index":4199,"title":{"9-173":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.9.3.3",{"_index":4200,"title":{"9-174":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.9.3.4",{"_index":4201,"title":{"9-175":{}},"name":{},"text":{},"component":{},"keyword":{}}],["3.copi",{"_index":5232,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["3.establish",{"_index":5601,"title":{},"name":{},"text":{"14":{}},"component":{},"keyword":{}}],["3.if",{"_index":3047,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["3.instal",{"_index":5365,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["3.introduc",{"_index":5593,"title":{},"name":{},"text":{"14":{}},"component":{},"keyword":{}}],["3.x",{"_index":3029,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["3/3",{"_index":6543,"title":{},"name":{},"text":{"32":{},"33":{}},"component":{},"keyword":{}}],["30",{"_index":2101,"title":{},"name":{},"text":{"3":{},"7":{},"40":{},"57":{}},"component":{},"keyword":{}}],["300",{"_index":5336,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["3000",{"_index":3524,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["30096",{"_index":8120,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["301",{"_index":9128,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["3010",{"_index":5326,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["30111",{"_index":6547,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["3052",{"_index":8109,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["3056",{"_index":8113,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["3080",{"_index":8105,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["31",{"_index":2097,"title":{},"name":{},"text":{"3":{},"7":{},"39":{},"41":{},"57":{}},"component":{},"keyword":{}}],["3144",{"_index":8762,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["317",{"_index":4980,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["31887",{"_index":6524,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["319",{"_index":4983,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["32",{"_index":1577,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"51":{}},"component":{},"keyword":{}}],["32/64",{"_index":4356,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["32000",{"_index":6688,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["32106",{"_index":6523,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["3214",{"_index":8777,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["3215",{"_index":8779,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["3216",{"_index":8780,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["3218",{"_index":8781,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["3219",{"_index":8782,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["3220",{"_index":8783,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["3238",{"_index":8784,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["32391",{"_index":6544,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["3241",{"_index":5284,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["32477",{"_index":6546,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["32654",{"_index":6548,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["3290",{"_index":8761,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["33",{"_index":2011,"title":{},"name":{},"text":{"3":{},"39":{}},"component":{},"keyword":{}}],["33178",{"_index":3681,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["34,338,492",{"_index":9057,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["341",{"_index":2919,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["342",{"_index":2921,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["343",{"_index":2928,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["34338492",{"_index":9059,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["344",{"_index":2911,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["345",{"_index":2907,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["346",{"_index":2913,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["35",{"_index":7404,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["35.96",{"_index":5256,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["3579545",{"_index":5298,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["358",{"_index":3375,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["368dee58d5ef",{"_index":6425,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["377",{"_index":3328,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["38.7",{"_index":1930,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["3924",{"_index":5745,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["39985967",{"_index":7838,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["3:00",{"_index":7459,"title":{},"name":{},"text":{"40":{},"57":{}},"component":{},"keyword":{}}],["3cc81bed8614",{"_index":6419,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["3h14m",{"_index":6672,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["3s",{"_index":6742,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["4",{"_index":454,"title":{"3-8":{},"5-4":{},"6-18":{},"7-8":{},"8-8":{},"33-9":{},"34-26":{},"35-4":{},"39-9":{},"41-8":{},"42-5":{},"43-10":{},"44-5":{},"45-5":{},"46-7":{},"47-5":{},"48-5":{},"49-5":{},"51-10":{},"68-4":{},"70-8":{},"74-4":{}},"name":{},"text":{"2":{},"3":{},"5":{},"6":{},"7":{},"9":{},"15":{},"16":{},"18":{},"22":{},"34":{},"36":{},"37":{},"38":{},"39":{},"51":{},"53":{},"57":{},"63":{},"69":{},"71":{},"74":{}},"component":{},"keyword":{}}],["4','abc",{"_index":9044,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["4,\"(kworker/r",{"_index":7716,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["4,5,6",{"_index":7619,"title":{},"name":{},"text":{"46":{},"70":{}},"component":{},"keyword":{}}],["4.0.4",{"_index":7328,"title":{},"name":{},"text":{"38":{},"43":{}},"component":{},"keyword":{}}],["4.0.4.tar.gz",{"_index":7542,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["4.0.6",{"_index":6478,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["4.1",{"_index":460,"title":{"3-9":{},"6-19":{},"7-9":{},"33-10":{},"34-27":{},"39-10":{},"46-8":{},"47-6":{},"51-11":{},"74-5":{}},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["4.1.1",{"_index":2981,"title":{"7-10":{},"33-11":{},"51-12":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.1.2",{"_index":2982,"title":{"7-11":{},"51-13":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.1.3",{"_index":2984,"title":{"7-12":{},"51-14":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.1.4",{"_index":7745,"title":{"51-15":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.1.5",{"_index":7746,"title":{"51-16":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.1.6",{"_index":7747,"title":{"51-17":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.1.7",{"_index":7748,"title":{"51-18":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.1.8",{"_index":7750,"title":{"51-19":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.10",{"_index":9456,"title":{"74-14":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.11",{"_index":9458,"title":{"74-15":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.12",{"_index":9460,"title":{"74-16":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.13",{"_index":9462,"title":{"74-17":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.2",{"_index":465,"title":{"3-10":{},"6-20":{},"33-12":{},"34-28":{},"39-11":{},"46-9":{},"51-20":{},"74-6":{}},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["4.2.1",{"_index":467,"title":{"3-11":{},"51-21":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.2.2",{"_index":469,"title":{"3-12":{},"51-22":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.2.3",{"_index":470,"title":{"3-13":{},"51-23":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.2.3.1",{"_index":472,"title":{"3-14":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.2.3.2",{"_index":474,"title":{"3-15":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.2.3.3",{"_index":476,"title":{"3-16":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.2.3.4",{"_index":478,"title":{"3-17":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.2.3.5",{"_index":479,"title":{"3-18":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.2.4",{"_index":7751,"title":{"51-24":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.2.5",{"_index":7752,"title":{"51-25":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.2.5.1",{"_index":7753,"title":{"51-26":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.2.5.2",{"_index":7754,"title":{"51-27":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.2.6",{"_index":7755,"title":{"51-28":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.2.6.1",{"_index":7756,"title":{"51-29":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.2.6.2",{"_index":7757,"title":{"51-30":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.2.7",{"_index":7758,"title":{"51-31":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.2.8",{"_index":7759,"title":{"51-32":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.2.8.1",{"_index":7760,"title":{"51-33":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.2.8.2",{"_index":7761,"title":{"51-34":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.2.8.3",{"_index":7762,"title":{"51-35":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.2.8.4",{"_index":7763,"title":{"51-36":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.2.9",{"_index":7764,"title":{"51-37":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.3",{"_index":2669,"title":{"6-21":{},"33-13":{},"34-29":{},"46-10":{},"51-38":{},"74-7":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.4",{"_index":2670,"title":{"6-22":{},"34-30":{},"46-11":{},"51-39":{},"74-8":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.4.1",{"_index":7765,"title":{"51-40":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.4.2",{"_index":7766,"title":{"51-41":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.4.3",{"_index":7767,"title":{"51-42":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.4.4",{"_index":7769,"title":{"51-43":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.4.5",{"_index":7770,"title":{"51-44":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.5",{"_index":2671,"title":{"6-23":{},"34-31":{},"74-9":{}},"name":{},"text":{"9":{},"39":{}},"component":{},"keyword":{}}],["4.6",{"_index":2672,"title":{"6-24":{},"34-32":{},"74-10":{}},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["4.7",{"_index":7064,"title":{"34-33":{},"74-11":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.8",{"_index":9452,"title":{"74-12":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.9",{"_index":9454,"title":{"74-13":{}},"name":{},"text":{},"component":{},"keyword":{}}],["4.creat",{"_index":5243,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["4.initi",{"_index":5367,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["4.instal",{"_index":3051,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["4/bin",{"_index":3075,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["4/bin/pg_ctl",{"_index":3069,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["4055482368,3911159808,144322560,4055887872,233725952,3822161920,2638602240",{"_index":7675,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["41",{"_index":6542,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["42",{"_index":1623,"title":{},"name":{},"text":{"3":{},"7":{},"32":{}},"component":{},"keyword":{}}],["44",{"_index":2717,"title":{},"name":{},"text":{"6":{},"57":{}},"component":{},"keyword":{}}],["44,0201','yyyi",{"_index":9073,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["45",{"_index":2891,"title":{},"name":{},"text":{"6":{},"57":{}},"component":{},"keyword":{}}],["4500",{"_index":2849,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["4500/4500",{"_index":2888,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["458",{"_index":3379,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["47",{"_index":6517,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["4712",{"_index":2205,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["48",{"_index":6691,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["49",{"_index":6403,"title":{},"name":{},"text":{"30":{},"53":{}},"component":{},"keyword":{}}],["4f4fb700ef54",{"_index":6421,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["4f60\\597d",{"_index":9122,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["4gb",{"_index":8767,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["4gi",{"_index":6820,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["4h8m",{"_index":6741,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["4o",{"_index":7345,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["5",{"_index":316,"title":{"3-19":{},"5-5":{},"6-25":{},"7-13":{},"8-9":{},"33-14":{},"34-34":{},"35-5":{}},"name":{},"text":{"2":{},"3":{},"5":{},"6":{},"7":{},"9":{},"15":{},"33":{},"34":{},"38":{},"39":{},"40":{},"42":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"53":{},"57":{},"58":{},"66":{},"69":{},"74":{}},"component":{},"keyword":{}}],["5','abcd",{"_index":9045,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["5(abov",{"_index":7600,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["5,7,9",{"_index":7623,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["5.0",{"_index":2533,"title":{},"name":{},"text":{"5":{},"7":{},"8":{},"16":{},"30":{},"31":{},"32":{},"34":{},"43":{},"44":{},"48":{},"53":{}},"component":{},"keyword":{}}],["5.01",{"_index":9060,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["5.1",{"_index":481,"title":{"3-20":{},"33-15":{},"34-35":{}},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["5.1.1",{"_index":483,"title":{"3-21":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.1.2",{"_index":485,"title":{"3-22":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.1.3",{"_index":487,"title":{"3-23":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.1.4",{"_index":488,"title":{"3-24":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.1.5",{"_index":490,"title":{"3-25":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.1.6",{"_index":491,"title":{"3-26":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.10",{"_index":558,"title":{"3-84":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.10.1",{"_index":560,"title":{"3-85":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.10.2",{"_index":561,"title":{"3-86":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.10.3",{"_index":562,"title":{"3-87":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.10.4",{"_index":563,"title":{"3-88":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.11",{"_index":564,"title":{"3-89":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.11.1",{"_index":566,"title":{"3-90":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.11.2",{"_index":567,"title":{"3-91":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.11.3",{"_index":568,"title":{"3-92":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.11.4",{"_index":569,"title":{"3-93":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.11.5",{"_index":570,"title":{"3-94":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.12",{"_index":571,"title":{"3-95":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.12.1",{"_index":572,"title":{"3-96":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.12.2",{"_index":573,"title":{"3-97":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.12.3",{"_index":574,"title":{"3-98":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.12.4",{"_index":575,"title":{"3-99":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.16.3",{"_index":2775,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["5.1e",{"_index":3730,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["5.2",{"_index":492,"title":{"3-27":{},"33-16":{},"34-36":{}},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["5.2.1",{"_index":494,"title":{"3-28":{},"33-17":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.2.2",{"_index":495,"title":{"3-29":{},"33-18":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.2.3",{"_index":496,"title":{"3-30":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.2.4",{"_index":497,"title":{"3-31":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.2.5",{"_index":498,"title":{"3-32":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.2.6",{"_index":499,"title":{"3-33":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.3",{"_index":500,"title":{"3-34":{},"33-19":{},"34-37":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.3.1",{"_index":501,"title":{"3-35":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.3.2",{"_index":502,"title":{"3-36":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.3.3",{"_index":503,"title":{"3-37":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.3.4",{"_index":504,"title":{"3-38":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.3.5",{"_index":505,"title":{"3-39":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.3.6",{"_index":506,"title":{"3-40":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.4",{"_index":507,"title":{"3-41":{},"33-20":{}},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["5.4.1",{"_index":511,"title":{"3-42":{},"33-21":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.4.2",{"_index":512,"title":{"3-43":{},"33-22":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.4.2.1",{"_index":6555,"title":{"33-23":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.4.2.2",{"_index":6556,"title":{"33-24":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.4.3",{"_index":513,"title":{"3-44":{},"33-25":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.4.4",{"_index":514,"title":{"3-45":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.4.5",{"_index":515,"title":{"3-46":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.4.6",{"_index":516,"title":{"3-47":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.5",{"_index":517,"title":{"3-48":{},"33-26":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.5.1",{"_index":518,"title":{"3-49":{},"33-27":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.5.2",{"_index":519,"title":{"3-50":{},"33-28":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.5.2.1",{"_index":6558,"title":{"33-29":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.5.2.2",{"_index":6559,"title":{"33-30":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.5.2.3",{"_index":6561,"title":{"33-31":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.5.3",{"_index":520,"title":{"3-51":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.5.4",{"_index":521,"title":{"3-52":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.5.5",{"_index":522,"title":{"3-53":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.5.6",{"_index":523,"title":{"3-54":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.6",{"_index":524,"title":{"3-55":{},"33-32":{}},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["5.6.1",{"_index":525,"title":{"3-56":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.6.2",{"_index":526,"title":{"3-57":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.6.3",{"_index":527,"title":{"3-58":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.6.4",{"_index":528,"title":{"3-59":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.6.5",{"_index":529,"title":{"3-60":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.6.6",{"_index":531,"title":{"3-61":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.6.7",{"_index":532,"title":{"3-62":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.7",{"_index":533,"title":{"3-63":{}},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["5.7.1",{"_index":535,"title":{"3-64":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.7.2",{"_index":536,"title":{"3-65":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.7.3",{"_index":537,"title":{"3-66":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.7.4",{"_index":538,"title":{"3-67":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.7.5",{"_index":539,"title":{"3-68":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.7.6",{"_index":540,"title":{"3-69":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.8",{"_index":541,"title":{"3-70":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.8.1",{"_index":543,"title":{"3-71":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.8.2",{"_index":544,"title":{"3-72":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.8.3",{"_index":545,"title":{"3-73":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.8.4",{"_index":546,"title":{"3-74":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.8.5",{"_index":547,"title":{"3-75":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.8.6",{"_index":548,"title":{"3-76":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.9",{"_index":549,"title":{"3-77":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.9.1",{"_index":552,"title":{"3-78":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.9.2",{"_index":553,"title":{"3-79":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.9.3",{"_index":554,"title":{"3-80":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.9.4",{"_index":555,"title":{"3-81":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.9.5",{"_index":556,"title":{"3-82":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.9.6",{"_index":557,"title":{"3-83":{}},"name":{},"text":{},"component":{},"keyword":{}}],["5.905",{"_index":3526,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["5.initi",{"_index":3052,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["5.instal",{"_index":5369,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["5.when",{"_index":5245,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["5/1063384",{"_index":2881,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["5/5",{"_index":2879,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["5/bin",{"_index":3076,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["5/bin/:$path",{"_index":7451,"title":{},"name":{},"text":{"40":{},"47":{}},"component":{},"keyword":{}}],["5/bin/initdb",{"_index":3070,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["5/bin/pg_config",{"_index":7518,"title":{},"name":{},"text":{"42":{},"44":{},"45":{},"46":{},"48":{},"49":{},"50":{}},"component":{},"keyword":{}}],["5/bin/pg_ctl",{"_index":3082,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["5/bin/pg_recvlog",{"_index":7730,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["5/bin/pg_upgrad",{"_index":3071,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["5/bin/postgr",{"_index":2621,"title":{},"name":{},"text":{"5":{},"53":{}},"component":{},"keyword":{}}],["5/bin/psql",{"_index":7733,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["5/bin:$path",{"_index":369,"title":{},"name":{},"text":{"2":{},"5":{},"53":{}},"component":{},"keyword":{}}],["5/data",{"_index":346,"title":{},"name":{},"text":{"2":{},"5":{},"53":{}},"component":{},"keyword":{}}],["5/include/postgresql/server/pg_config.h",{"_index":7725,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["50",{"_index":6402,"title":{},"name":{},"text":{"30":{},"39":{},"53":{}},"component":{},"keyword":{}}],["500",{"_index":5772,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["5000",{"_index":2261,"title":{},"name":{},"text":{"3":{},"9":{}},"component":{},"keyword":{}}],["502",{"_index":5773,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["503",{"_index":2852,"title":{},"name":{},"text":{"6":{},"16":{}},"component":{},"keyword":{}}],["504",{"_index":5774,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["50432",{"_index":5397,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["50489",{"_index":1784,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["50mb",{"_index":7822,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["50th",{"_index":1785,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["50x.html",{"_index":5775,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["52352",{"_index":5202,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["53416",{"_index":418,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["5432",{"_index":359,"title":{},"name":{},"text":{"2":{},"7":{},"9":{},"13":{},"33":{},"51":{}},"component":{},"keyword":{}}],["5432/tcp",{"_index":6406,"title":{},"name":{},"text":{"30":{},"33":{},"53":{}},"component":{},"keyword":{}}],["5432:30111/tcp,1521:32654/tcp",{"_index":6539,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["5432:32000/tcp",{"_index":6690,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["5432:32106/tcp,1521:31887/tcp",{"_index":6521,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["5432:32391/tcp,1521:32477/tcp",{"_index":6535,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["5433",{"_index":3060,"title":{},"name":{},"text":{"7":{},"9":{},"72":{}},"component":{},"keyword":{}}],["5434",{"_index":2642,"title":{},"name":{},"text":{"5":{},"53":{}},"component":{},"keyword":{}}],["5434:5432",{"_index":2539,"title":{},"name":{},"text":{"5":{},"30":{},"53":{}},"component":{},"keyword":{}}],["55047",{"_index":5782,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["55048",{"_index":5784,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["55281235",{"_index":2930,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["555",{"_index":9391,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["55500",{"_index":2847,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["56",{"_index":2857,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["56/56",{"_index":2869,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["563",{"_index":5286,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["572814",{"_index":2371,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["57536",{"_index":8086,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["58",{"_index":3666,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["580",{"_index":3628,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["58504",{"_index":8097,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["5866",{"_index":6479,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["5866/tcp",{"_index":6404,"title":{},"name":{},"text":{"30":{},"31":{},"53":{}},"component":{},"keyword":{}}],["5867",{"_index":6483,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["58772",{"_index":8104,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["5885448c5c88",{"_index":6410,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["5:00",{"_index":2214,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["5e2",{"_index":1626,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["5gb+,ssd",{"_index":8770,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["6",{"_index":576,"title":{"3-100":{},"5-6":{},"6-26":{},"7-14":{},"8-10":{},"33-33":{},"34-38":{},"35-6":{}},"name":{},"text":{"3":{},"4":{},"6":{},"7":{},"9":{},"15":{},"22":{},"34":{},"38":{},"39":{},"57":{},"65":{},"74":{}},"component":{},"keyword":{}}],["6\",\"12th",{"_index":7667,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["6','adreasx",{"_index":9046,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["6.1",{"_index":577,"title":{"3-101":{},"33-34":{},"34-39":{}},"name":{},"text":{},"component":{},"keyword":{}}],["6.1.1",{"_index":580,"title":{"3-102":{}},"name":{},"text":{},"component":{},"keyword":{}}],["6.1.2",{"_index":584,"title":{"3-103":{}},"name":{},"text":{},"component":{},"keyword":{}}],["6.1.2.1",{"_index":586,"title":{"3-104":{}},"name":{},"text":{},"component":{},"keyword":{}}],["6.1.2.2",{"_index":587,"title":{"3-105":{}},"name":{},"text":{},"component":{},"keyword":{}}],["6.1.2.3",{"_index":591,"title":{"3-106":{}},"name":{},"text":{},"component":{},"keyword":{}}],["6.1.2.4",{"_index":593,"title":{"3-107":{}},"name":{},"text":{},"component":{},"keyword":{}}],["6.1.2.5",{"_index":596,"title":{"3-108":{}},"name":{},"text":{},"component":{},"keyword":{}}],["6.1.2.6",{"_index":598,"title":{"3-109":{}},"name":{},"text":{},"component":{},"keyword":{}}],["6.1.2.7",{"_index":600,"title":{"3-110":{}},"name":{},"text":{},"component":{},"keyword":{}}],["6.1.3",{"_index":601,"title":{"3-111":{}},"name":{},"text":{},"component":{},"keyword":{}}],["6.1.4",{"_index":602,"title":{"3-112":{}},"name":{},"text":{},"component":{},"keyword":{}}],["6.1.5",{"_index":605,"title":{"3-113":{}},"name":{},"text":{},"component":{},"keyword":{}}],["6.1.6",{"_index":607,"title":{"3-114":{}},"name":{},"text":{},"component":{},"keyword":{}}],["6.14.0",{"_index":7661,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["6.2",{"_index":609,"title":{"3-115":{},"33-35":{},"34-40":{}},"name":{},"text":{},"component":{},"keyword":{}}],["6.2.1",{"_index":611,"title":{"3-116":{},"33-36":{}},"name":{},"text":{},"component":{},"keyword":{}}],["6.2.10",{"_index":626,"title":{"3-125":{}},"name":{},"text":{},"component":{},"keyword":{}}],["6.2.11",{"_index":627,"title":{"3-126":{}},"name":{},"text":{},"component":{},"keyword":{}}],["6.2.12",{"_index":630,"title":{"3-127":{}},"name":{},"text":{},"component":{},"keyword":{}}],["6.2.13",{"_index":633,"title":{"3-128":{}},"name":{},"text":{},"component":{},"keyword":{}}],["6.2.14",{"_index":634,"title":{"3-129":{}},"name":{},"text":{},"component":{},"keyword":{}}],["6.2.2",{"_index":612,"title":{"3-117":{}},"name":{},"text":{},"component":{},"keyword":{}}],["6.2.3",{"_index":614,"title":{"3-118":{}},"name":{},"text":{},"component":{},"keyword":{}}],["6.2.4",{"_index":616,"title":{"3-119":{}},"name":{},"text":{},"component":{},"keyword":{}}],["6.2.5",{"_index":618,"title":{"3-120":{}},"name":{},"text":{},"component":{},"keyword":{}}],["6.2.6",{"_index":620,"title":{"3-121":{}},"name":{},"text":{},"component":{},"keyword":{}}],["6.2.7",{"_index":621,"title":{"3-122":{}},"name":{},"text":{},"component":{},"keyword":{}}],["6.2.8",{"_index":622,"title":{"3-123":{}},"name":{},"text":{},"component":{},"keyword":{}}],["6.2.9",{"_index":624,"title":{"3-124":{}},"name":{},"text":{},"component":{},"keyword":{}}],["6.3",{"_index":636,"title":{"3-130":{},"33-37":{},"34-41":{}},"name":{},"text":{},"component":{},"keyword":{}}],["6.3.1",{"_index":637,"title":{"3-131":{},"33-38":{}},"name":{},"text":{},"component":{},"keyword":{}}],["6.3.2",{"_index":639,"title":{"3-132":{},"33-39":{}},"name":{},"text":{},"component":{},"keyword":{}}],["6.3.3",{"_index":640,"title":{"3-133":{}},"name":{},"text":{},"component":{},"keyword":{}}],["6.4",{"_index":6564,"title":{"33-40":{},"34-42":{}},"name":{},"text":{},"component":{},"keyword":{}}],["6.5",{"_index":7070,"title":{"34-43":{}},"name":{},"text":{},"component":{},"keyword":{}}],["6.6",{"_index":7071,"title":{"34-44":{}},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["6.8",{"_index":5269,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["6.chang",{"_index":3054,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["6.copi",{"_index":5373,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["60",{"_index":5154,"title":{},"name":{},"text":{"9":{},"52":{}},"component":{},"keyword":{}}],["6139",{"_index":389,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["63",{"_index":933,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["630",{"_index":9229,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["64",{"_index":1500,"title":{},"name":{},"text":{"3":{},"7":{},"30":{},"31":{},"32":{},"43":{},"51":{},"52":{},"54":{}},"component":{},"keyword":{}}],["64gb",{"_index":8768,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["650",{"_index":9390,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["65534",{"_index":6963,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["65536",{"_index":5193,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["6567",{"_index":388,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["6644",{"_index":8425,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["67",{"_index":7422,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["6771",{"_index":2917,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["6774",{"_index":2283,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["68",{"_index":5270,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["680",{"_index":3633,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["6c502b378234",{"_index":6411,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["6e",{"_index":3723,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["6faa2d0ed705",{"_index":6399,"title":{},"name":{},"text":{"30":{},"53":{}},"component":{},"keyword":{}}],["6kbw",{"_index":6752,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["7",{"_index":642,"title":{"3-134":{},"5-7":{},"7-15":{},"33-41":{},"34-45":{},"35-7":{}},"name":{},"text":{"3":{},"7":{},"15":{},"34":{},"38":{},"57":{},"58":{},"74":{}},"component":{},"keyword":{}}],["7','123",{"_index":9047,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["7.1",{"_index":643,"title":{"3-135":{},"7-16":{},"33-42":{},"34-46":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.1.1",{"_index":644,"title":{"3-136":{},"7-17":{},"33-43":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.1.2",{"_index":645,"title":{"3-137":{},"7-18":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.1.3",{"_index":646,"title":{"3-138":{},"7-19":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10",{"_index":729,"title":{"3-204":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.1",{"_index":731,"title":{"3-205":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.1.1",{"_index":733,"title":{"3-206":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.1.2",{"_index":734,"title":{"3-207":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.1.3",{"_index":735,"title":{"3-208":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.2",{"_index":736,"title":{"3-209":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.2.1",{"_index":738,"title":{"3-210":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.2.2",{"_index":739,"title":{"3-211":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.2.3",{"_index":740,"title":{"3-212":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.3",{"_index":741,"title":{"3-213":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.3.1",{"_index":743,"title":{"3-214":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.3.2",{"_index":744,"title":{"3-215":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.3.3",{"_index":745,"title":{"3-216":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.4",{"_index":746,"title":{"3-217":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.4.1",{"_index":748,"title":{"3-218":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.4.2",{"_index":749,"title":{"3-219":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.4.3",{"_index":750,"title":{"3-220":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.5",{"_index":751,"title":{"3-221":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.5.1",{"_index":753,"title":{"3-222":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.5.2",{"_index":754,"title":{"3-223":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.5.3",{"_index":755,"title":{"3-224":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.6",{"_index":756,"title":{"3-225":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.6.1",{"_index":758,"title":{"3-226":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.6.2",{"_index":759,"title":{"3-227":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.6.3",{"_index":760,"title":{"3-228":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.7",{"_index":761,"title":{"3-229":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.7.1",{"_index":763,"title":{"3-230":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.7.2",{"_index":764,"title":{"3-231":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.7.3",{"_index":765,"title":{"3-232":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.8",{"_index":766,"title":{"3-233":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.8.1",{"_index":768,"title":{"3-234":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.8.2",{"_index":769,"title":{"3-235":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.8.3",{"_index":770,"title":{"3-236":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.9",{"_index":771,"title":{"3-237":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.9.1",{"_index":772,"title":{"3-238":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.9.2",{"_index":773,"title":{"3-239":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.10.9.3",{"_index":774,"title":{"3-240":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.11",{"_index":775,"title":{"3-241":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.11.1",{"_index":777,"title":{"3-242":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.11.2",{"_index":778,"title":{"3-243":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.11.2.1",{"_index":779,"title":{"3-244":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.11.3",{"_index":781,"title":{"3-245":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.11.3.1",{"_index":782,"title":{"3-246":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.11.3.2",{"_index":784,"title":{"3-247":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.12",{"_index":786,"title":{"3-248":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.12.1",{"_index":788,"title":{"3-249":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.12.2",{"_index":789,"title":{"3-250":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.12.3",{"_index":790,"title":{"3-251":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.13",{"_index":791,"title":{"3-252":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.13.1",{"_index":792,"title":{"3-253":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.13.2",{"_index":793,"title":{"3-254":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.13.3",{"_index":794,"title":{"3-255":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.13.3.1",{"_index":795,"title":{"3-256":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.13.3.2",{"_index":796,"title":{"3-257":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.13.3.3",{"_index":797,"title":{"3-258":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.13.3.3.1",{"_index":798,"title":{"3-259":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.13.3.3.2",{"_index":800,"title":{"3-260":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.14",{"_index":802,"title":{"3-261":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.14.1",{"_index":805,"title":{"3-262":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.14.2",{"_index":806,"title":{"3-263":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.14.3",{"_index":807,"title":{"3-264":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.2",{"_index":647,"title":{"3-139":{},"7-20":{},"33-44":{},"34-47":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.2.1",{"_index":649,"title":{"3-140":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.2.2",{"_index":650,"title":{"3-141":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.2.3",{"_index":651,"title":{"3-142":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.3",{"_index":652,"title":{"3-143":{},"7-21":{},"33-45":{},"34-48":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.3.1",{"_index":654,"title":{"3-144":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.3.2",{"_index":655,"title":{"3-145":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.3.3",{"_index":656,"title":{"3-146":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.4",{"_index":657,"title":{"3-147":{},"33-46":{},"34-49":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.4.1",{"_index":659,"title":{"3-148":{},"34-50":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.4.2",{"_index":7074,"title":{"34-51":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.5",{"_index":660,"title":{"3-149":{},"33-47":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.5.1",{"_index":661,"title":{"3-150":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.6",{"_index":662,"title":{"3-151":{},"33-48":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.6.1",{"_index":664,"title":{"3-152":{},"33-49":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.6.2",{"_index":665,"title":{"3-153":{},"33-50":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.6.2.1",{"_index":6566,"title":{"33-51":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.6.2.2",{"_index":6567,"title":{"33-52":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.6.2.3",{"_index":6568,"title":{"33-53":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.6.3",{"_index":666,"title":{"3-154":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.7",{"_index":667,"title":{"3-155":{},"33-54":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.7.1",{"_index":668,"title":{"3-156":{},"33-55":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.7.2",{"_index":669,"title":{"3-157":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.8",{"_index":670,"title":{"3-158":{},"33-56":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.8.1",{"_index":671,"title":{"3-159":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.8.2",{"_index":672,"title":{"3-160":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.8.3",{"_index":673,"title":{"3-161":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.8e",{"_index":3719,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["7.9",{"_index":674,"title":{"3-162":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.1",{"_index":676,"title":{"3-163":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.1.1",{"_index":678,"title":{"3-164":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.1.2",{"_index":679,"title":{"3-165":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.1.3",{"_index":680,"title":{"3-166":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.10",{"_index":719,"title":{"3-196":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.10.1",{"_index":721,"title":{"3-197":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.10.2",{"_index":722,"title":{"3-198":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.10.3",{"_index":723,"title":{"3-199":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.11",{"_index":724,"title":{"3-200":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.11.1",{"_index":726,"title":{"3-201":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.11.2",{"_index":727,"title":{"3-202":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.11.3",{"_index":728,"title":{"3-203":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.2",{"_index":681,"title":{"3-167":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.2.1",{"_index":683,"title":{"3-168":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.2.2",{"_index":684,"title":{"3-169":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.3",{"_index":685,"title":{"3-170":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.3.1",{"_index":687,"title":{"3-171":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.3.2",{"_index":688,"title":{"3-172":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.3.3",{"_index":689,"title":{"3-173":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.4",{"_index":690,"title":{"3-174":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.4.1",{"_index":692,"title":{"3-175":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.4.2",{"_index":693,"title":{"3-176":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.5",{"_index":694,"title":{"3-177":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.5.1",{"_index":696,"title":{"3-178":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.5.2",{"_index":697,"title":{"3-179":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.5.3",{"_index":699,"title":{"3-180":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.6",{"_index":700,"title":{"3-181":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.6.1",{"_index":702,"title":{"3-182":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.6.2",{"_index":703,"title":{"3-183":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.6.3",{"_index":704,"title":{"3-184":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.7",{"_index":705,"title":{"3-185":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.7.1",{"_index":707,"title":{"3-186":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.7.2",{"_index":708,"title":{"3-187":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.7.3",{"_index":709,"title":{"3-188":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.8",{"_index":710,"title":{"3-189":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.8.1",{"_index":712,"title":{"3-190":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.8.2",{"_index":713,"title":{"3-191":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.9",{"_index":714,"title":{"3-192":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.9.1",{"_index":716,"title":{"3-193":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.9.2",{"_index":717,"title":{"3-194":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.9.9.3",{"_index":718,"title":{"3-195":{}},"name":{},"text":{},"component":{},"keyword":{}}],["7.91",{"_index":3452,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["7.adjust",{"_index":5376,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["7.to",{"_index":3055,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["70",{"_index":5271,"title":{},"name":{},"text":{"9":{},"52":{}},"component":{},"keyword":{}}],["700",{"_index":6469,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["7000",{"_index":3382,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["71",{"_index":8714,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["7132",{"_index":8087,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["72",{"_index":2853,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["72.05956",{"_index":5281,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["722.92",{"_index":5278,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["736c0d188bdd",{"_index":6496,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["755",{"_index":5731,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["764",{"_index":3836,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["765",{"_index":3837,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["766",{"_index":3840,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["767",{"_index":3843,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["768",{"_index":3844,"title":{},"name":{},"text":{"8":{},"57":{}},"component":{},"keyword":{}}],["769",{"_index":3847,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["770",{"_index":3848,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["771",{"_index":3850,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["773",{"_index":3853,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["774",{"_index":3855,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["77494",{"_index":5722,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["775",{"_index":3859,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["776",{"_index":3861,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["777",{"_index":3864,"title":{},"name":{},"text":{"8":{},"16":{}},"component":{},"keyword":{}}],["778",{"_index":3867,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["779",{"_index":3869,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["77kb",{"_index":3510,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["780",{"_index":3870,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["781",{"_index":3872,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["782",{"_index":3875,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["783",{"_index":3877,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["784",{"_index":3879,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["7:00",{"_index":2243,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["7b",{"_index":2179,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["8",{"_index":449,"title":{"3-265":{},"5-8":{},"7-22":{},"33-57":{},"34-52":{},"35-8":{}},"name":{},"text":{"2":{},"3":{},"4":{},"7":{},"9":{},"15":{},"27":{},"34":{},"38":{},"52":{},"74":{}},"component":{},"keyword":{}}],["8','adc",{"_index":9048,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["8'::timestamptz",{"_index":2090,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["8.008",{"_index":3520,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["8.1",{"_index":812,"title":{"3-266":{},"7-23":{},"33-58":{},"34-53":{}},"name":{},"text":{},"component":{},"keyword":{}}],["8.1.1",{"_index":813,"title":{"3-267":{}},"name":{},"text":{},"component":{},"keyword":{}}],["8.1.2",{"_index":814,"title":{"3-268":{}},"name":{},"text":{},"component":{},"keyword":{}}],["8.1.3",{"_index":815,"title":{"3-269":{}},"name":{},"text":{},"component":{},"keyword":{}}],["8.2",{"_index":817,"title":{"3-270":{},"7-24":{},"33-59":{},"34-54":{}},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["8.2.1",{"_index":819,"title":{"3-271":{}},"name":{},"text":{},"component":{},"keyword":{}}],["8.2.2",{"_index":821,"title":{"3-272":{}},"name":{},"text":{},"component":{},"keyword":{}}],["8.3",{"_index":822,"title":{"3-273":{},"7-25":{},"33-60":{},"34-55":{}},"name":{},"text":{},"component":{},"keyword":{}}],["8.3.1",{"_index":824,"title":{"3-274":{}},"name":{},"text":{},"component":{},"keyword":{}}],["8.3.2",{"_index":826,"title":{"3-275":{}},"name":{},"text":{},"component":{},"keyword":{}}],["8.3.5",{"_index":4973,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["8.3.8",{"_index":4974,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["8.4",{"_index":2990,"title":{"7-26":{},"33-61":{},"34-56":{}},"name":{},"text":{},"component":{},"keyword":{}}],["8.4.1",{"_index":2991,"title":{"7-27":{}},"name":{},"text":{},"component":{},"keyword":{}}],["8.4.2",{"_index":2992,"title":{"7-28":{}},"name":{},"text":{},"component":{},"keyword":{}}],["8.4.3",{"_index":2994,"title":{"7-29":{}},"name":{},"text":{},"component":{},"keyword":{}}],["8.4.4",{"_index":2995,"title":{"7-30":{}},"name":{},"text":{},"component":{},"keyword":{}}],["8.5",{"_index":2997,"title":{"7-31":{},"33-62":{},"34-57":{}},"name":{},"text":{},"component":{},"keyword":{}}],["8.5.0",{"_index":6430,"title":{},"name":{},"text":{"30":{},"31":{},"32":{}},"component":{},"keyword":{}}],["8.6",{"_index":6569,"title":{"33-63":{},"34-58":{}},"name":{},"text":{},"component":{},"keyword":{}}],["8.8e",{"_index":3726,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["8.final",{"_index":3058,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["8.stop",{"_index":5377,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["8.x/cento",{"_index":8775,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["80",{"_index":989,"title":{},"name":{},"text":{"3":{},"51":{}},"component":{},"keyword":{}}],["800",{"_index":5307,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["800mb,hdd",{"_index":8769,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["80435604",{"_index":5260,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["8067",{"_index":381,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["806f782da874",{"_index":6414,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["8080",{"_index":6716,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["81",{"_index":4971,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["82112",{"_index":2846,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["8254",{"_index":5338,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["841",{"_index":3935,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["843",{"_index":3939,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["8443",{"_index":6717,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["858",{"_index":2903,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["860",{"_index":5253,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["8601",{"_index":5428,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["8601:2004",{"_index":2224,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["863c87bf25eb",{"_index":6420,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["86400",{"_index":7877,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["869",{"_index":3946,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["877",{"_index":3914,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["878",{"_index":3927,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["879",{"_index":3912,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["88",{"_index":6541,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["880",{"_index":3630,"title":{},"name":{},"text":{"7":{},"8":{}},"component":{},"keyword":{}}],["881",{"_index":3909,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["882",{"_index":3901,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["883",{"_index":3918,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["887",{"_index":3884,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["88e1bbeda8",{"_index":6422,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["88e1bbeda81c51d88e12cbd2b19730498f1343d1c64bb3dddc8ffcb08a1f965f",{"_index":6423,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["894",{"_index":3964,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["896",{"_index":3963,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["897",{"_index":3959,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["898",{"_index":3956,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["8:00",{"_index":9111,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["8:30",{"_index":9086,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["8b4f2b90d6b6",{"_index":6412,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["8twpgkzo2mnx",{"_index":6465,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["9",{"_index":1494,"title":{"5-9":{},"7-32":{},"33-64":{}},"name":{},"text":{"3":{},"6":{},"7":{},"9":{},"15":{},"16":{},"34":{},"38":{},"40":{},"53":{},"57":{},"74":{}},"component":{},"keyword":{}}],["9','adc,.d",{"_index":9050,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["9,10},{11,12}}'::int",{"_index":1869,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9.1",{"_index":2511,"title":{"5-10":{},"7-33":{},"33-65":{}},"name":{},"text":{},"component":{},"keyword":{}}],["9.1.1",{"_index":2998,"title":{"7-34":{}},"name":{},"text":{},"component":{},"keyword":{}}],["9.1.2",{"_index":2999,"title":{"7-35":{}},"name":{},"text":{},"component":{},"keyword":{}}],["9.1.3",{"_index":3000,"title":{"7-36":{}},"name":{},"text":{},"component":{},"keyword":{}}],["9.2",{"_index":2512,"title":{"5-11":{},"7-37":{},"33-66":{}},"name":{},"text":{},"component":{},"keyword":{}}],["9.2.1",{"_index":3002,"title":{"7-38":{}},"name":{},"text":{},"component":{},"keyword":{}}],["9.2.2",{"_index":3003,"title":{"7-39":{}},"name":{},"text":{},"component":{},"keyword":{}}],["9.2.2.1",{"_index":3004,"title":{"7-40":{}},"name":{},"text":{},"component":{},"keyword":{}}],["9.2.2.1.1",{"_index":3005,"title":{"7-41":{}},"name":{},"text":{},"component":{},"keyword":{}}],["9.2.2.2",{"_index":3006,"title":{"7-42":{}},"name":{},"text":{},"component":{},"keyword":{}}],["9.2.2.3",{"_index":3008,"title":{"7-43":{}},"name":{},"text":{},"component":{},"keyword":{}}],["9.3",{"_index":2513,"title":{"5-12":{},"7-44":{},"33-67":{}},"name":{},"text":{},"component":{},"keyword":{}}],["9.4",{"_index":2514,"title":{"5-13":{},"7-45":{},"33-68":{}},"name":{},"text":{},"component":{},"keyword":{}}],["9.4.1",{"_index":3010,"title":{"7-46":{}},"name":{},"text":{},"component":{},"keyword":{}}],["9.4.2",{"_index":3011,"title":{"7-47":{}},"name":{},"text":{},"component":{},"keyword":{}}],["9.4.3",{"_index":3012,"title":{"7-48":{}},"name":{},"text":{},"component":{},"keyword":{}}],["9.4.4",{"_index":3013,"title":{"7-49":{}},"name":{},"text":{},"component":{},"keyword":{}}],["9.4.5",{"_index":3014,"title":{"7-50":{}},"name":{},"text":{},"component":{},"keyword":{}}],["9.4.6",{"_index":3016,"title":{"7-51":{}},"name":{},"text":{},"component":{},"keyword":{}}],["9.4.7",{"_index":3018,"title":{"7-52":{}},"name":{},"text":{},"component":{},"keyword":{}}],["9.4.8",{"_index":3020,"title":{"7-53":{}},"name":{},"text":{},"component":{},"keyword":{}}],["9.4.9",{"_index":3022,"title":{"7-54":{}},"name":{},"text":{},"component":{},"keyword":{}}],["9.5",{"_index":2515,"title":{"5-14":{},"7-55":{},"33-69":{}},"name":{},"text":{},"component":{},"keyword":{}}],["9.6",{"_index":6570,"title":{"33-70":{}},"name":{},"text":{},"component":{},"keyword":{}}],["9.6.1",{"_index":6571,"title":{"33-71":{}},"name":{},"text":{},"component":{},"keyword":{}}],["9.6.1.1",{"_index":6572,"title":{"33-72":{}},"name":{},"text":{},"component":{},"keyword":{}}],["9.6.1.2",{"_index":6573,"title":{"33-73":{}},"name":{},"text":{},"component":{},"keyword":{}}],["9.6.1.3",{"_index":6574,"title":{"33-74":{}},"name":{},"text":{},"component":{},"keyword":{}}],["9.7",{"_index":6575,"title":{"33-75":{}},"name":{},"text":{},"component":{},"keyword":{}}],["9.75277",{"_index":5323,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["9.8",{"_index":5267,"title":{"33-76":{}},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["9.9",{"_index":5680,"title":{"33-77":{}},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["9.99",{"_index":1031,"title":{},"name":{},"text":{"3":{},"57":{}},"component":{},"keyword":{}}],["9.prepar",{"_index":5381,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["9/ubuntu",{"_index":8776,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["90",{"_index":5249,"title":{},"name":{},"text":{"9":{},"51":{}},"component":{},"keyword":{}}],["90.23734",{"_index":5321,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["900",{"_index":5300,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["9000",{"_index":3420,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["90210",{"_index":3673,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["9104",{"_index":5766,"title":{},"name":{},"text":{"16":{},"17":{}},"component":{},"keyword":{}}],["915",{"_index":3924,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["916",{"_index":8094,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["918843",{"_index":2845,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["926",{"_index":2926,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["929",{"_index":3905,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["936",{"_index":3949,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["94105",{"_index":3672,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["946",{"_index":3922,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["949",{"_index":3885,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["950",{"_index":2923,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["9503",{"_index":6122,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["96.40465",{"_index":5259,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["97.75",{"_index":5320,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["99",{"_index":3731,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["99,999,999",{"_index":9058,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["99.8",{"_index":2890,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["9999.99::numer",{"_index":2184,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["9]','*#')from",{"_index":9012,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["9]','*#',2)from",{"_index":9013,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["9b000f2935f6",{"_index":6413,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["9d890e9",{"_index":2570,"title":{},"name":{},"text":{"5":{}},"component":{},"keyword":{}}],["9d8e04e4f819",{"_index":6499,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["_",{"_index":1492,"title":{},"name":{},"text":{"3":{},"6":{},"34":{}},"component":{},"keyword":{}}],["__",{"_index":7187,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["__bold__",{"_index":7188,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["_column_xxx",{"_index":6282,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["_italic_",{"_index":7189,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["_ivoryrepl",{"_index":6860,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["_pecif",{"_index":7158,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["_pg_fini",{"_index":5557,"title":{},"name":{},"text":{"12":{}},"component":{},"keyword":{}}],["_pg_init",{"_index":5555,"title":{},"name":{},"text":{"12":{}},"component":{},"keyword":{}}],["_return",{"_index":5990,"title":{},"name":{},"text":{"21":{}},"component":{},"keyword":{}}],["_specification_2",{"_index":7205,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["a(i",{"_index":1881,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["a,b,c",{"_index":9416,"title":{},"name":{},"text":{"70":{}},"component":{},"keyword":{}}],["a.b",{"_index":9231,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["a.bid",{"_index":3752,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["a.cid",{"_index":3753,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["a.id",{"_index":2010,"title":{},"name":{},"text":{"3":{},"7":{}},"component":{},"keyword":{}}],["a/b",{"_index":9491,"title":{},"name":{},"text":{"74":{}},"component":{},"keyword":{}}],["a1",{"_index":9406,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["a2",{"_index":9407,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["a3",{"_index":9408,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["a4",{"_index":9409,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["a5",{"_index":9410,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["a50789d",{"_index":2606,"title":{},"name":{},"text":{"5":{}},"component":{},"keyword":{}}],["a7",{"_index":6318,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["a=(steven,niu,1",{"_index":9398,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["a>2228810088200100onenewnodethreenewnode10088oldnodeoldnoded1100'),'/a/b",{"_index":9490,"title":{},"name":{},"text":{"74":{}},"component":{},"keyword":{}}],["extral",{"_index":5859,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["extraordinari",{"_index":7889,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["extrapol",{"_index":3587,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["extrem",{"_index":1364,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"33":{},"39":{},"43":{},"51":{}},"component":{},"keyword":{}}],["extutil",{"_index":2708,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["extutils::instal",{"_index":2765,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["e’foo",{"_index":1557,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["f",{"_index":335,"title":{},"name":{},"text":{"2":{},"3":{},"6":{},"7":{},"9":{},"27":{},"31":{},"32":{},"33":{},"41":{},"50":{},"51":{},"62":{},"74":{}},"component":{},"keyword":{}}],["f','g",{"_index":2262,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["f,f",{"_index":3693,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["f1",{"_index":1754,"title":{},"name":{},"text":{"3":{},"7":{}},"component":{},"keyword":{}}],["f2",{"_index":1865,"title":{},"name":{},"text":{"3":{},"7":{}},"component":{},"keyword":{}}],["f2(1",{"_index":9354,"title":{},"name":{},"text":{"66":{}},"component":{},"keyword":{}}],["f2(id",{"_index":9353,"title":{},"name":{},"text":{"66":{}},"component":{},"keyword":{}}],["f2(pg_catalog.int4,pg_catalog.int4",{"_index":9355,"title":{},"name":{},"text":{"66":{}},"component":{},"keyword":{}}],["f3",{"_index":1894,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["f[ast",{"_index":5129,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["f_%h:%m:%",{"_index":6936,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["f_def",{"_index":9136,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["f_defs(a",{"_index":9134,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["f_noparenthes",{"_index":9243,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["face",{"_index":5330,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["facil",{"_index":3778,"title":{},"name":{},"text":{"7":{},"8":{},"51":{},"52":{}},"component":{},"keyword":{}}],["facilit",{"_index":3114,"title":{},"name":{},"text":{"7":{},"9":{},"33":{},"38":{}},"component":{},"keyword":{}}],["fact",{"_index":1452,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"33":{},"34":{},"51":{}},"component":{},"keyword":{}}],["factor",{"_index":3342,"title":{},"name":{},"text":{"7":{},"9":{},"51":{}},"component":{},"keyword":{}}],["fail",{"_index":900,"title":{},"name":{},"text":{"3":{},"6":{},"7":{},"9":{},"21":{},"33":{},"39":{},"40":{},"51":{},"52":{},"61":{},"69":{}},"component":{},"keyword":{}}],["failed.when",{"_index":4311,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["failed_count",{"_index":8475,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["failov",{"_index":4333,"title":{"33-108":{},"51-12":{},"51-38":{}},"name":{},"text":{"9":{},"33":{},"40":{},"51":{}},"component":{},"keyword":{}}],["failur",{"_index":1439,"title":{"51-6":{},"52-43":{},"61-6":{}},"name":{},"text":{"3":{},"7":{},"9":{},"21":{},"33":{},"34":{},"35":{},"47":{},"51":{},"52":{}},"component":{},"keyword":{}}],["failures;deadlock",{"_index":4680,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["fairli",{"_index":6982,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["fall",{"_index":2093,"title":{},"name":{},"text":{"3":{},"4":{},"9":{},"21":{},"33":{},"51":{},"57":{}},"component":{},"keyword":{}}],["fallback",{"_index":3088,"title":{"61-6":{}},"name":{},"text":{"7":{},"61":{}},"component":{},"keyword":{}}],["fallen",{"_index":7998,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["fals",{"_index":1680,"title":{},"name":{},"text":{"3":{},"4":{},"8":{},"9":{},"16":{},"18":{},"21":{},"22":{},"26":{},"27":{},"33":{},"39":{},"40":{},"52":{},"54":{},"55":{},"66":{}},"component":{},"keyword":{}}],["famili",{"_index":7666,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["familiar",{"_index":6817,"title":{},"name":{},"text":{"33":{},"34":{},"35":{}},"component":{},"keyword":{}}],["faq",{"_index":2729,"title":{"35":{}},"name":{"35":{}},"text":{"6":{}},"component":{},"keyword":{}}],["far",{"_index":1606,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"43":{},"51":{},"52":{}},"component":{},"keyword":{}}],["farther",{"_index":7597,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["fashion",{"_index":1831,"title":{},"name":{},"text":{"3":{},"7":{}},"component":{},"keyword":{}}],["fast",{"_index":4534,"title":{},"name":{},"text":{"9":{},"27":{},"43":{},"46":{},"51":{},"52":{}},"component":{},"keyword":{}}],["faster",{"_index":1199,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"51":{}},"component":{},"keyword":{}}],["fastest",{"_index":1094,"title":{},"name":{},"text":{"3":{},"7":{},"9":{}},"component":{},"keyword":{}}],["fastpath",{"_index":8173,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["fast|spread",{"_index":4532,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["fatal",{"_index":906,"title":{},"name":{},"text":{"3":{},"9":{},"52":{}},"component":{},"keyword":{}}],["fault",{"_index":3954,"title":{},"name":{},"text":{"8":{},"37":{}},"component":{},"keyword":{}}],["favor",{"_index":1238,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"33":{}},"component":{},"keyword":{}}],["favorit",{"_index":3156,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["fawei",{"_index":3978,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["fc",{"_index":3168,"title":{},"name":{},"text":{"7":{},"9":{}},"component":{},"keyword":{}}],["fd",{"_index":4262,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["fd0,0,0,0,0,0,0",{"_index":7685,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["fdw",{"_index":2701,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["featuar",{"_index":3883,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["featur",{"_index":11,"title":{"54":{},"55":{},"1-4":{},"1-8":{},"3-134":{},"8-3":{},"8-4":{},"17-4":{},"17-7":{},"41-2":{},"58-2":{},"60-2":{},"61-2":{},"64-2":{}},"name":{},"text":{"1":{},"3":{},"4":{},"7":{},"8":{},"9":{},"10":{},"14":{},"17":{},"20":{},"27":{},"33":{},"34":{},"37":{},"39":{},"43":{},"47":{},"51":{},"52":{},"60":{},"65":{},"66":{},"67":{},"70":{},"71":{}},"component":{},"keyword":{}}],["fed",{"_index":1756,"title":{},"name":{},"text":{"3":{},"7":{},"9":{}},"component":{},"keyword":{}}],["feed",{"_index":1562,"title":{},"name":{},"text":{"3":{},"7":{},"9":{}},"component":{},"keyword":{}}],["feedback",{"_index":4905,"title":{},"name":{},"text":{"9":{},"34":{},"35":{},"51":{}},"component":{},"keyword":{}}],["feel",{"_index":7106,"title":{},"name":{},"text":{"34":{},"35":{}},"component":{},"keyword":{}}],["fegab",{"_index":8982,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["fenc",{"_index":7194,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["fetch",{"_index":338,"title":{},"name":{},"text":{"2":{},"3":{},"7":{},"9":{},"16":{},"24":{},"34":{},"51":{},"52":{}},"component":{},"keyword":{}}],["fetch`th",{"_index":4509,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["fetches/stor",{"_index":3240,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["few",{"_index":1481,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"33":{},"34":{},"35":{},"51":{},"52":{}},"component":{},"keyword":{}}],["fewer",{"_index":1130,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"51":{}},"component":{},"keyword":{}}],["field",{"_index":617,"title":{"3-119":{},"21-5":{},"33-27":{}},"name":{},"text":{"3":{},"7":{},"9":{},"15":{},"18":{},"19":{},"21":{},"22":{},"24":{},"26":{},"27":{},"29":{},"33":{},"39":{},"44":{},"51":{},"52":{},"63":{}},"component":{},"keyword":{}}],["fieldsep",{"_index":5031,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["fieldsep_zero",{"_index":5054,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["fifth",{"_index":3432,"title":{"34-31":{}},"name":{},"text":{"7":{},"57":{}},"component":{},"keyword":{}}],["figur",{"_index":7200,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["file",{"_index":306,"title":{"7-20":{},"7-26":{},"7-30":{},"9-146":{},"14-2":{},"14-5":{},"16-12":{},"40-4":{},"50-4":{},"51-9":{},"51-13":{},"62-32":{}},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"9":{},"12":{},"14":{},"15":{},"16":{},"17":{},"19":{},"20":{},"22":{},"25":{},"26":{},"29":{},"31":{},"33":{},"34":{},"35":{},"39":{},"45":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"59":{},"62":{}},"component":{},"keyword":{}}],["file.",{"_index":4513,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["file.gz",{"_index":3166,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["file.pg_dumpal",{"_index":4268,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["file.th",{"_index":5182,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["file=`fil",{"_index":4748,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["file=`filenam",{"_index":4931,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["file=ca.crt=ca.crt",{"_index":6854,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["file=filenam",{"_index":4878,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["file=filename[@weight",{"_index":4641,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["file=init.sql=/path/to/init.sql",{"_index":6877,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["file=script.sql",{"_index":5420,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["file=tls.crt=hippo.crt",{"_index":6856,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["file=tls.crt=keycloakdb",{"_index":6990,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["file=tls.key=hippo.key",{"_index":6855,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["file=tls.key=keycloakdb",{"_index":6989,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["file=walfil",{"_index":5181,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["file_fdw",{"_index":2842,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["filen@me@1",{"_index":4643,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["filenam",{"_index":2617,"title":{},"name":{},"text":{"5":{},"7":{},"9":{},"33":{},"53":{}},"component":{},"keyword":{}}],["filename.gz",{"_index":3158,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["filename[@weight",{"_index":4640,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["filenod",{"_index":5123,"title":{},"name":{},"text":{"9":{},"52":{}},"component":{},"keyword":{}}],["filenode=filenod",{"_index":5124,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["files.for",{"_index":3218,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["files/ivorysql/1.5/bin",{"_index":5394,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["files/ivorysql/1.5/data",{"_index":5392,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["files/ivorysql/2.1/bin",{"_index":5395,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["files/ivorysql/2.1/data",{"_index":5393,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["files\\ivorysql\\15\\bin",{"_index":5389,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["filesystem",{"_index":4501,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["file’",{"_index":4243,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["fill",{"_index":1040,"title":{},"name":{},"text":{"3":{},"9":{},"17":{},"33":{},"51":{},"52":{}},"component":{},"keyword":{}}],["filler",{"_index":1101,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["fillfactor",{"_index":4598,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["filter",{"_index":1108,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"39":{},"42":{},"52":{}},"component":{},"keyword":{}}],["filter='gzip",{"_index":3165,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["filter_claus",{"_index":1749,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["final",{"_index":1011,"title":{},"name":{},"text":{"3":{},"6":{},"9":{},"29":{},"33":{},"34":{},"35":{},"51":{},"52":{}},"component":{},"keyword":{}}],["financ",{"_index":7474,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["financi",{"_index":174,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["find",{"_index":1405,"title":{},"name":{},"text":{"3":{},"5":{},"6":{},"7":{},"9":{},"24":{},"33":{},"39":{},"46":{},"51":{},"52":{},"53":{},"57":{},"71":{}},"component":{},"keyword":{}}],["fine",{"_index":3134,"title":{},"name":{},"text":{"7":{},"38":{},"41":{},"54":{}},"component":{},"keyword":{}}],["finer",{"_index":6785,"title":{},"name":{},"text":{"33":{},"51":{}},"component":{},"keyword":{}}],["fingerprint",{"_index":7316,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["finish",{"_index":1290,"title":{},"name":{},"text":{"3":{},"9":{},"33":{},"34":{},"51":{},"52":{}},"component":{},"keyword":{}}],["finit",{"_index":8002,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["fire",{"_index":1414,"title":{},"name":{},"text":{"3":{},"7":{},"52":{}},"component":{},"keyword":{}}],["firewal",{"_index":272,"title":{"2-3":{},"2-8":{},"16-3":{}},"name":{},"text":{"2":{},"16":{}},"component":{},"keyword":{}}],["firewalld",{"_index":301,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["firewalld.servic",{"_index":5688,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["firm",{"_index":33,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["first",{"_index":111,"title":{"34-23":{},"34-27":{}},"name":{},"text":{"1":{},"3":{},"5":{},"6":{},"7":{},"9":{},"18":{},"19":{},"21":{},"22":{},"23":{},"24":{},"26":{},"33":{},"34":{},"35":{},"42":{},"50":{},"51":{},"52":{},"53":{},"57":{}},"component":{},"keyword":{}}],["first:creat",{"_index":7067,"title":{"34-35":{}},"name":{},"text":{},"component":{},"keyword":{}}],["firstli",{"_index":7197,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["fit",{"_index":1629,"title":{},"name":{},"text":{"3":{},"25":{},"51":{},"52":{}},"component":{},"keyword":{}}],["five",{"_index":2517,"title":{},"name":{},"text":{"5":{},"7":{},"9":{}},"component":{},"keyword":{}}],["fix",{"_index":1485,"title":{"8-8":{}},"name":{},"text":{"3":{},"6":{},"7":{},"8":{},"9":{},"33":{},"34":{},"35":{},"51":{},"52":{}},"component":{},"keyword":{}}],["fkey",{"_index":2801,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["fl",{"_index":3721,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["flag",{"_index":2405,"title":{},"name":{},"text":{"4":{},"7":{},"9":{},"21":{},"33":{},"52":{},"57":{}},"component":{},"keyword":{}}],["flatten",{"_index":3773,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["flex",{"_index":2599,"title":{},"name":{},"text":{"5":{}},"component":{},"keyword":{}}],["flexibl",{"_index":1062,"title":{},"name":{},"text":{"3":{},"7":{},"8":{},"9":{},"38":{},"41":{},"42":{},"45":{},"51":{},"70":{},"74":{}},"component":{},"keyword":{}}],["flg",{"_index":1968,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["flg1",{"_index":1974,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["flg2",{"_index":1985,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["flg3",{"_index":1987,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["flg4",{"_index":1989,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["flg5",{"_index":1991,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["flg6",{"_index":1993,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["fli",{"_index":3612,"title":{},"name":{},"text":{"7":{},"9":{}},"component":{},"keyword":{}}],["float",{"_index":994,"title":{},"name":{},"text":{"3":{},"9":{}},"component":{},"keyword":{}}],["float4",{"_index":1637,"title":{},"name":{},"text":{"3":{},"23":{}},"component":{},"keyword":{}}],["float8",{"_index":1830,"title":{},"name":{},"text":{"3":{},"23":{}},"component":{},"keyword":{}}],["floor",{"_index":8963,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["floor','or",{"_index":8965,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["floor','or',5,2",{"_index":8966,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["flow",{"_index":5948,"title":{"21-10":{}},"name":{},"text":{"21":{},"51":{}},"component":{},"keyword":{}}],["flowchart",{"_index":5586,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["flush",{"_index":3796,"title":{},"name":{},"text":{"7":{},"9":{},"51":{},"52":{}},"component":{},"keyword":{}}],["flush_lag",{"_index":411,"title":{},"name":{},"text":{"2":{},"52":{}},"component":{},"keyword":{}}],["flush_lsn",{"_index":408,"title":{},"name":{},"text":{"2":{},"52":{}},"component":{},"keyword":{}}],["flushed_lsn",{"_index":7944,"title":{},"name":{},"text":{"51":{},"52":{}},"component":{},"keyword":{}}],["fmt",{"_index":2138,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["fmt1",{"_index":2182,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["fn",{"_index":5487,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["fn_prokind",{"_index":6276,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["fno",{"_index":6153,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["focu",{"_index":3030,"title":{},"name":{},"text":{"7":{},"46":{}},"component":{},"keyword":{}}],["focus",{"_index":113,"title":{},"name":{},"text":{"1":{},"34":{}},"component":{},"keyword":{}}],["foe",{"_index":7170,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["fold",{"_index":1517,"title":{},"name":{},"text":{"3":{},"9":{}},"component":{},"keyword":{}}],["folder",{"_index":2553,"title":{},"name":{},"text":{"5":{},"9":{},"16":{},"33":{},"34":{}},"component":{},"keyword":{}}],["foldernam",{"_index":7214,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["follow",{"_index":308,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"11":{},"12":{},"13":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"25":{},"26":{},"27":{},"28":{},"29":{},"31":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{},"45":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"57":{},"62":{},"65":{},"66":{},"67":{},"69":{}},"component":{},"keyword":{}}],["following:`c",{"_index":4932,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["following:`no_indicator`do",{"_index":4410,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["following:`p",{"_index":4750,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["font",{"_index":7227,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["foo",{"_index":1518,"title":{},"name":{},"text":{"3":{},"9":{},"34":{},"51":{}},"component":{},"keyword":{}}],["foobar",{"_index":1332,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["foopass",{"_index":7939,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["footer",{"_index":5043,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["forbid",{"_index":5483,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["forbidden",{"_index":1792,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["forc",{"_index":259,"title":{"21":{},"61":{},"21-4":{},"21-7":{},"21-12":{},"61-4":{}},"name":{},"text":{"1":{},"3":{},"7":{},"8":{},"9":{},"18":{},"21":{},"29":{},"33":{},"51":{},"52":{},"57":{},"61":{}},"component":{},"keyword":{}}],["force_not_nul",{"_index":3231,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["force_nul",{"_index":3232,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["force_quot",{"_index":3230,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["force_view",{"_index":5950,"title":{},"name":{"21":{}},"text":{},"component":{},"keyword":{}}],["forcefulli",{"_index":5512,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["forceviewoid",{"_index":5979,"title":{},"name":{},"text":{"21":{}},"component":{},"keyword":{}}],["forcibl",{"_index":5611,"title":{},"name":{},"text":{"14":{},"51":{}},"component":{},"keyword":{}}],["foreach(@modul",{"_index":2767,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["foreign",{"_index":1411,"title":{"7-14":{},"7-49":{}},"name":{},"text":{"3":{},"6":{},"7":{},"8":{},"9":{},"51":{}},"component":{},"keyword":{}}],["foreignserv",{"_index":4811,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["forethought",{"_index":950,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["forev",{"_index":4816,"title":{},"name":{},"text":{"9":{},"51":{}},"component":{},"keyword":{}}],["forget",{"_index":6112,"title":{},"name":{},"text":{"22":{},"51":{}},"component":{},"keyword":{}}],["forgotten",{"_index":1381,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["fork",{"_index":5217,"title":{"34-27":{}},"name":{},"text":{"9":{},"19":{},"24":{},"33":{},"34":{},"35":{},"52":{}},"component":{},"keyword":{}}],["fork=fork",{"_index":5451,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["forknumb",{"_index":8683,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["form",{"_index":91,"title":{},"name":{},"text":{"1":{},"3":{},"7":{},"9":{},"18":{},"22":{},"26":{},"51":{},"52":{},"54":{},"57":{},"66":{}},"component":{},"keyword":{}}],["form:language_territory.characterset",{"_index":8817,"title":{},"name":{},"text":{"54":{}},"component":{},"keyword":{}}],["formal",{"_index":5894,"title":{},"name":{},"text":{"18":{},"51":{},"66":{}},"component":{},"keyword":{}}],["format",{"_index":2065,"title":{"7-26":{},"7-27":{},"7-28":{},"7-29":{},"65-4":{}},"name":{},"text":{"3":{},"4":{},"7":{},"9":{},"15":{},"16":{},"25":{},"26":{},"33":{},"34":{},"38":{},"39":{},"42":{},"50":{},"51":{},"54":{},"56":{},"57":{},"65":{},"74":{}},"component":{},"keyword":{}}],["format('array",{"_index":9302,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["format('polymorph",{"_index":9298,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["format=`format",{"_index":4749,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["format=format",{"_index":4476,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["format=latex",{"_index":5036,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["format_nam",{"_index":3224,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["formdata_pg_attribut",{"_index":6317,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["formdata_pg_force_view",{"_index":5987,"title":{},"name":{},"text":{"21":{}},"component":{},"keyword":{}}],["former",{"_index":7950,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["forti",{"_index":7837,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["fortun",{"_index":3153,"title":{},"name":{},"text":{"7":{},"9":{},"33":{}},"component":{},"keyword":{}}],["forward",{"_index":2310,"title":{},"name":{},"text":{"3":{},"9":{},"34":{},"35":{},"52":{},"57":{}},"component":{},"keyword":{}}],["forward_token",{"_index":6073,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["found",{"_index":888,"title":{},"name":{},"text":{"3":{},"6":{},"7":{},"9":{},"16":{},"22":{},"33":{},"34":{},"37":{},"51":{},"52":{},"57":{},"62":{},"66":{}},"component":{},"keyword":{}}],["found.in",{"_index":5152,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["foundat",{"_index":5613,"title":{},"name":{},"text":{"14":{},"34":{},"35":{},"37":{},"74":{}},"component":{},"keyword":{}}],["four",{"_index":1523,"title":{},"name":{},"text":{"3":{},"7":{},"8":{},"9":{},"25":{},"34":{},"51":{},"52":{}},"component":{},"keyword":{}}],["fourth",{"_index":1751,"title":{"34-30":{}},"name":{},"text":{"3":{},"34":{}},"component":{},"keyword":{}}],["fr0m9chu3ce8",{"_index":6480,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["fraction",{"_index":1777,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"57":{}},"component":{},"keyword":{}}],["fragment",{"_index":7190,"title":{},"name":{},"text":{"34":{},"74":{}},"component":{},"keyword":{}}],["fragment](#frag",{"_index":7192,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["frame",{"_index":1810,"title":{},"name":{},"text":{"3":{},"51":{}},"component":{},"keyword":{}}],["frame_claus",{"_index":1801,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["frame_end",{"_index":1804,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["frame_exclus",{"_index":1803,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["frame_start",{"_index":1802,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["framework",{"_index":2402,"title":{"12":{},"13":{},"15":{}},"name":{},"text":{"4":{},"12":{},"13":{},"15":{}},"component":{},"keyword":{}}],["framework_design",{"_index":5584,"title":{},"name":{"13":{}},"text":{},"component":{},"keyword":{}}],["francisco",{"_index":3671,"title":{},"name":{},"text":{"7":{},"39":{}},"component":{},"keyword":{}}],["free",{"_index":2692,"title":{},"name":{},"text":{"6":{},"7":{},"9":{},"10":{},"34":{},"35":{},"51":{},"52":{}},"component":{},"keyword":{}}],["freebsd",{"_index":5292,"title":{},"name":{},"text":{"9":{},"52":{}},"component":{},"keyword":{}}],["freedom",{"_index":3750,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["freeli",{"_index":976,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["freez",{"_index":3225,"title":{},"name":{},"text":{"7":{},"9":{},"51":{},"52":{}},"component":{},"keyword":{}}],["frequenc",{"_index":3094,"title":{},"name":{},"text":{"7":{},"9":{},"51":{}},"component":{},"keyword":{}}],["frequent",{"_index":1134,"title":{},"name":{},"text":{"3":{},"7":{},"51":{},"52":{}},"component":{},"keyword":{}}],["frequently.specifi",{"_index":4921,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["fresh",{"_index":3809,"title":{},"name":{},"text":{"7":{},"9":{},"37":{}},"component":{},"keyword":{}}],["freshli",{"_index":3616,"title":{},"name":{},"text":{"7":{},"9":{},"51":{}},"component":{},"keyword":{}}],["friday",{"_index":2076,"title":{},"name":{},"text":{"3":{},"57":{}},"component":{},"keyword":{}}],["friend",{"_index":6629,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["friendli",{"_index":7085,"title":{},"name":{},"text":{"34":{},"37":{}},"component":{},"keyword":{}}],["from.bi",{"_index":4572,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["from_collapse_limit",{"_index":3770,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["from_list",{"_index":2007,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["from_tz",{"_index":677,"title":{"3-163":{},"57-39":{}},"name":{},"text":{"3":{},"57":{}},"component":{},"keyword":{}}],["from_tz('2021",{"_index":2035,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["from_tz(null,'sast",{"_index":2043,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["from_tz(timestamp",{"_index":9109,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["front",{"_index":4292,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["frontend",{"_index":5668,"title":{"16-10":{},"16-11":{}},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["frontend/backend",{"_index":5499,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["frozen",{"_index":3187,"title":{},"name":{},"text":{"7":{},"9":{},"51":{}},"component":{},"keyword":{}}],["frozen.if",{"_index":4448,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["frozenid",{"_index":8336,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["frozentransactionid",{"_index":7806,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["fs",{"_index":5486,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["fsgroup",{"_index":6955,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["fsm",{"_index":5452,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["fsync",{"_index":3803,"title":{},"name":{},"text":{"7":{},"9":{},"52":{}},"component":{},"keyword":{}}],["ft",{"_index":2829,"title":{},"name":{},"text":{"6":{},"9":{}},"component":{},"keyword":{}}],["full",{"_index":29,"title":{"52-43":{}},"name":{},"text":{"1":{},"3":{},"7":{},"8":{},"9":{},"16":{},"21":{},"27":{},"28":{},"33":{},"38":{},"39":{},"43":{},"51":{},"52":{},"57":{}},"component":{},"keyword":{}}],["full_page_writ",{"_index":3816,"title":{},"name":{},"text":{"7":{},"9":{}},"component":{},"keyword":{}}],["fulli",{"_index":1338,"title":{},"name":{},"text":{"3":{},"6":{},"7":{},"8":{},"9":{},"18":{},"33":{},"37":{},"48":{},"51":{},"52":{}},"component":{},"keyword":{}}],["fullpag",{"_index":5466,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["fun1",{"_index":9379,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["fun1('a",{"_index":9381,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["fun1(1",{"_index":9380,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["fun1(v",{"_index":9377,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["funarg=maxfunarg",{"_index":9222,"title":{},"name":{},"text":{"62":{}},"component":{},"keyword":{}}],["func",{"_index":2308,"title":{},"name":{},"text":{"3":{},"18":{}},"component":{},"keyword":{}}],["func_appl",{"_index":5826,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["func_from_subprocfunc",{"_index":6171,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["func_nam",{"_index":8831,"title":{},"name":{},"text":{"55":{}},"component":{},"keyword":{}}],["func_result",{"_index":9150,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["func_typ",{"_index":6368,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["funccal",{"_index":5828,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["funcexpr",{"_index":5840,"title":{"24-15":{}},"name":{},"text":{"18":{},"24":{}},"component":{},"keyword":{}}],["funcexpr.parent_func",{"_index":6193,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["funcid",{"_index":6173,"title":{},"name":{},"text":{"24":{},"52":{}},"component":{},"keyword":{}}],["funcnam",{"_index":8581,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["funcnamegetcandid",{"_index":6260,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["function",{"_index":63,"title":{"22":{},"23":{},"25":{},"26":{},"28":{},"57":{},"62":{},"68":{},"3-121":{},"3-123":{},"3-130":{},"3-162":{},"3-204":{},"3-257":{},"7-40":{},"7-41":{},"11-2":{},"13-1":{},"23-3":{},"26-2":{},"26-4":{},"29-5":{},"40-7":{},"46-11":{},"47-6":{},"52-27":{},"56-2":{},"57-2":{},"57-3":{},"57-4":{},"57-5":{},"57-6":{},"57-7":{},"57-8":{},"57-9":{},"57-10":{},"57-11":{},"57-12":{},"57-13":{},"57-14":{},"57-15":{},"57-16":{},"57-17":{},"57-18":{},"57-19":{},"57-20":{},"57-21":{},"57-22":{},"57-23":{},"57-24":{},"57-25":{},"57-26":{},"57-27":{},"57-28":{},"57-29":{},"57-30":{},"57-31":{},"57-32":{},"57-33":{},"57-34":{},"57-35":{},"57-36":{},"57-37":{},"57-38":{},"57-39":{},"57-40":{},"57-41":{},"57-42":{},"57-43":{},"57-44":{},"57-45":{},"57-46":{},"57-47":{},"57-48":{},"57-49":{},"57-50":{},"58-4":{},"59-2":{},"62-3":{},"62-4":{},"62-5":{},"62-6":{},"62-7":{},"62-8":{},"62-9":{},"62-10":{},"62-11":{},"62-12":{},"62-13":{},"62-14":{},"62-15":{},"62-16":{},"62-17":{},"62-18":{},"62-19":{},"62-20":{},"62-29":{},"62-30":{},"63-2":{},"66-2":{},"66-3":{},"66-5":{},"66-7":{},"67-2":{},"67-3":{},"67-4":{},"67-5":{},"68-3":{},"69-2":{},"69-5":{},"70-2":{},"71-2":{},"72-2":{},"73-2":{},"74-3":{},"74-4":{}},"name":{},"text":{"1":{},"3":{},"4":{},"6":{},"7":{},"8":{},"9":{},"12":{},"14":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"33":{},"34":{},"35":{},"38":{},"39":{},"40":{},"42":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"51":{},"52":{},"54":{},"55":{},"56":{},"57":{},"58":{},"61":{},"62":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}},"component":{},"keyword":{}}],["function'",{"_index":9352,"title":{},"name":{},"text":{"66":{},"69":{}},"component":{},"keyword":{}}],["function/procedur",{"_index":9217,"title":{"62-32":{}},"name":{},"text":{},"component":{},"keyword":{}}],["function/stor",{"_index":5895,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["function=funct",{"_index":4949,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["function_declar",{"_index":2320,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["function_definit",{"_index":2345,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["function_from",{"_index":6170,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["function_nam",{"_index":1735,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["function_procedur",{"_index":6016,"title":{},"name":{"22":{}},"text":{},"component":{},"keyword":{}}],["function_sh.sql",{"_index":2916,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["functions/stor",{"_index":9133,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["function’",{"_index":6261,"title":{},"name":{},"text":{"26":{},"66":{},"69":{}},"component":{},"keyword":{}}],["function→fn_rettyp",{"_index":6262,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["fund",{"_index":176,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["fundament",{"_index":3129,"title":{},"name":{},"text":{"7":{},"23":{}},"component":{},"keyword":{}}],["funnel",{"_index":7892,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["further",{"_index":1144,"title":{},"name":{},"text":{"3":{},"7":{},"8":{},"9":{},"33":{},"37":{},"38":{},"51":{}},"component":{},"keyword":{}}],["furthermor",{"_index":1069,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"51":{},"74":{}},"component":{},"keyword":{}}],["futur",{"_index":92,"title":{},"name":{},"text":{"1":{},"3":{},"7":{},"8":{},"9":{},"31":{},"33":{},"34":{},"35":{},"51":{},"52":{}},"component":{},"keyword":{}}],["fuzzi",{"_index":6119,"title":{},"name":{},"text":{"23":{},"57":{},"63":{}},"component":{},"keyword":{}}],["fv_custom",{"_index":9196,"title":{},"name":{},"text":{"61":{}},"component":{},"keyword":{}}],["fvoid",{"_index":5976,"title":{},"name":{},"text":{"21":{}},"component":{},"keyword":{}}],["fw_psc_s_mv_chan_bix",{"_index":2940,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["fw_psc_s_mv_promo_bix",{"_index":2943,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["fw_psc_s_mv_subcat_bix",{"_index":2945,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["fw_psc_s_mv_wd_bix",{"_index":2947,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["fweek_pscat_sales_mv",{"_index":2941,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["g",{"_index":2263,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"62":{}},"component":{},"keyword":{}}],["g(i",{"_index":2024,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["g).v",{"_index":4614,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["ga",{"_index":3713,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["gain",{"_index":6161,"title":{},"name":{},"text":{"24":{},"51":{}},"component":{},"keyword":{}}],["game",{"_index":194,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["gao",{"_index":4016,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["gap",{"_index":3948,"title":{},"name":{},"text":{"8":{},"45":{},"51":{}},"component":{},"keyword":{}}],["garbag",{"_index":5068,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["gather",{"_index":1098,"title":{},"name":{},"text":{"3":{},"24":{},"33":{},"51":{},"52":{}},"component":{},"keyword":{}}],["gaug",{"_index":8427,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["gb18030",{"_index":2385,"title":{"4":{},"4-3":{}},"name":{"4":{}},"text":{"4":{},"8":{}},"component":{},"keyword":{}}],["gb18030_2022",{"_index":2386,"title":{"4-3":{}},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["gb18030_to_utf8",{"_index":2439,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["gb_linear(mincod",{"_index":2466,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["gc",{"_index":6577,"title":{"33-76":{}},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["gcc",{"_index":6429,"title":{},"name":{},"text":{"30":{},"31":{},"32":{},"37":{},"41":{},"43":{}},"component":{},"keyword":{}}],["ge",{"_index":3980,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["gemini",{"_index":7342,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["gen",{"_index":7668,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["genai",{"_index":7584,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["genbki.pl",{"_index":5614,"title":{},"name":{},"text":{"14":{}},"component":{},"keyword":{}}],["gener",{"_index":846,"title":{"6-26":{},"9-189":{},"34-31":{},"34-44":{},"68-3":{}},"name":{},"text":{"3":{},"4":{},"6":{},"7":{},"8":{},"9":{},"12":{},"14":{},"16":{},"18":{},"21":{},"26":{},"27":{},"28":{},"33":{},"34":{},"35":{},"37":{},"38":{},"39":{},"41":{},"42":{},"44":{},"46":{},"50":{},"51":{},"52":{},"67":{},"68":{},"70":{}},"component":{},"keyword":{}}],["generate_queri",{"_index":7336,"title":{"39-7":{}},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["generate_query('find",{"_index":7393,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["generate_query('gener",{"_index":7416,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["generate_query('list",{"_index":7442,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["generate_query('show",{"_index":7423,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["generate_seri",{"_index":7419,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["generate_series(1",{"_index":2023,"title":{},"name":{},"text":{"3":{},"39":{}},"component":{},"keyword":{}}],["generate_series(1,10",{"_index":1790,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["generate_series(1,100000",{"_index":5266,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["generate_series(1,5",{"_index":1880,"title":{},"name":{},"text":{"3":{},"33":{}},"component":{},"keyword":{}}],["generic\",ubuntu,\"(none)\",5568,292,532,x86_64,,864122",{"_index":7662,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["genet",{"_index":3746,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["genuineintel,\"genuineintel",{"_index":7664,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["geograph",{"_index":205,"title":{},"name":{},"text":{"1":{},"3":{},"38":{}},"component":{},"keyword":{}}],["geographi",{"_index":7654,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["geometr",{"_index":1007,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["geometri",{"_index":7653,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["geospati",{"_index":3907,"title":{},"name":{},"text":{"8":{},"38":{},"44":{}},"component":{},"keyword":{}}],["geqo_threshold",{"_index":3749,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["gerhardi",{"_index":3991,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["get",{"_index":2060,"title":{"10-1":{},"33-2":{},"34-7":{},"35-2":{}},"name":{},"text":{"3":{},"5":{},"7":{},"9":{},"30":{},"33":{},"34":{},"35":{},"51":{},"52":{},"53":{}},"component":{},"keyword":{}}],["get_client_info",{"_index":8837,"title":{},"name":{},"text":{"55":{}},"component":{},"keyword":{}}],["get_encoding_id",{"_index":2404,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["get_entryid",{"_index":8839,"title":{},"name":{},"text":{"55":{}},"component":{},"keyword":{}}],["get_hostvari",{"_index":5814,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["get_isdba",{"_index":8843,"title":{},"name":{},"text":{"55":{},"57":{}},"component":{},"keyword":{}}],["get_lang",{"_index":8845,"title":{},"name":{},"text":{"55":{}},"component":{},"keyword":{}}],["get_languag",{"_index":8847,"title":{},"name":{},"text":{"55":{}},"component":{},"keyword":{}}],["get_parameter_descr",{"_index":9357,"title":{},"name":{},"text":{"66":{}},"component":{},"keyword":{}}],["get_parameter_descript",{"_index":5812,"title":{},"name":{},"text":{"18":{},"26":{},"66":{}},"component":{},"keyword":{}}],["get_parameter_description('insert",{"_index":6280,"title":{},"name":{},"text":{"26":{},"66":{}},"component":{},"keyword":{}}],["get_sessionid",{"_index":8849,"title":{},"name":{},"text":{"55":{},"57":{}},"component":{},"keyword":{}}],["get_sid",{"_index":8851,"title":{},"name":{},"text":{"55":{}},"component":{},"keyword":{}}],["get_termin",{"_index":8841,"title":{},"name":{},"text":{"55":{}},"component":{},"keyword":{}}],["getcaseswitchmodefromcontrol",{"_index":5917,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["getf1",{"_index":1897,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["getf1(cast(row(11,'thi",{"_index":1904,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["getf1(myrowtyp",{"_index":1900,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["getf1(myt",{"_index":1895,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["getf1(record",{"_index":1902,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["getf1(row(1,2.5,'thi",{"_index":1898,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["gettext",{"_index":2605,"title":{},"name":{},"text":{"5":{},"48":{}},"component":{},"keyword":{}}],["gettimeofday",{"_index":3585,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["gi",{"_index":7319,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["gidx_part",{"_index":2376,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["gidx_u",{"_index":2377,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["gidxpart",{"_index":2366,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["gidxpart1",{"_index":2367,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["gidxpart1_b_idx",{"_index":2373,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["gidxpart2",{"_index":2369,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["gidxpart2_b_idx",{"_index":2381,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["gigabit",{"_index":8772,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["gigabyt",{"_index":3162,"title":{},"name":{},"text":{"7":{},"51":{},"52":{}},"component":{},"keyword":{}}],["gist",{"_index":3545,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["git",{"_index":2582,"title":{},"name":{},"text":{"5":{},"16":{},"31":{},"32":{},"33":{},"34":{},"35":{},"39":{},"40":{},"46":{}},"component":{},"keyword":{}}],["git@github.com:$user/ivorysql.git",{"_index":7151,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["git@github.com:${your_github_un}/ivori",{"_index":6618,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["gitee:https://gitee.com/ivorysql",{"_index":7110,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["github",{"_index":3940,"title":{},"name":{},"text":{"8":{},"10":{},"16":{},"33":{},"34":{},"35":{}},"component":{},"keyword":{}}],["gitignor",{"_index":3936,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["gitop",{"_index":6725,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["give",{"_index":1387,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"33":{},"34":{},"51":{},"52":{}},"component":{},"keyword":{}}],["given",{"_index":931,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"33":{},"46":{},"51":{},"52":{},"54":{},"57":{}},"component":{},"keyword":{}}],["glass",{"_index":5803,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["global",{"_index":809,"title":{"3-265":{},"3-266":{},"3-269":{},"3-271":{},"3-274":{}},"name":{},"text":{"3":{},"4":{},"6":{},"7":{},"8":{},"9":{},"14":{},"19":{},"33":{},"37":{},"41":{},"51":{},"52":{},"73":{}},"component":{},"keyword":{}}],["global/pg_control",{"_index":9173,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["globalshowregist",{"_index":5739,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["gmt",{"_index":2123,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["gnome",{"_index":7306,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["gnu",{"_index":2726,"title":{},"name":{},"text":{"6":{},"7":{},"30":{},"31":{},"32":{}},"component":{},"keyword":{}}],["go",{"_index":1242,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"10":{},"16":{},"17":{},"33":{},"34":{},"35":{},"51":{},"52":{}},"component":{},"keyword":{}}],["goal",{"_index":7,"title":{"1-3":{}},"name":{},"text":{"3":{},"51":{},"52":{}},"component":{},"keyword":{}}],["goat",{"_index":7234,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["goe",{"_index":1763,"title":{},"name":{},"text":{"3":{},"33":{},"51":{}},"component":{},"keyword":{}}],["gone",{"_index":3387,"title":{},"name":{},"text":{"7":{},"51":{}},"component":{},"keyword":{}}],["good",{"_index":102,"title":{},"name":{},"text":{"1":{},"3":{},"6":{},"7":{},"9":{},"33":{},"34":{},"35":{},"39":{},"51":{},"56":{}},"component":{},"keyword":{}}],["goog",{"_index":2026,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["googl",{"_index":6665,"title":{},"name":{},"text":{"33":{},"39":{}},"component":{},"keyword":{}}],["govern",{"_index":1585,"title":{"34-4":{}},"name":{},"text":{"3":{},"37":{},"41":{}},"component":{},"keyword":{}}],["gpgcheck=0",{"_index":2530,"title":{},"name":{},"text":{"5":{},"53":{}},"component":{},"keyword":{}}],["gpolygonind",{"_index":3539,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["gpt",{"_index":7344,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["grace",{"_index":8000,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["grade",{"_index":7882,"title":{},"name":{},"text":{"51":{},"56":{}},"component":{},"keyword":{}}],["grafana",{"_index":6953,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["grafana.yaml",{"_index":6967,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["grain",{"_index":1264,"title":{},"name":{},"text":{"3":{},"7":{},"38":{},"41":{},"51":{},"54":{}},"component":{},"keyword":{}}],["gram.i",{"_index":5547,"title":{},"name":{},"text":{"12":{}},"component":{},"keyword":{}}],["grammar",{"_index":2983,"title":{"7-11":{},"21-3":{},"24-10":{}},"name":{},"text":{"18":{},"20":{},"21":{},"29":{},"69":{}},"component":{},"keyword":{}}],["grant",{"_index":925,"title":{},"name":{},"text":{"3":{},"5":{},"6":{},"7":{},"8":{},"9":{},"16":{},"51":{},"52":{},"53":{}},"component":{},"keyword":{}}],["grant/revok",{"_index":4795,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["grant_sh.sql",{"_index":2910,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["granular",{"_index":3196,"title":{},"name":{},"text":{"7":{},"9":{},"34":{},"35":{},"51":{}},"component":{},"keyword":{}}],["graph",{"_index":7552,"title":{},"name":{},"text":{"44":{},"46":{}},"component":{},"keyword":{}}],["graphic",{"_index":3898,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["great",{"_index":948,"title":{},"name":{},"text":{"3":{},"9":{},"33":{},"46":{},"51":{}},"component":{},"keyword":{}}],["greater",{"_index":1154,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"33":{},"51":{},"57":{}},"component":{},"keyword":{}}],["greatest",{"_index":767,"title":{"3-233":{}},"name":{},"text":{"3":{},"9":{}},"component":{},"keyword":{}}],["greatest('a",{"_index":2260,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["greatest('a','b','a','b",{"_index":2252,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["greatest('harri",{"_index":2253,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["greatest(1.1",{"_index":2257,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["greatest(age(c.relfrozenxid),age(t.relfrozenxid",{"_index":7828,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["greatest(expr1,expr2",{"_index":2249,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["greatli",{"_index":7115,"title":{},"name":{},"text":{"34":{},"35":{},"45":{}},"component":{},"keyword":{}}],["grep",{"_index":378,"title":{},"name":{},"text":{"2":{},"5":{},"6":{},"9":{},"16":{},"30":{},"41":{},"52":{},"53":{}},"component":{},"keyword":{}}],["groonga",{"_index":7521,"title":{"43-5":{}},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["groonga’",{"_index":7527,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["group",{"_index":658,"title":{"3-147":{}},"name":{},"text":{"3":{},"7":{},"9":{},"33":{},"51":{},"52":{},"57":{}},"component":{},"keyword":{}}],["groupinstal",{"_index":2581,"title":{},"name":{},"text":{"5":{}},"component":{},"keyword":{}}],["grow",{"_index":3743,"title":{},"name":{},"text":{"7":{},"33":{},"39":{},"51":{},"52":{}},"component":{},"keyword":{}}],["growth",{"_index":3768,"title":{},"name":{},"text":{"7":{},"51":{},"52":{}},"component":{},"keyword":{}}],["gsm",{"_index":4869,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["gss_authent",{"_index":8470,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["gssapi",{"_index":7364,"title":{},"name":{},"text":{"39":{},"52":{}},"component":{},"keyword":{}}],["gssopenserv",{"_index":8206,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["gtod",{"_index":5316,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["guarante",{"_index":820,"title":{"3-271":{},"3-274":{}},"name":{},"text":{"3":{},"6":{},"7":{},"9":{},"33":{},"51":{},"52":{}},"component":{},"keyword":{}}],["guard",{"_index":3817,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["guc",{"_index":42,"title":{"15":{},"15-1":{},"25-3":{},"25-4":{},"25-5":{},"67-3":{}},"name":{},"text":{"1":{},"15":{},"20":{},"25":{},"27":{},"59":{}},"component":{},"keyword":{}}],["guc_framework",{"_index":5622,"title":{},"name":{"15":{}},"text":{},"component":{},"keyword":{}}],["gui",{"_index":3675,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["guid",{"_index":827,"title":{"3":{},"6":{},"7":{},"16":{},"17":{},"34":{},"34-5":{},"34-52":{}},"name":{},"text":{"8":{},"33":{},"64":{}},"component":{},"keyword":{}}],["guidelin",{"_index":3808,"title":{"34-17":{},"35-4":{},"39-10":{}},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["gunzip",{"_index":3160,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["guy",{"_index":7092,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["gz",{"_index":4518,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["gzip",{"_index":3157,"title":{},"name":{},"text":{"7":{},"9":{}},"component":{},"keyword":{}}],["h",{"_index":340,"title":{},"name":{},"text":{"2":{},"3":{},"5":{},"7":{},"8":{},"9":{},"32":{},"53":{}},"component":{},"keyword":{}}],["h.thi",{"_index":5477,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["h127.0.0.1",{"_index":6484,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["h2/\"second",{"_index":7226,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["ha",{"_index":6434,"title":{"31-1":{},"31-2":{},"33-15":{},"33-16":{}},"name":{},"text":{"31":{},"32":{},"33":{}},"component":{},"keyword":{}}],["hac",{"_index":6533,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["hac_ivypatroni1",{"_index":6475,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["hac_ivypatroni2",{"_index":6481,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["hack",{"_index":7103,"title":{},"name":{},"text":{"34":{},"35":{}},"component":{},"keyword":{}}],["hacker",{"_index":7126,"title":{},"name":{},"text":{"34":{},"35":{}},"component":{},"keyword":{}}],["haiguang",{"_index":7296,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["haiku",{"_index":7347,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["half",{"_index":3177,"title":{},"name":{},"text":{"7":{},"51":{},"57":{}},"component":{},"keyword":{}}],["hand",{"_index":3683,"title":{},"name":{},"text":{"7":{},"9":{},"18":{},"34":{},"35":{},"51":{}},"component":{},"keyword":{}}],["handi",{"_index":7131,"title":{},"name":{},"text":{"34":{},"35":{}},"component":{},"keyword":{}}],["handl",{"_index":1548,"title":{"4-4":{},"7-19":{},"14-7":{},"39-11":{},"51-41":{}},"name":{},"text":{"3":{},"7":{},"8":{},"9":{},"13":{},"18":{},"20":{},"21":{},"26":{},"33":{},"34":{},"39":{},"42":{},"43":{},"44":{},"51":{},"52":{},"57":{},"66":{}},"component":{},"keyword":{}}],["handler",{"_index":5892,"title":{},"name":{},"text":{"18":{},"24":{},"54":{}},"component":{},"keyword":{}}],["hankook",{"_index":128,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["happen",{"_index":911,"title":{"33-5":{}},"name":{},"text":{"3":{},"7":{},"9":{},"12":{},"33":{},"34":{},"35":{},"51":{},"52":{}},"component":{},"keyword":{}}],["happili",{"_index":8021,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["har",{"_index":3958,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["hard",{"_index":1662,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"34":{},"51":{}},"component":{},"keyword":{}}],["harder",{"_index":4820,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["hardwar",{"_index":4203,"title":{"9-175":{}},"name":{},"text":{"9":{},"33":{},"37":{},"51":{},"53":{}},"component":{},"keyword":{}}],["hardware).thi",{"_index":4619,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["harm",{"_index":1325,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["harmless",{"_index":4732,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["harra",{"_index":2255,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["harri",{"_index":2256,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["harriot",{"_index":2254,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["has_poly_argu",{"_index":6159,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["has_slash",{"_index":6050,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["hash",{"_index":1219,"title":{},"name":{},"text":{"3":{},"6":{},"7":{},"9":{},"24":{},"52":{}},"component":{},"keyword":{}}],["hashbatchalloc",{"_index":8294,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["hashbatchelect",{"_index":8296,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["hashbatchload",{"_index":8297,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["hashbuildalloc",{"_index":8298,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["hashbuildelect",{"_index":8299,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["hashbuildhashinn",{"_index":8300,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["hashbuildhashout",{"_index":8301,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["hashgrowbatchesalloc",{"_index":8302,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["hashgrowbatchesdecid",{"_index":8303,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["hashgrowbatcheselect",{"_index":8304,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["hashgrowbatchesfinish",{"_index":8305,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["hashgrowbatchesrepartit",{"_index":8306,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["hashgrowbucketsalloc",{"_index":8308,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["hashgrowbucketselect",{"_index":8309,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["hashgrowbucketsreinsert",{"_index":8310,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["hashing)and",{"_index":8516,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["hasn’t",{"_index":3385,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["hat",{"_index":6433,"title":{},"name":{},"text":{"30":{},"31":{},"32":{}},"component":{},"keyword":{}}],["havbeen",{"_index":8530,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["have",{"_index":1690,"title":{},"name":{},"text":{"3":{},"4":{},"7":{},"9":{},"33":{},"51":{},"54":{}},"component":{},"keyword":{}}],["have_msgpack=1",{"_index":7529,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["have_xlocale_h",{"_index":7724,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["hdt",{"_index":2125,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["head",{"_index":7181,"title":{},"name":{},"text":{"34":{},"51":{}},"component":{},"keyword":{}}],["header",{"_index":799,"title":{"3-259":{}},"name":{},"text":{"7":{},"8":{},"9":{},"34":{},"35":{},"39":{},"45":{},"51":{}},"component":{},"keyword":{}}],["heal",{"_index":6739,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["health",{"_index":6674,"title":{},"name":{},"text":{"33":{},"40":{},"51":{}},"component":{},"keyword":{}}],["healthi",{"_index":98,"title":{},"name":{},"text":{"1":{},"34":{}},"component":{},"keyword":{}}],["heap",{"_index":1213,"title":{},"name":{},"text":{"3":{},"7":{},"8":{},"9":{},"51":{},"52":{},"67":{},"70":{}},"component":{},"keyword":{}}],["heap.c",{"_index":6316,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["heap_blks_hit",{"_index":8574,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["heap_blks_read",{"_index":8573,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["heap_blks_scan",{"_index":8633,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["heap_blks_tot",{"_index":8632,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["heap_blks_vacuum",{"_index":8634,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["heap_form_tupl",{"_index":6303,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["heap_hasrowid",{"_index":6306,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["heap_prepare_insert",{"_index":6336,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["heap_tuples_scan",{"_index":8643,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["heap_tuples_written",{"_index":8644,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["heapallindex",{"_index":4453,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["heaptuplehead",{"_index":6337,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["heaptupleheaderdata",{"_index":6304,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["heaptuplesetrowid(tup",{"_index":6342,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["hear",{"_index":7247,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["heartbeat",{"_index":7983,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["heavi",{"_index":7787,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["heavili",{"_index":7783,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["heavyweight",{"_index":8186,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["held",{"_index":1373,"title":{},"name":{},"text":{"3":{},"51":{},"52":{}},"component":{},"keyword":{}}],["hello",{"_index":1957,"title":{},"name":{},"text":{"3":{},"57":{}},"component":{},"keyword":{}}],["hello,mr.li",{"_index":2279,"title":{},"name":{},"text":{"3":{},"7":{}},"component":{},"keyword":{}}],["hello](hello",{"_index":7228,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["helm",{"_index":3892,"title":{},"name":{},"text":{"8":{},"32":{}},"component":{},"keyword":{}}],["helm_chart",{"_index":6529,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["help",{"_index":185,"title":{},"name":{},"text":{"1":{},"2":{},"5":{},"6":{},"7":{},"8":{},"9":{},"33":{},"34":{},"35":{},"37":{},"38":{},"39":{},"41":{},"46":{},"47":{},"51":{},"53":{},"62":{}},"component":{},"keyword":{}}],["help[=`top",{"_index":5059,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["helper",{"_index":8960,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["hemco",{"_index":158,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["henc",{"_index":3668,"title":{},"name":{},"text":{"7":{},"9":{},"46":{},"51":{}},"component":{},"keyword":{}}],["here",{"_index":428,"title":{},"name":{},"text":{"2":{},"3":{},"5":{},"6":{},"7":{},"9":{},"21":{},"33":{},"34":{},"44":{},"51":{},"52":{},"53":{}},"component":{},"keyword":{}}],["here’",{"_index":3453,"title":{},"name":{},"text":{"7":{},"33":{}},"component":{},"keyword":{}}],["hex",{"_index":3258,"title":{},"name":{},"text":{"7":{},"9":{}},"component":{},"keyword":{}}],["hexadecim",{"_index":1524,"title":{},"name":{},"text":{"3":{},"9":{}},"component":{},"keyword":{}}],["hextoraw",{"_index":8904,"title":{"57-42":{}},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["hextoraw('abcdef')from",{"_index":9117,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["hh",{"_index":2156,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["hh12",{"_index":2157,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["hh24",{"_index":2158,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["hh24:mi:ss",{"_index":2084,"title":{},"name":{},"text":{"3":{},"57":{}},"component":{},"keyword":{}}],["hh24:mi:ss.ff",{"_index":9088,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["hh24:mi:ss.ff6",{"_index":6254,"title":{},"name":{},"text":{"25":{}},"component":{},"keyword":{}}],["hh:mi:ss",{"_index":2216,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["hi",{"_index":1475,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["hibern",{"_index":8193,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["hidden",{"_index":5020,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["hide",{"_index":3120,"title":{},"name":{},"text":{"7":{},"9":{},"16":{},"52":{}},"component":{},"keyword":{}}],["hierarch",{"_index":2352,"title":{},"name":{},"text":{"3":{},"37":{},"46":{}},"component":{},"keyword":{}}],["hierarchi",{"_index":803,"title":{"3-261":{}},"name":{},"text":{"3":{},"7":{},"9":{}},"component":{},"keyword":{}}],["high",{"_index":186,"title":{"31":{},"32":{},"32-2":{},"33-14":{},"51-10":{},"51-36":{}},"name":{},"text":{"1":{},"3":{},"7":{},"8":{},"9":{},"31":{},"32":{},"33":{},"34":{},"35":{},"37":{},"38":{},"39":{},"43":{},"46":{},"51":{},"74":{}},"component":{},"keyword":{}}],["higher",{"_index":1687,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"37":{},"40":{},"42":{},"44":{},"45":{},"47":{},"51":{}},"component":{},"keyword":{}}],["higher.not",{"_index":5185,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["highest",{"_index":1665,"title":{},"name":{},"text":{"3":{},"51":{}},"component":{},"keyword":{}}],["highgo",{"_index":5532,"title":{},"name":{},"text":{"10":{},"16":{}},"component":{},"keyword":{}}],["highgo@manag",{"_index":6407,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["highgo@ubuntu:~/work/ivorysql/inst",{"_index":7534,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["highli",{"_index":839,"title":{},"name":{},"text":{"3":{},"7":{},"33":{},"34":{},"35":{},"51":{}},"component":{},"keyword":{}}],["highlight",{"_index":66,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["hint",{"_index":5664,"title":{},"name":{},"text":{"15":{},"18":{},"51":{}},"component":{},"keyword":{}}],["hippo",{"_index":6626,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["hippo.crt",{"_index":6852,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["hippo.key",{"_index":6851,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["hippo.tl",{"_index":6858,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["hippo’",{"_index":6944,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["histogram",{"_index":5258,"title":{},"name":{},"text":{"9":{},"51":{}},"component":{},"keyword":{}}],["histogram_bound",{"_index":3638,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["histor",{"_index":1288,"title":{},"name":{},"text":{"3":{},"4":{},"9":{},"52":{}},"component":{},"keyword":{}}],["histori",{"_index":4338,"title":{},"name":{},"text":{"9":{},"40":{},"51":{},"52":{}},"component":{},"keyword":{}}],["hit",{"_index":4692,"title":{},"name":{},"text":{"9":{},"52":{}},"component":{},"keyword":{}}],["hit=15",{"_index":3548,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["hit=2",{"_index":3552,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["hit=5",{"_index":3554,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["hit=7",{"_index":3550,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["hkt",{"_index":2282,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["hnsw",{"_index":7583,"title":{"46-4":{}},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["hold",{"_index":1352,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"24":{},"26":{},"33":{},"51":{},"52":{}},"component":{},"keyword":{}}],["home",{"_index":2735,"title":{},"name":{},"text":{"6":{},"39":{},"41":{}},"component":{},"keyword":{}}],["home/cloud/web/dist",{"_index":5733,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["home/highgo/.pg_ai.explain.prompt",{"_index":7391,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["home/highgo/.pg_ai.prompt",{"_index":7389,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["home/ivori",{"_index":5696,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["home/ivory/config",{"_index":5699,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["home/ivory/config/appl",{"_index":5705,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["home/ivorysql/.bashrc",{"_index":2754,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["home/ivorysql/test/4.6/data",{"_index":3086,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["home/ivorysql/{data,patroni",{"_index":6467,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["home/postgres/.bashrc",{"_index":2749,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["homonym",{"_index":9287,"title":{},"name":{},"text":{"64":{}},"component":{},"keyword":{}}],["honor",{"_index":3757,"title":{},"name":{},"text":{"7":{},"8":{},"9":{},"34":{}},"component":{},"keyword":{}}],["hook",{"_index":6144,"title":{"24-14":{}},"name":{},"text":{},"component":{},"keyword":{}}],["hope",{"_index":4650,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["horizon",{"_index":7820,"title":{},"name":{},"text":{"51":{},"52":{}},"component":{},"keyword":{}}],["hors",{"_index":1551,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["horse$sometag",{"_index":1600,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["host",{"_index":318,"title":{"58-4":{}},"name":{},"text":{"2":{},"5":{},"6":{},"7":{},"8":{},"9":{},"16":{},"18":{},"24":{},"31":{},"33":{},"34":{},"50":{},"51":{},"52":{},"54":{},"58":{},"72":{}},"component":{},"keyword":{}}],["host1",{"_index":3147,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["host2",{"_index":3148,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["host=192.168.1.50",{"_index":7922,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["host=`authmethod",{"_index":5090,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["host=`host",{"_index":4842,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["host=host",{"_index":4365,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["host=hostnam",{"_index":4465,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["host=scram",{"_index":2563,"title":{},"name":{},"text":{"5":{}},"component":{},"keyword":{}}],["hostnam",{"_index":4464,"title":{},"name":{},"text":{"9":{},"31":{}},"component":{},"keyword":{}}],["hostvar",{"_index":5819,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["hostvari",{"_index":5815,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["hostvariableentri",{"_index":5818,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["host’",{"_index":4500,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["hot",{"_index":7269,"title":{"51-39":{},"51-43":{}},"name":{},"text":{"37":{},"51":{},"52":{}},"component":{},"keyword":{}}],["hot_standbi",{"_index":317,"title":{},"name":{},"text":{"2":{},"9":{},"51":{}},"component":{},"keyword":{}}],["hot_standby_feedback",{"_index":7948,"title":{},"name":{},"text":{"51":{},"52":{}},"component":{},"keyword":{}}],["hour",{"_index":2068,"title":{},"name":{},"text":{"3":{},"7":{},"40":{},"51":{},"57":{}},"component":{},"keyword":{}}],["household",{"_index":1782,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["houston",{"_index":3700,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["however,ivorysql",{"_index":2637,"title":{},"name":{},"text":{"5":{},"53":{}},"component":{},"keyword":{}}],["hpet",{"_index":5276,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["hr",{"_index":2932,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["hst",{"_index":2124,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["htab",{"_index":6162,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["html",{"_index":4706,"title":{},"name":{},"text":{"9":{},"16":{}},"component":{},"keyword":{}}],["htmldir",{"_index":4705,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["http",{"_index":3917,"title":{"45":{},"45-4":{}},"name":{},"text":{"8":{},"33":{},"38":{},"45":{}},"component":{},"keyword":{}}],["http/http",{"_index":3919,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["http/releases/tag/v1.7.0",{"_index":7580,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["http://192.168.31.43:8081/cloudapi/api/v1",{"_index":5737,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["http://192.168.31.43:9104",{"_index":5792,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["http://www.perl.org",{"_index":2734,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["http://www.postgresql.org/docs/17/libpq",{"_index":4839,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["http://www.postgresql.org/docs/17/runtim",{"_index":4763,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["http_ssl_modul",{"_index":5764,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["httpget",{"_index":6719,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["https://cpan.metacpan.org/authors/id/t/ti/timb/dbi",{"_index":2739,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["https://download.osgeo.org/postgis/source/postgi",{"_index":7649,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["https://github.com/$user/ivorysql",{"_index":7153,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["https://github.com/$username$/ivorysql_docs.git",{"_index":7243,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["https://github.com/benodiwal/pg_ai_query.git",{"_index":7371,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["https://github.com/benodiwal/pg_ai_query/blob/main/docs/src/examples.md",{"_index":7392,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["https://github.com/benodiwal/pg_ai_query/tree/main",{"_index":7343,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["https://github.com/citusdata/pg_cron.git",{"_index":7450,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["https://github.com/enterprisedb/system_stats/releases/tag/v3.2",{"_index":7655,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["https://github.com/eulerto/wal2json/releases/tag/wal2json_2_6",{"_index":7719,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["https://github.com/ivorysql/docker_librari",{"_index":3968,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["https://github.com/ivorysql/docker_library.git",{"_index":6449,"title":{},"name":{},"text":{"31":{},"32":{}},"component":{},"keyword":{}}],["https://github.com/ivorysql/ivori",{"_index":3966,"title":{},"name":{},"text":{"8":{},"16":{},"34":{}},"component":{},"keyword":{}}],["https://github.com/ivorysql/ivorysql",{"_index":3965,"title":{},"name":{},"text":{"8":{},"34":{}},"component":{},"keyword":{}}],["https://github.com/ivorysql/ivorysql.git",{"_index":2584,"title":{},"name":{},"text":{"5":{}},"component":{},"keyword":{}}],["https://github.com/ivorysql/ivorysql/releases/download/ivorysql_5.0/ivorysql",{"_index":2569,"title":{},"name":{},"text":{"5":{}},"component":{},"keyword":{}}],["https://github.com/lacanoid/pgddl",{"_index":7517,"title":{},"name":{},"text":{"42":{}},"component":{},"keyword":{}}],["https://github.com/okbob/plpgsql_check/releases/tag/v2.8.3",{"_index":7629,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["https://github.com/pgaudit/pgaudit/archive/refs/tags/18.0.tar.gz",{"_index":7482,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["https://github.com/pgrouting/pgrouting/releases/download/v3.8.0/pgrout",{"_index":7566,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["https://github.com/pgvector/pgvector.git",{"_index":7604,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["https://github.com/pramsey/pgsql",{"_index":7579,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["https://nginx.org/download/nginx",{"_index":5743,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["https://open.bigmodel.cn/api/anthrop",{"_index":7387,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["https://packages.groonga.org/source/pgroonga/pgroonga",{"_index":7541,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["https://www.example.com",{"_index":7186,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["https://www.pgbouncer.org/config.html",{"_index":7001,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["hub",{"_index":2535,"title":{},"name":{},"text":{"5":{},"16":{},"30":{},"53":{}},"component":{},"keyword":{}}],["huge",{"_index":166,"title":{},"name":{},"text":{"1":{},"7":{},"33":{},"51":{}},"component":{},"keyword":{}}],["human",{"_index":2865,"title":{},"name":{},"text":{"6":{},"7":{},"9":{}},"component":{},"keyword":{}}],["hundr",{"_index":3559,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["hussain",{"_index":4021,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["hwi",{"_index":3635,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["hword",{"_index":2951,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["hword_part",{"_index":2952,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["hygon",{"_index":7252,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["hyperlink",{"_index":7230,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["hyphen",{"_index":5024,"title":{},"name":{},"text":{"9":{},"52":{}},"component":{},"keyword":{}}],["hypothet",{"_index":1820,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["hz",{"_index":5299,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["i*2",{"_index":1879,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["i.",{"_index":973,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"18":{},"29":{},"33":{},"51":{},"52":{}},"component":{},"keyword":{}}],["i.if",{"_index":5023,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["i.indexrelid",{"_index":8758,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["i.indrelid",{"_index":8756,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["i/o",{"_index":3557,"title":{},"name":{},"text":{"7":{},"8":{},"9":{},"39":{},"51":{},"52":{}},"component":{},"keyword":{}}],["i/usr/local/pgsql/includ",{"_index":4416,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["i18n",{"_index":7109,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["i7",{"_index":5252,"title":{},"name":{},"text":{"9":{},"49":{}},"component":{},"keyword":{}}],["i8254",{"_index":5301,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["i[mmedi",{"_index":5130,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["icon",{"_index":5799,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["iconst",{"_index":5944,"title":{},"name":{},"text":{"20":{},"25":{}},"component":{},"keyword":{}}],["icu",{"_index":443,"title":{},"name":{},"text":{"2":{},"6":{},"9":{},"39":{}},"component":{},"keyword":{}}],["id",{"_index":1368,"title":{"51-6":{}},"name":{},"text":{"3":{},"4":{},"7":{},"9":{},"17":{},"30":{},"31":{},"34":{},"39":{},"41":{},"46":{},"47":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"57":{},"60":{},"63":{},"69":{},"71":{},"74":{}},"component":{},"keyword":{}}],["id.a",{"_index":5191,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["id=xid",{"_index":5207,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["id>1onethree100100100'),'/a/b',xmltype('882221002000",{"_index":8957,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["instr(str",{"_index":8951,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["instrb",{"_index":8867,"title":{"57-16":{}},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["instrb('corpor",{"_index":8964,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["instruct",{"_index":895,"title":{},"name":{},"text":{"3":{},"5":{},"6":{},"7":{},"8":{},"9":{},"16":{},"34":{}},"component":{},"keyword":{}}],["insuffici",{"_index":8010,"title":{},"name":{},"text":{"51":{},"52":{},"58":{}},"component":{},"keyword":{}}],["int",{"_index":957,"title":{},"name":{},"text":{"3":{},"4":{},"15":{},"18":{},"22":{},"25":{},"50":{},"52":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"66":{},"67":{},"69":{},"70":{},"74":{}},"component":{},"keyword":{}}],["int32",{"_index":6228,"title":{},"name":{},"text":{"25":{}},"component":{},"keyword":{}}],["integ",{"_index":991,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"23":{},"33":{},"47":{},"50":{},"52":{},"56":{},"57":{},"58":{},"62":{},"64":{},"66":{},"71":{},"73":{}},"component":{},"keyword":{}}],["integer,nam",{"_index":9347,"title":{},"name":{},"text":{"66":{}},"component":{},"keyword":{}}],["integer,pric",{"_index":9346,"title":{},"name":{},"text":{"66":{}},"component":{},"keyword":{}}],["integer/varchar2",{"_index":9009,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["integer`process",{"_index":8647,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["integr",{"_index":151,"title":{"33-51":{}},"name":{},"text":{"1":{},"8":{},"9":{},"16":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"48":{},"51":{},"52":{},"74":{}},"component":{},"keyword":{}}],["intel",{"_index":5251,"title":{},"name":{},"text":{"9":{},"36":{}},"component":{},"keyword":{}}],["intel(r",{"_index":7669,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["intellig",{"_index":5519,"title":{},"name":{},"text":{"9":{},"37":{},"42":{},"46":{}},"component":{},"keyword":{}}],["intend",{"_index":1333,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"52":{},"63":{}},"component":{},"keyword":{}}],["intens",{"_index":3558,"title":{},"name":{},"text":{"7":{},"9":{}},"component":{},"keyword":{}}],["intent",{"_index":3651,"title":{},"name":{},"text":{"7":{},"9":{}},"component":{},"keyword":{}}],["intention",{"_index":8031,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["inter",{"_index":7957,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["inter_change_1",{"_index":9184,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["inter_change_1\"(c1",{"_index":9181,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["inter_change_2",{"_index":9185,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["inter_change_2\"(c1",{"_index":9182,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["inter_change_3",{"_index":9186,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["inter_change_3\"(c1",{"_index":9183,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["interact",{"_index":1344,"title":{"4-5":{}},"name":{},"text":{"3":{},"7":{},"8":{},"9":{},"33":{},"34":{},"38":{},"45":{},"51":{},"52":{},"71":{}},"component":{},"keyword":{}}],["intercept",{"_index":7894,"title":{},"name":{},"text":{"51":{},"57":{}},"component":{},"keyword":{}}],["interchang",{"_index":1743,"title":{"59-3":{}},"name":{},"text":{"3":{},"14":{},"59":{},"65":{}},"component":{},"keyword":{}}],["interchange/normal/lowercas",{"_index":5590,"title":{},"name":{},"text":{"14":{}},"component":{},"keyword":{}}],["interdepend",{"_index":2353,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["interest",{"_index":3644,"title":{},"name":{},"text":{"7":{},"9":{},"33":{},"34":{},"35":{},"51":{},"52":{}},"component":{},"keyword":{}}],["interfac",{"_index":147,"title":{"18-6":{}},"name":{},"text":{"1":{},"6":{},"7":{},"9":{},"16":{},"18":{},"22":{},"26":{},"33":{},"51":{},"66":{},"74":{}},"component":{},"keyword":{}}],["interface’",{"_index":4280,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["interface,i",{"_index":2738,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["interfer",{"_index":1360,"title":{},"name":{},"text":{"3":{},"9":{},"13":{}},"component":{},"keyword":{}}],["intermedi",{"_index":1308,"title":{},"name":{},"text":{"3":{},"7":{}},"component":{},"keyword":{}}],["intermitt",{"_index":3952,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["intern",{"_index":1202,"title":{"9-190":{}},"name":{},"text":{"3":{},"4":{},"7":{},"8":{},"9":{},"14":{},"18":{},"26":{},"38":{},"51":{},"52":{},"64":{},"74":{}},"component":{},"keyword":{}}],["internal_yylex",{"_index":5580,"title":{},"name":{},"text":{"12":{},"22":{}},"component":{},"keyword":{}}],["internet",{"_index":2732,"title":{},"name":{},"text":{"6":{},"9":{}},"component":{},"keyword":{}}],["interpret",{"_index":1560,"title":{"9-172":{}},"name":{},"text":{"3":{},"7":{},"9":{},"52":{}},"component":{},"keyword":{}}],["interpret_function_parameter_list",{"_index":6258,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["interrel",{"_index":3810,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["interrupt",{"_index":5328,"title":{},"name":{},"text":{"9":{},"33":{},"51":{}},"component":{},"keyword":{}}],["intersect",{"_index":463,"title":{"3-9":{}},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["interspers",{"_index":5025,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["interv",{"_index":1004,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"40":{},"51":{},"52":{},"57":{}},"component":{},"keyword":{}}],["interval.thi",{"_index":4904,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["interval=`second",{"_index":4678,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["interval=interv",{"_index":4577,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["interval=interval_second",{"_index":4919,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["interval_second",{"_index":4918,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["intervalstyl",{"_index":3246,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["interven",{"_index":1613,"title":{},"name":{},"text":{"3":{},"21":{}},"component":{},"keyword":{}}],["intervent",{"_index":8539,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["intoler",{"_index":3788,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["introduc",{"_index":981,"title":{},"name":{},"text":{"3":{},"4":{},"7":{},"8":{},"9":{},"12":{},"21":{},"24":{},"34":{},"52":{},"64":{},"66":{},"69":{}},"component":{},"keyword":{}}],["introduct",{"_index":1,"title":{"1-1":{},"5-1":{}},"name":{},"text":{"7":{},"37":{},"70":{},"74":{}},"component":{},"keyword":{}}],["introspect",{"_index":3915,"title":{},"name":{},"text":{"8":{},"33":{}},"component":{},"keyword":{}}],["invalid",{"_index":59,"title":{"21-13":{},"21-14":{},"21-15":{}},"name":{},"text":{"1":{},"2":{},"6":{},"9":{},"21":{},"25":{},"29":{},"33":{},"52":{},"54":{},"58":{},"61":{},"69":{}},"component":{},"keyword":{}}],["invalidbackendid",{"_index":8686,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["invalu",{"_index":7870,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["invers",{"_index":4784,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["invert",{"_index":7586,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["investig",{"_index":3485,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["invis",{"_index":253,"title":{"70":{},"70-4":{},"70-5":{},"70-6":{},"70-7":{}},"name":{},"text":{"1":{},"51":{},"67":{},"70":{}},"component":{},"keyword":{}}],["invisible_column",{"_index":9414,"title":{},"name":{"70":{}},"text":{},"component":{},"keyword":{}}],["invoc",{"_index":619,"title":{"3-120":{},"24-8":{}},"name":{},"text":{"3":{},"4":{},"8":{},"9":{},"18":{},"52":{}},"component":{},"keyword":{}}],["invok",{"_index":1711,"title":{"58-4":{}},"name":{},"text":{"3":{},"4":{},"7":{},"8":{},"9":{},"18":{},"21":{},"23":{},"24":{},"25":{},"29":{},"51":{},"52":{},"54":{},"58":{},"64":{},"66":{}},"component":{},"keyword":{}}],["invoker_right",{"_index":9202,"title":{"62-11":{},"62-26":{}},"name":{},"text":{},"component":{},"keyword":{}}],["invoker_rights_claus",{"_index":2316,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["involv",{"_index":175,"title":{},"name":{},"text":{"1":{},"3":{},"7":{},"9":{},"14":{},"18":{},"26":{},"33":{},"34":{},"54":{},"72":{}},"component":{},"keyword":{}}],["io",{"_index":8184,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["io_depth",{"_index":8452,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["iot",{"_index":2830,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["iovrysql",{"_index":2636,"title":{},"name":{},"text":{"5":{},"53":{}},"component":{},"keyword":{}}],["ip",{"_index":249,"title":{"72":{}},"name":{},"text":{"1":{},"2":{},"9":{},"16":{},"17":{},"31":{},"32":{},"33":{},"51":{},"52":{},"54":{},"72":{}},"component":{},"keyword":{}}],["ip_address",{"_index":8812,"title":{},"name":{},"text":{"54":{}},"component":{},"keyword":{}}],["ipc",{"_index":8185,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["irregular",{"_index":3640,"title":{},"name":{},"text":{"7":{},"51":{}},"component":{},"keyword":{}}],["is/a",{"_index":6148,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["is_load_gb18030_2022",{"_index":2403,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["is_oracle_slash",{"_index":6046,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["is_oracle_slash(cur_st",{"_index":6035,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["is_oracle_slash(psqlscanst",{"_index":6048,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["is_primari",{"_index":6761,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["isbyt",{"_index":8961,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["iscallstmt",{"_index":5822,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["isdba",{"_index":8813,"title":{},"name":{},"text":{"54":{},"55":{}},"component":{},"keyword":{}}],["isdostmt",{"_index":5821,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["isexplicit",{"_index":6230,"title":{},"name":{},"text":{"25":{}},"component":{},"keyword":{}}],["isn't",{"_index":4825,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["isnul",{"_index":1678,"title":{},"name":{},"text":{"3":{},"29":{}},"component":{},"keyword":{}}],["isn’t",{"_index":3792,"title":{},"name":{},"text":{"7":{},"9":{},"51":{}},"component":{},"keyword":{}}],["iso",{"_index":2222,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"55":{}},"component":{},"keyword":{}}],["isol",{"_index":1295,"title":{},"name":{},"text":{"3":{},"51":{}},"component":{},"keyword":{}}],["isql",{"_index":2286,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["issu",{"_index":1181,"title":{"8-8":{},"34-22":{},"34-23":{},"34-24":{}},"name":{},"text":{"3":{},"7":{},"8":{},"9":{},"21":{},"33":{},"34":{},"35":{},"39":{},"47":{},"51":{},"52":{},"54":{}},"component":{},"keyword":{}}],["issuer",{"_index":8467,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["issuer_dn",{"_index":8469,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["it'",{"_index":4790,"title":{},"name":{},"text":{"9":{},"69":{}},"component":{},"keyword":{}}],["it.it",{"_index":4288,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["it.to",{"_index":4807,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["it.when",{"_index":4531,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["it.with",{"_index":4736,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["ital",{"_index":7177,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["item",{"_index":2375,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"33":{},"34":{},"52":{}},"component":{},"keyword":{}}],["item_declar",{"_index":2324,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["item_list",{"_index":2317,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["item_list_2",{"_index":2343,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["items5",{"_index":7607,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["items[*]}{.metadata.name}{\\\"\\t\\\"}{.metadata.labels.ivori",{"_index":6823,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["iter",{"_index":4662,"title":{},"name":{},"text":{"9":{},"14":{},"39":{},"57":{}},"component":{},"keyword":{}}],["itransact",{"_index":8534,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["itself",{"_index":1116,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"27":{},"34":{},"35":{},"43":{},"51":{},"52":{},"67":{}},"component":{},"keyword":{}}],["it’",{"_index":1767,"title":{},"name":{},"text":{"3":{},"5":{},"7":{},"9":{},"33":{},"40":{},"51":{},"52":{},"53":{},"57":{}},"component":{},"keyword":{}}],["iv17o6m9t9e06vd9iu1o6damd",{"_index":6445,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["ivfflat",{"_index":7582,"title":{"46-3":{}},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["ivfflat.prob",{"_index":7591,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["ivi",{"_index":5851,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["ivori",{"_index":168,"title":{"16-21":{},"33-3":{},"33-9":{},"33-15":{},"33-33":{},"33-38":{},"33-41":{},"33-60":{},"33-66":{},"33-110":{}},"name":{},"text":{"1":{},"7":{},"16":{},"33":{},"34":{}},"component":{},"keyword":{}}],["ivory.log",{"_index":2616,"title":{},"name":{},"text":{"5":{},"53":{}},"component":{},"keyword":{}}],["ivory@123",{"_index":5712,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["ivory_rel_5_st",{"_index":2587,"title":{},"name":{},"text":{"5":{}},"component":{},"keyword":{}}],["ivoryclust",{"_index":6630,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["ivorycluster.ivori",{"_index":6631,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["ivorycluster/hippo",{"_index":7020,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["ivoryclusters.ivori",{"_index":6635,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["ivoryclusters.spec.backups.pgbackrest.metadata.label",{"_index":6864,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["ivorycluster’",{"_index":6940,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["ivoryhac",{"_index":6454,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["ivoryhost",{"_index":9440,"title":{},"name":{},"text":{"72":{}},"component":{},"keyword":{}}],["ivoryport",{"_index":9441,"title":{},"name":{},"text":{"72":{}},"component":{},"keyword":{}}],["ivorysql",{"_index":2,"title":{"2":{},"10":{},"13":{},"30":{},"31":{},"33":{},"34":{},"1-1":{},"2-5":{},"2-11":{},"2-12":{},"5-8":{},"6-3":{},"6-17":{},"7-1":{},"7-6":{},"7-7":{},"10-3":{},"16-1":{},"30-1":{},"31-1":{},"31-2":{},"33-7":{},"33-100":{},"34-8":{},"34-12":{},"34-13":{},"35-3":{},"38-1":{},"53-4":{},"53-5":{}},"name":{},"text":{"1":{},"2":{},"3":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"73":{},"74":{}},"component":{"1":{},"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}},"keyword":{}}],["ivorysql'",{"_index":230,"title":{},"name":{},"text":{"1":{},"6":{}},"component":{},"keyword":{}}],["ivorysql.auto.conf",{"_index":4484,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["ivorysql.compatible_mod",{"_index":45,"title":{},"name":{},"text":{"1":{},"3":{},"15":{},"31":{},"32":{},"59":{},"74":{}},"component":{},"keyword":{}}],["ivorysql.compatible_mode=oracl",{"_index":5587,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["ivorysql.conf",{"_index":2409,"title":{"40-4":{}},"name":{},"text":{"4":{},"9":{},"12":{},"14":{},"15":{},"41":{}},"component":{},"keyword":{}}],["ivorysql.conf.pg_rewind",{"_index":4346,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["ivorysql.database_mod",{"_index":5631,"title":{},"name":{},"text":{"15":{}},"component":{},"keyword":{}}],["ivorysql.datetime_ignore_nls_mask",{"_index":5621,"title":{"15-5":{}},"name":{},"text":{"15":{},"25":{},"65":{}},"component":{},"keyword":{}}],["ivorysql.default_with_rowid",{"_index":9360,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["ivorysql.enable_case_switch",{"_index":9174,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["ivorysql.enable_emptystring_to_nul",{"_index":5633,"title":{},"name":{},"text":{"15":{},"20":{},"60":{}},"component":{},"keyword":{}}],["ivorysql.identifier_case_switch",{"_index":5635,"title":{},"name":{},"text":{"15":{},"19":{},"21":{},"59":{},"65":{}},"component":{},"keyword":{}}],["ivorysql.identifier_case_switch=caseswitchmod",{"_index":5906,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["ivorysql.listen_address",{"_index":5636,"title":{},"name":{},"text":{"15":{}},"component":{},"keyword":{}}],["ivorysql.org",{"_index":7062,"title":{"34-27":{}},"name":{},"text":{},"component":{},"keyword":{}}],["ivorysql.port",{"_index":5637,"title":{},"name":{},"text":{"15":{}},"component":{},"keyword":{}}],["ivorysql/dock",{"_index":6476,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["ivorysql/ivorysql:5.0",{"_index":2537,"title":{},"name":{},"text":{"5":{},"30":{},"53":{}},"component":{},"keyword":{}}],["ivorysql/postgresql",{"_index":7338,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["ivorysql5",{"_index":2523,"title":{},"name":{},"text":{"5":{},"7":{},"53":{}},"component":{},"keyword":{}}],["ivorysql:5.0",{"_index":6400,"title":{},"name":{},"text":{"30":{},"53":{}},"component":{},"keyword":{}}],["ivorysql:ivorysql",{"_index":2611,"title":{},"name":{},"text":{"5":{}},"component":{},"keyword":{}}],["ivorysql=ctc/ivorysql",{"_index":452,"title":{},"name":{},"text":{"2":{},"6":{}},"component":{},"keyword":{}}],["ivorysql@localhost",{"_index":7606,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["ivorysql_cloud_instal",{"_index":5672,"title":{},"name":{"16":{}},"text":{},"component":{},"keyword":{}}],["ivorysql_cloud_usag",{"_index":5791,"title":{},"name":{"17":{}},"text":{},"component":{},"keyword":{}}],["ivorysql_db",{"_index":2544,"title":{},"name":{},"text":{"5":{}},"component":{},"keyword":{}}],["ivorysql_doc",{"_index":7232,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["ivorysql_ora",{"_index":78,"title":{},"name":{},"text":{"1":{},"74":{}},"component":{},"keyword":{}}],["ivorysql_password",{"_index":2543,"title":{},"name":{},"text":{"5":{}},"component":{},"keyword":{}}],["ivorysql_password=123456",{"_index":6424,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["ivorysql_password=your_password",{"_index":2540,"title":{},"name":{},"text":{"5":{},"30":{},"53":{}},"component":{},"keyword":{}}],["ivorysql_us",{"_index":2542,"title":{},"name":{},"text":{"5":{}},"component":{},"keyword":{}}],["ivorysql_web",{"_index":7203,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["ivorysql—i.",{"_index":6017,"title":{},"name":{},"text":{"22":{},"62":{}},"component":{},"keyword":{}}],["ivorysql’",{"_index":121,"title":{},"name":{},"text":{"1":{},"3":{},"7":{},"8":{},"22":{},"28":{},"32":{},"41":{},"46":{},"51":{},"52":{},"60":{},"63":{},"67":{},"68":{},"74":{}},"component":{},"keyword":{}}],["ivorysql,an",{"_index":7778,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["ivoysql",{"_index":2675,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["ivy_configurenamesbool",{"_index":5625,"title":{},"name":{},"text":{"15":{}},"component":{},"keyword":{}}],["ivy_configurenamesenum",{"_index":5629,"title":{},"name":{},"text":{"15":{}},"component":{},"keyword":{}}],["ivy_configurenamesint",{"_index":5626,"title":{},"name":{},"text":{"15":{}},"component":{},"keyword":{}}],["ivy_configurenamesr",{"_index":5628,"title":{},"name":{},"text":{"15":{}},"component":{},"keyword":{}}],["ivy_configurenamesstr",{"_index":5627,"title":{},"name":{},"text":{"15":{}},"component":{},"keyword":{}}],["ivy_guc.c",{"_index":5624,"title":{},"name":{},"text":{"15":{}},"component":{},"keyword":{}}],["ivy_stmt_do",{"_index":5874,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["ivy_stmt_dofromcal",{"_index":5875,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["ivy_stmt_dohandl",{"_index":5876,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["ivy_stmt_oth",{"_index":5877,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["ivy_stmt_unknow",{"_index":5873,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["ivyassignplisqloutparamet",{"_index":5888,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["ivybindbynam",{"_index":6287,"title":{},"name":{},"text":{"26":{},"66":{}},"component":{},"keyword":{}}],["ivybindbypo",{"_index":6286,"title":{},"name":{},"text":{"26":{},"66":{}},"component":{},"keyword":{}}],["ivybindoutinfo",{"_index":5887,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["ivybindoutparameterbypo",{"_index":6294,"title":{},"name":{},"text":{"26":{},"66":{}},"component":{},"keyword":{}}],["ivyclear",{"_index":6297,"title":{},"name":{},"text":{"26":{},"66":{}},"component":{},"keyword":{}}],["ivyconnectdb",{"_index":6289,"title":{},"name":{},"text":{"26":{},"66":{}},"component":{},"keyword":{}}],["ivycreatepreparedstat",{"_index":6293,"title":{},"name":{},"text":{"26":{},"66":{}},"component":{},"keyword":{}}],["ivyexec",{"_index":6291,"title":{},"name":{},"text":{"26":{},"66":{}},"component":{},"keyword":{}}],["ivyexecpreparedstat",{"_index":5866,"title":{},"name":{},"text":{"18":{},"26":{},"66":{}},"component":{},"keyword":{}}],["ivyexecpreparedstatement2",{"_index":5867,"title":{},"name":{},"text":{"18":{},"26":{},"66":{}},"component":{},"keyword":{}}],["ivyfreehandl",{"_index":6288,"title":{},"name":{},"text":{"26":{},"66":{}},"component":{},"keyword":{}}],["ivyhac",{"_index":6493,"title":{},"name":{},"text":{"31":{},"32":{}},"component":{},"keyword":{}}],["ivyhac1",{"_index":6495,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["ivyhandlealloc",{"_index":6283,"title":{},"name":{},"text":{"26":{},"66":{}},"component":{},"keyword":{}}],["ivyhandledostmt",{"_index":5869,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["ivynfield",{"_index":6295,"title":{},"name":{},"text":{"26":{},"66":{}},"component":{},"keyword":{}}],["ivyntupl",{"_index":6296,"title":{},"name":{},"text":{"26":{},"66":{}},"component":{},"keyword":{}}],["ivyo",{"_index":6634,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["ivyo’",{"_index":6736,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["ivypatroni",{"_index":6487,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["ivypatroni.yml",{"_index":6466,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["ivypatroni_1.yml",{"_index":6494,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["ivypreparedstat",{"_index":5889,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["ivyreplacenamebindtoposit",{"_index":5880,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["ivyreplacenamebindtoposition2",{"_index":5881,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["ivyreplacenamebindtoposition3",{"_index":5882,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["ivyresultstatu",{"_index":6292,"title":{},"name":{},"text":{"26":{},"66":{}},"component":{},"keyword":{}}],["ivystatu",{"_index":6290,"title":{},"name":{},"text":{"26":{},"66":{}},"component":{},"keyword":{}}],["ivystmtexecut",{"_index":5864,"title":{},"name":{},"text":{"18":{},"26":{},"66":{}},"component":{},"keyword":{}}],["ivystmtexecute2",{"_index":5865,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["ivystmtprepar",{"_index":6285,"title":{},"name":{},"text":{"26":{},"66":{}},"component":{},"keyword":{}}],["ivystmttyp",{"_index":5872,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["iw",{"_index":2147,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["iy",{"_index":2143,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["iyi",{"_index":2144,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["iyyi",{"_index":2145,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["j",{"_index":2155,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"57":{}},"component":{},"keyword":{}}],["jack",{"_index":8999,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["japanes",{"_index":7329,"title":{},"name":{},"text":{"38":{},"43":{}},"component":{},"keyword":{}}],["jar",{"_index":5720,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["java",{"_index":5715,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["jdb5",{"_index":7048,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["jdbc",{"_index":6679,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["jdbc:postgresql://127.0.0.1:5432/ivorysql",{"_index":5711,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["jdk",{"_index":5713,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["jerom",{"_index":3985,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["jiaoshun",{"_index":3987,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["jiffi",{"_index":5311,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["job",{"_index":2837,"title":{},"name":{},"text":{"6":{},"7":{},"8":{},"9":{},"33":{},"34":{},"35":{},"40":{},"51":{}},"component":{},"keyword":{}}],["jobnam",{"_index":7465,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["jobs=`njob",{"_index":4761,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["jobs=`num",{"_index":4466,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["jobs=njob",{"_index":5062,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["jobs=numb",{"_index":4939,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["jobs=thread",{"_index":4644,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["joe",{"_index":908,"title":{},"name":{},"text":{"3":{},"9":{},"52":{}},"component":{},"keyword":{}}],["johnson",{"_index":7398,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["join",{"_index":475,"title":{"3-15":{},"7-44":{}},"name":{},"text":{"3":{},"6":{},"7":{},"9":{},"23":{},"34":{},"51":{},"52":{}},"component":{},"keyword":{}}],["join_collapse_limit",{"_index":3761,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["join`",{"_index":3760,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["jointli",{"_index":7284,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["join’",{"_index":3446,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["journey",{"_index":8786,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["json",{"_index":3347,"title":{},"name":{},"text":{"7":{},"45":{},"50":{}},"component":{},"keyword":{}}],["jsonpath='{.items[*].metadata.labels.ivori",{"_index":6747,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["judgment",{"_index":5538,"title":{},"name":{},"text":{"11":{}},"component":{},"keyword":{}}],["jue",{"_index":9000,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["jue','j",{"_index":9006,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["jue','j','bl",{"_index":9003,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["jul",{"_index":2900,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["juli",{"_index":8925,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["julian",{"_index":2190,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["k",{"_index":3068,"title":{},"name":{},"text":{"7":{},"9":{},"33":{},"46":{}},"component":{},"keyword":{}}],["k8",{"_index":3891,"title":{"32":{}},"name":{},"text":{"8":{},"16":{},"17":{},"32":{}},"component":{},"keyword":{}}],["k8s_deploy",{"_index":6501,"title":{},"name":{"32":{}},"text":{},"component":{},"keyword":{}}],["k_begin",{"_index":6079,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["k_declar",{"_index":6111,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["k_end",{"_index":6082,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["kc_proxi",{"_index":6713,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["keep",{"_index":1371,"title":{},"name":{},"text":{"3":{},"6":{},"7":{},"9":{},"24":{},"33":{},"34":{},"35":{},"51":{},"61":{}},"component":{},"keyword":{}}],["keepal",{"_index":7929,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["kept",{"_index":1395,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"13":{},"51":{}},"component":{},"keyword":{}}],["kern.timecounter.hardwar",{"_index":5310,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["kern.timecounter.hardware=tsc",{"_index":5309,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["kernel",{"_index":80,"title":{},"name":{},"text":{"1":{},"9":{},"15":{},"37":{},"52":{}},"component":{},"keyword":{}}],["kernel’",{"_index":8162,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["kettl",{"_index":2702,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["key",{"_index":582,"title":{"3-102":{},"7-49":{},"41-2":{},"68-3":{},"68-4":{}},"name":{},"text":{"3":{},"6":{},"7":{},"8":{},"9":{},"24":{},"33":{},"37":{},"39":{},"41":{},"46":{},"50":{},"51":{},"52":{},"61":{},"68":{}},"component":{},"keyword":{}}],["keycloak",{"_index":6695,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["keycloak_admin",{"_index":6711,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["keycloak_admin_password",{"_index":6712,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["keycloakdb",{"_index":6983,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["keycloak’",{"_index":6758,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["keynam",{"_index":7742,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["keys)creat",{"_index":4617,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["keytyp",{"_index":7743,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["keyvalu",{"_index":7744,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["keyword",{"_index":1610,"title":{"62-4":{},"62-8":{}},"name":{},"text":{"3":{},"9":{},"12":{},"18":{},"21":{},"22":{},"23":{},"29":{},"63":{},"74":{}},"component":{},"keyword":{}}],["keyword=valu",{"_index":4526,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["keywords.c",{"_index":5551,"title":{},"name":{},"text":{"12":{}},"component":{},"keyword":{}}],["kill",{"_index":5126,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["kilobyt",{"_index":4542,"title":{},"name":{},"text":{"9":{},"52":{}},"component":{},"keyword":{}}],["kind",{"_index":1222,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"33":{},"50":{},"51":{}},"component":{},"keyword":{}}],["kit",{"_index":2728,"title":{},"name":{},"text":{"6":{},"14":{}},"component":{},"keyword":{}}],["knew",{"_index":6655,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["know",{"_index":1022,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"33":{},"34":{},"35":{},"39":{},"51":{},"52":{}},"component":{},"keyword":{}}],["knowledg",{"_index":2695,"title":{},"name":{},"text":{"6":{},"7":{},"9":{},"33":{},"51":{}},"component":{},"keyword":{}}],["known",{"_index":1201,"title":{},"name":{},"text":{"3":{},"9":{},"27":{},"33":{},"51":{},"52":{}},"component":{},"keyword":{}}],["korean",{"_index":7330,"title":{},"name":{},"text":{"38":{},"43":{}},"component":{},"keyword":{}}],["kubectl",{"_index":6503,"title":{},"name":{},"text":{"32":{},"33":{}},"component":{},"keyword":{}}],["kubernet",{"_index":3890,"title":{},"name":{},"text":{"8":{},"16":{},"17":{},"33":{}},"component":{},"keyword":{}}],["kubernetes.io/hostnam",{"_index":6776,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["kunpeng",{"_index":7255,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["kustom",{"_index":6639,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["kustomize/examples/high",{"_index":6981,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["kustomize/ivori",{"_index":6946,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["kustomize/ivory/ivory.yaml",{"_index":6949,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["kustomize/keycloak",{"_index":6975,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["kustomize/keycloak/ivory.yaml",{"_index":6978,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["kustomize/keycloak/keycloak.yaml",{"_index":6984,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["kustomize/monitor",{"_index":6964,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["kustomize/monitoring/grafana",{"_index":6973,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["kustomize/monitoring/pvcs.yaml",{"_index":6970,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["kylin",{"_index":7261,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["l",{"_index":437,"title":{},"name":{},"text":{"2":{},"5":{},"6":{},"7":{},"9":{},"25":{},"33":{},"40":{},"53":{},"65":{}},"component":{},"keyword":{}}],["l/usr/local/pgsql/lib",{"_index":4418,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["label",{"_index":2349,"title":{"33-21":{},"33-44":{},"33-94":{}},"name":{},"text":{"3":{},"7":{},"9":{},"22":{},"33":{}},"component":{},"keyword":{}}],["label=label",{"_index":4535,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["label=on",{"_index":6791,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["label=thre",{"_index":6793,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["label=two",{"_index":6792,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["label=value2",{"_index":6693,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["labelselector",{"_index":6777,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["lack",{"_index":4847,"title":{},"name":{},"text":{"9":{},"42":{}},"component":{},"keyword":{}}],["lag",{"_index":4649,"title":{},"name":{},"text":{"9":{},"51":{},"52":{}},"component":{},"keyword":{}}],["laid",{"_index":3759,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["lang",{"_index":8795,"title":{},"name":{},"text":{"54":{},"55":{}},"component":{},"keyword":{}}],["lang_nam",{"_index":6268,"title":{},"name":{},"text":{"26":{},"66":{}},"component":{},"keyword":{}}],["languag",{"_index":69,"title":{"12-2":{},"13-4":{}},"name":{},"text":{"1":{},"3":{},"6":{},"7":{},"9":{},"12":{},"13":{},"14":{},"22":{},"23":{},"25":{},"26":{},"38":{},"39":{},"42":{},"43":{},"46":{},"47":{},"51":{},"54":{},"55":{},"57":{},"64":{},"65":{},"66":{},"74":{}},"component":{},"keyword":{}}],["laptop",{"_index":7901,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["larg",{"_index":192,"title":{"7-19":{}},"name":{},"text":{"1":{},"3":{},"6":{},"7":{},"9":{},"39":{},"43":{},"44":{},"51":{},"52":{}},"component":{},"keyword":{}}],["larger",{"_index":1541,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"33":{},"51":{}},"component":{},"keyword":{}}],["largest",{"_index":1845,"title":{},"name":{},"text":{"3":{},"6":{},"9":{},"52":{}},"component":{},"keyword":{}}],["larri",{"_index":2722,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["last",{"_index":1723,"title":{},"name":{},"text":{"3":{},"6":{},"7":{},"9":{},"18":{},"32":{},"40":{},"51":{},"52":{},"57":{},"64":{}},"component":{},"keyword":{}}],["last_analyz",{"_index":8559,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["last_archived_tim",{"_index":8474,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["last_archived_w",{"_index":8473,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["last_autoanalyz",{"_index":8560,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["last_autovacuum",{"_index":8558,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["last_day",{"_index":701,"title":{"3-181":{},"57-7":{}},"name":{},"text":{"3":{},"57":{}},"component":{},"keyword":{}}],["last_day('2020",{"_index":2098,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["last_day(sysdate())from",{"_index":8928,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["last_day(timestamp",{"_index":2094,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["last_day(to_date('2019",{"_index":8929,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["last_failed_tim",{"_index":8477,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["last_failed_w",{"_index":8476,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["last_msg_receipt_tim",{"_index":8443,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["last_msg_send_tim",{"_index":8442,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["last_nam",{"_index":9387,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["last_vacuum",{"_index":8557,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["lastoutvardno",{"_index":6181,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["late.when",{"_index":4647,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["latenc",{"_index":4645,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["latency.if",{"_index":4671,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["later",{"_index":1340,"title":{},"name":{},"text":{"3":{},"5":{},"6":{},"7":{},"9":{},"21":{},"24":{},"33":{},"49":{},"50":{},"51":{},"52":{},"53":{},"57":{},"70":{}},"component":{},"keyword":{}}],["later.although",{"_index":4297,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["later.it",{"_index":5107,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["latest",{"_index":40,"title":{},"name":{},"text":{"1":{},"5":{},"7":{},"9":{},"24":{},"29":{},"32":{},"34":{},"37":{},"38":{},"51":{},"53":{},"61":{}},"component":{},"keyword":{}}],["latest_end_lsn",{"_index":8444,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["latest_end_tim",{"_index":8445,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["latex",{"_index":5035,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["latin",{"_index":1490,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["latter",{"_index":1765,"title":{},"name":{},"text":{"3":{},"9":{},"51":{},"52":{}},"component":{},"keyword":{}}],["launch",{"_index":1189,"title":{},"name":{},"text":{"3":{},"8":{},"9":{},"51":{},"52":{}},"component":{},"keyword":{}}],["launcher",{"_index":2630,"title":{},"name":{},"text":{"5":{},"37":{},"51":{},"52":{},"53":{}},"component":{},"keyword":{}}],["law",{"_index":1919,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["layer",{"_index":3903,"title":{"18-6":{},"22-4":{},"22-5":{}},"name":{},"text":{"8":{},"14":{},"22":{},"24":{},"26":{},"44":{},"46":{}},"component":{},"keyword":{}}],["layout",{"_index":3182,"title":{},"name":{},"text":{"7":{},"9":{},"33":{}},"component":{},"keyword":{}}],["lazili",{"_index":4282,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["lb",{"_index":191,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["lc",{"_index":4303,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["lc_collat",{"_index":4382,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["lc_ctype",{"_index":4384,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["lcons(makedefelem(\"a",{"_index":6313,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["lcons(makedefelem(\"nocach",{"_index":6315,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["ldap",{"_index":7366,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["ldflag",{"_index":4722,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["ldflags_ex",{"_index":4723,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["ldflags_sl",{"_index":4724,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["lead",{"_index":160,"title":{},"name":{},"text":{"1":{},"3":{},"7":{},"9":{},"33":{},"34":{},"37":{},"51":{},"52":{}},"component":{},"keyword":{}}],["leader",{"_index":1139,"title":{},"name":{},"text":{"3":{},"9":{},"31":{},"33":{},"34":{},"52":{}},"component":{},"keyword":{}}],["leader_pid",{"_index":8164,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["leaf",{"_index":4461,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["leakag",{"_index":7479,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["leakproof",{"_index":9335,"title":{},"name":{},"text":{"66":{}},"component":{},"keyword":{}}],["learn",{"_index":3619,"title":{},"name":{},"text":{"7":{},"33":{}},"component":{},"keyword":{}}],["least('a",{"_index":2268,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["least('a','a','b','b",{"_index":2270,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["least('harri",{"_index":2271,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["least(1",{"_index":2266,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["least(1,3,5,10",{"_index":2269,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["least(expr1,expr2",{"_index":2264,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["least(nul",{"_index":2267,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["leav",{"_index":1359,"title":{},"name":{},"text":{"3":{},"9":{},"33":{},"34":{},"51":{}},"component":{},"keyword":{}}],["lecpg",{"_index":4419,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["left",{"_index":1041,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"17":{},"18":{},"23":{},"34":{},"51":{},"57":{},"59":{}},"component":{},"keyword":{}}],["leftarg",{"_index":6137,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["legaci",{"_index":4307,"title":{},"name":{},"text":{"9":{},"21":{},"55":{}},"component":{},"keyword":{}}],["lei",{"_index":4019,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["len",{"_index":2423,"title":{},"name":{},"text":{"4":{},"22":{},"25":{}},"component":{},"keyword":{}}],["len):verifi",{"_index":2435,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["length",{"_index":934,"title":{"57-22":{}},"name":{},"text":{"3":{},"7":{},"8":{},"9":{},"18":{},"21":{},"25":{},"27":{},"51":{},"54":{},"57":{},"65":{}},"component":{},"keyword":{}}],["length('223",{"_index":8990,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["length('ivorysql",{"_index":8991,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["length(223",{"_index":8989,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["length(char_b",{"_index":9323,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["length(char_c",{"_index":9324,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["length(char_v",{"_index":9325,"title":{},"name":{},"text":{"65":{}},"component":{},"keyword":{}}],["length(p_in",{"_index":9156,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["lengthb",{"_index":8878,"title":{"57-23":{}},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["lengthb('0x2c'::bytea",{"_index":8995,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["lengthb('ivorysq'::char",{"_index":8993,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["lengthb('ivorysql",{"_index":8996,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["lengthi",{"_index":5981,"title":{},"name":{},"text":{"21":{}},"component":{},"keyword":{}}],["less",{"_index":1237,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"33":{},"51":{},"52":{}},"component":{},"keyword":{}}],["less.th",{"_index":4467,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["lesser",{"_index":4837,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["let",{"_index":3878,"title":{},"name":{},"text":{"8":{},"33":{}},"component":{},"keyword":{}}],["letter",{"_index":1487,"title":{},"name":{},"text":{"3":{},"9":{},"34":{},"51":{},"59":{}},"component":{},"keyword":{}}],["let’",{"_index":3380,"title":{},"name":{},"text":{"7":{},"33":{},"34":{}},"component":{},"keyword":{}}],["level",{"_index":1145,"title":{"7-20":{}},"name":{},"text":{"3":{},"4":{},"6":{},"7":{},"8":{},"9":{},"18":{},"19":{},"28":{},"33":{},"34":{},"37":{},"38":{},"41":{},"49":{},"51":{},"52":{},"68":{}},"component":{},"keyword":{}}],["level.if",{"_index":4907,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["leverag",{"_index":5080,"title":{},"name":{},"text":{"9":{},"18":{},"37":{},"39":{},"44":{}},"component":{},"keyword":{}}],["lex",{"_index":6038,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["lexic",{"_index":578,"title":{"3-101":{},"12-1":{},"12-2":{}},"name":{},"text":{"3":{},"12":{},"20":{},"22":{}},"component":{},"keyword":{}}],["lexres_semi",{"_index":6045,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["li",{"_index":4024,"title":{},"name":{},"text":{"8":{},"23":{},"44":{}},"component":{},"keyword":{}}],["liang",{"_index":4009,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["lib",{"_index":4725,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["libboost",{"_index":7565,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["libc",{"_index":447,"title":{},"name":{},"text":{"2":{},"6":{},"9":{}},"component":{},"keyword":{}}],["libcurl",{"_index":7577,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["libcurl4",{"_index":7359,"title":{},"name":{},"text":{"39":{},"45":{}},"component":{},"keyword":{}}],["libdir",{"_index":4709,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["libecpg",{"_index":4412,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["libedit",{"_index":7367,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["libgdal",{"_index":7641,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["libgeo",{"_index":7642,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["libgroonga",{"_index":7533,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["libicu",{"_index":2565,"title":{},"name":{},"text":{"5":{}},"component":{},"keyword":{}}],["libjson",{"_index":7643,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["libldap2",{"_index":2596,"title":{},"name":{},"text":{"5":{}},"component":{},"keyword":{}}],["libmsgpack",{"_index":7531,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["libnuma",{"_index":3943,"title":{},"name":{},"text":{"8":{},"39":{}},"component":{},"keyword":{}}],["liboracle_pars",{"_index":5553,"title":{},"name":{},"text":{"12":{}},"component":{},"keyword":{}}],["libossp",{"_index":2603,"title":{},"name":{},"text":{"5":{}},"component":{},"keyword":{}}],["libpam",{"_index":2601,"title":{},"name":{},"text":{"5":{}},"component":{},"keyword":{}}],["libparser_oracle.so",{"_index":5552,"title":{},"name":{},"text":{"12":{}},"component":{},"keyword":{}}],["libperl",{"_index":2598,"title":{},"name":{},"text":{"5":{}},"component":{},"keyword":{}}],["libpq",{"_index":1194,"title":{"26-4":{},"66-5":{}},"name":{},"text":{"3":{},"8":{},"9":{},"26":{},"51":{},"66":{}},"component":{},"keyword":{}}],["libpq/ivytest",{"_index":3937,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["libpqwalreceiverconnect",{"_index":8207,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["libpqwalreceiverrec",{"_index":8208,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["libproj",{"_index":7644,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["libprotobuf",{"_index":7645,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["librari",{"_index":1708,"title":{"6-17":{}},"name":{},"text":{"3":{},"7":{},"9":{},"12":{},"28":{},"41":{},"44":{},"74":{}},"component":{},"keyword":{}}],["libreadlin",{"_index":2594,"title":{},"name":{},"text":{"5":{}},"component":{},"keyword":{}}],["libselinux",{"_index":2604,"title":{},"name":{},"text":{"5":{}},"component":{},"keyword":{}}],["libsfcgal",{"_index":7646,"title":{},"name":{},"text":{"48":{}},"component":{},"keyword":{}}],["libssl",{"_index":2600,"title":{},"name":{},"text":{"5":{}},"component":{},"keyword":{}}],["libxml",{"_index":7369,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["libxml2",{"_index":2602,"title":{},"name":{},"text":{"5":{},"48":{},"74":{}},"component":{},"keyword":{}}],["libxslt",{"_index":2566,"title":{},"name":{},"text":{"5":{},"39":{}},"component":{},"keyword":{}}],["licens",{"_index":2725,"title":{"34-8":{},"35-3":{}},"name":{},"text":{"6":{},"10":{},"34":{},"35":{},"39":{}},"component":{},"keyword":{}}],["lieu",{"_index":7945,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["life",{"_index":8114,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["lifecycl",{"_index":3895,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["lifesav",{"_index":3758,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["lifetim",{"_index":7913,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["lift",{"_index":5138,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["light",{"_index":4264,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["lightweight",{"_index":8189,"title":{},"name":{},"text":{"52":{},"74":{}},"component":{},"keyword":{}}],["like_oper",{"_index":6118,"title":{},"name":{"23":{}},"text":{},"component":{},"keyword":{}}],["likelihood",{"_index":3416,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["likewis",{"_index":1811,"title":{},"name":{},"text":{"3":{},"33":{}},"component":{},"keyword":{}}],["limit",{"_index":808,"title":{"3-264":{},"7-41":{},"70-8":{}},"name":{},"text":{"3":{},"7":{},"9":{},"18":{},"25":{},"33":{},"39":{},"40":{},"46":{},"51":{},"52":{},"53":{},"64":{}},"component":{},"keyword":{}}],["limit=limit",{"_index":4646,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["limit=numb",{"_index":4391,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["line",{"_index":965,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"14":{},"15":{},"22":{},"34":{},"50":{},"51":{},"52":{},"59":{},"65":{},"66":{},"69":{},"70":{}},"component":{},"keyword":{}}],["line[i",{"_index":6052,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["linear",{"_index":3589,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["lineno",{"_index":6087,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["linglong",{"_index":7308,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["link",{"_index":2807,"title":{},"name":{},"text":{"6":{},"7":{},"9":{},"29":{},"34":{},"51":{}},"component":{},"keyword":{}}],["link](https://example.com",{"_index":7191,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["link](https://www.example.com",{"_index":7180,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["link_symbol",{"_index":9341,"title":{},"name":{},"text":{"66":{}},"component":{},"keyword":{}}],["linker",{"_index":4417,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["linter",{"_index":7625,"title":{},"name":{},"text":{"47":{}},"component":{},"keyword":{}}],["linux",{"_index":2705,"title":{},"name":{},"text":{"6":{},"9":{},"16":{},"30":{},"31":{},"32":{},"37":{},"43":{},"49":{},"51":{},"52":{}},"component":{},"keyword":{}}],["linux(cento",{"_index":8774,"title":{},"name":{},"text":{"53":{}},"component":{},"keyword":{}}],["linux,x86_64,utf8,match",{"_index":7536,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["lion’",{"_index":3569,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["list",{"_index":438,"title":{"7-43":{},"9-1":{},"34-14":{},"38-1":{}},"name":{},"text":{"2":{},"3":{},"6":{},"7":{},"8":{},"9":{},"16":{},"17":{},"18":{},"26":{},"27":{},"29":{},"33":{},"34":{},"35":{},"38":{},"39":{},"46":{},"51":{},"52":{},"69":{},"70":{},"71":{}},"component":{},"keyword":{}}],["list.when",{"_index":5032,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["list=list",{"_index":4944,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["list_make1($1",{"_index":5941,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["list_make1($3",{"_index":5939,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["list_make1(list_make1($2",{"_index":6378,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["list_make1(makeintconst($3",{"_index":6218,"title":{},"name":{},"text":{"25":{}},"component":{},"keyword":{}}],["listen",{"_index":356,"title":{},"name":{},"text":{"2":{},"3":{},"9":{},"15":{},"16":{},"33":{},"51":{}},"component":{},"keyword":{}}],["listen_address",{"_index":311,"title":{},"name":{},"text":{"2":{},"9":{},"51":{}},"component":{},"keyword":{}}],["litbufdup(yyscann",{"_index":5927,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["liter",{"_index":1035,"title":{},"name":{},"text":{"3":{},"9":{},"64":{}},"component":{},"keyword":{}}],["littl",{"_index":1146,"title":{},"name":{},"text":{"3":{},"6":{},"7":{},"51":{}},"component":{},"keyword":{}}],["liu",{"_index":4011,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["live",{"_index":1458,"title":{},"name":{},"text":{"3":{},"9":{},"24":{},"33":{},"51":{},"52":{}},"component":{},"keyword":{}}],["llm",{"_index":7334,"title":{},"name":{},"text":{"38":{},"39":{}},"component":{},"keyword":{}}],["lmgr",{"_index":8700,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["ln",{"_index":8726,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["lo,127.0.0.1,1071575,5643,0,0,1071575,5643,0,0,0",{"_index":7710,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["load",{"_index":2406,"title":{"7-22":{},"16-22":{},"51-10":{}},"name":{},"text":{"4":{},"6":{},"7":{},"9":{},"12":{},"14":{},"28":{},"33":{},"41":{},"51":{},"52":{}},"component":{},"keyword":{}}],["load_gb18030_2022",{"_index":2407,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["load_ivorysql_ora",{"_index":5609,"title":{},"name":{},"text":{"14":{}},"component":{},"keyword":{}}],["load_plisql",{"_index":5608,"title":{},"name":{},"text":{"14":{}},"component":{},"keyword":{}}],["loadabl",{"_index":4712,"title":{},"name":{},"text":{"9":{},"51":{}},"component":{},"keyword":{}}],["lob",{"_index":2789,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["loc_pushback",{"_index":6062,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["local",{"_index":351,"title":{"34-28":{}},"name":{},"text":{"2":{},"3":{},"6":{},"7":{},"9":{},"25":{},"33":{},"34":{},"50":{},"51":{},"52":{},"54":{},"57":{},"64":{},"65":{}},"component":{},"keyword":{}}],["local=`authmethod",{"_index":5092,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["locale=`local",{"_index":4385,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["locale=c",{"_index":5100,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["locale=local",{"_index":4380,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["localedir",{"_index":4713,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["localhost",{"_index":4892,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["localhost:5433",{"_index":4893,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["localinstal",{"_index":2573,"title":{},"name":{},"text":{"5":{}},"component":{},"keyword":{}}],["localtimestamp",{"_index":8899,"title":{"57-38":{}},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["localtimestamp(1",{"_index":9106,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["localtransactionid",{"_index":8672,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["locat",{"_index":209,"title":{},"name":{},"text":{"1":{},"3":{},"5":{},"7":{},"9":{},"15":{},"16":{},"18":{},"24":{},"25":{},"27":{},"29":{},"33":{},"34":{},"38":{},"39":{},"41":{},"51":{},"52":{},"53":{},"57":{}},"component":{},"keyword":{}}],["locations.curr",{"_index":4504,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["lock",{"_index":1158,"title":{"52-28":{}},"name":{},"text":{"3":{},"7":{},"9":{},"51":{},"52":{}},"component":{},"keyword":{}}],["locker",{"_index":8492,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["lockers_don",{"_index":8493,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["lockers_tot",{"_index":8491,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["lockfastpath",{"_index":8356,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["lockfileaddtodatadirread",{"_index":8232,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["lockfileaddtodatadirsync",{"_index":8233,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["lockfileaddtodatadirwrit",{"_index":8234,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["lockfilecreateread",{"_index":8235,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["lockfilecreatesync",{"_index":8236,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["lockfilecreatewrit",{"_index":8237,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["lockfilerecheckdatadirread",{"_index":8238,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["lockmanag",{"_index":8357,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["lockmod",{"_index":8699,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["log",{"_index":928,"title":{"51-9":{},"51-14":{},"51-20":{}},"name":{},"text":{"3":{},"5":{},"7":{},"8":{},"9":{},"13":{},"14":{},"17":{},"33":{},"38":{},"40":{},"41":{},"51":{},"52":{},"53":{},"54":{}},"component":{},"keyword":{}}],["log=filenam",{"_index":5144,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["log_autovacuum_min_dur",{"_index":7852,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["log_destin",{"_index":7883,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["log_hostnam",{"_index":8167,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["log_level",{"_index":7375,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["log_n",{"_index":5721,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["log_recovery_conflict_wait",{"_index":8008,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["log_temp_files](https://www.postgresql.org/docs/current/runtim",{"_index":8517,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["logfil",{"_index":3083,"title":{},"name":{},"text":{"7":{},"9":{},"40":{}},"component":{},"keyword":{}}],["logged.rememb",{"_index":4695,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["logging.html#guc",{"_index":8518,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["logging_collector",{"_index":7874,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["logic",{"_index":180,"title":{"21-14":{},"51-15":{}},"name":{},"text":{"1":{},"3":{},"4":{},"5":{},"7":{},"9":{},"14":{},"18":{},"20":{},"21":{},"22":{},"24":{},"27":{},"28":{},"33":{},"39":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"67":{},"74":{}},"component":{},"keyword":{}}],["logical_decoding_work_mem",{"_index":8429,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["logicalapplymain",{"_index":8196,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["logicallaunchermain",{"_index":8197,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["logicalrepwork",{"_index":8358,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["logicalrewritecheckpointsync",{"_index":8239,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["logicalrewritemappingsync",{"_index":8240,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["logicalrewritemappingwrit",{"_index":8241,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["logicalrewritesync",{"_index":8242,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["logicalrewritetrunc",{"_index":8243,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["logicalrewritewrit",{"_index":8244,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["logicalsyncdata",{"_index":8311,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["logicalsyncstatechang",{"_index":8312,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["login",{"_index":909,"title":{"17-18":{}},"name":{},"text":{"3":{},"6":{},"7":{},"9":{},"16":{},"17":{},"51":{},"54":{}},"component":{},"keyword":{}}],["logist",{"_index":7331,"title":{},"name":{},"text":{"38":{},"44":{}},"component":{},"keyword":{}}],["logrot",{"_index":5131,"title":{},"name":{},"text":{"9":{},"41":{},"51":{}},"component":{},"keyword":{}}],["logs.th",{"_index":4906,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["londist",{"_index":3092,"title":{},"name":{},"text":{"7":{},"51":{}},"component":{},"keyword":{}}],["london",{"_index":7907,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["lone",{"_index":3273,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["long",{"_index":1343,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"27":{},"34":{},"35":{},"51":{},"52":{},"57":{},"58":{}},"component":{},"keyword":{}}],["long.thi",{"_index":4569,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["longer",{"_index":1013,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"11":{},"33":{},"51":{},"52":{}},"component":{},"keyword":{}}],["longest",{"_index":8029,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["longxin",{"_index":7290,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["look",{"_index":1225,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"33":{},"34":{},"51":{},"52":{}},"component":{},"keyword":{}}],["lookup",{"_index":3829,"title":{"24-16":{}},"name":{},"text":{"8":{},"9":{},"21":{},"22":{},"24":{},"26":{},"27":{},"39":{},"52":{},"57":{}},"component":{},"keyword":{}}],["lookuptypenam",{"_index":6374,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["loongarch",{"_index":7298,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["loongarch64",{"_index":7258,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["loongson",{"_index":7297,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["loongson3000,loongson4000",{"_index":7257,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["loongson5000",{"_index":7259,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["loop",{"_index":1174,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"33":{},"51":{},"52":{},"57":{},"69":{}},"component":{},"keyword":{}}],["loop0,15,0,21504,0,1,0",{"_index":7677,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["loop1,1362,0,27916288,0,680,0",{"_index":7678,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["loop10,2333,0,36571136,0,1628,0",{"_index":7692,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["loop11,87,0,709632,0,50,0",{"_index":7694,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["loop12,156,0,1948672,0,52,0",{"_index":7695,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["loop13,30,0,102400,0,14,0",{"_index":7697,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["loop14,2579,0,97446912,0,2083,0",{"_index":7696,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["loop15,82,0,1189888,0,117,0",{"_index":7698,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["loop16,1357,0,28335104,0,500,0",{"_index":7699,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["loop17,110,0,2187264,0,93,0",{"_index":7700,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["loop18,129,0,2355200,0,28,0",{"_index":7701,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["loop19,110,0,2202624,0,55,0",{"_index":7702,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["loop2,175,0,3354624,0,131,0",{"_index":7679,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["loop3,141,0,1827840,0,83,0",{"_index":7680,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["loop4,918,0,32752640,0,212,0",{"_index":7681,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["loop5,156,0,2617344,0,67,0",{"_index":7682,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["loop6,3707,0,131992576,0,828,0",{"_index":7683,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["loop7,243,0,4321280,0,95,0",{"_index":7684,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["loop8,228,0,2491392,0,120,0",{"_index":7691,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["loop9,3730,0,66532352,0,3973,0",{"_index":7693,"title":{},"name":{},"text":{"49":{}},"component":{},"keyword":{}}],["loops=1",{"_index":3489,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["loops=10",{"_index":3493,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["loos",{"_index":4254,"title":{},"name":{},"text":{"9":{},"51":{}},"component":{},"keyword":{}}],["loosen",{"_index":7991,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["los_angl",{"_index":8944,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["lose",{"_index":3812,"title":{},"name":{},"text":{"7":{},"33":{},"51":{}},"component":{},"keyword":{}}],["loss",{"_index":2683,"title":{},"name":{},"text":{"6":{},"7":{},"9":{},"33":{},"51":{}},"component":{},"keyword":{}}],["lossi",{"_index":3527,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["lost",{"_index":178,"title":{},"name":{},"text":{"1":{},"7":{},"9":{},"33":{},"51":{},"52":{}},"component":{},"keyword":{}}],["lot",{"_index":1060,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"33":{},"34":{},"35":{}},"component":{},"keyword":{}}],["low",{"_index":958,"title":{},"name":{},"text":{"3":{},"4":{},"7":{},"9":{},"51":{}},"component":{},"keyword":{}}],["lower",{"_index":1508,"title":{},"name":{},"text":{"3":{},"5":{},"7":{},"9":{},"25":{},"39":{},"46":{},"51":{},"53":{}},"component":{},"keyword":{}}],["lower($1",{"_index":1951,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["lower('beij",{"_index":7427,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["lower(c",{"_index":7426,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["lower_case_1",{"_index":9190,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["lower_case_1\"(c1",{"_index":9187,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["lower_case_2",{"_index":9191,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["lower_case_2\"(c1",{"_index":9188,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["lower_case_3",{"_index":9192,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["lower_case_3\"(c1",{"_index":9189,"title":{},"name":{},"text":{"59":{}},"component":{},"keyword":{}}],["lowercas",{"_index":2290,"title":{},"name":{},"text":{"3":{},"14":{},"59":{}},"component":{},"keyword":{}}],["lowest",{"_index":1666,"title":{},"name":{},"text":{"3":{},"9":{}},"component":{},"keyword":{}}],["lrt",{"_index":2897,"title":{},"name":{},"text":{"6":{},"16":{}},"component":{},"keyword":{}}],["ls",{"_index":2896,"title":{},"name":{},"text":{"6":{},"16":{},"31":{}},"component":{},"keyword":{}}],["lsb",{"_index":3292,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["lsn",{"_index":4898,"title":{},"name":{},"text":{"9":{},"51":{}},"component":{},"keyword":{}}],["lsn.if",{"_index":4900,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["lsn.note`pg_resetw",{"_index":5187,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["lt",{"_index":7293,"title":{},"name":{},"text":{"37":{},"49":{}},"component":{},"keyword":{}}],["ltrim",{"_index":8873,"title":{"57-20":{}},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["ltrim('abcdefg','fegab')ltrim",{"_index":8984,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["luss",{"_index":3989,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["lv",{"_index":4013,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["lvorysql",{"_index":829,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["lwgx",{"_index":7027,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["lwlock",{"_index":8188,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["lwlockmod",{"_index":8692,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["lwlock’",{"_index":8693,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["lz4",{"_index":2564,"title":{},"name":{},"text":{"5":{},"9":{}},"component":{},"keyword":{}}],["m",{"_index":56,"title":{},"name":{},"text":{"1":{},"7":{},"9":{},"11":{},"14":{},"34":{},"51":{}},"component":{},"keyword":{}}],["machin",{"_index":348,"title":{},"name":{},"text":{"2":{},"7":{},"9":{},"33":{},"51":{},"52":{},"54":{}},"component":{},"keyword":{}}],["machineri",{"_index":5967,"title":{},"name":{},"text":{"21":{}},"component":{},"keyword":{}}],["maco",{"_index":5361,"title":{},"name":{},"text":{"9":{},"52":{}},"component":{},"keyword":{}}],["macro",{"_index":8670,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["made",{"_index":856,"title":{},"name":{},"text":{"3":{},"4":{},"7":{},"9":{},"22":{},"33":{},"34":{},"37":{},"51":{},"52":{}},"component":{},"keyword":{}}],["magnifi",{"_index":5802,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["magnitud",{"_index":3734,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["mail",{"_index":7057,"title":{"34-14":{}},"name":{},"text":{"34":{},"35":{}},"component":{},"keyword":{}}],["mailbox",{"_index":7113,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["main",{"_index":22,"title":{"1-8":{}},"name":{},"text":{"1":{},"8":{},"9":{},"12":{},"14":{},"34":{},"35":{},"51":{},"52":{}},"component":{},"keyword":{}}],["mainli",{"_index":2828,"title":{},"name":{},"text":{"6":{},"9":{},"22":{},"34":{},"51":{},"56":{}},"component":{},"keyword":{}}],["mainloop",{"_index":3950,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["maintain",{"_index":2681,"title":{},"name":{},"text":{"6":{},"7":{},"8":{},"14":{},"20":{},"24":{},"33":{},"34":{},"35":{},"46":{},"51":{},"74":{}},"component":{},"keyword":{}}],["mainten",{"_index":144,"title":{"7":{},"51":{},"51-9":{}},"name":{},"text":{"1":{},"9":{},"33":{},"34":{},"38":{},"40":{},"51":{},"74":{}},"component":{},"keyword":{}}],["maintenance_work_mem",{"_index":3015,"title":{"7-50":{}},"name":{},"text":{"7":{},"52":{}},"component":{},"keyword":{}}],["major",{"_index":3027,"title":{},"name":{},"text":{"7":{},"9":{},"33":{},"37":{},"38":{},"51":{}},"component":{},"keyword":{}}],["make",{"_index":108,"title":{"34-9":{}},"name":{},"text":{"1":{},"2":{},"3":{},"5":{},"6":{},"7":{},"9":{},"16":{},"27":{},"28":{},"31":{},"33":{},"34":{},"35":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"61":{},"70":{},"74":{}},"component":{},"keyword":{}}],["make_ivorysql",{"_index":5610,"title":{},"name":{},"text":{"14":{}},"component":{},"keyword":{}}],["make_return_stmt",{"_index":6259,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["make_view_invalid",{"_index":5996,"title":{},"name":{},"text":{"21":{}},"component":{},"keyword":{}}],["makefil",{"_index":4718,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["makefile.pl",{"_index":2744,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["makefunccall(oraclesystemfuncname(func_nam",{"_index":8833,"title":{},"name":{},"text":{"55":{}},"component":{},"keyword":{}}],["makemak",{"_index":2710,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["makenode(callstmt",{"_index":5827,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["makenode(createseqstmt",{"_index":6309,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["makenode(oraparamref",{"_index":5832,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["makenode(selectstmt",{"_index":5937,"title":{},"name":{},"text":{"20":{},"29":{}},"component":{},"keyword":{}}],["makenullaconst(@1",{"_index":5946,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["makerangevar(snamespac",{"_index":6311,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["makestringconst($1",{"_index":5945,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["maketypenamefromnamelist(lcons(makestring($1",{"_index":6371,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["maketypenamefromoid(int8oid",{"_index":6314,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["makeup",{"_index":6772,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["malform",{"_index":4291,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["malici",{"_index":4562,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["man",{"_index":2730,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["manag",{"_index":236,"title":{"7":{},"7-6":{},"7-7":{},"17-6":{},"17-9":{},"33-51":{},"33-57":{},"33-60":{},"40-9":{}},"name":{},"text":{"1":{},"3":{},"7":{},"8":{},"9":{},"16":{},"17":{},"31":{},"33":{},"34":{},"37":{},"38":{},"40":{},"42":{},"44":{},"46":{},"51":{},"52":{},"70":{},"74":{}},"component":{},"keyword":{}}],["mandat",{"_index":6770,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["mandatori",{"_index":1954,"title":{},"name":{},"text":{"3":{},"9":{}},"component":{},"keyword":{}}],["mandir",{"_index":4714,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["mani",{"_index":866,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"33":{},"46":{},"51":{},"52":{}},"component":{},"keyword":{}}],["manifest",{"_index":4549,"title":{},"name":{},"text":{"9":{},"30":{},"33":{}},"component":{},"keyword":{}}],["manipul",{"_index":4756,"title":{"51-29":{}},"name":{},"text":{"9":{},"51":{}},"component":{},"keyword":{}}],["manner",{"_index":116,"title":{},"name":{},"text":{"1":{},"3":{},"33":{}},"component":{},"keyword":{}}],["manual",{"_index":2609,"title":{"21-16":{},"21-18":{},"33-100":{}},"name":{},"text":{"5":{},"6":{},"7":{},"9":{},"21":{},"33":{},"39":{},"42":{},"43":{},"45":{},"51":{},"52":{}},"component":{},"keyword":{}}],["map",{"_index":198,"title":{"51-5":{}},"name":{},"text":{"1":{},"4":{},"6":{},"7":{},"9":{},"22":{},"33":{},"34":{},"35":{},"38":{},"46":{},"51":{},"52":{},"55":{},"62":{}},"component":{},"keyword":{}}],["map_resolut",{"_index":4987,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["mapping=olddir=newdir",{"_index":4495,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["margin",{"_index":7839,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["mark",{"_index":1178,"title":{},"name":{},"text":{"3":{},"9":{},"21":{},"33":{},"34":{},"51":{},"52":{},"57":{},"59":{}},"component":{},"keyword":{}}],["markdown",{"_index":7154,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["marker",{"_index":1622,"title":{},"name":{},"text":{"3":{},"7":{}},"component":{},"keyword":{}}],["market",{"_index":3851,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["markup",{"_index":6831,"title":{},"name":{},"text":{"33":{},"74":{}},"component":{},"keyword":{}}],["martin",{"_index":3990,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["mask",{"_index":3290,"title":{"65-3":{}},"name":{},"text":{"7":{},"25":{}},"component":{},"keyword":{}}],["massiv",{"_index":7790,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["master",{"_index":297,"title":{},"name":{},"text":{"2":{},"7":{},"16":{},"32":{},"33":{},"56":{}},"component":{},"keyword":{}}],["match",{"_index":1406,"title":{},"name":{},"text":{"3":{},"6":{},"7":{},"8":{},"9":{},"18":{},"23":{},"24":{},"26":{},"29":{},"32":{},"33":{},"39":{},"41":{},"51":{},"52":{},"57":{},"58":{},"74":{}},"component":{},"keyword":{}}],["matchexpress",{"_index":6783,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["matchlabel",{"_index":6700,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["materi",{"_index":1163,"title":{"6-21":{}},"name":{},"text":{"3":{},"6":{},"7":{},"9":{},"21":{},"51":{}},"component":{},"keyword":{}}],["matter",{"_index":1684,"title":{},"name":{},"text":{"3":{},"5":{},"7":{},"9":{},"33":{},"34":{},"51":{}},"component":{},"keyword":{}}],["maven.test.skip=tru",{"_index":5694,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["max",{"_index":4539,"title":{"62-6":{}},"name":{},"text":{"9":{},"22":{},"33":{},"51":{},"62":{}},"component":{},"keyword":{}}],["max(pop",{"_index":1846,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["max_connect",{"_index":312,"title":{},"name":{},"text":{"2":{},"9":{},"51":{}},"component":{},"keyword":{}}],["max_dead_tupl",{"_index":8636,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["max_locks_per_transact",{"_index":8009,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["max_parallel_work",{"_index":1128,"title":{},"name":{},"text":{"3":{},"33":{}},"component":{},"keyword":{}}],["max_parallel_workers_per_gath",{"_index":1125,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["max_prepared_transact",{"_index":1379,"title":{},"name":{},"text":{"3":{},"51":{}},"component":{},"keyword":{}}],["max_pushback",{"_index":6061,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["max_replication_slot",{"_index":7727,"title":{},"name":{},"text":{"50":{},"51":{}},"component":{},"keyword":{}}],["max_replication_slots/max_wal_send",{"_index":7726,"title":{},"name":{},"text":{"50":{}},"component":{},"keyword":{}}],["max_slot_wal_keep_s",{"_index":7947,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["max_standby_archive_delay",{"_index":7996,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["max_standby_streaming_delay",{"_index":7997,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["max_wal_s",{"_index":3017,"title":{"7-51":{}},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["max_wal_send",{"_index":315,"title":{},"name":{},"text":{"2":{},"7":{},"9":{},"50":{},"51":{}},"component":{},"keyword":{}}],["max_worker_process",{"_index":1127,"title":{},"name":{},"text":{"3":{},"33":{},"51":{}},"component":{},"keyword":{}}],["maxcod",{"_index":2464,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["maxim",{"_index":6731,"title":{},"name":{},"text":{"33":{},"37":{},"51":{}},"component":{},"keyword":{}}],["maximum",{"_index":1501,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"33":{},"40":{},"51":{}},"component":{},"keyword":{}}],["maxlen",{"_index":6232,"title":{},"name":{},"text":{"25":{}},"component":{},"keyword":{}}],["maxmblen",{"_index":6234,"title":{},"name":{},"text":{"25":{}},"component":{},"keyword":{}}],["maxskew",{"_index":6788,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["maxwritten_clean",{"_index":8484,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["maybe_anonymous_begin_start",{"_index":6032,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["maybe_anonymous_declare_start",{"_index":6030,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["mb",{"_index":2821,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["mcv",{"_index":3009,"title":{"7-43":{}},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["md",{"_index":7169,"title":{},"name":{},"text":{"34":{},"52":{}},"component":{},"keyword":{}}],["md5",{"_index":7937,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["md5(random()::text",{"_index":6885,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["md5b5f5ba1a423792b526f799ae4eb3d59",{"_index":4402,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["mdt",{"_index":2127,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["mean",{"_index":430,"title":{},"name":{},"text":{"2":{},"3":{},"6":{},"7":{},"9":{},"22":{},"33":{},"34":{},"39":{},"40":{},"46":{},"51":{},"52":{},"70":{},"74":{}},"component":{},"keyword":{}}],["meaning",{"_index":7794,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["meaning.)to",{"_index":4788,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["meant",{"_index":1716,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"33":{},"51":{}},"component":{},"keyword":{}}],["meantim",{"_index":4774,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["meanwhil",{"_index":4499,"title":{},"name":{},"text":{"9":{},"22":{},"28":{},"37":{}},"component":{},"keyword":{}}],["measur",{"_index":3178,"title":{"9-173":{}},"name":{},"text":{"7":{},"9":{},"51":{},"52":{}},"component":{},"keyword":{}}],["mechan",{"_index":1059,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"14":{},"18":{},"33":{},"37":{},"51":{},"52":{}},"component":{},"keyword":{}}],["mechanism—wher",{"_index":6021,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["media",{"_index":3886,"title":{},"name":{},"text":{"8":{},"36":{}},"component":{},"keyword":{}}],["median",{"_index":1786,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["medium",{"_index":836,"title":{},"name":{},"text":{"3":{},"7":{}},"component":{},"keyword":{}}],["meet",{"_index":2684,"title":{},"name":{},"text":{"6":{},"9":{},"14":{},"19":{},"37":{},"38":{},"41":{},"43":{},"59":{}},"component":{},"keyword":{}}],["megabyt",{"_index":3213,"title":{},"name":{},"text":{"7":{},"9":{}},"component":{},"keyword":{}}],["mem",{"_index":5481,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["mem=1234",{"_index":5529,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["member",{"_index":1849,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"26":{},"29":{},"34":{},"35":{},"51":{},"52":{}},"component":{},"keyword":{}}],["membership",{"_index":1677,"title":{},"name":{},"text":{"3":{},"7":{}},"component":{},"keyword":{}}],["memori",{"_index":2438,"title":{"33-34":{}},"name":{},"text":{"4":{},"7":{},"9":{},"15":{},"33":{},"46":{},"51":{},"52":{}},"component":{},"keyword":{}}],["mention",{"_index":910,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"33":{},"39":{}},"component":{},"keyword":{}}],["menu",{"_index":7315,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["mere",{"_index":3645,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["merg",{"_index":87,"title":{},"name":{},"text":{"1":{},"3":{},"7":{},"8":{},"9":{},"33":{},"34":{},"35":{}},"component":{},"keyword":{}}],["mergeappend",{"_index":1249,"title":{},"name":{},"text":{"3":{},"7":{}},"component":{},"keyword":{}}],["messag",{"_index":886,"title":{},"name":{},"text":{"3":{},"9":{},"34":{},"39":{},"51":{},"52":{},"61":{}},"component":{},"keyword":{}}],["messagequeueintern",{"_index":8313,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["messagequeueputmessag",{"_index":8314,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["messagequeuerec",{"_index":8315,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["messagequeuesend",{"_index":8316,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["messages=local",{"_index":5096,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["met",{"_index":1186,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["meta",{"_index":3107,"title":{},"name":{},"text":{"7":{},"9":{},"33":{}},"component":{},"keyword":{}}],["metadata",{"_index":3857,"title":{"21-7":{},"21-19":{},"33-11":{}},"name":{},"text":{"8":{},"14":{},"18":{},"21":{},"24":{},"33":{},"40":{},"62":{}},"component":{},"keyword":{}}],["metadata.nam",{"_index":6654,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["method",{"_index":432,"title":{"72-3":{}},"name":{},"text":{"2":{},"3":{},"5":{},"7":{},"9":{},"16":{},"33":{},"34":{},"38":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"51":{},"52":{},"53":{},"67":{},"70":{}},"component":{},"keyword":{}}],["method,refer",{"_index":2548,"title":{},"name":{},"text":{"5":{}},"component":{},"keyword":{}}],["method=`nam",{"_index":4626,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["method=fetch",{"_index":8657,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["method=method",{"_index":4507,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["method=non",{"_index":8655,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["method=stream",{"_index":8656,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["method[:*detail",{"_index":4519,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["metric",{"_index":5804,"title":{"33-81":{}},"name":{},"text":{"17":{},"33":{}},"component":{},"keyword":{}}],["mhz",{"_index":5314,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["mi",{"_index":2159,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["miami",{"_index":3720,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["microsecond",{"_index":2231,"title":{},"name":{},"text":{"3":{},"9":{},"57":{}},"component":{},"keyword":{}}],["microservic",{"_index":7327,"title":{},"name":{},"text":{"38":{},"45":{}},"component":{},"keyword":{}}],["microsoft",{"_index":3265,"title":{},"name":{},"text":{"7":{},"9":{}},"component":{},"keyword":{}}],["middl",{"_index":4853,"title":{},"name":{},"text":{"9":{},"51":{}},"component":{},"keyword":{}}],["middlewar",{"_index":7572,"title":{"51-17":{}},"name":{},"text":{"45":{},"51":{}},"component":{},"keyword":{}}],["migrat",{"_index":132,"title":{"6":{},"6-1":{},"6-2":{},"6-3":{},"6-14":{},"6-18":{},"6-26":{}},"name":{},"text":{"1":{},"3":{},"6":{},"7":{},"21":{},"33":{},"38":{},"46":{},"51":{},"61":{},"70":{},"74":{}},"component":{},"keyword":{}}],["migration_guid",{"_index":2674,"title":{},"name":{"6":{}},"text":{},"component":{},"keyword":{}}],["milk",{"_index":1049,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["million",{"_index":3785,"title":{},"name":{},"text":{"7":{},"39":{},"46":{},"51":{}},"component":{},"keyword":{}}],["millisecond",{"_index":3497,"title":{},"name":{},"text":{"7":{},"9":{},"52":{},"57":{}},"component":{},"keyword":{}}],["min",{"_index":1758,"title":{},"name":{},"text":{"3":{},"9":{}},"component":{},"keyword":{}}],["min(employe",{"_index":1942,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["mincod",{"_index":2463,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["mind",{"_index":1372,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"33":{},"34":{},"35":{},"51":{}},"component":{},"keyword":{}}],["mini",{"_index":7346,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["minim",{"_index":3197,"title":{},"name":{},"text":{"7":{},"9":{},"13":{},"15":{},"33":{},"51":{},"52":{}},"component":{},"keyword":{}}],["minimalist",{"_index":148,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["minimum",{"_index":2284,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"34":{},"35":{},"51":{},"53":{}},"component":{},"keyword":{}}],["minor",{"_index":2394,"title":{},"name":{},"text":{"4":{},"7":{},"33":{},"51":{}},"component":{},"keyword":{}}],["minu",{"_index":663,"title":{"3-151":{}},"name":{},"text":{"3":{},"51":{}},"component":{},"keyword":{}}],["minunicod",{"_index":2467,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["minut",{"_index":2069,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"31":{},"40":{},"51":{},"57":{}},"component":{},"keyword":{}}],["minute(",{"_index":2864,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["mips64el",{"_index":7256,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["mirror",{"_index":3838,"title":{},"name":{},"text":{"8":{},"51":{}},"component":{},"keyword":{}}],["misestim",{"_index":3684,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["misinterpret",{"_index":3248,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["mismatch",{"_index":4999,"title":{},"name":{},"text":{"9":{},"18":{},"47":{},"58":{}},"component":{},"keyword":{}}],["miss",{"_index":3081,"title":{"61-4":{}},"name":{},"text":{"7":{},"9":{},"21":{},"24":{},"34":{},"39":{},"52":{},"61":{}},"component":{},"keyword":{}}],["missing=`schema",{"_index":4468,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["missing_custom",{"_index":9199,"title":{},"name":{},"text":{"61":{}},"component":{},"keyword":{}}],["missing_customer_v2",{"_index":9201,"title":{},"name":{},"text":{"61":{}},"component":{},"keyword":{}}],["mission",{"_index":7526,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["mistrust",{"_index":1739,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["misus",{"_index":7034,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["mitm",{"_index":6681,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["mix",{"_index":641,"title":{"3-133":{}},"name":{},"text":{"3":{},"9":{},"57":{},"59":{}},"component":{},"keyword":{}}],["mixedcasenam",{"_index":4876,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["mkdir",{"_index":2614,"title":{},"name":{},"text":{"5":{},"6":{},"16":{},"31":{},"34":{},"39":{},"44":{}},"component":{},"keyword":{}}],["mm",{"_index":2082,"title":{},"name":{},"text":{"3":{},"15":{},"25":{},"51":{},"57":{},"65":{}},"component":{},"keyword":{}}],["mnt/standby/arch",{"_index":5118,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["modal",{"_index":5585,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["mode",{"_index":47,"title":{"11":{},"72":{},"9-191":{},"9-196":{},"59-3":{},"70-7":{}},"name":{},"text":{"1":{},"3":{},"6":{},"7":{},"8":{},"9":{},"11":{},"12":{},"13":{},"14":{},"15":{},"18":{},"19":{},"21":{},"26":{},"29":{},"31":{},"33":{},"43":{},"46":{},"49":{},"51":{},"52":{},"59":{},"60":{},"66":{},"67":{},"70":{}},"component":{},"keyword":{}}],["mode.in",{"_index":58,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["mode=mod",{"_index":5147,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["model",{"_index":458,"title":{"3-4":{}},"name":{},"text":{"33":{},"37":{},"39":{},"49":{},"52":{}},"component":{},"keyword":{}}],["moder",{"_index":4798,"title":{},"name":{},"text":{"9":{},"51":{}},"component":{},"keyword":{}}],["modes.th",{"_index":4663,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["modes.when",{"_index":5155,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["modif",{"_index":1409,"title":{"34-32":{}},"name":{},"text":{"3":{},"4":{},"7":{},"9":{},"12":{},"18":{},"26":{},"27":{},"33":{},"34":{},"51":{},"67":{},"74":{}},"component":{},"keyword":{}}],["modifi",{"_index":1159,"title":{"33-11":{},"34-30":{},"34-54":{},"50-4":{}},"name":{},"text":{"3":{},"5":{},"6":{},"7":{},"9":{},"15":{},"18":{},"22":{},"25":{},"26":{},"27":{},"28":{},"29":{},"31":{},"32":{},"33":{},"34":{},"35":{},"41":{},"50":{},"51":{},"52":{},"57":{},"65":{},"67":{},"69":{},"70":{},"71":{}},"component":{},"keyword":{}}],["modify_coldef",{"_index":1963,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["modul",{"_index":855,"title":{"6-7":{},"13-3":{},"24-9":{}},"name":{},"text":{"3":{},"6":{},"9":{},"13":{},"14":{},"51":{},"52":{}},"component":{},"keyword":{}}],["module(",{"_index":8719,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["module(ora2pg.pm",{"_index":2696,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["modules;se",{"_index":3122,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["modulo",{"_index":1673,"title":{},"name":{},"text":{"3":{},"51":{}},"component":{},"keyword":{}}],["moment",{"_index":5231,"title":{},"name":{},"text":{"9":{},"33":{},"54":{},"57":{}},"component":{},"keyword":{}}],["mon",{"_index":4965,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["monday",{"_index":2072,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["monetary=local",{"_index":5097,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["monitor",{"_index":4579,"title":{"52":{},"17-17":{},"33-78":{},"33-82":{},"51-27":{},"52-1":{},"52-41":{}},"name":{},"text":{"9":{},"17":{},"33":{},"38":{},"49":{},"50":{},"51":{},"52":{}},"component":{},"keyword":{}}],["monn",{"_index":2150,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["month",{"_index":2091,"title":{},"name":{},"text":{"3":{},"9":{},"33":{},"34":{},"40":{},"57":{}},"component":{},"keyword":{}}],["month/date/year",{"_index":9069,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["month/day/year",{"_index":9064,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["monthli",{"_index":8935,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["months_between",{"_index":8863,"title":{"57-9":{}},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["months_between(to_date('2023",{"_index":8936,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["more",{"_index":213,"title":{},"name":{},"text":{"1":{},"2":{},"3":{},"5":{},"6":{},"7":{},"8":{},"9":{},"16":{},"17":{},"18":{},"22":{},"33":{},"34":{},"35":{},"37":{},"38":{},"39":{},"40":{},"41":{},"46":{},"47":{},"51":{},"52":{},"53":{},"57":{},"70":{},"74":{}},"component":{},"keyword":{}}],["moreov",{"_index":3390,"title":{},"name":{},"text":{"7":{},"9":{}},"component":{},"keyword":{}}],["most_common_v",{"_index":3625,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["mostli",{"_index":4564,"title":{},"name":{},"text":{"9":{},"51":{}},"component":{},"keyword":{}}],["mount",{"_index":6959,"title":{},"name":{},"text":{"33":{},"51":{}},"component":{},"keyword":{}}],["mouth",{"_index":9103,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["move",{"_index":1252,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"18":{},"33":{},"51":{},"52":{}},"component":{},"keyword":{}}],["movement",{"_index":7559,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["mptcp",{"_index":7268,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["mr.nice",{"_index":7091,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["ms",{"_index":3495,"title":{},"name":{},"text":{"7":{},"9":{},"39":{}},"component":{},"keyword":{}}],["msb",{"_index":3293,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["msdnchina",{"_index":3992,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["msec",{"_index":5305,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["msg_20260209135507cc16362d5d324ccd",{"_index":7395,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["msg_20260209135642777cbc5c82ca4a85",{"_index":7443,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["msg_2026021114092101601c5650864a2d",{"_index":7417,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["msg_20260211142845878f5f1a5a2f44a7",{"_index":7425,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["msg_20260211175909d47a6871bcca4897",{"_index":7430,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["msgpack",{"_index":7520,"title":{"43-4":{}},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["mst",{"_index":2126,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["much",{"_index":1020,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"33":{},"34":{},"35":{},"51":{},"52":{}},"component":{},"keyword":{}}],["multi",{"_index":2716,"title":{"8-5":{}},"name":{},"text":{"6":{},"7":{},"8":{},"9":{},"36":{},"37":{},"39":{}},"component":{},"keyword":{}}],["multibyt",{"_index":2388,"title":{"4-4":{}},"name":{},"text":{"4":{},"57":{}},"component":{},"keyword":{}}],["multicolumn",{"_index":3830,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["multicor",{"_index":5334,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["multidimension",{"_index":1718,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["multilin",{"_index":1661,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["multilingu",{"_index":7524,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["multimast",{"_index":7749,"title":{"51-18":{},"51-19":{}},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["multipl",{"_index":1046,"title":{"51-34":{}},"name":{},"text":{"3":{},"6":{},"7":{},"9":{},"18":{},"22":{},"33":{},"34":{},"38":{},"39":{},"46":{},"51":{},"52":{},"67":{}},"component":{},"keyword":{}}],["multipli",{"_index":3503,"title":{},"name":{},"text":{"7":{},"9":{},"51":{}},"component":{},"keyword":{}}],["multiprocessor",{"_index":4940,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["multitransact",{"_index":4326,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["multivari",{"_index":3007,"title":{"7-42":{},"7-43":{}},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["multivers",{"_index":7779,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["multixact",{"_index":5074,"title":{},"name":{},"text":{"9":{},"51":{},"52":{}},"component":{},"keyword":{}}],["multixactgen",{"_index":8359,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["multixactmemb",{"_index":8597,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["multixactmemberbuff",{"_index":8360,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["multixactmemberslru",{"_index":8361,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["multixactoffset",{"_index":8598,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["multixactoffsetbuff",{"_index":8362,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["multixactoffsetslru",{"_index":8363,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["multixacttrunc",{"_index":8364,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["mung",{"_index":3287,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["mutual",{"_index":4677,"title":{},"name":{},"text":{"9":{},"24":{},"52":{}},"component":{},"keyword":{}}],["mv",{"_index":3049,"title":{},"name":{},"text":{"7":{},"9":{},"62":{}},"component":{},"keyword":{}}],["mvcc",{"_index":7793,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["mview",{"_index":2699,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["mview_sh.sql",{"_index":2924,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["mvn",{"_index":5693,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["mxid",{"_index":5071,"title":{},"name":{},"text":{"9":{},"51":{}},"component":{},"keyword":{}}],["mxid,mxid",{"_index":5189,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["mxid_ag",{"_index":5073,"title":{},"name":{},"text":{"9":{},"51":{}},"component":{},"keyword":{}}],["mxoff",{"_index":5198,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["my/secure/location/backup_manifest.1234",{"_index":5005,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["my_databas",{"_index":5518,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["my_func(:in1",{"_index":5897,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["my_savepoint",{"_index":1392,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["my_tabl",{"_index":1474,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["mydb",{"_index":879,"title":{},"name":{},"text":{"3":{},"9":{},"51":{}},"component":{},"keyword":{}}],["mydb*.myscheam*.myrel",{"_index":4432,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["mydbserv",{"_index":4587,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["myglobalindex",{"_index":2363,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["myrel",{"_index":4430,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["myrowtyp",{"_index":1899,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["myschema",{"_index":4440,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["myschema*.myrel",{"_index":4431,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["mysql",{"_index":2676,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["mytab",{"_index":4861,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["mytab.sql",{"_index":4877,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["mytabl",{"_index":1731,"title":{},"name":{},"text":{"3":{},"70":{}},"component":{},"keyword":{}}],["mytable(bid",{"_index":2364,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["mytable(f1",{"_index":1893,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["mytable.arraycolumn[4",{"_index":1719,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["mytable.compositecol).somefield",{"_index":1729,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["mytable.mycolumn",{"_index":1725,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["mytable.two_d_column[17][34",{"_index":1720,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["n",{"_index":1563,"title":{"7-42":{}},"name":{},"text":{"3":{},"7":{},"9":{},"18":{},"20":{},"22":{},"25":{},"29":{},"32":{},"33":{},"39":{},"51":{},"52":{},"57":{},"69":{}},"component":{},"keyword":{}}],["n/a",{"_index":6356,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["n_dead_tup",{"_index":8554,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["n_distinct",{"_index":3622,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["n_initvar",{"_index":6093,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["n_ins_since_vacuum",{"_index":8556,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["n_live_tup",{"_index":8553,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["n_mod_since_analyz",{"_index":8555,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["n_tup_del",{"_index":8551,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["n_tup_hot_upd",{"_index":8552,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["n_tup_in",{"_index":8026,"title":{},"name":{},"text":{"51":{},"52":{}},"component":{},"keyword":{}}],["n_tup_upd",{"_index":8550,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["na",{"_index":7904,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["nagio",{"_index":7887,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["name",{"_index":347,"title":{"3-132":{},"24-8":{},"62-5":{},"62-22":{}},"name":{},"text":{"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"9":{},"12":{},"15":{},"16":{},"17":{},"18":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"57":{},"63":{},"64":{},"65":{},"66":{},"69":{},"70":{},"71":{},"74":{}},"component":{},"keyword":{}}],["name%typ",{"_index":9385,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["name(argtyp",{"_index":4948,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["name,default",{"_index":2545,"title":{},"name":{},"text":{"5":{}},"component":{},"keyword":{}}],["name=ivorysql",{"_index":2524,"title":{},"name":{},"text":{"5":{},"53":{}},"component":{},"keyword":{}}],["name=valu",{"_index":5472,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["name>:newnode1111.select",{"_index":2785,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["sys@prod1>set",{"_index":2783,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["sys_connect_by_path(col",{"_index":2356,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["sys_context",{"_index":3854,"title":{"57-50":{}},"name":{"54":{}},"text":{"8":{},"54":{},"55":{},"57":{}},"component":{},"keyword":{}}],["sys_context('namespac",{"_index":8789,"title":{},"name":{},"text":{"54":{}},"component":{},"keyword":{}}],["sys_context('userenv','db_nam",{"_index":9131,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["sys_extract_utc",{"_index":686,"title":{"3-170":{},"57-40":{}},"name":{},"text":{"3":{},"57":{}},"component":{},"keyword":{}}],["sys_extract_utc('2018",{"_index":2052,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["sys_extract_utc(timestamp",{"_index":9112,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["sys_guid",{"_index":262,"title":{"28":{},"68":{},"68-3":{}},"name":{},"text":{"1":{},"8":{},"28":{},"68":{}},"component":{},"keyword":{}}],["sys_guid_funct",{"_index":6343,"title":{},"name":{"28":{}},"text":{},"component":{},"keyword":{}}],["sys_session_rol",{"_index":8788,"title":{"54-3":{}},"name":{},"text":{"54":{}},"component":{},"keyword":{}}],["sysadmin",{"_index":7962,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["syscach",{"_index":5978,"title":{},"name":{},"text":{"21":{}},"component":{},"keyword":{}}],["sysconfdir",{"_index":4716,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["sysctl",{"_index":5308,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["sysdat",{"_index":711,"title":{"3-189":{},"57-4":{}},"name":{},"text":{"3":{},"57":{}},"component":{},"keyword":{}}],["sysdate()+to_dsinterval('0",{"_index":9094,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["sysdba@ivyo.com",{"_index":5805,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["syslog",{"_index":7471,"title":{},"name":{},"text":{"41":{},"51":{}},"component":{},"keyword":{}}],["syslogg",{"_index":8200,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["sysloggermain",{"_index":8199,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["system",{"_index":85,"title":{"37":{},"7-20":{},"51-13":{},"52-3":{}},"name":{},"text":{"1":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"12":{},"14":{},"16":{},"18":{},"21":{},"26":{},"27":{},"28":{},"29":{},"33":{},"34":{},"37":{},"38":{},"39":{},"42":{},"43":{},"49":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"61":{},"66":{},"71":{}},"component":{},"keyword":{}}],["system_prompt",{"_index":7388,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["system_stat",{"_index":3921,"title":{"49":{}},"name":{"49":{}},"text":{"8":{},"38":{},"49":{}},"component":{},"keyword":{}}],["systemctl",{"_index":300,"title":{},"name":{},"text":{"2":{},"16":{}},"component":{},"keyword":{}}],["systemtap",{"_index":8668,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["system’",{"_index":3242,"title":{},"name":{},"text":{"7":{},"52":{}},"component":{},"keyword":{}}],["systimestamp",{"_index":682,"title":{"3-167":{},"57-5":{}},"name":{},"text":{"3":{},"57":{}},"component":{},"keyword":{}}],["syyyi",{"_index":2141,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["t",{"_index":1565,"title":{},"name":{},"text":{"3":{},"6":{},"7":{},"9":{},"22":{},"26":{},"27":{},"29":{},"32":{},"33":{},"51":{},"54":{},"57":{},"66":{},"67":{},"74":{}},"component":{},"keyword":{}}],["t(a",{"_index":9361,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["t.f2",{"_index":1891,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["t.oid",{"_index":7830,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["t1",{"_index":3434,"title":{},"name":{},"text":{"7":{},"23":{},"69":{}},"component":{},"keyword":{}}],["t1%rowtyp",{"_index":9403,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["t1(id",{"_index":9375,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["t1(name",{"_index":6207,"title":{},"name":{},"text":{"25":{}},"component":{},"keyword":{}}],["t1.fiveth",{"_index":3506,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["t1.hundr",{"_index":3454,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["t1.id%typ",{"_index":9378,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["t1.oid",{"_index":6130,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["t1.typnam",{"_index":6123,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["t1.unique1",{"_index":3437,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["t1.unique2",{"_index":3438,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["t2",{"_index":3436,"title":{},"name":{},"text":{"7":{},"23":{},"67":{}},"component":{},"keyword":{}}],["t2(a",{"_index":9363,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["t2.hundr",{"_index":3455,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["t2.oid",{"_index":6132,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["t2.typnam",{"_index":6125,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["t2.unique2",{"_index":3439,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["t2_16432_rowid_idx",{"_index":9365,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["t3",{"_index":9367,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["t3(a",{"_index":9366,"title":{},"name":{},"text":{"67":{}},"component":{},"keyword":{}}],["t\\r\\n\\v",{"_index":1605,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["t_ora_lik",{"_index":9257,"title":{},"name":{},"text":{"63":{}},"component":{},"keyword":{}}],["t_random",{"_index":6886,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["t_regexp_lik",{"_index":9038,"title":{},"name":{},"text":{"57":{}},"component":{},"keyword":{}}],["t_zoo",{"_index":6884,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["tab",{"_index":974,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"34":{}},"component":{},"keyword":{}}],["tab.sql.sql",{"_index":2955,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["tabl",{"_index":459,"title":{"3-6":{},"3-135":{},"3-139":{},"3-143":{},"6-12":{},"6-15":{},"6-19":{},"6-23":{},"67-4":{},"67-5":{},"68-3":{},"70-4":{},"74-5":{}},"name":{},"text":{"3":{},"4":{},"6":{},"7":{},"8":{},"9":{},"12":{},"14":{},"15":{},"21":{},"23":{},"24":{},"25":{},"26":{},"27":{},"29":{},"33":{},"39":{},"40":{},"41":{},"42":{},"45":{},"46":{},"50":{},"51":{},"52":{},"54":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"73":{},"74":{}},"component":{},"keyword":{}}],["table(",{"_index":2840,"title":{},"name":{},"text":{"6":{},"9":{},"39":{}},"component":{},"keyword":{}}],["table,table,public.audit_demo,\"cr",{"_index":7500,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["table,view,grant,sequence,tablespace,procedure,trigger,function,package,partition,type,mview,query,dblink,synonym,directory,test,test_view",{"_index":2803,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["table.col",{"_index":1742,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["table.not",{"_index":4960,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["table.with",{"_index":4612,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["table/column",{"_index":1668,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["table1",{"_index":1391,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["table='foo(bar",{"_index":5087,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["table=`pattern",{"_index":4791,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["table=`t",{"_index":5081,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["table=foo",{"_index":4377,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["table=pattern",{"_index":4441,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["table=schemapat",{"_index":4437,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["table=t",{"_index":4363,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["table_",{"_index":2939,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["table_nam",{"_index":1999,"title":{},"name":{},"text":{"3":{},"7":{},"29":{},"51":{},"67":{},"69":{}},"component":{},"keyword":{}}],["table_name%rowtyp",{"_index":6349,"title":{"29-5":{},"69-5":{}},"name":{},"text":{},"component":{},"keyword":{}}],["table_name.column1",{"_index":6391,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["table_name.column2",{"_index":6393,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["table_name.columnn",{"_index":6395,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["table_opt",{"_index":5045,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["table_sh.sql",{"_index":2902,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["tableattr",{"_index":5047,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["tablecmds.c",{"_index":5966,"title":{},"name":{},"text":{"21":{}},"component":{},"keyword":{}}],["tablenam",{"_index":1016,"title":{},"name":{},"text":{"3":{},"7":{},"57":{}},"component":{},"keyword":{}}],["tablename.columnnam",{"_index":6354,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["tablename.columnname%typ",{"_index":9376,"title":{},"name":{},"text":{"69":{}},"component":{},"keyword":{}}],["tables)cr",{"_index":4606,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["tables.f",{"_index":4618,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["tables.p",{"_index":4616,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["tables.t",{"_index":4605,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["tablespac",{"_index":2700,"title":{},"name":{},"text":{"6":{},"7":{},"9":{},"51":{},"52":{}},"component":{},"keyword":{}}],["tablespace=`tablespac",{"_index":4628,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["tablespace=index_tablespac",{"_index":4625,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["tablespace=tablespac",{"_index":4378,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["tablespace_map",{"_index":4586,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["tablespace_sh.sql",{"_index":2906,"title":{},"name":{},"text":{"6":{}},"component":{},"keyword":{}}],["tablespacecr",{"_index":8405,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["tablespaces.if",{"_index":4502,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["tablespaces_stream",{"_index":8653,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["tablespaces_tot",{"_index":8652,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["tablespace’",{"_index":4480,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["table’",{"_index":1209,"title":{},"name":{},"text":{"3":{},"7":{},"27":{},"29":{},"51":{},"52":{}},"component":{},"keyword":{}}],["tag",{"_index":1596,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"24":{},"34":{},"52":{},"74":{}},"component":{},"keyword":{}}],["tag$str",{"_index":1608,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["taht",{"_index":8826,"title":{},"name":{},"text":{"55":{}},"component":{},"keyword":{}}],["tail",{"_index":7493,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["tailor",{"_index":7263,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["taint",{"_index":6907,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["take",{"_index":332,"title":{},"name":{},"text":{"2":{},"3":{},"7":{},"9":{},"15":{},"31":{},"33":{},"34":{},"41":{},"51":{},"52":{},"74":{}},"component":{},"keyword":{}}],["taken",{"_index":1512,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"33":{},"51":{},"52":{}},"component":{},"keyword":{}}],["talk",{"_index":6663,"title":{},"name":{},"text":{"33":{},"51":{}},"component":{},"keyword":{}}],["tamper",{"_index":4560,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["tao",{"_index":4026,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["tap",{"_index":7362,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["tar",{"_index":2741,"title":{},"name":{},"text":{"6":{},"7":{},"9":{},"16":{},"41":{},"43":{},"44":{},"45":{},"47":{},"48":{}},"component":{},"keyword":{}}],["tar`output",{"_index":4759,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["tar`th",{"_index":4937,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["target",{"_index":1696,"title":{"33-107":{}},"name":{},"text":{"3":{},"6":{},"7":{},"9":{},"17":{},"21":{},"33":{},"41":{},"51":{},"57":{},"58":{},"67":{},"70":{}},"component":{},"keyword":{}}],["target=\"2021",{"_index":6913,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["target=target",{"_index":4486,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["target_typ",{"_index":6126,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["targetinst",{"_index":7047,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["targetlist",{"_index":6388,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["task",{"_index":3614,"title":{"33-99":{},"40-8":{},"40-9":{}},"name":{},"text":{"7":{},"9":{},"17":{},"31":{},"33":{},"38":{},"40":{},"46":{},"51":{},"52":{}},"component":{},"keyword":{}}],["tb1",{"_index":9140,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["tb1(c1",{"_index":9137,"title":{},"name":{},"text":{"58":{}},"component":{},"keyword":{}}],["tb_test1",{"_index":1970,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["tb_test1(id",{"_index":1967,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["tb_test2",{"_index":1981,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["tb_test2(id",{"_index":1980,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["tb_test3",{"_index":1995,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["tb_test3(id",{"_index":1984,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["tb_test4",{"_index":2005,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["tb_test4(id",{"_index":2004,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["tb_test5",{"_index":2009,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["tb_test5(id",{"_index":2008,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["tbl",{"_index":1839,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["tblspc",{"_index":5457,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["tcl",{"_index":2597,"title":{},"name":{},"text":{"5":{},"39":{}},"component":{},"keyword":{}}],["tcp",{"_index":350,"title":{},"name":{},"text":{"2":{},"9":{},"51":{},"52":{}},"component":{},"keyword":{}}],["tcp/ip",{"_index":5091,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["tcp_keepalives_count",{"_index":7932,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["tcp_keepalives_idl",{"_index":7930,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["tcp_keepalives_interv",{"_index":7931,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["tdhasrowid",{"_index":6335,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["td→t_infomask",{"_index":6305,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["team",{"_index":7076,"title":{},"name":{},"text":{"34":{},"35":{},"38":{}},"component":{},"keyword":{}}],["technic",{"_index":16,"title":{"1-6":{}},"name":{},"text":{"3":{},"6":{},"51":{}},"component":{},"keyword":{}}],["techniqu",{"_index":1927,"title":{},"name":{},"text":{"3":{},"7":{},"9":{},"33":{}},"component":{},"keyword":{}}],["technolog",{"_index":7264,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["tell",{"_index":3302,"title":{},"name":{},"text":{"7":{},"9":{},"22":{},"33":{},"52":{}},"component":{},"keyword":{}}],["temp",{"_index":8519,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["temp_byt",{"_index":8520,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["temp_fil",{"_index":8515,"title":{},"name":{},"text":{"52":{}},"component":{},"keyword":{}}],["temp_hi",{"_index":960,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["temp_lo",{"_index":956,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["temp_tablespac",{"_index":8023,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["temperatur",{"_index":959,"title":{},"name":{},"text":{"3":{},"9":{}},"component":{},"keyword":{}}],["templat",{"_index":2673,"title":{"6-26":{},"14-6":{},"24-6":{},"24-12":{}},"name":{},"text":{"6":{},"9":{},"14":{},"19":{},"33":{},"34":{}},"component":{},"keyword":{}}],["template0",{"_index":450,"title":{},"name":{},"text":{"2":{},"6":{},"7":{},"9":{}},"component":{},"keyword":{}}],["template1",{"_index":453,"title":{},"name":{},"text":{"2":{},"6":{},"7":{},"9":{},"14":{},"19":{}},"component":{},"keyword":{}}],["template=templ",{"_index":4388,"title":{},"name":{},"text":{"9":{}},"component":{},"keyword":{}}],["templates/secret.yaml",{"_index":6528,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["tempor",{"_index":3834,"title":{},"name":{},"text":{"8":{}},"component":{},"keyword":{}}],["temporari",{"_index":1349,"title":{},"name":{},"text":{"3":{},"6":{},"9":{},"51":{},"52":{}},"component":{},"keyword":{}}],["temporarili",{"_index":3791,"title":{},"name":{},"text":{"7":{},"9":{},"22":{},"51":{}},"component":{},"keyword":{}}],["tempt",{"_index":3183,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["ten",{"_index":3409,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["tend",{"_index":7872,"title":{},"name":{},"text":{"51":{}},"component":{},"keyword":{}}],["tenk1",{"_index":3356,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["tenk1_hundr",{"_index":3609,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["tenk1_thous_tenth",{"_index":3610,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["tenk1_unique1",{"_index":3396,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["tenk1_unique2",{"_index":3425,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["tenk2",{"_index":3435,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["tenk2_unique2",{"_index":3444,"title":{},"name":{},"text":{"7":{}},"component":{},"keyword":{}}],["terabyt",{"_index":6662,"title":{},"name":{},"text":{"33":{}},"component":{},"keyword":{}}],["term",{"_index":1772,"title":{},"name":{},"text":{"3":{},"6":{},"9":{},"27":{},"33":{},"34":{},"35":{},"37":{},"51":{},"52":{},"74":{}},"component":{},"keyword":{}}],["termin",{"_index":968,"title":{"62-7":{},"62-23":{}},"name":{},"text":{"3":{},"7":{},"9":{},"22":{},"33":{},"34":{},"50":{},"51":{},"52":{},"54":{},"71":{}},"component":{},"keyword":{}}],["territori",{"_index":8816,"title":{},"name":{},"text":{"54":{},"55":{}},"component":{},"keyword":{}}],["test",{"_index":324,"title":{"3-246":{},"3-247":{},"6-13":{},"11-3":{},"33-16":{},"33-17":{},"33-18":{},"34-12":{},"34-56":{},"56-3":{},"58-3":{},"60-3":{},"61-3":{},"63-3":{},"64-3":{},"66-6":{},"70-3":{},"71-9":{},"72-3":{},"73-3":{}},"name":{},"text":{"2":{},"3":{},"5":{},"7":{},"8":{},"9":{},"15":{},"31":{},"32":{},"33":{},"34":{},"35":{},"38":{},"39":{},"41":{},"42":{},"46":{},"51":{},"52":{},"57":{},"58":{},"60":{},"63":{},"66":{},"74":{}},"component":{},"keyword":{}}],["test'),oneonetwo100414288newnode1111 -p -U ivorysql -D /usr/local/ivorysql/ivorysql-5/data Specifies the host name of the machine on which the server is running; Specifies the TCP port or local Unix domain socket file extension on which the server is listening for connections. Defaults is 5432; User name to connect as; Directory to write the output to. pg_basebackup will create the directory and any parent directories if necessary. The directory may already exist, but it is an error if the directory already exists and is not empty. For more options, refer to pg_basebackup --help. Add below contents in ~/.bash_profile file: PATH=/usr/local/ivorysql/ivorysql-5/bin:$PATH export PATH PGDATA=/usr/local/ivorysql/ivorysql-5/data export PGDATA Source to make it effective: $ source ~/.bash_profile $ sudo pg_ctl -D /usr/local/ivorysql/ivorysql-5/data start Run below command on the primary node, you will see walsender: $ ps -ef |grep postgres ... ivorysql 11176 8067 0 21:54 ? 00:00:00 postgres: walsender ivorysql 192.168.31.102(53416) streaming 0/7000060... while it is walreceiver on standby: $ ps -ef | grep postgres ... ivorysql 6567 6139 0 21:54 ? 00:00:00 postgres: walreceiver streaming 0/7000060 ... On the primary node, connect to IvorySQL and show the status: $ psql -d ivorysql psql (18.0) Type \"help\" for help. ivorysql=# select * from pg_stat_replication; pid | usesysid | usename | application_name | client_addr | client_hostname | client_port | backend_start | backend_ xmin | state | sent_lsn | write_lsn | flush_lsn | replay_lsn | write_lag | flush_lag | replay_lag | sync_priority | sync_state | reply_time -------+----------+----------+------------------+----------------+-----------------+-------------+-------------------------------+--------- -----+-----------+-----------+-----------+-----------+------------+-----------+-----------+------------+---------------+------------+------ ------------------------- 11176 | 10 | ivorysql | walreceiver | 192.168.31.102 | | 53416 | 2024-12-18 21:54:52.041847-05 | | streaming | 0/7000148 | 0/7000148 | 0/7000148 | 0/7000148 | | | | 0 | async | 2024- 12-18 22:52:07.325111-05 (1 row) Here 192.168.31.102 is the ip address of the standby node, and async means the data synchronization method is asynchronous. All writing operations are performed on the primary node, while reading can be on both primary and standby. The data on primary is synchronized to standby through streaming replication. The writing result can be queried on all the nodes in the cluster. Below is an example. Create a new database test on primary and query: $ psql -d ivorysql psql (18.0) Type \"help\" for help. ivorysql=# create database test; CREATE DATABASE ivorysql=# \\l List of databases Name | Owner | Encoding | Locale Provider | Collate | Ctype | ICU Locale | ICU Rules | Access privileges -----------+----------+----------+-----------------+-------------+-------------+------------+-----------+----------------------- ivorysql | ivorysql | UTF8 | libc | en_US.UTF-8 | en_US.UTF-8 | | | template0 | ivorysql | UTF8 | libc | en_US.UTF-8 | en_US.UTF-8 | | | =c/ivorysql + | | | | | | | | ivorysql=CTc/ivorysql template1 | ivorysql | UTF8 | libc | en_US.UTF-8 | en_US.UTF-8 | | | =c/ivorysql + | | | | | | | | ivorysql=CTc/ivorysql test | ivorysql | UTF8 | libc | en_US.UTF-8 | en_US.UTF-8 | | | (4 rows) Query on the standby node: $ psql -d ivorysql psql (18.0) Type \"help\" for help. ivorysql=# \\l List of databases Name | Owner | Encoding | Locale Provider | Collate | Ctype | ICU Locale | ICU Rules | Access privileges -----------+----------+----------+-----------------+-------------+-------------+------------+-----------+----------------------- ivorysql | ivorysql | UTF8 | libc | en_US.UTF-8 | en_US.UTF-8 | | | template0 | ivorysql | UTF8 | libc | en_US.UTF-8 | en_US.UTF-8 | | | =c/ivorysql + | | | | | | | | ivorysql=CTc/ivorysql template1 | ivorysql | UTF8 | libc | en_US.UTF-8 | en_US.UTF-8 | | | =c/ivorysql + | | | | | | | | ivorysql=CTc/ivorysql test | ivorysql | UTF8 | libc | en_US.UTF-8 | en_US.UTF-8 | | | (4 rows)","title":"Building an IvorySQL cluster","component":"ivorysql-doc","version":"master","name":"cluster_setup","url":"/ivorysql-doc/master/cluster_setup.html","titles":[{"text":"1. Primary node","hash":"primary-node","id":1},{"text":"1.1. Installing and start database","hash":"installing-and-start-database","id":2},{"text":"1.2. Stopping firewall","hash":"stopping-firewall","id":3},{"text":"1.3. Setting environment variables","hash":"setting-environment-variables","id":4},{"text":"1.4. Restarting IvorySQL sevice","hash":"restarting-ivorysql-sevice","id":5},{"text":"2. Standby node","hash":"standby-node","id":6},{"text":"2.1. Installing database","hash":"installing-database","id":7},{"text":"2.2. Stopping firewall","hash":"stopping-firewall-2","id":8},{"text":"2.3. Building streaming replication","hash":"building-streaming-replication","id":9},{"text":"2.4. Setting environment variables","hash":"setting-environment-variables-2","id":10},{"text":"2.5. Starting IvorySQL sevice","hash":"starting-ivorysql-sevice","id":11},{"text":"3. Experience the IvorySQL cluster","hash":"experience-the-ivorysql-cluster","id":12},{"text":"3.1. Checking cluster status","hash":"checking-cluster-status","id":13},{"text":"3.2. Using the cluster","hash":"using-the-cluster","id":14}]},"3":{"id":3,"text":"lvorySQL provides unique additional functionality on top of the open source PostgreSQL database. IvorySQL is committed to delivering value to its end-users through innovation and building on top of open source based database solutions. Our goal is to deliver a solution with high performance,scalability,reliability,and ease of use for small medium and large-scale enterprises. The extended functionality provided by IvorySQL will enable users to build highly performant and scalable PostgreSQL database clusters with better database compatibility and administration.This simplifies the process of migration to PostgreSQLfrom other DBMS with enhanced database administration experiences. The IvorySQL follows the same general architecture of PostgreSQL with some additions,but it does not deviate from its core philosophy.Thediagram below depicts essentially how IvorySQL operates. The yellow color in the diagram shows the new modules added by IvorySQL on top of existing PostgreSQL while IvorySQL has also made changes to existing modules and logical structures as well. The most noteworthy of those modules that received updates for supporting oracle compatibility are backend parser and system catalogs. The following diagram depicts the changes made to PostgreSQL’s existing directories and the additions that have been made. The first test to see whether you can access the database server is to try to create a database. A running IvorySQL server can manage many databases. Typically, a separate database is used for each project or for each user. Possibly, your site administrator has already created a database for your use. In that case you can omit this step and skip ahead to the next section. To create a new database, in this example named mydb, you use the following command: $ createdb mydb If this produces no response then this step was successful and you can skip over the remainder of this section. If you see a message similar to: createdb: command not found then IvorySQL was not installed properly. Either it was not installed at all or your shell’s search path was not set to include it. Try calling the command with an absolute path instead: $ /usr/local/pgsql/bin/createdb mydb The path at your site might be different. Contact your site administrator or check the installation instructions to correct the situation. Another response could be this: createdb: error: connection to server on socket \"/tmp/.s.PGSQL.5432\" failed: No such file or directory Is the server running locally and accepting connections on that socket? This means that the server was not started, or it is not listening where createdb expects to contact it. Again, check the installation instructions or consult the administrator. Another response could be this: createdb: error: connection to server on socket \"/tmp/.s.PGSQL.5432\" failed: FATAL: role \"joe\" does not exist where your own login name is mentioned. This will happen if the administrator has not created a IvorySQL user account for you. (IvorySQL user accounts are distinct from operating system user accounts.) If you are the administrator, You will need to become the operating system user under which IvorySQL was installed (usually postgres) to create the first user account. It could also be that you were assigned a IvorySQL user name that is different from your operating system user name; in that case you need to use the -U switch or set the PGUSER environment variable to specify your IvorySQL user name. If you have a user account but it does not have the privileges required to create a database, you will see the following: createdb: error: database creation failed: ERROR: permission denied to create database Not every user has authorization to create new databases. If IvorySQL refuses to create databases for you then the site administrator needs to grant you permission to create databases. Consult your site administrator if this occurs. If you installed IvorySQL yourself then you should log in for the purposes of this tutorial under the user account that you started the server as. [1] You can also create databases with other names. IvorySQL allows you to create any number of databases at a given site. Database names must have an alphabetic first character and are limited to 63 bytes in length. A convenient choice is to create a database with the same name as your current user name. Many tools assume that database name as the default, so it can save you some typing. To create that database, simply type: $ createdb If you do not want to use your database anymore you can remove it. For example, if you are the owner (creator) of the database mydb, you can destroy it using the following command: $ dropdb mydb (For this command, the database name does not default to the user account name. You always need to specify it.) This action physically removes all files associated with the database and cannot be undone, so this should only be done with a great deal of forethought. More about createdb and dropdb can be found in createdb and dropdb respectively. You can create a new table by specifying the table name, along with all column names and their types: CREATE TABLE weather ( city varchar(80), temp_lo int, -- low temperature temp_hi int, -- high temperature prcp real, -- precipitation date date ); You can enter this into psql with the line breaks. psql will recognize that the command is not terminated until the semicolon. White space (i.e., spaces, tabs, and newlines) can be used freely in SQL commands. That means you can type the command aligned differently than above, or even all on one line. Two dashes (“--”) introduce comments. Whatever follows them is ignored up to the end of the line. SQL is case insensitive about key words and identifiers, except when identifiers are double-quoted to preserve the case (not done above). varchar(80) specifies a data type that can store arbitrary character strings up to 80 characters in length. int is the normal integer type. real is a type for storing single precision floating-point numbers. date should be self-explanatory. (Yes, the column of type date is also named date. This might be convenient or confusing — you choose.) IvorySQL supports the standard SQL types int, smallint, real, double precision, char(`N), `varchar(`N), `date, time, timestamp, and interval, as well as other types of general utility and a rich set of geometric types. IvorySQL can be customized with an arbitrary number of user-defined data types. Consequently, type names are not key words in the syntax, except where required to support special cases in the SQL standard. The second example will store cities and their associated geographical location: CREATE TABLE cities ( name varchar(80), location point ); The point type is an example of a IvorySQL-specific data type. Finally, it should be mentioned that if you don’t need a table any longer or want to recreate it differently you can remove it using the following command: DROP TABLE tablename; When a table is created, it contains no data. The first thing to do before a database can be of much use is to insert data. Data is inserted one row at a time. You can also insert more than one row in a single command, but it is not possible to insert something that is not a complete row. Even if you know only some column values, a complete row must be created. To create a new row, use the INSERT command. The command requires the table name and column values. CREATE TABLE products ( product_no integer, name text, price numeric ); CREATE TABLE new_products ( product_no int , name varchar(255), price DECIMAL(10, 2), release_date DATE ); An example command to insert a row would be: INSERT INTO products VALUES (1, 'Cheese', 9.99); The data values are listed in the order in which the columns appear in the table, separated by commas. Usually, the data values will be literals (constants), but scalar expressions are also allowed. The above syntax has the drawback that you need to know the order of the columns in the table. To avoid this you can also list the columns explicitly. For example, both of the following commands have the same effect as the one above: INSERT INTO products (product_no, name, price) VALUES (1, 'Cheese', 9.99); INSERT INTO products (name, price, product_no) VALUES ('Cheese', 9.99, 1); Many users consider it good practice to always list the column names. If you don’t have values for all the columns, you can omit some of them. In that case, the columns will be filled with their default values. For example: INSERT INTO products (product_no, name) VALUES (1, 'Cheese'); INSERT INTO products VALUES (1, 'Cheese'); The second form is a IvorySQL extension. It fills the columns from the left with as many values as are given, and the rest will be defaulted. For clarity, you can also request default values explicitly, for individual columns or for the entire row: INSERT INTO products (product_no, name, price) VALUES (1, 'Cheese', DEFAULT); INSERT INTO products DEFAULT VALUES; You can insert multiple rows in a single command: INSERT INTO products (product_no, name, price) VALUES (1, 'Cheese', 9.99), (2, 'Bread', 1.99), (3, 'Milk', 2.99); INSERT INTO new_products (product_no, name, price, release_date) VALUES (1, 'A', 100.00, '2025-05-29'), (2, 'B', 150.50, '2024-11-20'), (3, 'C', 200.75, '2025-05-29'); It is also possible to insert the result of a query (which might be no rows, one row, or many rows): INSERT INTO products (product_no, name, price) SELECT product_no, name, price FROM new_products WHERE release_date = '2025-05-29'; This provides the full power of the SQL query mechanism for computing the rows to be inserted. Tip When inserting a lot of data at the same time, consider using the COPY command. It is not as flexible as the INSERT command, but is more efficient. The results of two queries can be combined using the set operations union, intersection, and difference. The syntax is query1 UNION [ALL] query2 query1 INTERSECT [ALL] query2 query1 EXCEPT [ALL] query2 where query1 and query2 are queries that can use any of the features discussed up to this point. UNION effectively appends the result of query2 to the result of query1 (although there is no guarantee that this is the order in which the rows are actually returned). Furthermore, it eliminates duplicate rows from its result, in the same way as DISTINCT, unless UNION ALL is used. INTERSECT returns all rows that are both in the result of query1 and in the result of query2. Duplicate rows are eliminated unless INTERSECT ALL is used. EXCEPT returns all rows that are in the result of query1 but not in the result of query2. (This is sometimes called the difference between two queries.) Again, duplicates are eliminated unless EXCEPT ALL is used. In order to calculate the union, intersection, or difference of two queries, the two queries must be “union compatible”, which means that they return the same number of columns and the corresponding columns have compatible data types. Set operations can be combined, for example query1 UNION query2 EXCEPT query3 which is equivalent to (query1 UNION query2) EXCEPT query3 As shown here, you can use parentheses to control the order of evaluation. Without parentheses, UNION and EXCEPT associate left-to-right, but INTERSECT binds more tightly than those two operators. Thus query1 UNION query2 INTERSECT query3 means query1 UNION (query2 INTERSECT query3) You can also surround an individual query with parentheses. This is important if the query needs to use any of the clauses discussed in following sections, such as LIMIT. Without parentheses, you’ll get a syntax error, or else the clause will be understood as applying to the output of the set operation rather than one of its inputs. For example, SELECT a FROM b UNION SELECT x FROM y LIMIT 10 is accepted, but it means (SELECT a FROM b UNION SELECT x FROM y) LIMIT 10 not SELECT a FROM b UNION (SELECT x FROM y LIMIT 10) When the optimizer determines that parallel query is the fastest execution strategy for a particular query, it will create a query plan that includes a Gather or Gather Merge node. Here is a simple example: EXPLAIN SELECT * FROM pgbench_accounts WHERE filler LIKE '%x%'; QUERY PLAN ------------------------------------------------------------------------------------- Gather (cost=1000.00..217018.43 rows=1 width=97) Workers Planned: 2 -> Parallel Seq Scan on pgbench_accounts (cost=0.00..216018.33 rows=1 width=97) Filter: (filler ~~ '%x%'::text) (4 rows) In all cases, the Gather or Gather Merge node will have exactly one child plan, which is the portion of the plan that will be executed in parallel. If the Gather or Gather Merge node is at the very top of the plan tree, then the entire query will execute in parallel. If it is somewhere else in the plan tree, then only the portion of the plan below it will run in parallel. In the example above, the query accesses only one table, so there is only one plan node other than the Gather node itself; since that plan node is a child of the Gather node, it will run in parallel. Using EXPLAIN, you can see the number of workers chosen by the planner. When the Gather node is reached during query execution, the process that is implementing the user’s session will request a number of background worker processes equal to the number of workers chosen by the planner. The number of background workers that the planner will consider using is limited to at most max_parallel_workers_per_gather. The total number of background workers that can exist at any one time is limited by both max_worker_processes and max_parallel_workers. Therefore, it is possible for a parallel query to run with fewer workers than planned, or even with no workers at all. The optimal plan may depend on the number of workers that are available, so this can result in poor query performance. If this occurrence is frequent, consider increasing max_worker_processes and max_parallel_workers so that more workers can be run simultaneously or alternatively reducing max_parallel_workers_per_gather so that the planner requests fewer workers. Every background worker process that is successfully started for a given parallel query will execute the parallel portion of the plan. The leader will also execute that portion of the plan, but it has an additional responsibility: it must also read all of the tuples generated by the workers. When the parallel portion of the plan generates only a small number of tuples, the leader will often behave very much like an additional worker, speeding up query execution. Conversely, when the parallel portion of the plan generates a large number of tuples, the leader may be almost entirely occupied with reading the tuples generated by the workers and performing any further processing steps that are required by plan nodes above the level of the Gather node or Gather Merge node. In such cases, the leader will do very little of the work of executing the parallel portion of the plan. When the node at the top of the parallel portion of the plan is Gather Merge rather than Gather, it indicates that each process executing the parallel portion of the plan is producing tuples in sorted order, and that the leader is performing an order-preserving merge. In contrast, Gather reads tuples from the workers in whatever order is convenient, destroying any sort order that may have existed. There are several settings that can cause the query planner not to generate a parallel query plan under any circumstances. In order for any parallel query plans whatsoever to be generated, the following settings must be configured as indicated. max_parallel_workers_per_gather must be set to a value that is greater than zero. This is a special case of the more general principle that no more workers should be used than the number configured via max_parallel_workers_per_gather. In addition, the system must not be running in single-user mode. Since the entire database system is running as a single process in this situation, no background workers will be available. Even when it is in general possible for parallel query plans to be generated, the planner will not generate them for a given query if any of the following are true: The query writes any data or locks any database rows. If a query contains a data-modifying operation either at the top level or within a CTE, no parallel plans for that query will be generated. As an exception, the following commands, which create a new table and populate it, can use a parallel plan for the underlying SELECT part of the query: CREATE TABLE … AS SELECT INTO CREATE MATERIALIZED VIEW REFRESH MATERIALIZED VIEW The query might be suspended during execution. In any situation in which the system thinks that partial or incremental execution might occur, no parallel plan is generated. For example, a cursor created using DECLARE CURSOR will never use a parallel plan. Similarly, a PL/pgSQL loop of the form FOR x IN query LOOP .. END LOOP will never use a parallel plan, because the parallel query system is unable to verify that the code in the loop is safe to execute while parallel query is active. The query uses any function marked PARALLEL UNSAFE. Most system-defined functions are PARALLEL SAFE, but user-defined functions are marked PARALLEL UNSAFE by default. The query is running inside of another query that is already parallel. For example, if a function called by a parallel query issues an SQL query itself, that query will never use a parallel plan. This is a limitation of the current implementation, but it may not be desirable to remove this limitation, since it could result in a single query using a very large number of processes. Even when parallel query plan is generated for a particular query, there are several circumstances under which it will be impossible to execute that plan in parallel at execution time. If this occurs, the leader will execute the portion of the plan below the Gather node entirely by itself, almost as if the Gather node were not present. This will happen if any of the following conditions are met: No background workers can be obtained because of the limitation that the total number of background workers cannot exceed max_worker_processes. No background workers can be obtained because of the limitation that the total number of background workers launched for purposes of parallel query cannot exceed max_parallel_workers. The client sends an Execute message with a non-zero fetch count. See the discussion of the extended query protocol. Since libpq currently provides no way to send such a message, this can only occur when using a client that does not rely on libpq. If this is a frequent occurrence, it may be a good idea to set max_parallel_workers_per_gather to zero in sessions where it is likely, so as to avoid generating query plans that may be suboptimal when run serially. Because each worker executes the parallel portion of the plan to completion, it is not possible to simply take an ordinary query plan and run it using multiple workers. Each worker would produce a full copy of the output result set, so the query would not run any faster than normal but would produce incorrect results. Instead, the parallel portion of the plan must be what is known internally to the query optimizer as a partial plan; that is, it must be constructed so that each process that executes the plan will generate only a subset of the output rows in such a way that each required output row is guaranteed to be generated by exactly one of the cooperating processes. Generally, this means that the scan on the driving table of the query must be a parallel-aware scan. The following types of parallel-aware table scans are currently supported. In a parallel sequential scan, the table’s blocks will be divided into ranges and shared among the cooperating processes. Each worker process will complete the scanning of its given range of blocks before requesting an additional range of blocks. In a parallel bitmap heap scan, one process is chosen as the leader. That process performs a scan of one or more indexes and builds a bitmap indicating which table blocks need to be visited. These blocks are then divided among the cooperating processes as in a parallel sequential scan. In other words, the heap scan is performed in parallel, but the underlying index scan is not. In a parallel index scan or parallel index-only scan, the cooperating processes take turns reading data from the index. Currently, parallel index scans are supported only for btree indexes. Each process will claim a single index block and will scan and return all tuples referenced by that block; other processes can at the same time be returning tuples from a different index block. The results of a parallel btree scan are returned in sorted order within each worker process. Other scan types, such as scans of non-btree indexes, may support parallel scans in the future. Just as in a non-parallel plan, the driving table may be joined to one or more other tables using a nested loop, hash join, or merge join. The inner side of the join may be any kind of non-parallel plan that is otherwise supported by the planner provided that it is safe to run within a parallel worker. Depending on the join type, the inner side may also be a parallel plan. In a nested loop join, the inner side is always non-parallel. Although it is executed in full, this is efficient if the inner side is an index scan, because the outer tuples and thus the loops that look up values in the index are divided over the cooperating processes. In a merge join, the inner side is always a non-parallel plan and therefore executed in full. This may be inefficient, especially if a sort must be performed, because the work and resulting data are duplicated in every cooperating process. In a hash join (without the \"parallel\" prefix), the inner side is executed in full by every cooperating process to build identical copies of the hash table. This may be inefficient if the hash table is large or the plan is expensive. In a parallel hash join, the inner side is a parallel hash that divides the work of building a shared hash table over the cooperating processes. IvorySQL supports parallel aggregation by aggregating in two stages. First, each process participating in the parallel portion of the query performs an aggregation step, producing a partial result for each group of which that process is aware. This is reflected in the plan as a Partial Aggregate node. Second, the partial results are transferred to the leader via Gather or Gather Merge. Finally, the leader re-aggregates the results across all workers in order to produce the final result. This is reflected in the plan as a Finalize Aggregate node. Because the Finalize Aggregate node runs on the leader process, queries that produce a relatively large number of groups in comparison to the number of input rows will appear less favorable to the query planner. For example, in the worst-case scenario the number of groups seen by the Finalize Aggregate node could be as many as the number of input rows that were seen by all worker processes in the Partial Aggregate stage. For such cases, there is clearly going to be no performance benefit to using parallel aggregation. The query planner takes this into account during the planning process and is unlikely to choose parallel aggregate in this scenario. Parallel aggregation is not supported in all situations. Each aggregate must be safe for parallelism and must have a combine function. If the aggregate has a transition state of type internal, it must have serialization and deserialization functions. See CREATE AGGREGATE for more details. Parallel aggregation is not supported if any aggregate function call contains DISTINCT or ORDER BY clause and is also not supported for ordered set aggregates or when the query involves GROUPING SETS. It can only be used when all joins involved in the query are also part of the parallel portion of the plan. Whenever IvorySQL needs to combine rows from multiple sources into a single result set, it uses an Append or MergeAppend plan node. This commonly happens when implementing UNION ALL or when scanning a partitioned table. Such nodes can be used in parallel plans just as they can in any other plan. However, in a parallel plan, the planner may instead use a Parallel Append node. When an Append node is used in a parallel plan, each process will execute the child plans in the order in which they appear, so that all participating processes cooperate to execute the first child plan until it is complete and then move to the second plan at around the same time. When a Parallel Append is used instead, the executor will instead spread out the participating processes as evenly as possible across its child plans, so that multiple child plans are executed simultaneously. This avoids contention, and also avoids paying the startup cost of a child plan in those processes that never execute it. Also, unlike a regular Append node, which can only have partial children when used within a parallel plan, a Parallel Append node can have both partial and non-partial child plans. Non-partial children will be scanned by only a single process, since scanning them more than once would produce duplicate results. Plans that involve appending multiple results sets can therefore achieve coarse-grained parallelism even when efficient partial plans are not available. For example, consider a query against a partitioned table that can only be implemented efficiently by using an index that does not support parallel scans. The planner might choose a Parallel Append of regular Index Scan plans; each individual index scan would have to be executed to completion by a single process, but different scans could be performed at the same time by different processes. enable_parallel_append can be used to disable this feature. If a query that is expected to do so does not produce a parallel plan, you can try reducing parallel_setup_cost or parallel_tuple_cost. Of course, this plan may turn out to be slower than the serial plan that the planner preferred, but this will not always be the case. If you don’t get a parallel plan even with very small values of these settings (e.g., after setting them both to zero), there may be some reason why the query planner is unable to generate a parallel plan for your query. When executing a parallel plan, you can use EXPLAIN (ANALYZE, VERBOSE) to display per-worker statistics for each plan node. This may be useful in determining whether the work is being evenly distributed between all plan nodes and more generally in understanding the performance characteristics of the plan. ABORT [ WORK | TRANSACTION ] [ AND [ NO ] CHAIN ] ABORT rolls back the current transaction and causes all the updates made by the transaction to be discarded. This command is identical in behavior to the standard SQL command ROLLBACK, and is present only for historical reasons. WORK TRANSACTION Optional key words. They have no effect. AND CHAIN If AND CHAIN is specified, a new transaction is immediately started with the same transaction characteristics (see SET TRANSACTION) as the just finished one. Otherwise, no new transaction is started. Use COMMIT to successfully terminate a transaction. Issuing ABORT outside of a transaction block emits a warning and otherwise has no effect. To abort all changes: ABORT; This command is a IvorySQL extension present for historical reasons. ROLLBACK is the equivalent standard SQL command. BEGIN [ WORK | TRANSACTION ] [ transaction_mode [, ...] ] where transaction_mode is one of: ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED } READ WRITE | READ ONLY [ NOT ] DEFERRABLE BEGIN initiates a transaction block, that is, all statements after a BEGIN command will be executed in a single transaction until an explicit COMMIT or ROLLBACK is given. By default (without BEGIN), IvorySQL executes transactions in “autocommit” mode, that is, each statement is executed in its own transaction and a commit is implicitly performed at the end of the statement (if execution was successful, otherwise a rollback is done). Statements are executed more quickly in a transaction block, because transaction start/commit requires significant CPU and disk activity. Execution of multiple statements inside a transaction is also useful to ensure consistency when making several related changes: other sessions will be unable to see the intermediate states wherein not all the related updates have been done. If the isolation level, read/write mode, or deferrable mode is specified, the new transaction has those characteristics, as if SET TRANSACTION was executed. WORK TRANSACTION Optional key words. They have no effect. Refer to SET TRANSACTION for information on the meaning of the other parameters to this statement. START TRANSACTION has the same functionality as BEGIN. Use COMMIT or ROLLBACK to terminate a transaction block. Issuing BEGIN when already inside a transaction block will provoke a warning message. The state of the transaction is not affected. To nest transactions within a transaction block, use savepoints (see SAVEPOINT). For reasons of backwards compatibility, the commas between successive transaction_modes can be omitted. To begin a transaction block: BEGIN; BEGIN is a IvorySQL language extension. It is equivalent to the SQL-standard command START TRANSACTION, whose reference page contains additional compatibility information. The DEFERRABLE transaction_mode is a IvorySQL language extension. Incidentally, the BEGIN key word is used for a different purpose in embedded SQL. You are advised to be careful about the transaction semantics when porting database applications. COMMIT [ WORK | TRANSACTION ] [ AND [ NO ] CHAIN ] COMMIT commits the current transaction. All changes made by the transaction become visible to others and are guaranteed to be durable if a crash occurs. WORK TRANSACTION Optional key words. They have no effect. AND CHAIN If AND CHAIN is specified, a new transaction is immediately started with the same transaction characteristics (see SET TRANSACTION) as the just finished one. Otherwise, no new transaction is started. Use ROLLBACK to abort a transaction. Issuing COMMIT when not inside a transaction does no harm, but it will provoke a warning message. COMMIT AND CHAIN when not inside a transaction is an error. To commit the current transaction and make all changes permanent: COMMIT; The command COMMIT conforms to the SQL standard. The form COMMIT TRANSACTION is a IvorySQL extension. COMMIT PREPARED transaction_id COMMIT PREPARED commits a transaction that is in prepared state. transaction_id The transaction identifier of the transaction that is to be committed. To commit a prepared transaction, you must be either the same user that executed the transaction originally, or a superuser. But you do not have to be in the same session that executed the transaction. This command cannot be executed inside a transaction block. The prepared transaction is committed immediately. All currently available prepared transactions are listed in the pg_prepared_xacts system view. Commit the transaction identified by the transaction identifier foobar: COMMIT PREPARED 'foobar'; COMMIT PREPARED is a IvorySQL extension. It is intended for use by external transaction management systems, some of which are covered by standards (such as X/Open XA), but the SQL side of those systems is not standardized. END [ WORK | TRANSACTION ] [ AND [ NO ] CHAIN ] END commits the current transaction. All changes made by the transaction become visible to others and are guaranteed to be durable if a crash occurs. This command is a IvorySQL extension that is equivalent to COMMIT. WORK TRANSACTION Optional key words. They have no effect. AND CHAIN If AND CHAIN is specified, a new transaction is immediately started with the same transaction characteristics (see SET TRANSACTION) as the just finished one. Otherwise, no new transaction is started. Use ROLLBACK to abort a transaction. Issuing END when not inside a transaction does no harm, but it will provoke a warning message. To commit the current transaction and make all changes permanent: END; END is a IvorySQL extension that provides functionality equivalent to COMMIT, which is specified in the SQL standard. PREPARE TRANSACTION transaction_id PREPARE TRANSACTION prepares the current transaction for two-phase commit. After this command, the transaction is no longer associated with the current session; instead, its state is fully stored on disk, and there is a very high probability that it can be committed successfully, even if a database crash occurs before the commit is requested. Once prepared, a transaction can later be committed or rolled back with COMMIT PREPARED or ROLLBACK PREPARED, respectively. Those commands can be issued from any session, not only the one that executed the original transaction. From the point of view of the issuing session, PREPARE TRANSACTION is not unlike a ROLLBACK command: after executing it, there is no active current transaction, and the effects of the prepared transaction are no longer visible. (The effects will become visible again if the transaction is committed.) If the PREPARE TRANSACTION command fails for any reason, it becomes a ROLLBACK: the current transaction is canceled. transaction_id An arbitrary identifier that later identifies this transaction for COMMIT PREPARED or ROLLBACK PREPARED. The identifier must be written as a string literal, and must be less than 200 bytes long. It must not be the same as the identifier used for any currently prepared transaction. PREPARE TRANSACTION is not intended for use in applications or interactive sessions. Its purpose is to allow an external transaction manager to perform atomic global transactions across multiple databases or other transactional resources. Unless you’re writing a transaction manager, you probably shouldn’t be using PREPARE TRANSACTION. This command must be used inside a transaction block. Use BEGIN to start one. It is not currently allowed to PREPARE a transaction that has executed any operations involving temporary tables or the session’s temporary namespace, created any cursors WITH HOLD, or executed LISTEN, UNLISTEN, or NOTIFY. Those features are too tightly tied to the current session to be useful in a transaction to be prepared. If the transaction modified any run-time parameters with SET (without the LOCAL option), those effects persist after PREPARE TRANSACTION, and will not be affected by any later COMMIT PREPARED or ROLLBACK PREPARED. Thus, in this one respect PREPARE TRANSACTION acts more like COMMIT than ROLLBACK. All currently available prepared transactions are listed in the pg_prepared_xacts system view. It is unwise to leave transactions in the prepared state for a long time. This will interfere with the ability of VACUUM to reclaim storage, and in extreme cases could cause the database to shut down to prevent transaction ID wraparound (see Section 25.1.5). Keep in mind also that the transaction continues to hold whatever locks it held. The intended usage of the feature is that a prepared transaction will normally be committed or rolled back as soon as an external transaction manager has verified that other databases are also prepared to commit. If you have not set up an external transaction manager to track prepared transactions and ensure they get closed out promptly, it is best to keep the prepared-transaction feature disabled by setting max_prepared_transactions to zero. This will prevent accidental creation of prepared transactions that might then be forgotten and eventually cause problems. Prepare the current transaction for two-phase commit, using foobar as the transaction identifier: PREPARE TRANSACTION 'foobar'; PREPARE TRANSACTION is a IvorySQL extension. It is intended for use by external transaction management systems, some of which are covered by standards (such as X/Open XA), but the SQL side of those systems is not standardized. ROLLBACK [ WORK | TRANSACTION ] [ AND [ NO ] CHAIN ] ROLLBACK rolls back the current transaction and causes all the updates made by the transaction to be discarded. WORK TRANSACTION Optional key words. They have no effect. AND CHAIN If AND CHAIN is specified, a new transaction is immediately started with the same transaction characteristics (see SET TRANSACTION) as the just finished one. Otherwise, no new transaction is started. Use COMMIT to successfully terminate a transaction. Issuing ROLLBACK outside of a transaction block emits a warning and otherwise has no effect. ROLLBACK AND CHAIN outside of a transaction block is an error. To abort all changes: ROLLBACK; The command ROLLBACK conforms to the SQL standard. The form ROLLBACK TRANSACTION is a IvorySQL extension. ROLLBACK PREPARED transaction_id ROLLBACK PREPARED rolls back a transaction that is in prepared state. transaction_id The transaction identifier of the transaction that is to be rolled back. To roll back a prepared transaction, you must be either the same user that executed the transaction originally, or a superuser. But you do not have to be in the same session that executed the transaction. This command cannot be executed inside a transaction block. The prepared transaction is rolled back immediately. All currently available prepared transactions are listed in the pg_prepared_xacts system view. Roll back the transaction identified by the transaction identifier foobar: ROLLBACK PREPARED 'foobar'; ROLLBACK PREPARED is a IvorySQL extension. It is intended for use by external transaction management systems, some of which are covered by standards (such as X/Open XA), but the SQL side of those systems is not standardized. SAVEPOINT savepoint_name SAVEPOINT establishes a new savepoint within the current transaction. A savepoint is a special mark inside a transaction that allows all commands that are executed after it was established to be rolled back, restoring the transaction state to what it was at the time of the savepoint. savepoint_name The name to give to the new savepoint. If savepoints with the same name already exist, they will be inaccessible until newer identically-named savepoints are released. Use ROLLBACK TO to rollback to a savepoint. Use RELEASE SAVEPOINT to destroy a savepoint, keeping the effects of commands executed after it was established. Savepoints can only be established when inside a transaction block. There can be multiple savepoints defined within a transaction. To establish a savepoint and later undo the effects of all commands executed after it was established: BEGIN; INSERT INTO table1 VALUES (1); SAVEPOINT my_savepoint; INSERT INTO table1 VALUES (2); ROLLBACK TO SAVEPOINT my_savepoint; INSERT INTO table1 VALUES (3); COMMIT; The above transaction will insert the values 1 and 3, but not 2. To establish and later destroy a savepoint: BEGIN; INSERT INTO table1 VALUES (3); SAVEPOINT my_savepoint; INSERT INTO table1 VALUES (4); RELEASE SAVEPOINT my_savepoint; COMMIT; The above transaction will insert both 3 and 4. To use a single savepoint name: BEGIN; INSERT INTO table1 VALUES (1); SAVEPOINT my_savepoint; INSERT INTO table1 VALUES (2); SAVEPOINT my_savepoint; INSERT INTO table1 VALUES (3); -- rollback to the second savepoint ROLLBACK TO SAVEPOINT my_savepoint; SELECT * FROM table1; -- shows rows 1 and 2 -- release the second savepoint RELEASE SAVEPOINT my_savepoint; -- rollback to the first savepoint ROLLBACK TO SAVEPOINT my_savepoint; SELECT * FROM table1; -- shows only row 1 COMMIT; The above transaction shows row 3 being rolled back first, then row 2. SQL requires a savepoint to be destroyed automatically when another savepoint with the same name is established. In IvorySQL, the old savepoint is kept, though only the more recent one will be used when rolling back or releasing. (Releasing the newer savepoint with RELEASE SAVEPOINT will cause the older one to again become accessible to ROLLBACK TO SAVEPOINT and RELEASE SAVEPOINT.) Otherwise, SAVEPOINT is fully SQL conforming. SET CONSTRAINTS { ALL | name [, ...] } { DEFERRED | IMMEDIATE } SET CONSTRAINTS sets the behavior of constraint checking within the current transaction. IMMEDIATE constraints are checked at the end of each statement. DEFERRED constraints are not checked until transaction commit. Each constraint has its own IMMEDIATE or DEFERRED mode. Upon creation, a constraint is given one of three characteristics: DEFERRABLE INITIALLY DEFERRED, DEFERRABLE INITIALLY IMMEDIATE, or NOT DEFERRABLE. The third class is always IMMEDIATE and is not affected by the SET CONSTRAINTS command. The first two classes start every transaction in the indicated mode, but their behavior can be changed within a transaction by SET CONSTRAINTS. SET CONSTRAINTS with a list of constraint names changes the mode of just those constraints (which must all be deferrable). Each constraint name can be schema-qualified. The current schema search path is used to find the first matching name if no schema name is specified. SET CONSTRAINTS ALL changes the mode of all deferrable constraints. When SET CONSTRAINTS changes the mode of a constraint from DEFERRED to IMMEDIATE, the new mode takes effect retroactively: any outstanding data modifications that would have been checked at the end of the transaction are instead checked during the execution of the SET CONSTRAINTS command. If any such constraint is violated, the SET CONSTRAINTS fails (and does not change the constraint mode). Thus, SET CONSTRAINTS can be used to force checking of constraints to occur at a specific point in a transaction. Currently, only UNIQUE, PRIMARY KEY, REFERENCES (foreign key), and EXCLUDE constraints are affected by this setting. NOT NULL and CHECK constraints are always checked immediately when a row is inserted or modified (not at the end of the statement). Uniqueness and exclusion constraints that have not been declared DEFERRABLE are also checked immediately. The firing of triggers that are declared as “constraint triggers” is also controlled by this setting — they fire at the same time that the associated constraint should be checked. Because IvorySQL does not require constraint names to be unique within a schema (but only per-table), it is possible that there is more than one match for a specified constraint name. In this case SET CONSTRAINTS will act on all matches. For a non-schema-qualified name, once a match or matches have been found in some schema in the search path, schemas appearing later in the path are not searched. This command only alters the behavior of constraints within the current transaction. Issuing this outside of a transaction block emits a warning and otherwise has no effect. This command complies with the behavior defined in the SQL standard, except for the limitation that, in IvorySQL, it does not apply to NOT NULL and CHECK constraints. Also, IvorySQL checks non-deferrable uniqueness constraints immediately, not at end of statement as the standard would suggest. SET TRANSACTION transaction_mode [, ...] SET TRANSACTION SNAPSHOT snapshot_id SET SESSION CHARACTERISTICS AS TRANSACTION transaction_mode [, ...] where transaction_mode is one of: ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED } READ WRITE | READ ONLY [ NOT ] DEFERRABLE The SET TRANSACTION command sets the characteristics of the current transaction. It has no effect on any subsequent transactions. SET SESSION CHARACTERISTICS sets the default transaction characteristics for subsequent transactions of a session. These defaults can be overridden by SET TRANSACTION for an individual transaction. The available transaction characteristics are the transaction isolation level, the transaction access mode (read/write or read-only), and the deferrable mode. In addition, a snapshot can be selected, though only for the current transaction, not as a session default. The isolation level of a transaction determines what data the transaction can see when other transactions are running concurrently: READ COMMITTED A statement can only see rows committed before it began. This is the default. REPEATABLE READ All statements of the current transaction can only see rows committed before the first query or data-modification statement was executed in this transaction. SERIALIZABLE All statements of the current transaction can only see rows committed before the first query or data-modification statement was executed in this transaction. If a pattern of reads and writes among concurrent serializable transactions would create a situation which could not have occurred for any serial (one-at-a-time) execution of those transactions, one of them will be rolled back with a serialization_failure error. The SQL standard defines one additional level, READ UNCOMMITTED. In IvorySQL READ UNCOMMITTED is treated as READ COMMITTED. The transaction isolation level cannot be changed after the first query or data-modification statement (SELECT, INSERT, DELETE, UPDATE, FETCH, or COPY) of a transaction has been executed. See Chapter 13 for more information about transaction isolation and concurrency control. The transaction access mode determines whether the transaction is read/write or read-only. Read/write is the default. When a transaction is read-only, the following SQL commands are disallowed: INSERT, UPDATE, DELETE, and COPY FROM if the table they would write to is not a temporary table; all CREATE, ALTER, and DROP commands; COMMENT, GRANT, REVOKE, TRUNCATE; and EXPLAIN ANALYZE and EXECUTE if the command they would execute is among those listed. This is a high-level notion of read-only that does not prevent all writes to disk. The DEFERRABLE transaction property has no effect unless the transaction is also SERIALIZABLE and READ ONLY. When all three of these properties are selected for a transaction, the transaction may block when first acquiring its snapshot, after which it is able to run without the normal overhead of a SERIALIZABLE transaction and without any risk of contributing to or being canceled by a serialization failure. This mode is well suited for long-running reports or backups. The SET TRANSACTION SNAPSHOT command allows a new transaction to run with the same snapshot as an existing transaction. The pre-existing transaction must have exported its snapshot with the pg_export_snapshot function. That function returns a snapshot identifier, which must be given to SET TRANSACTION SNAPSHOT to specify which snapshot is to be imported. The identifier must be written as a string literal in this command, for example '00000003-0000001B-1'. SET TRANSACTION SNAPSHOT can only be executed at the start of a transaction, before the first query or data-modification statement (SELECT, INSERT, DELETE, UPDATE, FETCH, or COPY) of the transaction. Furthermore, the transaction must already be set to SERIALIZABLE or REPEATABLE READ isolation level (otherwise, the snapshot would be discarded immediately, since READ COMMITTED mode takes a new snapshot for each command). If the importing transaction uses SERIALIZABLE isolation level, then the transaction that exported the snapshot must also use that isolation level. Also, a non-read-only serializable transaction cannot import a snapshot from a read-only transaction. If SET TRANSACTION is executed without a prior START TRANSACTION or BEGIN, it emits a warning and otherwise has no effect. It is possible to dispense with SET TRANSACTION by instead specifying the desired transaction_modes in BEGIN or START TRANSACTION. But that option is not available for SET TRANSACTION SNAPSHOT. The session default transaction modes can also be set or examined via the configuration parameters default_transaction_isolation, default_transaction_read_only, and default_transaction_deferrable. (In fact SET SESSION CHARACTERISTICS is just a verbose equivalent for setting these variables with SET.) This means the defaults can be set in the configuration file, via ALTER DATABASE, etc. Consult Chapter 20 for more information. The current transaction’s modes can similarly be set or examined via the configuration parameters transaction_isolation, transaction_read_only, and transaction_deferrable. Setting one of these parameters acts the same as the corresponding SET TRANSACTION option, with the same restrictions on when it can be done. However, these parameters cannot be set in the configuration file, or from any source other than live SQL. To begin a new transaction with the same snapshot as an already existing transaction, first export the snapshot from the existing transaction. That will return the snapshot identifier, for example: BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ; SELECT pg_export_snapshot(); pg_export_snapshot --------------------- 00000003-0000001B-1 (1 row) Then give the snapshot identifier in a SET TRANSACTION SNAPSHOT command at the beginning of the newly opened transaction: BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ; SET TRANSACTION SNAPSHOT '00000003-0000001B-1'; These commands are defined in the SQL standard, except for the DEFERRABLE transaction mode and the SET TRANSACTION SNAPSHOT form, which are IvorySQL extensions. SERIALIZABLE is the default transaction isolation level in the standard. In IvorySQL the default is ordinarily READ COMMITTED, but you can change it as mentioned above. In the SQL standard, there is one other transaction characteristic that can be set with these commands: the size of the diagnostics area. This concept is specific to embedded SQL, and therefore is not implemented in the IvorySQL server. The SQL standard requires commas between successive transaction_modes, but for historical reasons IvorySQL allows the commas to be omitted. START TRANSACTION [ transaction_mode [, ...] ] where transaction_mode is one of: ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED } READ WRITE | READ ONLY [ NOT ] DEFERRABLE This command begins a new transaction block. If the isolation level, read/write mode, or deferrable mode is specified, the new transaction has those characteristics, as if SET TRANSACTION was executed. This is the same as the BEGIN command. Refer to SET TRANSACTION for information on the meaning of the parameters to this statement. In the standard, it is not necessary to issue START TRANSACTION to start a transaction block: any SQL command implicitly begins a block. IvorySQL’s behavior can be seen as implicitly issuing a COMMIT after each command that does not follow START TRANSACTION (or BEGIN), and it is therefore often called “autocommit”. Other relational database systems might offer an autocommit feature as a convenience. The DEFERRABLE transaction_mode is a IvorySQL language extension. The SQL standard requires commas between successive transaction_modes, but for historical reasons IvorySQL allows the commas to be omitted. See also the compatibility section of SET TRANSACTION. SQL input consists of a sequence of commands. A command is composed of a sequence of tokens, terminated by a semicolon (“;”). The end of the input stream also terminates a command. Which tokens are valid depends on the syntax of the particular command. A token can be a key word, an identifier, a quoted identifier, a literal (or constant), or a special character symbol. Tokens are normally separated by whitespace (space, tab, newline), but need not be if there is no ambiguity (which is generally only the case if a special character is adjacent to some other token type). For example, the following is (syntactically) valid SQL input: SELECT * FROM MY_TABLE; UPDATE MY_TABLE SET A = 5; INSERT INTO MY_TABLE VALUES (3, 'hi there'); This is a sequence of three commands, one per line (although this is not required; more than one command can be on a line, and commands can usefully be split across lines). Additionally, comments can occur in SQL input. They are not tokens, they are effectively equivalent to whitespace. The SQL syntax is not very consistent regarding what tokens identify commands and which are operands or parameters. The first few tokens are generally the command name, so in the above example we would usually speak of a “SELECT”, an “UPDATE”, and an “INSERT” command. But for instance the UPDATE command always requires a SET token to appear in a certain position, and this particular variation of INSERT also requires a VALUES in order to be complete. Tokens such as SELECT, UPDATE, or VALUES in the example above are examples of key words, that is, words that have a fixed meaning in the SQL language. The tokens MY_TABLE and A are examples of identifiers. They identify names of tables, columns, or other database objects, depending on the command they are used in. Therefore they are sometimes simply called “names”. Key words and identifiers have the same lexical structure, meaning that one cannot know whether a token is an identifier or a key word without knowing the language. A complete list of key words can be found in Appendix C. SQL identifiers and key words must begin with a letter (a-z, but also letters with diacritical marks and non-Latin letters) or an underscore (_). Subsequent characters in an identifier or key word can be letters, underscores, digits (0-9), or dollar signs ($). Note that dollar signs are not allowed in identifiers according to the letter of the SQL standard, so their use might render applications less portable. The SQL standard will not define a key word that contains digits or starts or ends with an underscore, so identifiers of this form are safe against possible conflict with future extensions of the standard. The system uses no more than NAMEDATALEN-1 bytes of an identifier; longer names can be written in commands, but they will be truncated. By default, NAMEDATALEN is 64 so the maximum identifier length is 63 bytes. If this limit is problematic, it can be raised by changing the NAMEDATALEN constant in src/include/pg_config_manual.h. Key words and unquoted identifiers are case insensitive. Therefore: UPDATE MY_TABLE SET A = 5; can equivalently be written as: uPDaTE my_TabLE SeT a = 5; A convention often used is to write key words in upper case and names in lower case, e.g.: UPDATE my_table SET a = 5; There is a second kind of identifier: the delimited identifier or quoted identifier. It is formed by enclosing an arbitrary sequence of characters in double-quotes (\"). A delimited identifier is always an identifier, never a key word. So \"select\" could be used to refer to a column or table named “select”, whereas an unquoted select would be taken as a key word and would therefore provoke a parse error when used where a table or column name is expected. The example can be written with quoted identifiers like this: UPDATE \"my_table\" SET \"a\" = 5; Quoted identifiers can contain any character, except the character with code zero. (To include a double quote, write two double quotes.) This allows constructing table or column names that would otherwise not be possible, such as ones containing spaces or ampersands. The length limitation still applies. Quoting an identifier also makes it case-sensitive, whereas unquoted names are always folded to lower case. For example, the identifiers FOO, foo, and \"foo\" are considered the same by IvorySQL, but \"Foo\" and \"FOO\" are different from these three and each other. (The folding of unquoted names to lower case in IvorySQL is incompatible with the SQL standard, which says that unquoted names should be folded to upper case. Thus, foo should be equivalent to \"FOO\" not \"foo\" according to the standard. If you want to write portable applications you are advised to always quote a particular name or never quote it.) A variant of quoted identifiers allows including escaped Unicode characters identified by their code points. This variant starts with U& (upper or lower case U followed by ampersand) immediately before the opening double quote, without any spaces in between, for example U&\"foo\". (Note that this creates an ambiguity with the operator &. Use spaces around the operator to avoid this problem.) Inside the quotes, Unicode characters can be specified in escaped form by writing a backslash followed by the four-digit hexadecimal code point number or alternatively a backslash followed by a plus sign followed by a six-digit hexadecimal code point number. For example, the identifier \"data\" could be written as U&\"d\\0061t\\+000061\" The following less trivial example writes the Russian word “slon” (elephant) in Cyrillic letters: U&\"\\0441\\043B\\043E\\043D\" If a different escape character than backslash is desired, it can be specified using the UESCAPE clause after the string, for example: U&\"d!0061t!+000061\" UESCAPE '!' The escape character can be any single character other than a hexadecimal digit, the plus sign, a single quote, a double quote, or a whitespace character. Note that the escape character is written in single quotes, not double quotes, after UESCAPE. To include the escape character in the identifier literally, write it twice. Either the 4-digit or the 6-digit escape form can be used to specify UTF-16 surrogate pairs to compose characters with code points larger than U+FFFF, although the availability of the 6-digit form technically makes this unnecessary. (Surrogate pairs are not stored directly, but are combined into a single code point.) If the server encoding is not UTF-8, the Unicode code point identified by one of these escape sequences is converted to the actual server encoding; an error is reported if that’s not possible. There are three kinds of implicitly-typed constants in IvorySQL: strings, bit strings, and numbers. Constants can also be specified with explicit types, which can enable more accurate representation and more efficient handling by the system. These alternatives are discussed in the following subsections. A string constant in SQL is an arbitrary sequence of characters bounded by single quotes ('), for example 'This is a string'. To include a single-quote character within a string constant, write two adjacent single quotes, e.g., 'Dianne''s horse'. Note that this is not the same as a double-quote character (\"). Two string constants that are only separated by whitespace with at least one newline are concatenated and effectively treated as if the string had been written as one constant. For example: SELECT 'foo' 'bar'; is equivalent to: SELECT 'foobar'; but: SELECT 'foo' 'bar'; is not valid syntax. (This slightly bizarre behavior is specified by SQL; IvorySQL is following the standard.) IvorySQL also accepts “escape” string constants, which are an extension to the SQL standard. An escape string constant is specified by writing the letter E (upper or lower case) just before the opening single quote, e.g., E’foo'. (When continuing an escape string constant across lines, write E only before the first opening quote.) Within an escape string, a backslash character (\\) begins a C-like backslash escape sequence, in which the combination of backslash and following character(s) represent a special byte value. Table 5.1. Backslash Escape Sequences Backslash Escape Sequence Interpretation \\b backspace \\f form feed \\n newline \\r carriage return \\t tab *`o*, `*`oo*, `*`ooo*` (o = 0–7) octal byte value \\x*`h, `\\x`hh` (h* = 0–9, A–F) hexadecimal byte value \\u*`xxxx, `\\U`xxxxxxxx` (x* = 0–9, A–F) 16 or 32-bit hexadecimal Unicode character value Any other character following a backslash is taken literally. Thus, to include a backslash character, write two backslashes (\\\\). Also, a single quote can be included in an escape string by writing \\', in addition to the normal way of ''. It is your responsibility that the byte sequences you create, especially when using the octal or hexadecimal escapes, compose valid characters in the server character set encoding. A useful alternative is to use Unicode escapes or the alternative Unicode escape syntax, ; then the server will check that the character conversion is possible. Caution If the configuration parameter standard_conforming_strings is off, then IvorySQL recognizes backslash escapes in both regular and escape string constants. However, as of IvorySQL, the default is on, meaning that backslash escapes are recognized only in escape string constants. This behavior is more standards-compliant, but might break applications which rely on the historical behavior, where backslash escapes were always recognized. As a workaround, you can set this parameter to off, but it is better to migrate away from using backslash escapes. If you need to use a backslash escape to represent a special character, write the string constant with an E.In addition to standard_conforming_strings, the configuration parameters escape_string_warning and backslash_quote govern treatment of backslashes in string constants.The character with the code zero cannot be in a string constant. IvorySQL also supports another type of escape syntax for strings that allows specifying arbitrary Unicode characters by code point. A Unicode escape string constant starts with U& (upper or lower case letter U followed by ampersand) immediately before the opening quote, without any spaces in between, for example U&'foo'. (Note that this creates an ambiguity with the operator &. Use spaces around the operator to avoid this problem.) Inside the quotes, Unicode characters can be specified in escaped form by writing a backslash followed by the four-digit hexadecimal code point number or alternatively a backslash followed by a plus sign followed by a six-digit hexadecimal code point number. For example, the string 'data' could be written as U&'d\\0061t\\+000061' The following less trivial example writes the Russian word “slon” (elephant) in Cyrillic letters: U&'\\0441\\043B\\043E\\043D' If a different escape character than backslash is desired, it can be specified using the UESCAPE clause after the string, for example: U&'d!0061t!+000061' UESCAPE '!' The escape character can be any single character other than a hexadecimal digit, the plus sign, a single quote, a double quote, or a whitespace character. To include the escape character in the string literally, write it twice. Either the 4-digit or the 6-digit escape form can be used to specify UTF-16 surrogate pairs to compose characters with code points larger than U+FFFF, although the availability of the 6-digit form technically makes this unnecessary. (Surrogate pairs are not stored directly, but are combined into a single code point.) If the server encoding is not UTF-8, the Unicode code point identified by one of these escape sequences is converted to the actual server encoding; an error is reported if that’s not possible. Also, the Unicode escape syntax for string constants only works when the configuration parameter standard_conforming_strings is turned on. This is because otherwise this syntax could confuse clients that parse the SQL statements to the point that it could lead to SQL injections and similar security issues. If the parameter is set to off, this syntax will be rejected with an error message. While the standard syntax for specifying string constants is usually convenient, it can be difficult to understand when the desired string contains many single quotes or backslashes, since each of those must be doubled. To allow more readable queries in such situations, IvorySQL provides another way, called “dollar quoting”, to write string constants. A dollar-quoted string constant consists of a dollar sign ($), an optional “tag” of zero or more characters, another dollar sign, an arbitrary sequence of characters that makes up the string content, a dollar sign, the same tag that began this dollar quote, and a dollar sign. For example, here are two different ways to specify the string “Dianne’s horse” using dollar quoting: $$Dianne's horse$$ $SomeTag$Dianne's horse$SomeTag$ Notice that inside the dollar-quoted string, single quotes can be used without needing to be escaped. Indeed, no characters inside a dollar-quoted string are ever escaped: the string content is always written literally. Backslashes are not special, and neither are dollar signs, unless they are part of a sequence matching the opening tag. It is possible to nest dollar-quoted string constants by choosing different tags at each nesting level. This is most commonly used in writing function definitions. For example: $function$ BEGIN RETURN ($1 ~ $q$[\\t\\r\\n\\v\\\\]$q$); END; $function$ Here, the sequence $q$[\\t\\r\\n\\v\\\\]$q$ represents a dollar-quoted literal string [\\t\\r\\n\\v\\\\], which will be recognized when the function body is executed by IvorySQL. But since the sequence does not match the outer dollar quoting delimiter $function$, it is just some more characters within the constant so far as the outer string is concerned. The tag, if any, of a dollar-quoted string follows the same rules as an unquoted identifier, except that it cannot contain a dollar sign. Tags are case sensitive, so $tag$String content$tag$ is correct, but $TAG$String content$tag$ is not. A dollar-quoted string that follows a keyword or identifier must be separated from it by whitespace; otherwise the dollar quoting delimiter would be taken as part of the preceding identifier. Dollar quoting is not part of the SQL standard, but it is often a more convenient way to write complicated string literals than the standard-compliant single quote syntax. It is particularly useful when representing string constants inside other constants, as is often needed in procedural function definitions. With single-quote syntax, each backslash in the above example would have to be written as four backslashes, which would be reduced to two backslashes in parsing the original string constant, and then to one when the inner string constant is re-parsed during function execution. Bit-string constants look like regular string constants with a B (upper or lower case) immediately before the opening quote (no intervening whitespace), e.g., B'1001'. The only characters allowed within bit-string constants are 0 and 1. Alternatively, bit-string constants can be specified in hexadecimal notation, using a leading X (upper or lower case), e.g., X'1FF'. This notation is equivalent to a bit-string constant with four binary digits for each hexadecimal digit. Both forms of bit-string constant can be continued across lines in the same way as regular string constants. Dollar quoting cannot be used in a bit-string constant. Numeric constants are accepted in these general forms: digits digits.[digits][e[+-]digits] [digits].digits[e[+-]digits] digitse[+-]digits where digits is one or more decimal digits (0 through 9). At least one digit must be before or after the decimal point, if one is used. At least one digit must follow the exponent marker (e), if one is present. There cannot be any spaces or other characters embedded in the constant. Note that any leading plus or minus sign is not actually considered part of the constant; it is an operator applied to the constant. These are some examples of valid numeric constants: 42 3.5 4. .001 5e2 1.925e-3 A numeric constant that contains neither a decimal point nor an exponent is initially presumed to be type integer if its value fits in type integer (32 bits); otherwise it is presumed to be type bigint if its value fits in type bigint (64 bits); otherwise it is taken to be type numeric. Constants that contain decimal points and/or exponents are always initially presumed to be type numeric. The initially assigned data type of a numeric constant is just a starting point for the type resolution algorithms. In most cases the constant will be automatically coerced to the most appropriate type depending on context. When necessary, you can force a numeric value to be interpreted as a specific data type by casting it. For example, you can force a numeric value to be treated as type real (float4) by writing: REAL '1.23' -- string style 1.23::REAL -- IvorySQL (historical) style These are actually just special cases of the general casting notations discussed next. A constant of an arbitrary type can be entered using any one of the following notations: type 'string' 'string'::type CAST ( 'string' AS type ) The string constant’s text is passed to the input conversion routine for the type called type. The result is a constant of the indicated type. The explicit type cast can be omitted if there is no ambiguity as to the type the constant must be (for example, when it is assigned directly to a table column), in which case it is automatically coerced. The string constant can be written using either regular SQL notation or dollar-quoting. It is also possible to specify a type coercion using a function-like syntax: typename ( 'string' ) but not all type names can be used in this way. The ::, CAST(), and function-call syntaxes can also be used to specify run-time type conversions of arbitrary expressions. To avoid syntactic ambiguity, the `type 'string'` syntax can only be used to specify the type of a simple literal constant. Another restriction on the `type 'string'` syntax is that it does not work for array types; use :: or CAST() to specify the type of an array constant. The CAST() syntax conforms to SQL. The `type 'string'` syntax is a generalization of the standard: SQL specifies this syntax only for a few data types, but IvorySQL allows it for all types. The syntax with :: is historical IvorySQL usage, as is the function-call syntax. An operator name is a sequence of up to NAMEDATALEN-1 (63 by default) characters from the following list: \\+ - * / < > = ~ ! @ # % ^ & | ` ? There are a few restrictions on operator names, however: -- and /* cannot appear anywhere in an operator name, since they will be taken as the start of a comment. A multiple-character operator name cannot end in + or -, unless the name also contains at least one of these characters: ~ ! @ # % ^ & | ` ? For example, @- is an allowed operator name, but *- is not. This restriction allows IvorySQL to parse SQL-compliant queries without requiring spaces between tokens. When working with non-SQL-standard operator names, you will usually need to separate adjacent operators with spaces to avoid ambiguity. For example, if you have defined a prefix operator named @, you cannot write X*@Y; you must write X* @Y to ensure that IvorySQL reads it as two operator names not one. Some characters that are not alphanumeric have a special meaning that is different from being an operator. Details on the usage can be found at the location where the respective syntax element is described. This section only exists to advise the existence and summarize the purposes of these characters. A dollar sign ($) followed by digits is used to represent a positional parameter in the body of a function definition or a prepared statement. In other contexts the dollar sign can be part of an identifier or a dollar-quoted string constant. Parentheses (()) have their usual meaning to group expressions and enforce precedence. In some cases parentheses are required as part of the fixed syntax of a particular SQL command. Brackets ([]) are used to select the elements of an array. Commas (,) are used in some syntactical constructs to separate the elements of a list. The semicolon (;) terminates an SQL command. It cannot appear anywhere within a command, except within a string constant or quoted identifier. The colon (:) is used to select “slices” from arrays. In certain SQL dialects (such as Embedded SQL), the colon is used to prefix variable names. The asterisk (*) is used in some contexts to denote all the fields of a table row or composite value. It also has a special meaning when used as the argument of an aggregate function, namely that the aggregate does not require any explicit parameter. The period (.) is used in numeric constants, and to separate schema, table, and column names. A comment is a sequence of characters beginning with double dashes and extending to the end of the line, e.g.: -- This is a standard SQL comment Alternatively, C-style block comments can be used: /* multiline comment * with nesting: /* nested block comment */ */ where the comment begins with / and extends to the matching occurrence of /. These block comments nest, as specified in the SQL standard but unlike C, so that one can comment out larger blocks of code that might contain existing block comments. A comment is removed from the input stream before further syntax analysis and is effectively replaced by whitespace. Table 5.2 shows the precedence and associativity of the operators in IvorySQL. Most operators have the same precedence and are left-associative. The precedence and associativity of the operators is hard-wired into the parser. Add parentheses if you want an expression with multiple operators to be parsed in some other way than what the precedence rules imply. Table 5.2. Operator Precedence (highest to lowest) Operator/Element Associativity Description . left table/column name separator :: left IvorySQL-style typecast [ ] left array element selection + - right unary plus, unary minus ^ left exponentiation * / % left multiplication, division, modulo + - left addition, subtraction (any other operator) left all other native and user-defined operators BETWEEN IN LIKE ILIKE SIMILAR range containment, set membership, string matching < > = ⇐ >= <> comparison operators IS ISNULL NOTNULL IS TRUE, IS FALSE, IS NULL, IS DISTINCT FROM, etc. NOT right logical negation AND left logical conjunction OR left logical disjunction Note that the operator precedence rules also apply to user-defined operators that have the same names as the built-in operators mentioned above. For example, if you define a “” operator for some custom data type it will have the same precedence as the built-in “” operator, no matter what yours does. When a schema-qualified operator name is used in the OPERATOR syntax, as for example in: SELECT 3 OPERATOR(pg_catalog.+) 4; the OPERATOR construct is taken to have the default precedence shown in Table 5.2 for “any other operator”. This is true no matter which specific operator appears inside OPERATOR(). Note In particular, ⇐ >= and <> used to be treated as generic operators; IS tests used to have higher priority; and NOT BETWEEN and related constructs acted inconsistently, being taken in some cases as having the precedence of NOT rather than BETWEEN. These rules were changed for better compliance with the SQL standard and to reduce confusion from inconsistent treatment of logically equivalent constructs. In most cases, these changes will result in no behavioral change, or perhaps in “no such operator” failures which can be resolved by adding parentheses. However there are corner cases in which a query might change behavior without any parsing error being reported. Value expressions are used in a variety of contexts, such as in the target list of the SELECT command, as new column values in INSERT or UPDATE, or in search conditions in a number of commands. The result of a value expression is sometimes called a scalar, to distinguish it from the result of a table expression (which is a table). Value expressions are therefore also called scalar expressions (or even simply expressions). The expression syntax allows the calculation of values from primitive parts using arithmetic, logical, set, and other operations. A value expression is one of the following: A constant or literal value A column reference A positional parameter reference, in the body of a function definition or prepared statement A subscripted expression A field selection expression An operator invocation A function call An aggregate expression A window function call A type cast A collation expression A scalar subquery An array constructor A row constructor Another value expression in parentheses (used to group subexpressions and override precedence) In addition to this list, there are a number of constructs that can be classified as an expression but do not follow any general syntax rules. These generally have the semantics of a function or operator . An example is the IS NULL clause. A column can be referenced in the form: correlation.columnname correlation is the name of a table (possibly qualified with a schema name), or an alias for a table defined by means of a FROM clause. The correlation name and separating dot can be omitted if the column name is unique across all the tables being used in the current query. A positional parameter reference is used to indicate a value that is supplied externally to an SQL statement. Parameters are used in SQL function definitions and in prepared queries. Some client libraries also support specifying data values separately from the SQL command string, in which case parameters are used to refer to the out-of-line data values. The form of a parameter reference is: $number For example, consider the definition of a function, dept, as: CREATE FUNCTION dept(text) RETURNS dept AS $$ SELECT * FROM dept WHERE name = $1 $$ LANGUAGE SQL; Here the $1 references the value of the first function argument whenever the function is invoked. If an expression yields a value of an array type, then a specific element of the array value can be extracted by writing expression[subscript] or multiple adjacent elements (an “array slice”) can be extracted by writing expression[lower_subscript:upper_subscript] (Here, the brackets [ ] are meant to appear literally.) Each subscript is itself an expression, which will be rounded to the nearest integer value. In general the array expression must be parenthesized, but the parentheses can be omitted when the expression to be subscripted is just a column reference or positional parameter. Also, multiple subscripts can be concatenated when the original array is multidimensional. For example: mytable.arraycolumn[4] mytable.two_d_column[17][34] $1[10:42] (arrayfunction(a,b))[42] The parentheses in the last example are required. If an expression yields a value of a composite type (row type), then a specific field of the row can be extracted by writing expression.fieldname In general the row expression must be parenthesized, but the parentheses can be omitted when the expression to be selected from is just a table reference or positional parameter. For example: mytable.mycolumn $1.somecolumn (rowfunction(a,b)).col3 (Thus, a qualified column reference is actually just a special case of the field selection syntax.) An important special case is extracting a field from a table column that is of a composite type: (compositecol).somefield (mytable.compositecol).somefield The parentheses are required here to show that compositecol is a column name not a table name, or that mytable is a table name not a schema name in the second case. You can ask for all fields of a composite value by writing .*: (compositecol).* This notation behaves differently depending on context. There are two possible syntaxes for an operator invocation: expression operator expression (binary infix operator) operator expression (unary prefix operator) where the operator token follows the syntax rules , or is one of the key words AND, OR, and NOT, or is a qualified operator name in the form: OPERATOR(schema.operatorname) Which particular operators exist and whether they are unary or binary depends on what operators have been defined by the system or the user. The syntax for a function call is the name of a function (possibly qualified with a schema name), followed by its argument list enclosed in parentheses: function_name ([expression [, expression ... ]] ) For example, the following computes the square root of 2: sqrt(2) Other functions can be added by the user. When issuing queries in a database where some users mistrust other users, The arguments can optionally have names attached. Note A function that takes a single argument of composite type can optionally be called using field-selection syntax, and conversely field selection can be written in functional style. That is, the notations col(table) and table.col are interchangeable. This behavior is not SQL-standard but is provided in IvorySQL because it allows use of functions to emulate “computed fields”. An aggregate expression represents the application of an aggregate function across the rows selected by a query. An aggregate function reduces multiple inputs to a single output value, such as the sum or average of the inputs. The syntax of an aggregate expression is one of the following: aggregate_name (expression [ , ... ] [ order_by_clause ] ) [ FILTER ( WHERE filter_clause ) ] aggregate_name (ALL expression [ , ... ] [ order_by_clause ] ) [ FILTER ( WHERE filter_clause ) ] aggregate_name (DISTINCT expression [ , ... ] [ order_by_clause ] ) [ FILTER ( WHERE filter_clause ) ] aggregate_name ( * ) [ FILTER ( WHERE filter_clause ) ] aggregate_name ( [ expression [ , ... ] ] ) WITHIN GROUP ( order_by_clause ) [ FILTER ( WHERE filter_clause ) ] where aggregate_name is a previously defined aggregate (possibly qualified with a schema name) and expression is any value expression that does not itself contain an aggregate expression or a window function call. The optional order_by_clause and filter_clause are described below. The first form of aggregate expression invokes the aggregate once for each input row. The second form is the same as the first, since ALL is the default. The third form invokes the aggregate once for each distinct value of the expression (or distinct set of values, for multiple expressions) found in the input rows. The fourth form invokes the aggregate once for each input row; since no particular input value is specified, it is generally only useful for the count() aggregate function. The last form is used with *ordered-set aggregate functions, which are described below. Most aggregate functions ignore null inputs, so that rows in which one or more of the expression(s) yield null are discarded. This can be assumed to be true, unless otherwise specified, for all built-in aggregates. For example, count(*) yields the total number of input rows; count(f1) yields the number of input rows in which f1 is non-null, since count ignores nulls; and count(distinct f1) yields the number of distinct non-null values of f1. Ordinarily, the input rows are fed to the aggregate function in an unspecified order. In many cases this does not matter; for example, min produces the same result no matter what order it receives the inputs in. However, some aggregate functions (such as array_agg and string_agg) produce results that depend on the ordering of the input rows. When using such an aggregate, the optional order_by_clause can be used to specify the desired ordering. The order_by_clause has the same syntax as for a query-level ORDER BY clause, except that its expressions are always just expressions and cannot be output-column names or numbers. For example: SELECT array_agg(a ORDER BY b DESC) FROM table; When dealing with multiple-argument aggregate functions, note that the ORDER BY clause goes after all the aggregate arguments. For example, write this: SELECT string_agg(a, ',' ORDER BY a) FROM table; not this: SELECT string_agg(a ORDER BY a, ',') FROM table; -- incorrect The latter is syntactically valid, but it represents a call of a single-argument aggregate function with two ORDER BY keys (the second one being rather useless since it’s a constant). If DISTINCT is specified in addition to an order_by_clause, then all the ORDER BY expressions must match regular arguments of the aggregate; that is, you cannot sort on an expression that is not included in the DISTINCT list. Note The ability to specify both DISTINCT and ORDER BY in an aggregate function is a IvorySQL extension. Placing ORDER BY within the aggregate’s regular argument list, as described so far, is used when ordering the input rows for general-purpose and statistical aggregates, for which ordering is optional. There is a subclass of aggregate functions called ordered-set aggregates for which an order_by_clause is required, usually because the aggregate’s computation is only sensible in terms of a specific ordering of its input rows. Typical examples of ordered-set aggregates include rank and percentile calculations. For an ordered-set aggregate, the order_by_clause is written inside WITHIN GROUP (…), as shown in the final syntax alternative above. The expressions in the order_by_clause are evaluated once per input row just like regular aggregate arguments, sorted as per the order_by_clause's requirements, and fed to the aggregate function as input arguments. (This is unlike the case for a non-WITHIN GROUP order_by_clause, which is not treated as argument(s) to the aggregate function.) The argument expressions preceding WITHIN GROUP, if any, are called direct arguments to distinguish them from the aggregated arguments listed in the order_by_clause. Unlike regular aggregate arguments, direct arguments are evaluated only once per aggregate call, not once per input row. This means that they can contain variables only if those variables are grouped by GROUP BY; this restriction is the same as if the direct arguments were not inside an aggregate expression at all. Direct arguments are typically used for things like percentile fractions, which only make sense as a single value per aggregation calculation. The direct argument list can be empty; in this case, write just () not (*). (IvorySQL will actually accept either spelling, but only the first way conforms to the SQL standard.) An example of an ordered-set aggregate call is: SELECT percentile_cont(0.5) WITHIN GROUP (ORDER BY income) FROM households; percentile_cont ----------------- 50489 which obtains the 50th percentile, or median, value of the income column from table households. Here, 0.5 is a direct argument; it would make no sense for the percentile fraction to be a value varying across rows. If FILTER is specified, then only the input rows for which the filter_clause evaluates to true are fed to the aggregate function; other rows are discarded. For example: SELECT count(*) AS unfiltered, count(*) FILTER (WHERE i < 5) AS filtered FROM generate_series(1,10) AS s(i); unfiltered | filtered ------------+---------- 10 | 4 (1 row) Other aggregate functions can be added by the user. An aggregate expression can only appear in the result list or HAVING clause of a SELECT command. It is forbidden in other clauses, such as WHERE, because those clauses are logically evaluated before the results of aggregates are formed. When an aggregate expression appears in a subquery,the aggregate is normally evaluated over the rows of the subquery. But an exception occurs if the aggregate’s arguments (and filter_clause if any) contain only outer-level variables: the aggregate then belongs to the nearest such outer level, and is evaluated over the rows of that query. The aggregate expression as a whole is then an outer reference for the subquery it appears in, and acts as a constant over any one evaluation of that subquery. The restriction about appearing only in the result list or HAVING clause applies with respect to the query level that the aggregate belongs to. A window function call represents the application of an aggregate-like function over some portion of the rows selected by a query. Unlike non-window aggregate calls, this is not tied to grouping of the selected rows into a single output row — each row remains separate in the query output. However the window function has access to all the rows that would be part of the current row’s group according to the grouping specification (PARTITION BY list) of the window function call. The syntax of a window function call is one of the following: function_name ([expression [, expression ... ]]) [ FILTER ( WHERE filter_clause ) ] OVER window_name function_name ([expression [, expression ... ]]) [ FILTER ( WHERE filter_clause ) ] OVER ( window_definition ) function_name ( * ) [ FILTER ( WHERE filter_clause ) ] OVER window_name function_name ( * ) [ FILTER ( WHERE filter_clause ) ] OVER ( window_definition ) where window_definition has the syntax [ existing_window_name ] [ PARTITION BY expression [, ...] ] [ ORDER BY expression [ ASC | DESC | USING operator ] [ NULLS { FIRST | LAST } ] [, ...] ] [ frame_clause ] The optional frame_clause can be one of { RANGE | ROWS | GROUPS } frame_start [ frame_exclusion ] { RANGE | ROWS | GROUPS } BETWEEN frame_start AND frame_end [ frame_exclusion ] where frame_start and frame_end can be one of UNBOUNDED PRECEDING offset PRECEDING CURRENT ROW offset FOLLOWING UNBOUNDED FOLLOWING and frame_exclusion can be one of EXCLUDE CURRENT ROW EXCLUDE GROUP EXCLUDE TIES EXCLUDE NO OTHERS Here, expression represents any value expression that does not itself contain window function calls. window_name is a reference to a named window specification defined in the query’s WINDOW clause. Alternatively, a full window_definition can be given within parentheses, using the same syntax as for defining a named window in the WINDOW clause; see the SELECT reference page for details. It’s worth pointing out that OVER wname is not exactly equivalent to OVER (wname …); the latter implies copying and modifying the window definition, and will be rejected if the referenced window specification includes a frame clause. The PARTITION BY clause groups the rows of the query into partitions, which are processed separately by the window function. PARTITION BY works similarly to a query-level GROUP BY clause, except that its expressions are always just expressions and cannot be output-column names or numbers. Without PARTITION BY, all rows produced by the query are treated as a single partition. The ORDER BY clause determines the order in which the rows of a partition are processed by the window function. It works similarly to a query-level ORDER BY clause, but likewise cannot use output-column names or numbers. Without ORDER BY, rows are processed in an unspecified order. The frame_clause specifies the set of rows constituting the window frame, which is a subset of the current partition, for those window functions that act on the frame instead of the whole partition. The set of rows in the frame can vary depending on which row is the current row. The frame can be specified in RANGE, ROWS or GROUPS mode; in each case, it runs from the frame_start to the frame_end. If frame_end is omitted, the end defaults to CURRENT ROW. A frame_start of UNBOUNDED PRECEDING means that the frame starts with the first row of the partition, and similarly a frame_end of UNBOUNDED FOLLOWING means that the frame ends with the last row of the partition. In RANGE or GROUPS mode, a frame_start of CURRENT ROW means the frame starts with the current row’s first peer row (a row that the window’s ORDER BY clause sorts as equivalent to the current row), while a frame_end of CURRENT ROW means the frame ends with the current row’s last peer row. In ROWS mode, CURRENT ROW simply means the current row. In the offset PRECEDING and offset FOLLOWING frame options, the offset must be an expression not containing any variables, aggregate functions, or window functions. The meaning of the offset depends on the frame mode: In ROWS mode, the offset must yield a non-null, non-negative integer, and the option means that the frame starts or ends the specified number of rows before or after the current row. In GROUPS mode, the offset again must yield a non-null, non-negative integer, and the option means that the frame starts or ends the specified number of peer groups before or after the current row’s peer group, where a peer group is a set of rows that are equivalent in the ORDER BY ordering. (There must be an ORDER BY clause in the window definition to use GROUPS mode.) In RANGE mode, these options require that the ORDER BY clause specify exactly one column. The offset specifies the maximum difference between the value of that column in the current row and its value in preceding or following rows of the frame. The data type of the offset expression varies depending on the data type of the ordering column. For numeric ordering columns it is typically of the same type as the ordering column, but for datetime ordering columns it is an interval. For example, if the ordering column is of type date or timestamp, one could write RANGE BETWEEN '1 day' PRECEDING AND '10 days' FOLLOWING. The offset is still required to be non-null and non-negative, though the meaning of “non-negative” depends on its data type. In any case, the distance to the end of the frame is limited by the distance to the end of the partition, so that for rows near the partition ends the frame might contain fewer rows than elsewhere. Notice that in both ROWS and GROUPS mode, 0 PRECEDING and 0 FOLLOWING are equivalent to CURRENT ROW. This normally holds in RANGE mode as well, for an appropriate data-type-specific meaning of “zero”. The frame_exclusion option allows rows around the current row to be excluded from the frame, even if they would be included according to the frame start and frame end options. EXCLUDE CURRENT ROW excludes the current row from the frame. EXCLUDE GROUP excludes the current row and its ordering peers from the frame. EXCLUDE TIES excludes any peers of the current row from the frame, but not the current row itself. EXCLUDE NO OTHERS simply specifies explicitly the default behavior of not excluding the current row or its peers. The default framing option is RANGE UNBOUNDED PRECEDING, which is the same as RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW. With ORDER BY, this sets the frame to be all rows from the partition start up through the current row’s last ORDER BY peer. Without ORDER BY, this means all rows of the partition are included in the window frame, since all rows become peers of the current row. Restrictions are that frame_start cannot be UNBOUNDED FOLLOWING, frame_end cannot be UNBOUNDED PRECEDING, and the frame_end choice cannot appear earlier in the above list of frame_start and frame_end options than the frame_start choice does — for example RANGE BETWEEN CURRENT ROW AND `offset PRECEDING` is not allowed. But, for example, ROWS BETWEEN 7 PRECEDING AND 8 PRECEDING is allowed, even though it would never select any rows. If FILTER is specified, then only the input rows for which the filter_clause evaluates to true are fed to the window function; other rows are discarded. Only window functions that are aggregates accept a FILTER clause. Other window functions can be added by the user. Also, any built-in or user-defined general-purpose or statistical aggregate can be used as a window function. (Ordered-set and hypothetical-set aggregates cannot presently be used as window functions.) The syntaxes using are used for calling parameter-less aggregate functions as window functions, for example count() OVER (PARTITION BY x ORDER BY y). The asterisk (*) is customarily not used for window-specific functions. Window-specific functions do not allow DISTINCT or ORDER BY to be used within the function argument list. Window function calls are permitted only in the SELECT list and the ORDER BY clause of the query. A type cast specifies a conversion from one data type to another. IvorySQL accepts two equivalent syntaxes for type casts: CAST ( expression AS type ) expression::type The CAST syntax conforms to SQL; the syntax with :: is historical IvorySQL usage. When a cast is applied to a value expression of a known type, it represents a run-time type conversion. The cast will succeed only if a suitable type conversion operation has been defined. Notice that this is subtly different from the use of casts with constants. A cast applied to an unadorned string literal represents the initial assignment of a type to a literal constant value, and so it will succeed for any type (if the contents of the string literal are acceptable input syntax for the data type). An explicit type cast can usually be omitted if there is no ambiguity as to the type that a value expression must produce (for example, when it is assigned to a table column); the system will automatically apply a type cast in such cases. However, automatic casting is only done for casts that are marked “OK to apply implicitly” in the system catalogs. Other casts must be invoked with explicit casting syntax. This restriction is intended to prevent surprising conversions from being applied silently. It is also possible to specify a type cast using a function-like syntax: typename ( expression ) However, this only works for types whose names are also valid as function names. For example, double precision cannot be used this way, but the equivalent float8 can. Also, the names interval, time, and timestamp can only be used in this fashion if they are double-quoted, because of syntactic conflicts. Therefore, the use of the function-like cast syntax leads to inconsistencies and should probably be avoided. Note The function-like syntax is in fact just a function call. When one of the two standard cast syntaxes is used to do a run-time conversion, it will internally invoke a registered function to perform the conversion. By convention, these conversion functions have the same name as their output type, and thus the “function-like syntax” is nothing more than a direct invocation of the underlying conversion function. Obviously, this is not something that a portable application should rely on. For further details see CREATE CAST. The COLLATE clause overrides the collation of an expression. It is appended to the expression it applies to: expr COLLATE collation where collation is a possibly schema-qualified identifier. The COLLATE clause binds tighter than operators; parentheses can be used when necessary. If no collation is explicitly specified, the database system either derives a collation from the columns involved in the expression, or it defaults to the default collation of the database if no column is involved in the expression. The two common uses of the COLLATE clause are overriding the sort order in an ORDER BY clause, for example: SELECT a, b, c FROM tbl WHERE ... ORDER BY a COLLATE \"C\"; and overriding the collation of a function or operator call that has locale-sensitive results, for example: SELECT * FROM tbl WHERE a > 'foo' COLLATE \"C\"; Note that in the latter case the COLLATE clause is attached to an input argument of the operator we wish to affect. It doesn’t matter which argument of the operator or function call the COLLATE clause is attached to, because the collation that is applied by the operator or function is derived by considering all arguments, and an explicit COLLATE clause will override the collations of all other arguments. (Attaching non-matching COLLATE clauses to more than one argument, however, is an error.) Thus, this gives the same result as the previous example: SELECT * FROM tbl WHERE a COLLATE \"C\" > 'foo'; But this is an error: SELECT * FROM tbl WHERE (a > 'foo') COLLATE \"C\"; because it attempts to apply a collation to the result of the > operator, which is of the non-collatable data type boolean. A scalar subquery is an ordinary SELECT query in parentheses that returns exactly one row with one column. The SELECT query is executed and the single returned value is used in the surrounding value expression. It is an error to use a query that returns more than one row or more than one column as a scalar subquery. (But if, during a particular execution, the subquery returns no rows, there is no error; the scalar result is taken to be null.) The subquery can refer to variables from the surrounding query, which will act as constants during any one evaluation of the subquery. For example, the following finds the largest city population in each state: SELECT name, (SELECT max(pop) FROM cities WHERE cities.state = states.name) FROM states; An array constructor is an expression that builds an array value using values for its member elements. A simple array constructor consists of the key word ARRAY, a left square bracket [, a list of expressions (separated by commas) for the array element values, and finally a right square bracket ]. For example: SELECT ARRAY[1,2,3+4]; array --------- {1,2,7} (1 row) By default, the array element type is the common type of the member expressions, determined using the same rules as for UNION or CASE constructs. You can override this by explicitly casting the array constructor to the desired type, for example: SELECT ARRAY[1,2,22.7]::integer[]; array ---------- {1,2,23} (1 row) This has the same effect as casting each expression to the array element type individually. Multidimensional array values can be built by nesting array constructors. In the inner constructors, the key word ARRAY can be omitted. For example, these produce the same result: SELECT ARRAY[ARRAY[1,2], ARRAY[3,4]]; array --------------- {{1,2},{3,4}} (1 row) SELECT ARRAY[[1,2],[3,4]]; array --------------- {{1,2},{3,4}} (1 row) Since multidimensional arrays must be rectangular, inner constructors at the same level must produce sub-arrays of identical dimensions. Any cast applied to the outer ARRAY constructor propagates automatically to all the inner constructors. Multidimensional array constructor elements can be anything yielding an array of the proper kind, not only a sub-ARRAY construct. For example: CREATE TABLE arr(f1 int[], f2 int[]); INSERT INTO arr VALUES (ARRAY[[1,2],[3,4]], ARRAY[[5,6],[7,8]]); SELECT ARRAY[f1, f2, '{{9,10},{11,12}}'::int[]] FROM arr; array ------------------------------------------------ {{{1,2},{3,4}},{{5,6},{7,8}},{{9,10},{11,12}}} (1 row) You can construct an empty array, but since it’s impossible to have an array with no type, you must explicitly cast your empty array to the desired type. For example: SELECT ARRAY[]::integer[]; array ------- {} (1 row) It is also possible to construct an array from the results of a subquery. In this form, the array constructor is written with the key word ARRAY followed by a parenthesized (not bracketed) subquery. For example: SELECT ARRAY(SELECT oid FROM pg_proc WHERE proname LIKE 'bytea%'); array ------------------------------------------------------------------ {2011,1954,1948,1952,1951,1244,1950,2005,1949,1953,2006,31,2412} (1 row) SELECT ARRAY(SELECT ARRAY[i, i*2] FROM generate_series(1,5) AS a(i)); array ---------------------------------- {{1,2},{2,4},{3,6},{4,8},{5,10}} (1 row) The subquery must return a single column. If the subquery’s output column is of a non-array type, the resulting one-dimensional array will have an element for each row in the subquery result, with an element type matching that of the subquery’s output column. If the subquery’s output column is of an array type, the result will be an array of the same type but one higher dimension; in this case all the subquery rows must yield arrays of identical dimensionality, else the result would not be rectangular. The subscripts of an array value built with ARRAY always begin with one. A row constructor is an expression that builds a row value (also called a composite value) using values for its member fields. A row constructor consists of the key word ROW, a left parenthesis, zero or more expressions (separated by commas) for the row field values, and finally a right parenthesis. For example: SELECT ROW(1,2.5,'this is a test'); The key word ROW is optional when there is more than one expression in the list. A row constructor can include the syntax rowvalue., which will be expanded to a list of the elements of the row value, just as occurs when the . syntax is used at the top level of a SELECT list .For example, if table t has columns f1 and f2, these are the same: SELECT ROW(t.*, 42) FROM t; SELECT ROW(t.f1, t.f2, 42) FROM t; Note Before PostgreSQL 8.2, the . syntax was not expanded in row constructors, so that writing ROW(t., 42) created a two-field row whose first field was another row value. The new behavior is usually more useful. If you need the old behavior of nested row values, write the inner row value without .*, for instance ROW(t, 42). By default, the value created by a ROW expression is of an anonymous record type. If necessary, it can be cast to a named composite type — either the row type of a table, or a composite type created with CREATE TYPE AS. An explicit cast might be needed to avoid ambiguity. For example: CREATE TABLE mytable(f1 int, f2 float, f3 text); CREATE FUNCTION getf1(mytable) RETURNS int AS 'SELECT $1.f1' LANGUAGE SQL; -- No cast needed since only one getf1() exists SELECT getf1(ROW(1,2.5,'this is a test')); getf1 ------- 1 (1 row) CREATE TYPE myrowtype AS (f1 int, f2 text, f3 numeric); CREATE FUNCTION getf1(myrowtype) RETURNS int AS 'SELECT $1.f1' LANGUAGE SQL; -- Now we need a cast to indicate which function to call: SELECT getf1(ROW(1,2.5,'this is a test')); ERROR: function getf1(record) is not unique SELECT getf1(ROW(1,2.5,'this is a test')::mytable); getf1 ------- 1 (1 row) SELECT getf1(CAST(ROW(11,'this is a test',2.5) AS myrowtype)); getf1 ------- 11 (1 row) Row constructors can be used to build composite values to be stored in a composite-type table column, or to be passed to a function that accepts a composite parameter. Also, it is possible to compare two row values or test a row with IS NULL or IS NOT NULL, for example: SELECT ROW(1,2.5,'this is a test') = ROW(1, 3, 'not the same'); SELECT ROW(table.*) IS NULL FROM table; -- detect all-null rows The order of evaluation of subexpressions is not defined. In particular, the inputs of an operator or function are not necessarily evaluated left-to-right or in any other fixed order. Furthermore, if the result of an expression can be determined by evaluating only some parts of it, then other subexpressions might not be evaluated at all. For instance, if one wrote: SELECT true OR somefunc(); then somefunc() would (probably) not be called at all. The same would be the case if one wrote: SELECT somefunc() OR true; Note that this is not the same as the left-to-right “short-circuiting” of Boolean operators that is found in some programming languages. As a consequence, it is unwise to use functions with side effects as part of complex expressions. It is particularly dangerous to rely on side effects or evaluation order in WHERE and HAVING clauses, since those clauses are extensively reprocessed as part of developing an execution plan. Boolean expressions (AND/OR/NOT combinations) in those clauses can be reorganized in any manner allowed by the laws of Boolean algebra. When it is essential to force evaluation order, a CASE construct can be used. For example, this is an untrustworthy way of trying to avoid division by zero in a WHERE clause: SELECT ... WHERE x > 0 AND y/x > 1.5; But this is safe: SELECT ... WHERE CASE WHEN x > 0 THEN y/x > 1.5 ELSE false END; A CASE construct used in this fashion will defeat optimization attempts, so it should only be done when necessary. (In this particular example, it would be better to sidestep the problem by writing y > 1.5*x instead.) CASE is not a cure-all for such issues, however. One limitation of the technique illustrated above is that it does not prevent early evaluation of constant subexpressions. As described in Section 38.7, functions and operators marked IMMUTABLE can be evaluated when the query is planned rather than when it is executed. Thus for example SELECT CASE WHEN x > 0 THEN x ELSE 1/0 END FROM tab; is likely to result in a division-by-zero failure due to the planner trying to simplify the constant subexpression, even if every row in the table has x > 0 so that the ELSE arm would never be entered at run time. While that particular example might seem silly, related cases that don’t obviously involve constants can occur in queries executed within functions, since the values of function arguments and local variables can be inserted into queries as constants for planning purposes. Within PL/pgSQL functions, for example, using an IF-THEN-ELSE statement to protect a risky computation is much safer than just nesting it in a CASE expression. Another limitation of the same kind is that a CASE cannot prevent evaluation of an aggregate expression contained within it, because aggregate expressions are computed before other expressions in a SELECT list or HAVING clause are considered. For example, the following query can cause a division-by-zero error despite seemingly having protected against it: SELECT CASE WHEN min(employees) > 0 THEN avg(expenses / employees) END FROM departments; The min() and avg() aggregates are computed concurrently over all the input rows, so if any row has employees equal to zero, the division-by-zero error will occur before there is any opportunity to test the result of min(). Instead, use a WHERE or FILTER clause to prevent problematic input rows from reaching an aggregate function in the first place. IvorySQL allows functions that have named parameters to be called using either positional or named notation. Named notation is especially useful for functions that have a large number of parameters, since it makes the associations between parameters and actual arguments more explicit and reliable. In positional notation, a function call is written with its argument values in the same order as they are defined in the function declaration. In named notation, the arguments are matched to the function parameters by name and can be written in any order. In either notation, parameters that have default values given in the function declaration need not be written in the call at all. But this is particularly useful in named notation, since any combination of parameters can be omitted; while in positional notation parameters can only be omitted from right to left. IvorySQL also supports mixed notation, which combines positional and named notation. In this case, positional parameters are written first and named parameters appear after them. The following examples will illustrate the usage of all three notations, using the following function definition: CREATE FUNCTION concat_lower_or_upper(a text, b text, uppercase boolean DEFAULT false) RETURNS text AS $$ SELECT CASE WHEN $3 THEN UPPER($1 || ' ' || $2) ELSE LOWER($1 || ' ' || $2) END; $$ LANGUAGE SQL IMMUTABLE STRICT; Function concat_lower_or_upper has two mandatory parameters, a and b. Additionally there is one optional parameter uppercase which defaults to false. The a and b inputs will be concatenated, and forced to either upper or lower case depending on the uppercase parameter. The remaining details of this function definition are not important here . Positional notation is the traditional mechanism for passing arguments to functions in IvorySQL. An example is: SELECT concat_lower_or_upper('Hello', 'World', true); concat_lower_or_upper ----------------------- HELLO WORLD (1 row) All arguments are specified in order. The result is upper case since uppercase is specified as true. Another example is: SELECT concat_lower_or_upper('Hello', 'World'); concat_lower_or_upper ----------------------- hello world (1 row) Here, the uppercase parameter is omitted, so it receives its default value of false, resulting in lower case output. In positional notation, arguments can be omitted from right to left so long as they have defaults. In named notation, each argument’s name is specified using ⇒ to separate it from the argument expression. For example: SELECT concat_lower_or_upper(a => 'Hello', b => 'World'); concat_lower_or_upper ----------------------- hello world (1 row) Again, the argument uppercase was omitted so it is set to false implicitly. One advantage of using named notation is that the arguments may be specified in any order, for example: SELECT concat_lower_or_upper(a => 'Hello', b => 'World', uppercase => true); concat_lower_or_upper ----------------------- HELLO WORLD (1 row) SELECT concat_lower_or_upper(a => 'Hello', uppercase => true, b => 'World'); concat_lower_or_upper ----------------------- HELLO WORLD (1 row) An older syntax based on \":=\" is supported for backward compatibility: SELECT concat_lower_or_upper(a := 'Hello', uppercase := true, b := 'World'); concat_lower_or_upper ----------------------- HELLO WORLD (1 row) The mixed notation combines positional and named notation. However, as already mentioned, named arguments cannot precede positional arguments. For example: SELECT concat_lower_or_upper('Hello', 'World', uppercase => true); concat_lower_or_upper ----------------------- HELLO WORLD (1 row) In the above query, the arguments a and b are specified positionally, while uppercase is specified by name. In this example, that adds little except documentation. With a more complex function having numerous parameters that have default values, named or mixed notation can save a great deal of writing and reduce chances for error. Note Named and mixed call notations currently cannot be used when calling an aggregate function (but they do work when an aggregate function is used as a window function). ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ] action; action: ADD ( add_coldef [, ... ] ) | MODIFY ( modify_coldef [, ... ] ) | DROP [ COLUMN ] ( column_name [, ... ] ) add_coldef: column_name data_type modify_coldef: column_name data_type alter_using alter_using: USING expression name Table name. column_name Column name. data_type Column type. expression The value expression. ADD keyword Adds a column to the table, either one or more columns. MODIFY keyword Modify a column of the table, you can modify one or more columns. DROP keyword Deletes a column of a table, you can delete one or more columns. USING keyword Modifies the value of a column. ADD: create table tb_test1(id int, flg char(10)); alter table tb_test1 add (name varchar); ALTER TABLE tb_test1 ADD adress varchar, ADD num int, ADD flg1 char; \\d tb_test1 Table \"public.tb_test1\" Column | Type | Collation | Nullable | Default --------+-----------------+-----------+----------+--------- id | pg_catalog.int4 | | | flg | char(10) | | | name | varchar2(4000) | | | adress | varchar2(4000) | | | num | pg_catalog.int4 | | | flg1 | char(1) | | | MODIFY: create table tb_test2(id int, flg char(10), num varchar); insert into tb_test2 values('1', 2, '3'); ALTER TABLE tb_test2 ALTER COLUMN id TYPE char; \\d tb_test2 Table \"public.tb_test2\" Column | Type | Collation | Nullable | Default --------+----------------+-----------+----------+--------- id | char(1) | | | flg | char(10) | | | num | varchar2(4000) | | | DROP: create table tb_test3(id int, flg1 char(10), flg2 char(11), flg3 char(12), flg4 char(13), flg5 char(14), flg6 char(15)); ALTER TABLE tb_test3 DROP id; \\d tb_test3 Table \"public.tb_test3\" Column | Type | Collation | Nullable | Default --------+----------+-----------+----------+--------- flg1 | char(10) | | | flg2 | char(11) | | | flg3 | char(12) | | | flg4 | char(13) | | | flg5 | char(14) | | | flg6 | char(15) | | | [ WITH [ RECURSIVE ] with_query [, ...] ] DELETE [ FROM ] [ ONLY ] table_name [ * ] [ [ AS ] alias ] [ USING using_list ] [ WHERE condition | WHERE CURRENT OF cursor_name ] [ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ] table_name The name of the table. alias The table alias. using_list A list of table expressions that allow columns from other tables to appear in the WHERE condition. condition An expression that returns a boolean type value. cursor_name The name of the cursor to be used in the WHERE CURRENT OF case. output_expression An expression that is calculated by DELETE and returned after each row is deleted. output_name The name of the returned column. create table tb_test4(id int, flg char(10)); insert into tb_test4 values(1, '2'), (5, '6'); delete from tb_test4 where id = 1; table tb_test4; id | flg ----+------------ 5 | 6 (1 row) [ WITH [ RECURSIVE ] with_query [, ...] ] UPDATE [ ONLY ] table_name [ * ] [ [ AS ] alias ] SET { [ table_name | alias ] column_name = { expression | DEFAULT } | ( [ table_name | alias ] column_name [, ...] ) = [ ROW ] ( { expression | DEFAULT } [, ...] ) | ( [ table_name | alias ] column_name [, ...] ) = ( sub-SELECT ) } [, ...] [ FROM from_list ] [ WHERE condition | WHERE CURRENT OF cursor_name ] [ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ] table_name Table name. alias Table alias. column_name Column name. expression Value expression. sub-SELECT select clause. from_list Table expression. condition An expression that returns a value of type boolean. cursor_name The name of the cursor to be used in the WHERE CURRENT OF case. output_expression An expression that is computed by DELETE and returned after each row is deleted. output_name The name of the column being returned. create table tb_test5(id int, flg char(10)); insert into tb_test5 values(1, '2'), (3, '4'), (5, '6'); update tb_test5 a set a.id = 33 where a.id = 3; table tb_test5; Id | flg ----+------------ 1 | 2 5 | 6 33 | 4 (3 rows) set ivorysql.compatible_mode to oracle; create table students(student_id varchar(20) primary key , student_name varchar(40), student_pid int); select student_id,student_name from students group by student_id; ERROR: column \"students.student_name\" must appear in the GROUP BY clause or be used in an aggregate function SELECT 100 AS value FROM DUAL UNION SELECT 200 AS value FROM DUAL UNION SELECT 100 AS value FROM DUAL; value ------- 100 200 (2 rows) select_statement MINUS [ ALL | DISTINCT ] select_statement; select_statement Any SELECT statement without the ORDER BY, LIMIT, FOR NO KEY UPDATE, FOR UPDATE, FOR SHARE, and FOR KEY SHARE clauses. ALL keyword contains duplicate row results. DISTINCT keyword shows the elimination of duplicate rows. select * from generate_series(1, 3) g(i) MINUS select * from generate_series(1, 3) g(i) where i = 1; i --- 2 3 (2 rows) Use q\\' to escape special characters. q\\' escaped characters are usually used after ! [] {} () \\<> and other escaping characters, you can also use \\, letters, numbers, \\=, +, -, *, \\&, \\$, \\%, #, etc., no spaces are allowed. select q''' is goog ''; ?column? ------------ ' is goog (1 row) SELECT [ database {schema} | schema ] sequence {nextval | currval}; `sequence`Sequence Name. create sequence sq; select sq.nextval; nextval ----------- 1 (1 row) select sq.currval; nextval ----------- 1 (1 row) Convert the given timestamp without time zone to the specified timestamp with time zone, or return NULL if the specified time zone or timestamp is NULL. Parameters Description day Timestamp without time zone tz Specified time zone select from_tz('2021-11-08 09:12:39','Asia/Shanghai') from dual; from_tz ----------------------------------- 2021-11-08 09:12:39 Asia/Shanghai (1 row) select from_tz('2021-11-08 09:12:39','SAST') from dual; from_tz -------------------------- 2021-11-08 09:12:39 SAST select from_tz(NULL,'SAST') from dual; from_tz --------- (1 row) select from_tz('2021-11-08 09:12:31',NULL) from dual; from_tz --------- (1 row) Get the timestamp of the current database system. select oracle.systimestamp(); systimestamp ------------------------------- 2021-12-02 14:38:59.879642+08 (1 row) select systimestamp; statement_timestamp ------------------------------- 2021-12-02 14:39:33.262828+08 Converts the given timestamp with time zone to UTC time without time zone. Parameters Description day Need to convert time stamp with time zone select sys_extract_utc('2018-03-28 11:30:00.00 +09:00'::timestamptz) from dual; sys_extract_utc --------------------- 2018-03-28 02:30:00 (1 row) select oracle.sys_extract_utc(NULL) from dual; sys_extract_utc ----------------- (1 row) Gets the time zone of the current session. select sessiontimezone() from dual; sessiontimezone ----------------- PRC (1 row) set timezone to UTC; select oracle.sessiontimezone(); sessiontimezone ----------------- UTC (1 row) next_day returns the date of the first weekday with the same format name, which is later than the current date. The return type is always DATE, regardless of the date's data type. The return value has the same hour, minute, and second parts as the Parameters date. Parameters Description value Start Timestamp weekday The day of the week, can be \"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\" or 0,1,2,3,4,5,6,0 for Sunday select next_day(to_timestamp('2020-02-29 14:40:50', 'YYYY-MM-DD HH24:MI:SS'), 'Tuesday') from dual; next_day --------------------- 2020-03-03 14:40:50 (1 row) select next_day('2020-07-01 19:43:51 +8'::timestamptz, 1) from dual; next_day --------------------- 2020-07-05 19:43:51 (1 row) last_day returns the last day of the month in which the slot date falls. Parameters Description value Specified timestamp select last_day(timestamp '2020-05-17 13:27:19') from dual; last_day --------------------- 2020-05-31 13:27:19 (1 row) select last_day('2020-11-29 19:20:40 +08'::timestamptz) from dual; last_day --------------------- 2020-11-30 19:20:40 (1 row) add_months returns the date plus an integer month. date Parameters can be date-time values or any value that can be implicitly converted to DATE. integer Parameters can be an integer or any value that can be implicitly converted to an integer. Parameters Description day oracle.date type, the timestamp that needs to be changed value A shaping data, the number of months to be added select add_months(date '2020-02-15',7) from dual; add_months --------------------- 2020-09-15 00:00:00 (1 row) select add_months(timestamp '2018-12-15 19:12:09',12) from dual; add_months --------------------- 2019-12-15 19:12:09 (1 row) sysdate returns the operating system time of the database server. select sysdate; statement_sysdate --------------------- 2021-12-09 16:20:34 (1 row) select sysdate(); sysdate --------------------- 2021-12-09 16:21:39 (1 row) Convert the time of the first time zone to the time of the second time zone. The time zones include \"ast\", \"adt\", \"bst\", \"bdt\", \"cst\", \"cdt\", \"est\", \"edt\", \"gmt\", \"hst\", \"hdt\", \"mst\", \"mdt\", \"nst\", \"pst\", \"pdt\", \"yst\", \"ydt\". Parameters Description day Timestamp to be converted tz1 Timestamped time zones tz2 Target time zone select new_time(timestamp '2020-12-12 17:45:18', 'AST', 'ADT') from dual; new_time --------------------- 2020-12-12 18:45:18 (1 row) select new_time(timestamp '2020-12-12 17:45:18', 'BST', 'BDT') from dual; new_time --------------------- 2020-12-12 18:45:18 (1 row) select new_time(timestamp '2020-12-12 17:45:18', 'CST', 'CDT') from dual; new_time --------------------- 2020-12-12 18:45:18 (1 row) The trunc function returns a date, truncated in the specified format. fmt includes \"Y\", \"YY\", \"YYYY\", \"YYYY\", \"YEAR\", \"SYYYY\", \"SYEAR\", \"I\", \"IY\", \"IYY\", \"IYYY\", \"Q\", \"WW\", \"Iw\", \"W\", \"DAY\", \"DY\", \"D\", \" MONTH\", \"MONn\", \"MM\", \"RM\", \"CC\", \"SCC\", \"DDD\", \"DD\", \"J\", \"HH\", \"HH12\", \"HH24\", \"MI\". Parameters Description value The specified date (oracle.date, timestamp, timestamptz) fmt The specified format, if omitted, defaults to \"DDD\" select trunc(timestamp '2020-07-28 19:16:12', 'Q'); trunc --------------------- 2020-07-01 00:00:00 (1 row) select trunc(timestamptz '2020-09-27 18:30:21 + 08', 'MONTH'); trunc ------------------------ 2020-09-01 00:00:00+08 (1 row) The round function returns a date, rounded to the specified format. fmt includes \"Y\", \"YY\", \"YYYY\", \"YYYY\", \"YEAR\", \"SYYYY\", \"SYEAR\", \"I\", \"IY\", \"IYY\", \"IYYY\", \"Q\", \"WW\", \"Iw\", \"W\", \"DAY\", \"DY\", \"D \", \"MONTH\", \"MONn\", \"MM\", \"RM\", \"CC\", \"SCC\", \"DDD\", \"DD\", \"J\", \"HH\", \"HH12\", \"HH24\", \"MI\". Parameters Description value The date being converted (oracle.date, timestamp, timestamptz) fmt The specified format, if omitted, defaults to \"DDD\" select round(timestamp '2050-06-12 16:40:55', 'IYYY'); round --------------------- 2050-01-03 00:00:00 (1 row) TO_CHAR (str,[fmt]) Converts the input Parameters to a TEXT data type value according to the given format. If fmt is omitted, the data will be converted to a TEXT value in the system default format. If str is null, the function returns null. str Input Parameters (any type). fmt Input format Parameters, see format fmt for details. select to_char('3 2:20:05' ); to_char ----------------- 3 days 02:20:05 (1 row) select to_char('4.00'::numeric); to_char --------- 4 (1 row) select to_char(NULL); to_char --------- (1 row) select to_char(123,'xx'); to_char --------- 7b (1 row) TO_NUMBER(str,[fmt1]) Converts the input Parameters str to a value of the NUMREIC data type according to the given format. If fmt1 is omitted, the data will be converted to a NUMERIC value in the system default format. If str is NUMERIC, the function returns str. If str calculates to null, the function returns null. If it cannot be converted to the NUMERIC data type, the function returns an error. str input Parameters include the following data types (double precision, numeric, text, integer, etc., but must be implicitly converted to numeric). fmt1 Input format Parameters, see format fmt1 for details. select to_number(1210.73::numeric, 9999.99::numeric); to_number ----------- 1210.73 (1 row) select to_number(NULL); to_number ----------- (1 row) select to_number('123'::text); to_number ----------- 123 (1 row) TO_DATE(str,[fmt]) Converts the input Parameters str to a date data type value according to the given format. If fmt is omitted, the data will be converted to a date value in the system default format. If str is null, the function returns null. If fmt is J, for Julian, then char must be an integer. The function returns an error if it cannot be converted to DATE. str input Parameters (integer, text, can be implicitly converted to the above type, string that matches the date format). fmt input format Parameters, see format fmt for details. select to_date('50-11-28 ','RR-MM-dd '); to_date --------------------- 1950-11-28 00:00:00 (1 row) select to_date(2454336, 'J'); to_date --------------------- 2007-08-23 00:00:00 (1 row) select to_date('2019/11/22', 'yyyy-mm-dd'); to_date --------------------- 2019-11-22 00:00:00 (1 row) select to_date('20-11-28 10:14:22','YY-MM-dd hh24:mi:ss'); to_date --------------------- 2020-11-28 10:14:22 (1 row) select to_date('2019/11/22'); to_date --------------------- 2019-11-22 00:00:00 (1 row) select to_date('2019/11/27 10:14:22'); to_date --------------------- 2019-11-27 10:14:22 (1 row) select to_date('2020','RR'); to_date --------------------- 2020-01-01 00:00:00 (1 row) select to_date(NULL); to_date --------- (1 row) select to_date('-4712-07-23 14:31:23', 'syyyy-mm-dd hh24:mi:ss'); to_date ---------------------- -4712-07-23 14:31:23 (1 row) TO_TIMESTAMP(str,[fmt]) Converts the input Parameters str to a timestamp without a time zone according to the given format. If fmt is omitted, the data is converted to a timestamp with no time zone value in the system default format. If str is null, the function returns null. If it cannot be converted to a timestamp without a time zone, the function returns an error. str input Parameters (double precision,text, which can be implicitly converted to the above type). fmt Input format Parameters, see format fmt for details. select to_timestamp(1212121212.55::numeric); to_timestamp --------------------------- 2008-05-30 12:20:12.55 (1 row) select to_timestamp('2020/03/03 10:13:18 +5:00', 'YYYY/MM/DD HH:MI:SS TZH:TZM'); to_timestamp ------------------------ 2020-03-03 13:13:18 (1 row) select to_timestamp(NULL,NULL); to_timestamp -------------- (1 row) TO_YMINTERVAL(str) Converts the input Parameters str time interval to a time interval in the year-to-month range. Only the year and month are processed, other parts are omitted. If the input Parameters is NULL, the function returns NULL, and if the input Parameters is in the wrong format, the function returns an error. str Input Parameters (text, can be implicitly converted to text type, must be in time interval format. (SQL interval format compatible with SQL standard, ISO duration format compatible with ISO 8601:2004 standard). select to_yminterval('P1Y-2M2D'); to_yminterval --------------- +000000000-10 (1 row) select to_yminterval('P1Y2M2D'); to_yminterval --------------- +000000001-02 (1 row) select to_yminterval('-01-02'); to_yminterval --------------- -000000001-02 (1 row) TO_DSINTERVAL(str) converts the time interval of the input Parameters str to a time interval in the range of days to seconds. Input Parameters include: day, hour, minute, second and microsecond. If the input Parameters is NULL, the function returns NULL, and if the input Parameters contains the year and month or is in the wrong format, the function returns an error. str Input Parameters (text, can be implicitly converted to text type, must be in time interval format. (SQL interval format compatible with SQL standard, ISO duration format compatible with ISO 8601:2004 standard). select to_dsinterval('100 00 :02 :00'); to_dsinterval ------------------------------- +000000100 00:02:00.000000000 (1 row) select to_dsinterval('-100 00:02:00'); to_dsinterval ------------------------------- -000000100 00:02:00.000000000 (1 row) select to_dsinterval(NULL); to_dsinterval --------------- (1 row) TO_TIMESTAMP_TZ(str,[fmt]) Converts the input Parameters str to a timestamp with a time zone according to the given format. If fmt is omitted, the data will be converted to a timestamp with a time zone value in the system default format. If str is null, the function returns null. If it cannot be converted to a timestamp with a time zone, the function returns an error. str input Parameters (text, which can be implicitly converted to a text type). fmt Enter format Parameters, see format fmt for details. select to_timestamp_tz('2019','yyyy'); to_timestamp_tz ------------------------ 2019-01-01 00:00:00+08 (1 row) select to_timestamp_tz('2019-11','yyyy-mm'); to_timestamp_tz ------------------------ 2019-11-01 00:00:00+08 (1 row) select to_timestamp_tz('2003/12/13 10:13:18 +7:00'); to_timestamp_tz ------------------------ 2003-12-13 11:13:18+08 (1 row) select to_timestamp_tz('2019/12/13 10:13:18 +5:00', 'YYYY/MM/DD HH:MI:SS TZH:TZM'); to_timestamp_tz ------------------------ 2019-12-13 13:13:18+08 (1 row) select to_timestamp_tz(NULL); to_timestamp_tz ----------------- (1 row) GREATEST(expr1,expr2,…) Gets the maximum value in the input list of one or more expressions. If the result of any expr calculation is NULL, the function returns NULL. expr1` Enter Parameters (of any type). `expr2` Enter Parameters (of any type). `... select greatest('a','b','A','B'); greatest ---------- b (1 row) select greatest(',','.','/',';','!','@','?'); greatest ---------- @ (1 row) select greatest('瀚','高','数','据','库'); greatest ---------- 高 (1 row) SELECT greatest('HARRY', 'HARRIOT', 'HARRA'); greatest ---------- HARRY (1 row) SELECT greatest('HARRY', 'HARRIOT', NULL); greatest ---------- (1 row) SELECT greatest(1.1, 2.22, 3.33); greatest ---------- 3.33 (1 row) SELECT greatest('A', 6, 7, 5000, 'E', 'F','G') A; a --- G (1 row) LEAST(expr1,expr2,…) Gets the smallest value in the input list of one or more expressions. If the result of any expr calculation is NULL, the function returns NULL. expr1` Enter Parameters (of any type). `expr2` Enter Parameters (of any type). `... SELECT least(1,' 2', '3' ); least ------- 1 (1 row) SELECT least(NULL, NULL, NULL); least ------- (1 row) SELECT least('A', 6, 7, 5000, 'E', 'F','G') A; a ------ 5000 (1 row) select least(1,3,5,10); least ------- 1 (1 row) select least('a','A','b','B'); least ------- A (1 row) select least(',','.','/',';','!','@'); least ------- ! (1 row) select least('瀚','高','据','库'); least ------- 库 (1 row) SELECT least('HARRY', 'HARRIOT', NULL); least ------- (1 row) NLS_LENGTH_SEMANTICS enables you to create CHAR and VARCHAR2 columns using byte or character length semantics. Existing columns are not affected. In this case, the default semantics is BYTE. SET NLS_LENGTH_SEMANTICS TO [NONE | BYTE | CHAR]; BYTE: The data is stored in byte length. CHAR:Data is stored in character length. NONE:Data is stored using native IvorySQL storage. create table test(a varchar2(5)); CREATE TABLE SET NLS_LENGTH_SEMANTICS TO CHAR; SET SHOW NLS_LENGTH_SEMANTICS; nls_length_semantics ---------------------- char (1 row) insert into test values ('Hello,Mr.li'); INSERT 0 1 SET NLS_LENGTH_SEMANTICS TO BYTE; SET SHOW NLS_LENGTH_SEMANTICS; nls_length_semantics ---------------------- byte (1 row) insert into test values ('Hello,Mr.li'); 2021-12-14 15:28:11.906 HKT [6774] ERROR: value too long for type varchar2(5 byte) 2021-12-14 15:28:11.906 HKT [6774] STATEMENT: insert into test values ('Hello,Mr.li'); ERROR: value too long for type varchar2(5 byte) Variable length strings with maximum length bytes or characters. You must specify the size for VARCHAR2. The minimum size is 1 byte or 1 character. VARCHAR2(size) create table test(a varchar2(5)); CREATE TABLE SET NLS_LENGTH_SEMANTICS TO CHAR; SET SHOW NLS_LENGTH_SEMANTICS; nls_length_semantics ---------------------- char (1 row) insert into test values ('Hello,Mr.li'); INSERT 0 1 PL/iSQL is IvorySQL’s procedural language for writing custom functions, procedures and packages for IvorySQL. PL/iSQL is derived from IvorySQL’s PL/pgsql with some added features, but syntactically PL/iSQL is closer to Oracle’s PL/SQL. This document Describes the basic structure and construction of PL/iSQL programs. iSQL is a procedural block structure language that supports four different program types, PACKAGES, PROCEDURES, FUNCTIONS, and TRIGGERS. iSQL supports four different program types, PACKAGES, PROCEDURES, FUNCTIONS, and TRIGGERS. iSQL uses the same block structure for each type of supported program. A block consists of up to three parts: a declaration part, an executable, and an exception part. The declaration and exception sections are optional. [DECLARE declarations] BEGIN statements [ EXCEPTION WHEN THEN statements] END; A block can consist of at least one executable section Contains one or more iSQL statements in the BEGIN and END keywords. CREATE OR REPLACE FUNCTION null_func() RETURN VOID AS BEGIN NULL; END; / All keywords are case-insensitive. Identifiers are implicitly converted to lowercase unless double-quoted, just as they are in normal SQL commands. The declaration section can be used to declare variables and cursors, and depending on the context in which the block is used, the declaration section can begin with the keyword DECLARE. CREATE OR REPLACE FUNCTION null_func() RETURN VOID AS DECLARE quantity integer := 30; c_row pg_class%ROWTYPE; r_cursor refcursor; CURSOR c1 RETURN pg_proc%ROWTYPE; BEGIN NULL; end; / An optional exception section can also be included in a BEGIN - END block. The exception section begins with the keyword EXCEPTION and continues until the end of the block in which it appears. If a statement within the block throws an exception, program control goes to the exception section, which may or may not handle the thrown exception, depending on the contents of the exception and exception sections. CREATE OR REPLACE FUNCTION reraise_test() RETURN void AS BEGIN BEGIN RAISE syntax_error; EXCEPTION WHEN syntax_error THEN BEGIN raise notice 'exception % thrown in inner block, reraising', sqlerrm; RAISE; EXCEPTION WHEN OTHERS THEN raise notice 'RIGHT - exception % caught in inner block', sqlerrm; END; END; EXCEPTION WHEN OTHERS THEN raise notice 'WRONG - exception % caught in outer block', sqlerrm; END; / Note Like PL/pgSQL, PL/iSQL uses BEGIN/END to group statements, and do not confuse them with the SQL commands of the same name used for transaction control. PL/iSQL’s BEGIN/END are used only for grouping; they do not start or end transactions To create a PL/iSQL program from a psql client, you can use a syntax similar to PL/pgSQL’s $$ CREATE FUNCTION func() RETURNS void as $$ .. end$$ language plisql; Alternatively, you can use the Oracle-compliant syntax of references and language specifications without $$ and end the program definition with / (forward slash). The */ (forward slash) must be on the newline character CREATE FUNCTION func() RETURN void AS … END; / CREATE [OR REPLACE] PROCEDURE procedure_name [(parameter_list)] is [DECLARE] -- variable declaration BEGIN -- stored procedure body END; / CREATE [OR REPLACE] FUNCTION function_name ([parameter_list]) RETURN return_type AS [DECLARE] -- variable declaration BEGIN -- function body return statement END; / CREATE [ OR REPLACE ] PACKAGE [schema.] *package_name* [invoker_rights_clause] [IS | AS] item_list[, item_list ...] END [*package_name*]; invoker_rights_clause: AUTHID [CURRENT_USER | DEFINER] item_list: [ function_declaration | procedure_declaration | type_definition | cursor_declaration | item_declaration ] function_declaration: FUNCTION function_name [(parameter_declaration[, ...])] RETURN datatype; procedure_declaration: PROCEDURE procedure_name [(parameter_declaration[, ...])] type_definition: record_type_definition | ref_cursor_type_definition cursor_declaration: CURSOR name [(cur_param_decl[, ...])] RETURN rowtype; item_declaration: cursor_declaration | cursor_variable_declaration | record_variable_declaration | variable_declaration | record_type_definition: TYPE record_type IS RECORD ( variable_declaration [, variable_declaration]... ) ; ref_cursor_type_definition: TYPE type IS REF CURSOR [ RETURN type%ROWTYPE ]; cursor_variable_declaration: curvar curtype; record_variable_declaration: recvar { record_type | rowtype_attribute | record_type%TYPE }; variable_declaration: varname datatype [ [ NOT NULL ] := expr ] parameter_declaration: parameter_name [IN] datatype [[:= | DEFAULT] expr] CREATE [ OR REPLACE ] PACKAGE BODY [schema.] package_name [IS | AS] [item_list[, item_list ...]] | item_list_2 [, item_list_2 ...] [initialize_section] END [package_name]; initialize_section: BEGIN statement[, ...] item_list: [ function_declaration | procedure_declaration | type_definition | cursor_declaration | item_declaration ] item_list_2: [ function_declaration function_definition procedure_declaration procedure_definition cursor_definition ] function_definition: FUNCTION function_name [(parameter_declaration[, ...])] RETURN datatype [IS | AS] [declare_section] body; procedure_definition: PROCEDURE procedure_name [(parameter_declaration[, ...])] [IS | AS] [declare_section] body; cursor_definition: CURSOR name [(cur_param_decl[, ...])] RETURN rowtype IS select_statement; body: BEGIN statement[, ...] END [name]; statement: [<>] pl_statments[, ...]; { CONNECT BY [ NOCYCLE ] [PRIOR] condition [AND [PRIOR] condition]... [ START WITH condition ] | START WITH condition CONNECT BY [ NOCYCLE ] [PRIOR] condition [AND [PRIOR] condition]... } The CONNECT BY query syntax begins with the CONNECT BY keywords, which define hierarchical interdependencies between parent and child rows. The result must be further qualified by specifying the PRIOR keyword in the conditional part of the CONNECT BY clause. The PRIOR PRIOR keyword is a unary operator that relates the previous row to the current row. This keyword can be used to the left or right of the equality condition. START WITH This clause specifies the line from which the hierarchy begins. NOCYCLE No operation statement. Currently only supported by the syntax. This clause indicates that data is returned even if a loop exists. LEVEL Returns the level of the current row in the hierarchy, starting at 1 at the root node and incrementing by 1 at each level thereafter. CONNECT_BY_ROOT expr Returns the parent column of the current row in the hierarchy. SYS_CONNECT_BY_PATH(col, chr) It is a function that returns the value of the column from the root to the current node, separated by the character \"chr\". This function currently has the following limitations. Additional columns can be used for most expressions, such as function calls, CASE statements and general expressions, but there are some unsupported columns, such as ROW, TYPECAST, COLLATE, GROUPING clauses, etc. In case two or more columns are the same, you may need to output the column name, Example such as SELECT CONNECT_BY_ROOT col AS \"col1\", CONNECT_BY_ROOT col AS \"col2\" …. Indirect operators or \"*\" are not supported Loop detection is not supported CREATE UNIQUE INDEX [IF NOT EXISTS] name ON table_name [USING method] (columns) GLOBAL CREATE UNIQUE INDEX myglobalindex on mytable(bid) GLOBAL; During the creation of a globally unique index, the system performs an index scan on all existing partitions and raises an error if it finds duplicate entries from other partitions than the current one. Example. Command create table gidxpart (a int, b int, c text) partition by range (a); create table gidxpart1 partition of gidxpart for values from (0) to (100000); create table gidxpart2 partition of gidxpart for values from (100000) to (199999); insert into gidxpart (a, b, c) values (42, 572814, 'inserted first on gidxpart1'); insert into gidxpart (a, b, c) values (150000, 572814, 'inserted second on gidxpart2'); create unique index on gidxpart (b) global; Output ERROR: could not create unique index \"gidxpart1_b_idx\" DETAIL: Key (b)=(572814) is duplicated. During global unique index creation, the system performs an index scan on all existing partitions and raises an error if duplicate items are found in other partitions than the current one. Command create table gidx_part (a int, b int, c text) partition by range (a); create table gidxpart (a int, b int, c text) partition by range (a); create table gidxpart1 partition of gidxpart for values from (0) to (10); create table gidxpart2 partition of gidxpart for values from (10) to (100); create unique index gidx_u on gidxpart using btree(b) global; insert into gidxpart values (1, 1, 'first'); insert into gidxpart values (11, 11, 'eleventh'); insert into gidxpart values (2, 11, 'duplicated (b)=(11) on other partition'); Output ERROR: duplicate key value violates unique constraint \"gidxpart2_b_idx\" DETAIL: Key (b)=(11) already exists. When appending a new table to a partitioned table with a globally unique index, the system performs a duplicate check on all existing partitions. If a duplicate item is found in an existing partition that matches a tuple in the appended table, an error is raised and the append fails. Appending requires a SHARE LOCK on all existing partitions. If one of the partitions is doing a concurrent INSERT, the append will wait for it to complete first. This can be improved in a future release Command create table gidxpart (a int, b int, c text) partition by range (a); create table gidxpart1 partition of gidxpart for values from (0) to (100000); insert into gidxpart (a, b, c) values (42, 572814, 'inserted first on gidxpart1'); create unique index on gidxpart (b) global; create table gidxpart2 (a int, b int, c text); insert into gidxpart2 (a, b, c) values (150000, 572814, 'dup inserted on gidxpart2'); alter table gidxpart attach partition gidxpart2 for values from (100000) to (199999); Output ERROR: could not create unique index \"gidxpart1_b_idx\" DETAIL: Key (b)=(572814) is duplicated.","title":"Developer Guide","component":"ivorysql-doc","version":"master","name":"developer_guide","url":"/ivorysql-doc/master/developer_guide.html","titles":[{"text":"1. Overview","hash":"overview","id":1},{"text":"1.1. Architecture Overview","hash":"architecture-overview","id":2},{"text":"1.2. Catalog changes","hash":"catalog-changes","id":3},{"text":"2. Database Modeling","hash":"database-modeling","id":4},{"text":"2.1. Creating a Database","hash":"creating-a-database","id":5},{"text":"2.2. Creating a New Table","hash":"creating-a-new-table","id":6},{"text":"3. Write to data","hash":"write-to-data","id":7},{"text":"4. Query Data","hash":"query-data","id":8},{"text":"4.1. Combining Queries (UNION, INTERSECT, EXCEPT)","hash":"combining-queries-union-intersect-except","id":9},{"text":"4.2. Parallel Query","hash":"parallel-query","id":10},{"text":"4.2.1. How Parallel Query Works","hash":"how-parallel-query-works","id":11},{"text":"4.2.2. When Can Parallel Query Be Used?","hash":"when-can-parallel-query-be-used","id":12},{"text":"4.2.3. Parallel Plans","hash":"parallel-plans","id":13},{"text":"4.2.3.1. Parallel Scans","hash":"parallel-scans","id":14},{"text":"4.2.3.2. Parallel Joins","hash":"parallel-joins","id":15},{"text":"4.2.3.3. Parallel Aggregation","hash":"parallel-aggregation","id":16},{"text":"4.2.3.4. Parallel Append","hash":"parallel-append","id":17},{"text":"4.2.3.5. Parallel Plan Tips","hash":"parallel-plan-tips","id":18},{"text":"5. Transaction","hash":"transaction","id":19},{"text":"5.1. ABORT — abort the current transaction","hash":"abort-abort-the-current-transaction","id":20},{"text":"5.1.1. Synopsis","hash":"synopsis","id":21},{"text":"5.1.2. Description","hash":"description","id":22},{"text":"5.1.3. Parameters","hash":"parameters","id":23},{"text":"5.1.4. Notes","hash":"notes","id":24},{"text":"5.1.5. Examples","hash":"examples","id":25},{"text":"5.1.6. Compatibility","hash":"compatibility","id":26},{"text":"5.2. BEGIN — start a transaction block","hash":"begin-start-a-transaction-block","id":27},{"text":"5.2.1. Synopsis","hash":"synopsis-2","id":28},{"text":"5.2.2. Description","hash":"description-2","id":29},{"text":"5.2.3. Parameters","hash":"parameters-2","id":30},{"text":"5.2.4. Notes","hash":"notes-2","id":31},{"text":"5.2.5. Examples","hash":"examples-2","id":32},{"text":"5.2.6. Compatibility","hash":"compatibility-2","id":33},{"text":"5.3. COMMIT — commit the current transaction","hash":"commit-commit-the-current-transaction","id":34},{"text":"5.3.1. Synopsis","hash":"synopsis-3","id":35},{"text":"5.3.2. Description","hash":"description-3","id":36},{"text":"5.3.3. Parameters","hash":"parameters-3","id":37},{"text":"5.3.4. Notes","hash":"notes-3","id":38},{"text":"5.3.5. Examples","hash":"examples-3","id":39},{"text":"5.3.6. Compatibility","hash":"compatibility-3","id":40},{"text":"5.4. COMMIT PREPARED — commit a transaction that was earlier prepared for two-phase commit","hash":"commit-prepared-commit-a-transaction-that-was-earlier-prepared-for-two-phase-commit","id":41},{"text":"5.4.1. Synopsis","hash":"synopsis-4","id":42},{"text":"5.4.2. Description","hash":"description-4","id":43},{"text":"5.4.3. Parameters","hash":"parameters-4","id":44},{"text":"5.4.4. Notes","hash":"notes-4","id":45},{"text":"5.4.5. Examples","hash":"examples-4","id":46},{"text":"5.4.6. Compatibility","hash":"compatibility-4","id":47},{"text":"5.5. END — commit the current transaction","hash":"end-commit-the-current-transaction","id":48},{"text":"5.5.1. Synopsis","hash":"synopsis-5","id":49},{"text":"5.5.2. Description","hash":"description-5","id":50},{"text":"5.5.3. Parameters","hash":"parameters-5","id":51},{"text":"5.5.4. Notes","hash":"notes-5","id":52},{"text":"5.5.5. Examples","hash":"examples-5","id":53},{"text":"5.5.6. Compatibility","hash":"compatibility-5","id":54},{"text":"5.6. PREPARE TRANSACTION — prepare the current transaction for two-phase commit","hash":"prepare-transaction-prepare-the-current-transaction-for-two-phase-commit","id":55},{"text":"5.6.1. Synopsis","hash":"synopsis-6","id":56},{"text":"5.6.2. Description","hash":"description-6","id":57},{"text":"5.6.3. Parameters","hash":"parameters-6","id":58},{"text":"5.6.4. Notes","hash":"notes-6","id":59},{"text":"5.6.5. Caution","hash":"caution","id":60},{"text":"5.6.6. Examples","hash":"examples-6","id":61},{"text":"5.6.7. Compatibility","hash":"compatibility-6","id":62},{"text":"5.7. ROLLBACK — abort the current transaction","hash":"rollback-abort-the-current-transaction","id":63},{"text":"5.7.1. Synopsis","hash":"synopsis-7","id":64},{"text":"5.7.2. Description","hash":"description-7","id":65},{"text":"5.7.3. Parameters","hash":"parameters-7","id":66},{"text":"5.7.4. Notes","hash":"notes-7","id":67},{"text":"5.7.5. Examples","hash":"examples-7","id":68},{"text":"5.7.6. Compatibility","hash":"compatibility-7","id":69},{"text":"5.8. ROLLBACK PREPARED — cancel a transaction that was earlier prepared for two-phase commit","hash":"rollback-prepared-cancel-a-transaction-that-was-earlier-prepared-for-two-phase-commit","id":70},{"text":"5.8.1. Synopsis","hash":"synopsis-8","id":71},{"text":"5.8.2. Description","hash":"description-8","id":72},{"text":"5.8.3. Parameters","hash":"parameters-8","id":73},{"text":"5.8.4. Notes","hash":"notes-8","id":74},{"text":"5.8.5. Examples","hash":"examples-8","id":75},{"text":"5.8.6. Compatibility","hash":"compatibility-8","id":76},{"text":"5.9. SAVEPOINT — define a new savepoint within the current transaction","hash":"savepoint-define-a-new-savepoint-within-the-current-transaction","id":77},{"text":"5.9.1. Synopsis","hash":"synopsis-9","id":78},{"text":"5.9.2. Description","hash":"description-9","id":79},{"text":"5.9.3. Parameters","hash":"parameters-9","id":80},{"text":"5.9.4. Notes","hash":"notes-9","id":81},{"text":"5.9.5. Examples","hash":"examples-9","id":82},{"text":"5.9.6. Compatibility","hash":"compatibility-9","id":83},{"text":"5.10. SET CONSTRAINTS — set constraint check timing for the current transaction","hash":"set-constraints-set-constraint-check-timing-for-the-current-transaction","id":84},{"text":"5.10.1. Synopsis","hash":"synopsis-10","id":85},{"text":"5.10.2. Description","hash":"description-10","id":86},{"text":"5.10.3. Notes","hash":"notes-10","id":87},{"text":"5.10.4. Compatibility","hash":"compatibility-10","id":88},{"text":"5.11. SET TRANSACTION — set the characteristics of the current transaction","hash":"set-transaction-set-the-characteristics-of-the-current-transaction","id":89},{"text":"5.11.1. Synopsis","hash":"synopsis-11","id":90},{"text":"5.11.2. Description","hash":"description-11","id":91},{"text":"5.11.3. Notes","hash":"notes-11","id":92},{"text":"5.11.4. Examples","hash":"examples-10","id":93},{"text":"5.11.5. Compatibility","hash":"compatibility-11","id":94},{"text":"5.12. START TRANSACTION — start a transaction block","hash":"start-transaction-start-a-transaction-block","id":95},{"text":"5.12.1. Synopsis","hash":"synopsis-12","id":96},{"text":"5.12.2. Description","hash":"description-12","id":97},{"text":"5.12.3. Parameters","hash":"parameters-10","id":98},{"text":"5.12.4. Compatibility","hash":"compatibility-12","id":99},{"text":"6. Sql Reference","hash":"sql-reference","id":100},{"text":"6.1. Lexical Structure","hash":"lexical-structure","id":101},{"text":"6.1.1. Identifiers and Key Words","hash":"identifiers-and-key-words","id":102},{"text":"6.1.2. Constants","hash":"constants","id":103},{"text":"6.1.2.1. String Constants","hash":"string-constants","id":104},{"text":"6.1.2.2. String Constants With C-Style Escapes","hash":"string-constants-with-c-style-escapes","id":105},{"text":"6.1.2.3. String Constants With Unicode Escapes","hash":"string-constants-with-unicode-escapes","id":106},{"text":"6.1.2.4. Dollar-Quoted String Constants","hash":"dollar-quoted-string-constants","id":107},{"text":"6.1.2.5. Bit-String Constants","hash":"bit-string-constants","id":108},{"text":"6.1.2.6. Numeric Constants","hash":"numeric-constants","id":109},{"text":"6.1.2.7. Constants Of Other Types","hash":"constants-of-other-types","id":110},{"text":"6.1.3. Operators","hash":"operators","id":111},{"text":"6.1.4. Special Characters","hash":"special-characters","id":112},{"text":"6.1.5. Comments","hash":"comments","id":113},{"text":"6.1.6. Operator Precedence","hash":"operator-precedence","id":114},{"text":"6.2. Value Expressions","hash":"value-expressions","id":115},{"text":"6.2.1. Column References","hash":"column-references","id":116},{"text":"6.2.2. Positional Parameters","hash":"positional-parameters","id":117},{"text":"6.2.3. Subscripts","hash":"subscripts","id":118},{"text":"6.2.4. Field Selection","hash":"field-selection","id":119},{"text":"6.2.5. Operator Invocations","hash":"operator-invocations","id":120},{"text":"6.2.6. Function Calls","hash":"function-calls","id":121},{"text":"6.2.7. Aggregate Expressions","hash":"aggregate-expressions","id":122},{"text":"6.2.8. Window Function Calls","hash":"window-function-calls","id":123},{"text":"6.2.9. Type Casts","hash":"type-casts","id":124},{"text":"6.2.10. Collation Expressions","hash":"collation-expressions","id":125},{"text":"6.2.11. Scalar Subqueries","hash":"scalar-subqueries","id":126},{"text":"6.2.12. Array Constructors","hash":"array-constructors","id":127},{"text":"6.2.13. Row Constructors","hash":"row-constructors","id":128},{"text":"6.2.14. Expression Evaluation Rules","hash":"expression-evaluation-rules","id":129},{"text":"6.3. Calling Functions","hash":"calling-functions","id":130},{"text":"6.3.1. Using Positional Notation","hash":"using-positional-notation","id":131},{"text":"6.3.2. Using Named Notation","hash":"using-named-notation","id":132},{"text":"6.3.3. Using Mixed Notation","hash":"using-mixed-notation","id":133},{"text":"7. Oracle Compatible Features","hash":"oracle-compatible-features","id":134},{"text":"7.1. Changing tables","hash":"changing-tables","id":135},{"text":"7.1.1. syntax","hash":"syntax","id":136},{"text":"7.1.2. parameters","hash":"parameters-11","id":137},{"text":"7.1.3. Example","hash":"example","id":138},{"text":"7.2. Delete table","hash":"delete-table","id":139},{"text":"7.2.1. Syntax","hash":"syntax-2","id":140},{"text":"7.2.2. Parameters","hash":"parameters-12","id":141},{"text":"7.2.3. uses","hash":"uses","id":142},{"text":"7.3. Update table","hash":"update-table","id":143},{"text":"7.3.1. Syntax","hash":"syntax-3","id":144},{"text":"7.3.2. parameters","hash":"parameters-13","id":145},{"text":"7.3.3. Example","hash":"example-2","id":146},{"text":"7.4. GROUP BY","hash":"group-by","id":147},{"text":"7.4.1. Example","hash":"example-3","id":148},{"text":"7.5. UNION","hash":"union","id":149},{"text":"7.5.1. Example","hash":"example-4","id":150},{"text":"7.6. Minus Operator","hash":"minus-operator","id":151},{"text":"7.6.1. Syntax","hash":"syntax-4","id":152},{"text":"7.6.2. Parameters","hash":"parameters-14","id":153},{"text":"7.6.3. Example","hash":"example-5","id":154},{"text":"7.7. Escape characters","hash":"escape-characters","id":155},{"text":"7.7.1. Overview","hash":"overview-2","id":156},{"text":"7.7.2. Example of","hash":"example-of","id":157},{"text":"7.8. Sequence","hash":"sequence","id":158},{"text":"7.8.1. Syntax","hash":"syntax-5","id":159},{"text":"7.8.2. Parameters","hash":"parameters-15","id":160},{"text":"7.8.3. Example","hash":"example-6","id":161},{"text":"7.9. Compatible with time and date functions","hash":"compatible-with-time-and-date-functions","id":162},{"text":"7.9.1. from_tz","hash":"from_tz","id":163},{"text":"7.9.1.1. Purpose","hash":"purpose","id":164},{"text":"7.9.1.2. Parameters","hash":"parameters-16","id":165},{"text":"7.9.1.3. Example","hash":"example-7","id":166},{"text":"7.9.2. systimestamp","hash":"systimestamp","id":167},{"text":"7.9.2.1. Purpose","hash":"purpose-2","id":168},{"text":"7.9.2.2. Example","hash":"example-8","id":169},{"text":"7.9.3. sys_extract_utc","hash":"sys_extract_utc","id":170},{"text":"7.9.3.1. Purpose","hash":"purpose-3","id":171},{"text":"7.9.3.2. Parameters Description","hash":"parameters-description","id":172},{"text":"7.9.3.3. Example","hash":"example-9","id":173},{"text":"7.9.4. sessiontimezone","hash":"sessiontimezone","id":174},{"text":"7.9.4.1. Purpose","hash":"purpose-4","id":175},{"text":"7.9.4.2. Example","hash":"example-10","id":176},{"text":"7.9.5. next_day","hash":"next_day","id":177},{"text":"7.9.5.1. Purpose","hash":"purpose-5","id":178},{"text":"7.9.5.2. ParametersDescription","hash":"parametersdescription","id":179},{"text":"7.9.5.3. Example","hash":"example-11","id":180},{"text":"7.9.6. last_day","hash":"last_day","id":181},{"text":"7.9.6.1. Purpose","hash":"purpose-6","id":182},{"text":"7.9.6.2. ParametersDescription","hash":"parametersdescription-2","id":183},{"text":"7.9.6.3. Example","hash":"example-12","id":184},{"text":"7.9.7. add_months","hash":"add_months","id":185},{"text":"7.9.7.1. Purpose","hash":"purpose-7","id":186},{"text":"7.9.7.2. ParametersDescription","hash":"parametersdescription-3","id":187},{"text":"7.9.7.3. Example","hash":"example-13","id":188},{"text":"7.9.8. sysdate","hash":"sysdate","id":189},{"text":"7.9.8.1. Purpose","hash":"purpose-8","id":190},{"text":"7.9.8.2. Example","hash":"example-14","id":191},{"text":"7.9.9. new_time","hash":"new_time","id":192},{"text":"7.9.9.1. Purpose","hash":"purpose-9","id":193},{"text":"7.9.9.2. ParametersDescription","hash":"parametersdescription-4","id":194},{"text":"7.9.9.3. Example","hash":"example-15","id":195},{"text":"7.9.10. trunc","hash":"trunc","id":196},{"text":"7.9.10.1. Purpose","hash":"purpose-10","id":197},{"text":"7.9.10.2. ParametersDescription","hash":"parametersdescription-5","id":198},{"text":"7.9.10.3. Example","hash":"example-16","id":199},{"text":"7.9.11. round","hash":"round","id":200},{"text":"7.9.11.1. Purpose","hash":"purpose-11","id":201},{"text":"7.9.11.2. ParametersDescription","hash":"parametersdescription-6","id":202},{"text":"7.9.11.3. Example","hash":"example-17","id":203},{"text":"7.10. Compatible conversion and comparison and NULL-related functions","hash":"compatible-conversion-and-comparison-and-null-related-functions","id":204},{"text":"7.10.1. TO_CHAR","hash":"to_char","id":205},{"text":"7.10.1.1. Purpose","hash":"purpose-12","id":206},{"text":"7.10.1.2. Parameters","hash":"parameters-17","id":207},{"text":"7.10.1.3. Example","hash":"example-18","id":208},{"text":"7.10.2. TO_NUMBER","hash":"to_number","id":209},{"text":"7.10.2.1. Purpose","hash":"purpose-13","id":210},{"text":"7.10.2.2. Parameters","hash":"parameters-18","id":211},{"text":"7.10.2.3. Example","hash":"example-19","id":212},{"text":"7.10.3. TO_DATE","hash":"to_date","id":213},{"text":"7.10.3.1. Purpose","hash":"purpose-14","id":214},{"text":"7.10.3.2. Parameters","hash":"parameters-19","id":215},{"text":"7.10.3.3. Example","hash":"example-20","id":216},{"text":"7.10.4. TO_TIMESTAMP","hash":"to_timestamp","id":217},{"text":"7.10.4.1. Purpose","hash":"purpose-15","id":218},{"text":"7.10.4.2. Parameters","hash":"parameters-20","id":219},{"text":"7.10.4.3. Example","hash":"example-21","id":220},{"text":"7.10.5. TO_YMINTERVAL","hash":"to_yminterval","id":221},{"text":"7.10.5.1. Purpose","hash":"purpose-16","id":222},{"text":"7.10.5.2. Parameters","hash":"parameters-21","id":223},{"text":"7.10.5.3. Example","hash":"example-22","id":224},{"text":"7.10.6. TO_DSINTERVAL","hash":"to_dsinterval","id":225},{"text":"7.10.6.1. Purpose","hash":"purpose-17","id":226},{"text":"7.10.6.2. Parameters","hash":"parameters-22","id":227},{"text":"7.10.6.3. Example","hash":"example-23","id":228},{"text":"7.10.7. TO_TIMESTAMP_TZ","hash":"to_timestamp_tz","id":229},{"text":"7.10.7.1. Purpose","hash":"purpose-18","id":230},{"text":"7.10.7.2. Parameters","hash":"parameters-23","id":231},{"text":"7.10.7.3. Example","hash":"example-24","id":232},{"text":"7.10.8. GREATEST","hash":"greatest","id":233},{"text":"7.10.8.1. Purpose","hash":"purpose-19","id":234},{"text":"7.10.8.2. Parameters","hash":"parameters-24","id":235},{"text":"7.10.8.3. Example","hash":"example-25","id":236},{"text":"7.10.9. LEAST","hash":"least","id":237},{"text":"7.10.9.1. Purpose","hash":"purpose-20","id":238},{"text":"7.10.9.2. Parameters","hash":"parameters-25","id":239},{"text":"7.10.9.3. Example","hash":"example-26","id":240},{"text":"7.11. NLS_LENGTH_SEMANTICSParameters","hash":"nls_length_semanticsparameters","id":241},{"text":"7.11.1. Overview","hash":"overview-3","id":242},{"text":"7.11.2. Syntax","hash":"syntax-6","id":243},{"text":"7.11.2.1. Note on the range of values","hash":"note-on-the-range-of-values","id":244},{"text":"7.11.3. Example","hash":"example-27","id":245},{"text":"7.11.3.1. --Test “CHAR”","hash":"test-char","id":246},{"text":"7.11.3.2. --Test “BYTE”","hash":"test-byte","id":247},{"text":"7.12. VARCHAR2(size)","hash":"varchar2size","id":248},{"text":"7.12.1. Overview","hash":"overview-4","id":249},{"text":"7.12.2. Syntax","hash":"syntax-7","id":250},{"text":"7.12.3. Example","hash":"example-28","id":251},{"text":"7.13. PL/iSQL","hash":"plisql","id":252},{"text":"7.13.1. Structure of PL/iSQL Programs","hash":"structure-of-plisql-programs","id":253},{"text":"7.13.2. psql support for PL/iSQL programs","hash":"psql-support-for-plisql-programs","id":254},{"text":"7.13.3. PL/iSQL Program Syntax","hash":"plisql-program-syntax","id":255},{"text":"7.13.3.1. PROCEDURES","hash":"procedures","id":256},{"text":"7.13.3.2. FUNCTIONS","hash":"functions","id":257},{"text":"7.13.3.3. PACKAGES","hash":"packages","id":258},{"text":"7.13.3.3.1. PACKAGE HEADER","hash":"package-header","id":259},{"text":"7.13.3.3.2. PACKAGE BODY","hash":"package-body","id":260},{"text":"7.14. Hierarchy Search","hash":"hierarchy-search","id":261},{"text":"7.14.1. Syntax","hash":"syntax-8","id":262},{"text":"7.14.2. ADDITIONAL COLUMN","hash":"additional-column","id":263},{"text":"7.14.3. Limitations","hash":"limitations","id":264},{"text":"8. Global Unique Index","hash":"global-unique-index","id":265},{"text":"8.1. Create global unique index","hash":"create-global-unique-index","id":266},{"text":"8.1.1. Syntax","hash":"syntax-9","id":267},{"text":"8.1.2. Example","hash":"example-29","id":268},{"text":"8.1.3. Global uniqueness assurance","hash":"global-uniqueness-assurance","id":269},{"text":"8.2. Insertions and updates","hash":"insertions-and-updates","id":270},{"text":"8.2.1. Global uniqueness guarantee for insertions and updates","hash":"global-uniqueness-guarantee-for-insertions-and-updates","id":271},{"text":"8.2.2. Example","hash":"example-30","id":272},{"text":"8.3. Append and detach","hash":"append-and-detach","id":273},{"text":"8.3.1. Global uniqueness guarantee for append statements","hash":"global-uniqueness-guarantee-for-append-statements","id":274},{"text":"8.3.2. Example","hash":"example-31","id":275}]},"4":{"id":4,"text":"PostgreSQL provides comprehensive server-side support for the GB18030 character set. GB18030 is a Chinese national standard designed to include all Chinese characters and various minority scripts, aiming for alignment with Unicode. Proper configuration and use of the GB18030 character set within PostgreSQL are essential for processing and storing Chinese data that must comply with this standard. Server-side GB18030 support should provide the following features: 1. Support for GB18030 as a server encoding: initdb -E GB18030 is available, and SHOW server_encoding displays GB18030. 2. Provide bidirectional conversion between GB18030 and UTF8. 3. Support for multibyte character boundary determination. PostgreSQL has historically supported the GB18030-2000 standard as a client-side encoding. Support for conversion between the GB18030_2022 character set and UTF-8 is provided via an extension. To enable GB18030 as a server encoding, modifications are made to pg_enc, and new low-level functions are added to the PostgreSQL encoding framework for invocation by the core system. A global variable, is_load_gb18030_2022, is introduced with a default value of true. When the -E option is used during initdb, the get_encoding_id function checks the specified encoding name. If the name is gb18030_2022, it is internally mapped to the gb18030 encoding ID, and the is_load_gb18030_2022 flag is set to true. If the -E option is GB18030, the flag is set to false. At the appropriate stage in the startup process, the system checks this flag to determine if the extension should be loaded. If required, the load_gb18030_2022 function is executed, and the gb18030_2022 extension is added to the shared_preload_libraries parameter in ivorysql.conf. if (encoding_name && *encoding_name) { encoding_name_modify = pg_strdup(encoding_name); if(pg_strcasecmp(encoding_name,\"gb18030_2022\") == 0) { encoding_name_modify = pg_strdup(\"gb18030\"); is_load_gb18030_2022 = true; } else if(pg_strcasecmp(encoding_name,\"gb18030\") == 0) is_load_gb18030_2022 = false; if ((enc = pg_valid_server_encoding((const char *)encoding_name_modify)) >= 0) return enc; } Function pointers for GB18030 are added in wchar.c: pg_gb180302wchar_with_len(const unsigned char *from, pg_wchar *to, int len) gb18030 → wchar pg_wchar2gb18030_with_len(const pg_wchar *from, unsigned char *to, int len) wchar → gb18030 pg_gb18030_mblen(const unsigned char *s):Returns 1/2/4. pg_gb18030_dsplen(const unsigned char *s):Calculates the display width of a character. ASCII characters have a width of 1, while others are also treated as having a width of 1 . pg_gb18030_verifier(const unsigned char *s, int len):Verifies that a byte sequence is a valid GB18030 character, rejecting illegal sequences. Receiving Data When a client using UTF-8 encoding connects to the server, the server, upon receiving data, invokes its internal utf8_to_gb18030 function. This converts the data to the GB18030 format, which is then validated and stored. Sending Data When the same client executes a SELECT query, the server reads the native GB18030 data from disk or memory. It then calls the gb18030_to_utf8 function to convert the data to UTF-8 format before sending it to the client via the network protocol. A new data file, GB18030-2022.xml, is introduced. This file is parsed by a Perl script to generate mapping files that provide the logic for the gb18030_to_utf8() and utf8_to_gb18030() conversion functions. The implementation prioritizes a table-driven approach, falling back to algorithmic mapping for ranges not covered by the tables. static inline uint32 unicode_to_utf8word(uint32 c) { uint32 word; if (c <= 0x7F) { word = c; } else if (c <= 0x7FF) { word = (0xC0 | ((c >> 6) & 0x1F)) << 8; word |= 0x80 | (c & 0x3F); } else if (c <= 0xFFFF) { word = (0xE0 | ((c >> 12) & 0x0F)) << 16; word |= (0x80 | ((c >> 6) & 0x3F)) << 8; word |= 0x80 | (c & 0x3F); } else { word = (0xF0 | ((c >> 18) & 0x07)) << 24; word |= (0x80 | ((c >> 12) & 0x3F)) << 16; word |= (0x80 | ((c >> 6) & 0x3F)) << 8; word |= 0x80 | (c & 0x3F); } return word; } static uint32 conv_18030_2022_to_utf8(uint32 code) { #define conv18030(minunicode, mincode, maxcode) \\ if (code >= mincode && code <= maxcode) \\ return unicode_to_utf8word(gb_linear(code) - gb_linear(mincode) + minunicode) conv18030(0x0452, 0x8130D330, 0x8136A531); conv18030(0x2643, 0x8137A839, 0x8138FD38); conv18030(0x361B, 0x8230A633, 0x8230F237); conv18030(0x3CE1, 0x8231D438, 0x8232AF32); conv18030(0x4160, 0x8232C937, 0x8232F837); conv18030(0x44D7, 0x8233A339, 0x8233C931); conv18030(0x478E, 0x8233E838, 0x82349638); conv18030(0x49B8, 0x8234A131, 0x8234E733); conv18030(0x9FA6, 0x82358F33, 0x8336C738); conv18030(0xE865, 0x8336D030, 0x84308534); conv18030(0xFA2A, 0x84309C38, 0x84318537); conv18030(0xFFE6, 0x8431A234, 0x8431A439); conv18030(0x10000, 0x90308130, 0xE3329A35); /* No mapping exists */ return 0; }","title":"Server-Side Support for the GB18030 Character Set","component":"ivorysql-doc","version":"master","name":"gb18030","url":"/ivorysql-doc/master/gb18030.html","titles":[{"text":"1. Objective","hash":"objective","id":1},{"text":"2. Implementation Details","hash":"implementation-details","id":2},{"text":"2.1. Specifying GB18030 or GB18030_2022 with the -E Option during initdb","hash":"specifying-gb18030-or-gb18030_2022-with-the-e-option-during-initdb","id":3},{"text":"2.2. Multibyte Character Handling","hash":"multibyte-character-handling","id":4},{"text":"2.3. Client-Server Interaction","hash":"client-server-interaction","id":5}]},"5":{"id":5,"text":"The installation methods for IvorySQL include the following five: Yum installation Docker installation rpm installation Source code installation deb installation This chapter will provide detailed instructions on the installation, execution, and uninstallation processes for each method. For a quicker access to IvorySQL, please refer to Quick installation. Before getting started, please create an user and grant it root privileges. All the installation steps will be performed by this user. Here we just name it 'ivorysql'. Create or edit IvorySQL yum repository configuration /etc/yum.repos.d/ivorysql.repo vim /etc/yum.repos.d/ivorysql.repo [ivorysql5] name=IvorySQL Server 5 $releasever - $basearch baseurl=https://yum.highgo.com/dists/ivorysql-rpms/5/redhat/rhel-$releasever-$basearch enabled=1 gpgcheck=0 After saving and exiting, you can install IvorySQL 4 with the following steps $ sudo dnf install -y ivorysql5-5.0 Get IvorySQL image from Docker Hub $ docker pull ivorysql/ivorysql:5.0-ubi8 Run IvorySQL $ docker run --name ivorysql -p 5434:5432 -e IVORYSQL_PASSWORD=your_password -d ivorysql/ivorysql:5.0-ubi8 -e Parameter Explanation Parameter Name Required Description IVORYSQL_USER No Database user, default is ivorysql IVORYSQL_PASSWORD yes Database password IVORYSQL_DB no Database name,default is ivorysql POSTGRES_HOST_AUTH_METHOD no Modify host authentication method,reference value:md5 POSTGRES_INITDB_ARGS no Add additional parameters to initdb,reference value:\"--data-checksums\" PGDATA no Define the data directory to be located in another path or folder (e.g., subdirectory), defaulting to /var/lib/ivorysql/data POSTGRES_INITDB_WALDIR no Define the IvorySQL transaction folder path, which defaults to a subdirectory within the data directory (PGDATA) It is not recommended to set the POSTGRES_HOST_AUTH_METHOD parameter to trust, as this will make the IVORYSQL_PASSWORD setting ineffective. If the POSTGRES_HOST_AUTH_METHOD parameter is set to scram-sha-256, it is also necessary to set POSTGRES_INITDB_ARGS to --auth-host=scram-sha-256 to ensure proper initialization of the database. Installing dependencies $ sudo dnf install -y lz4 libicu libxslt python3 Getting rpms $ sudo wget https://github.com/IvorySQL/IvorySQL/releases/download/IvorySQL_5.0/IvorySQL-5.0-9d890e9-20251120.x86_64.rpm Installing rpms Use the following command to install all the rpms: $ sudo yum --disablerepo=* localinstall *.rpm IvorySQL then will be installed in the /usr/ivory-5/ directory. Installing dependencies $ sudo dnf install -y bison readline-devel zlib-devel openssl-devel uuid-devel $ sudo dnf groupinstall -y 'Development Tools' Getting source code $ git clone https://github.com/IvorySQL/IvorySQL.git $ cd IvorySQL $ git checkout -b IVORY_REL_5_STABLE origin/IVORY_REL_5_STABLE Configuring In the IvorySQL directory run the following command with --prefix to specify the directory where you want the database to be installed: $ ./configure --prefix=/usr/local/ivorysql/ivorysql-5 Compiling Run the following command to compile the source code: $ make When the compilation is completed, you can test the result with 'make check' or 'make all-check-world' before your installation. Installing Run the following command to install the database system, IvorySQL then will be installed in the directory specified by --prefix: $ sudo make install Installing dependencies $ sudo apt -y install pkg-config libreadline-dev libicu-dev libldap2-dev uuid-dev tcl-dev libperl-dev python3-dev bison flex openssl libssl-dev libpam-dev libxml2-dev libxslt-dev libossp-uuid-dev libselinux-dev gettext Getting deb $ sudo wget https://github.com/IvorySQL/IvorySQL/releases/download/IvorySQL_5.0/IvorySQL-5.0-a50789d-20250304.amd64.deb Installing deb $ sudo dpkg -i IvorySQL-5.0-a50789d-20250304.amd64.deb IvorySQL will then be installed in the /usr/ivory-5/ directory. Users following the instructions in Yum installation, rpm installation, Source code installation and deb installation need to manually start the database. Granting permissions Execute the following command to grant permissions to the installation user. The example user is ivorysql, and the installation directory is /usr/ivory-5/: $ sudo chown -R ivorysql:ivorysql /usr/ivory-5/ Setting environment variables Add below contents in ~/.bash_profile file and source to make it effective: PATH=/usr/ivory-5/bin:$PATH export PATH PGDATA=/usr/ivory-5/data export PGDATA $ source ~/.bash_profile Initializing database $ mkdir /usr/ivory-5/data $ initdb -D /usr/ivory-5/data The -D option specifies the directory where the database cluster should be stored. This is the only information required by initdb, but you can avoid writing it by setting the PGDATA environment variable, which can be convenient since the database server can find the database directory later by the same variable. For more options, refer to initdb --help. Starting IvorySQL service $ pg_ctl -D /usr/ivory-5/data -l ivory.log start The -D option specifies the file system location of the database configuration files. If this option is omitted, the environment variable PGDATA in [setting-environment-variables] is used. -l option appends the server log output to filename. If the file does not exist, it is created. For more options, refer to pg_ctl --help. Confirm it’s successfully started: $ ps -ef | grep postgres ivorysql 130427 1 0 02:45 ? 00:00:00 /usr/ivory-5/bin/postgres -D /usr/ivory-5/data ivorysql 130428 130427 0 02:45 ? 00:00:00 postgres: checkpointer ivorysql 130429 130427 0 02:45 ? 00:00:00 postgres: background writer ivorysql 130431 130427 0 02:45 ? 00:00:00 postgres: walwriter ivorysql 130432 130427 0 02:45 ? 00:00:00 postgres: autovacuum launcher ivorysql 130433 130427 0 02:45 ? 00:00:00 postgres: logical replication launcher ivorysql 130445 130274 0 02:45 pts/1 00:00:00 grep --color=auto postgres Connect to IovrySQL via psql: $ psql -d psql (18.0) Type \"help\" for help. ivorysql=# The -d option specifies the name of the database to connect to. ivorysql is the default database of IvorySQL. However,IvorySQL of lower versions need the users themselves to connect to postgres database at the first connection and then create the ivorysql database.The latest IvorySQL can do all these for users. For more options, refer to psql --help. When running IvorySQL in Docker, additional parameters need to be added, like: psql -d ivorysql -U ivorysql -h 127.0.0.1 -p 5434 No matter which method is used for the uninstallation, make sure the service has been stopped cleanly and your data has been backed up safely. Run the following commands in turn and clean the residual folders: $ sudo dnf remove -y ivorysql5-5.0 Stop IvorySQL container and remove IvorySQL image: $ docker stop ivorysql $ docker rm ivorysql $ docker rmi ivorysql/ivorysql:5.0-ubi8 Uninstall the rpms and clear the residual folders: $ sudo yum remove --disablerepo=* ivorysql5\\* $ sudo rm -rf IvorySQL-5.0 Uninstall the database system, then clear the residual folders: $ sudo make uninstall $ make clean $ sudo rm -rf IvorySQL-5.0 Uninstall the database system, then clear the residual folders: $ sudo dpkg -P IvorySQL-5.0 $ sudo rm -rf IvorySQL-5.0","title":"Installation","component":"ivorysql-doc","version":"master","name":"installation_guide","url":"/ivorysql-doc/master/installation_guide.html","titles":[{"text":"1. Introduction","hash":"introduction","id":1},{"text":"2. Yum installation","hash":"Yum-installation","id":2},{"text":"3. Docker installation","hash":"Docker-installation","id":3},{"text":"4. rpm installation","hash":"Rpm-installation","id":4},{"text":"5. Source code installation","hash":"Source-code-installation","id":5},{"text":"6. deb installation","hash":"deb-installation","id":6},{"text":"7. Start Database","hash":"start-database","id":7},{"text":"8. Connecting to IvorySQL","hash":"connecting-to-ivorysql","id":8},{"text":"9. Uninstallation","hash":"uninstallation","id":9},{"text":"9.1. Uninstallation for yum installation","hash":"uninstallation-for-yum-installation","id":10},{"text":"9.2. Uninstallation for docker installation","hash":"uninstallation-for-docker-installation","id":11},{"text":"9.3. Uninstallation for rpm installation","hash":"uninstallation-for-rpm-installation","id":12},{"text":"9.4. Uninstallation for source code installation","hash":"uninstallation-for-source-code-installation","id":13},{"text":"9.5. Uninstallation for deb installation","hash":"uninstallation-for-deb-installation","id":14}]},"6":{"id":6,"text":"Database migration refers to the process of transferring data from one database to another, and the databases at both ends may be PostgreSql, IvoySQL, MySQL, Oracle, SQL Server, etc. The migration process is a challenging, complex process that requires a thorough understanding of how databases work and their characteristics. If the application has been deployed to the production environment and is in a normal operating state, a smooth application migration is required after database migration to maintain uninterrupted business operation and no data loss. After migration, databases and systems should meet the following requirements: The migrated database system should fully host the data of the original database system. Avoid data loss during migration that causes incomplete data to the new database system. The migrated database system should fully adapt to the functions of the original database. Avoid the inability to run or throw errors of the entire business system due to data types, syntax, and functions that are not supported after migration, and there is no alternative. The migrated database should be adapted to the upstream and downstream of the entire business system to ensure the stable and reliable operation of the entire business system. The comprehensive performance of the migrated database cannot be weaker than that of the original database, providing performance guarantee for the entire business system. Ora2Pg is a free tool for migrating Oracle databases to an IvorySQL-compatible schema. It connects to your Oracle database, automatically scans and extracts its structure or data, and then generates SQL scripts that can be loaded into an IvorySQL database. Ora2Pg can migrate from a reverse-engineered Oracle database to a large enterprise database, or simply copy some Oracle data into an IvorySQL database. It is very easy to use and does not require any Oracle database knowledge without providing the parameters required to connect to Oracle Database. Ora2Pg consists of a Perl script (ora2pg) and a Perl module(Ora2Pg.pm), the only thing that needs to be done is to modify its configuration file, ora2pg.conf, set the DSN to connect to the Oracle database, and an optional SCHEMA name. ONCE THAT’S DONE, YOU ONLY NEED TO SET THE EXPORTED TYPE: TABLE (INCLUDING CONSTRAINTS AND INDEXES), VIEW, MVIEW, TABLESPACE, SEQUENCE, INDEXES, TRIGGER, GRANT, FUNCTION, PROCEDURE, PACKAGE, PARTITION, TYPE, INSERT OR COPY, FDW, QUERY, KETTLE, AND SYNONYM. By default, Ora2Pg exports an SQL file, which can be executed through the IvorySQL client tool psql. When performing data migration, you can set the DSN of the target database in the configuration file to import data directly from Oracle into the IvorySQL database. Object Whether ora2pg is supported view yes trigger yes,In some cases, you need to modify the script manually sequence yes function yes procedure yes,In some cases, you need to modify the script manually type yes,In some cases, you need to modify the script manually materialized view yes,In some cases, you need to modify the script manually linux Oracle Version IvorySQL Version Centos Stream 9 19.0.0.0 4.2 # dnf install -y perl perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker # perl -v This is perl 5, version 16, subversion 3 (v5.16.3) built for x86_64-linux-thread-multi (with 44 registered patches, see perl -V for more detail) Copyright 1987-2012, Larry Wall Perl may be copied only under the terms of either the Artistic License or the GNU General Public License, which may be found in the Perl 5 source kit. Complete documentation for Perl, including FAQ lists, should be found on this system using \"man perl\" or \"perldoc perl\". If you have access to the Internet, point your browser at http://www.perl.org/, the Perl Home Page. DBI,Database Independent Interface,is the interface of the Perl language to connect to the database Download address: https://cpan.metacpan.org/authors/id/T/TI/TIMB/DBI-1.643.tar.gz # tar zxvf DBI-1.643.tar.gz # cd DBI-1.643/ # perl Makefile.PL # make # make install Download address:https://sourceforge.net/projects/ora2pg/ Set environment variables; Load environment variables; Because ORACLE must be defined_ HOME environment variable; This example configures environment variables under the ivorysql user export ORACLE_HOME=/usr/lib/oracle/18.3/client64 # tar -zxvf DBD-Oracle-1.76.tar.gz # source /home/postgres/.bashrc # cd DBD-Oracle-1.76 # perl Makefile.PL # make # make install Download address:https://metacpan.org/release/DBD-Pg/ Set environment variables: export POSTGRES_HOME=/opt/ivorysql/3.2 # tar -zxvf DBD-Pg-3.80.tar.gz # source /home/ivorysql/.bashrc # cd DBD-Pg-3.8.0 # perl Makefile.PL # make # make install Download address:https://sourceforge.net/projects/ora2pg/ # tar -xjf ora2pg-24.0.tar.bz2 # cd ora2pg-xx/ # perl Makefile.PL PREFIX= # make && make install Installed in/usr/local/bin/directory by default Check the software environment: # vi check.pl #!/usr/bin/perl use strict; use ExtUtils::Installed; my $inst= ExtUtils::Installed->new(); my @modules = $inst->modules(); foreach(@modules) { my $ver = $inst->version($_) || \"???\"; printf(\"%-12s -- %s\\n\", $_, $ver); } exit; # perl check.pl DBD::Oracle -- 1.76 DBD::Pg -- 3.8.0 DBI -- 1.643 Ora2Pg -- 24.0 Perl -- 5.16.3 Set environment variables export PERL5LIB= #export PERL5LIB=/usr/local/bin/ Update oracle statistics to improve performance BEGIN DBMS_STATS.GATHER_SCHEMA_STATS('SH'); DBMS_STATS.GATHER_SCHEMA_STATS('SCOTT'); DBMS_STATS.GATHER_SCHEMA_STATS('HR'); DBMS_STATS.GATHER_DATABASE_STATS ; DBMS_STATS.GATHER_DICTIONARY_STATS; END;/ Query the source end object pair type SYS@PROD1>set pagesize 200 SYS@PROD1>select distinct OBJECT_TYPE from dba_objects where OWNER in ('SH','SCOTT','HR'); OBJECT_TYPE ------------------- INDEX PARTITION TABLE PARTITION SEQUENCE PROCEDURE LOB X TRIGGER DIMENSION X MATERIALIZED VIEW TABLE INDEX VIEW 11 rows selected. Configure ora2pg.conf By default, Ora2Pg will find the/etc/ora2pg/ora2pg.conf configuration file. If the file exists, you only need to execute:/usr/local/bin/ora2pg cat /etc/ora2pg/ora2pg.conf.dist | grep -v ^# |grep -v ^$ >ora2pg.conf vi ora2pg.conf # cat ora2pg.conf ORACLE_HOME /opt/oracle/product/19c/dbhome_1 ORACLE_DSN dbi:Oracle:host=localhost;sid=ORCLCDB;port=1521 ORACLE_USER system ORACLE_PWD oracle SCHEMA SH EXPORT_SCHEMA 1 SKIP fkeys ukeys checks TYPE TABLE,VIEW,GRANT,SEQUENCE,TABLESPACE,PROCEDURE,TRIGGER,FUNCTION,PACKAGE,PARTITION,TYPE,MVIEW,QUERY,DBLINK,SYNONYM,DIRECTORY,TEST,TEST_VIEW NLS_LANG AMERICAN_AMERICA.UTF8 OUTPUT sh.sql Only one type of export can be executed at the same time, so the TYPE instruction must be unique. If you have more than one, only the last one will be found in the file. But I can export multiple types at the same time. Please note that you can link multiple exports by providing a comma-separated list of export types to the TYPE directive, but in this case, you cannot use COPY or INSERT with other export types. Some export types cannot or should not be directly loaded into the IvorySQL database, and still require little manual editing. This is the case for GRANT, TABLESPACE, TRIGGER, FUNCTION, PROCEDURE, TYPE, QUERY and PACKAGE export types, especially if you have PLSQL code or Oracle specific SQL. For TABLESPACE, you must ensure that the file path exists on the system. For SYNONYM, you can ensure that the owner and schema of the object correspond to the new PostgreSQL database design. It is recommended to export the table structure one type at a time to avoid other errors affecting each other. After setting the Oracle database DSN, you can execute ora2pg to check whether it is valid: # ora2pg -t SHOW_VERSION -c config/ora2pg.conf Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 It is not easy to estimate the cost of the migration process from Oracle to PostgreSQL. In order to obtain a good evaluation of the migration cost, Ora2Pg will check all database objects, all functions and stored procedures to detect whether there are still some objects and PL/SQL code that cannot be automatically converted by Ora2Pg. Ora2Pg has a content analysis mode, which checks the Oracle database to generate a text report about the content contained in the Oracle database and the content that cannot be exported. # ora2pg -t SHOW_REPORT --estimate_cost -c ora2pg.conf [========================>] 11/11 tables (100.0%) end of scanning. [========================>] 11/11 objects types (100.0%) end of objects auditing. ------------------------------------------------------------------------------- Ora2Pg v24.0 - Database Migration Report ------------------------------------------------------------------------------- Version Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 Schema SH Size 287.25 MB ------------------------------------------------------------------------------- Object Number Invalid Estimated cost Comments Details ------------------------------------------------------------------------------- DATABASE LINK 0 0 0 Database links will be exported as SQL/MED IvorySQL's Foreign Data Wrapper (FDW) extensions using oracle_fdw. DIMENSION 5 0 0 GLOBAL TEMPORARY TABLE 0 0 0 Global temporary table are not supported by PostgreSQL and will not be exported. You will have to rewrite some application code to match the PostgreSQL temporary table behavior. INDEX 20 0 3.4 14 index(es) are concerned by the export, others are automatically generated and will do so on PostgreSQL. Bitmap will be exported as btree_gin index(es) and hash index(es) will be exported as b-tree index(es) if any. Domain index are exported as b-tree but commented to be edited to mainly use FTS. Cluster, bitmap join and IOT indexes will not be exported at all. Reverse indexes are not exported too, you may use a trigram-based index (see pg_trgm) or a reverse() function based index and search. Use 'varchar_pattern_ops', 'text_pattern_ops' or 'bpchar_pattern_ops' operators in your indexes to improve search with the LIKE operator respectively into varchar, text or char columns. 11 bitmap index(es). 1 domain index(es). 2 b-tree index(es). INDEX PARTITION 196 0 0 Only local indexes partition are exported, they are build on the column used for the partitioning. JOB 0 0 0 Job are not exported. You may set external cron job with them. MATERIALIZED VIEW 2 0 6 All materialized view will be exported as snapshot materialized views, they are only updated when fully refreshed. SYNONYM 0 0 0 SYNONYMs will be exported as views. SYNONYMs do not exists with PostgreSQL but a common workaround is to use views or set the PostgreSQL search_path in your session to access object outside the current schema. TABLE 11 0 1.1 1 external table(s) will be exported as standard table. See EXTERNAL_TO_FDW configuration directive to export as file_fdw foreign tables or use COPY in your code if you just want to load data from external files. Total number of rows: 1063384. Top 10 of tables sorted by number of rows:. sales has 918843 rows. costs has 82112 rows. customers has 55500 rows. supplementary_demographics has 4500 rows. times has 1826 rows. promotions has 503 rows. products has 72 rows. countries has 23 rows. channels has 5 rows. sales_transactions_ext has 0 rows. Top 10 of largest tables:. TABLE PARTITION 56 0 5.6 Partitions are exported using table inheritance and check constraint. Hash and Key partitions are not supported by PostgreSQL and will not be exported. 56 RANGE partitions.. VIEW 1 0 1 Views are fully supported but can use specific functions. ------------------------------------------------------------------------------- Total 291 0 17.10 17.10 cost migration units means approximatively 1 man-day(s). The migration unit was set to 5 minute(s) ------------------------------------------------------------------------------ Migration level : A-1 ------------------------------------------------------------------------------- Migration levels: A - Migration that might be run automatically B - Migration with code rewrite and a human-days cost up to 5 days C - Migration with code rewrite and a human-days cost above 5 days Technical levels: 1 = trivial: no stored functions and no triggers 2 = easy: no stored functions but with triggers, no manual rewriting 3 = simple: stored functions and/or triggers, no manual rewriting 4 = manual: no stored functions but with triggers or views with code rewriting 5 = difficult: stored functions and/or triggers with code rewriting ------------------------------------------------------------------------------- # ora2pg -c ora2pg.conf [========================>] 11/11 tables (100.0%) end of scanning. [========================>] 12/12 tables (100.0%) end of table export. [========================>] 1/1 views (100.0%) end of output. [========================>] 0/0 sequences (100.0%) end of output. [========================>] 0/0 procedures (100.0%) end of procedures export. [========================>] 0/0 triggers (100.0%) end of output. [========================>] 0/0 functions (100.0%) end of functions export. [========================>] 0/0 packages (100.0%) end of output. [========================>] 56/56 partitions (100.0%) end of output. [========================>] 0/0 types (100.0%) end of output. [========================>] 2/2 materialized views (100.0%) end of output. [========================>] 0/0 dblink (100.0%) end of output. [========================>] 0/0 synonyms (100.0%) end of output. [========================>] 2/2 directory (100.0%) end of output. Fixing function calls in output files.... Configure the type of ora2pg.conf as COPY or INSERT # cp ora2pg.conf sh_data.conf # vi sh_data.conf ORACLE_HOME /usr/lib/oracle/18.3/client64 ORACLE_DSN dbi:Oracle:host=10.85.10.6 ;sid=PROD1;port=1521 ORACLE_USER system ORACLE_PWD oracle SCHEMA SH EXPORT_SCHEMA 1 DISABLE_UNLOGGED 1 SKIP fkeys ukeys checks TYPE COPY NLS_LANG AMERICAN_AMERICA.UTF8 OUTPUT sh_data.sql Export Data # ora2pg -c sh_data.conf [========================>] 11/11 tables (100.0%) end of scanning. [========================>] 5/5 rows (100.0%) Table CHANNELS (5 recs/sec) [> ] 5/1063384 total rows (0.0%) - (0 sec., avg: 5 recs/sec). [> ] 0/82112 rows (0.0%) Table COSTS_1995 (0 recs/sec) [> ] 5/1063384 total rows (0.0%) - (0 sec., avg: 5 recs/sec). [> ] 0/82112 rows (0.0%) Table COSTS_H1_1997 (0 recs/sec) [> ] 5/1063384 total rows (0.0%) - (0 sec., avg: 5 recs/sec). [> ] 0/82112 rows (0.0%) Table COSTS_1996 (0 recs/sec) [> ] 5/1063384 total rows (0.0%) - (0 sec., avg: 5 recs/sec). …………………………………………………………… [========================>] 4500/4500 rows (100.0%) Table SUPPLEMENTARY_DEMOGRAPHICS (4500 recs/sec) [=======================> ] 1061558/1063384 total rows (99.8%) - (45 sec., avg: 23590 recs/sec). [========================>] 1826/1826 rows (100.0%) Table TIMES (1826 recs/sec) [========================>] 1063384/1063384 total rows (100.0%) - (45 sec., avg: 23630 recs/sec). [========================>] 1063384/1063384 rows (100.0%) on total estimated data (45 sec., avg: 23630 recs/sec) Fixing function calls in output files... To view the exported file: # ls -lrt *.sql -rw-r--r-- 1 root root 15716 Jul 2 21:21 TABLE_sh.sql -rw-r--r-- 1 root root 858 Jul 2 21:21 VIEW_sh.sql -rw-r--r-- 1 root root 2026 Jul 2 21:21 TABLESPACE_sh.sql -rw-r--r-- 1 root root 345 Jul 2 21:21 SEQUENCE_sh.sql -rw-r--r-- 1 root root 2382 Jul 2 21:21 GRANT_sh.sql -rw-r--r-- 1 root root 344 Jul 2 21:21 TRIGGER_sh.sql -rw-r--r-- 1 root root 346 Jul 2 21:21 PROCEDURE_sh.sql -rw-r--r-- 1 root root 344 Jul 2 21:21 PACKAGE_sh.sql -rw-r--r-- 1 root root 345 Jul 2 21:21 FUNCTION_sh.sql -rw-r--r-- 1 root root 6771 Jul 2 21:21 PARTITION_sh.sql -rw-r--r-- 1 root root 341 Jul 2 21:21 TYPE_sh.sql -rw-r--r-- 1 root root 342 Jul 2 21:21 QUERY_sh.sql -rw-r--r-- 1 root root 950 Jul 2 21:21 MVIEW_sh.sql -rw-r--r-- 1 root root 344 Jul 2 21:21 SYNONYM_sh.sql -rw-r--r-- 1 root root 926 Jul 2 21:21 DIRECTORY_sh.sql -rw-r--r-- 1 root root 343 Jul 2 21:21 DBLINK_sh.sql -rw-r--r-- 1 root root 55281235 Jul 2 17:11 sh_data.sql Export HR and SCOTT user data in the same way. Create ORCL database # su - ivorysql Last login: Tue Jul 2 20:04:30 CST 2019 on pts/3 $ createdb orcl $ psql psql (18.0) Type \"help\" for help. ivorysql=# \\l List of databases Name | Owner | Encoding | Collate | Ctype | ICU Locale | Locale Provider | Access privileges -----------+----------+-----------+---------+-------+------------+-----------------+----------------------- ivorysql | ivorysql | SQL_ASCII | C | C | | libc | orcl | ivorysql | SQL_ASCII | C | C | | libc | postgres | ivorysql | SQL_ASCII | C | C | | libc | template0 | ivorysql | SQL_ASCII | C | C | | libc | =c/ivorysql + | | | | | | | ivorysql=CTc/ivorysql template1 | ivorysql | SQL_ASCII | C | C | | libc | =c/ivorysql + | | | | | | | ivorysql=CTc/ivorysql (5 rows) ivorysql=# Create SH, HR, SCOTT users: $ psql orcl psql (18.0) Type \"help\" for help. orcl=# orcl=# create user sh with password 'sh'; CREATE ROLE Because of the materialized view, in TABLE_ The sh.sql contains the index of the materialized view, which will fail to create. You need to first create a table, then create a materialized view, and finally create an index. Cancel the materialized view index and create it separately later: CREATE INDEX fw_psc_s_mv_chan_bix ON fweek_pscat_sales_mv (channel_id); CREATE INDEX fw_psc_s_mv_promo_bix ON fweek_pscat_sales_mv (promo_id); CREATE INDEX fw_psc_s_mv_subcat_bix ON fweek_pscat_sales_mv (prod_subcategory); CREATE INDEX fw_psc_s_mv_wd_bix ON fweek_pscat_sales_mv (week_ending_day); CREATE TEXT SEARCH CONFIGURATION en (COPY = pg_catalog.english); ALTER TEXT SEARCH CONFIGURATION en ALTER MAPPING FOR hword, hword_part, word WITH unaccent, english_stem; psql orcl -f tab.sql.sql ALTER TABLE PARTITION sh.sales OWNER TO sh; COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT ALTER TABLE ALTER TABLE ALTER TABLE ……………………………… cat psql orcl -f GRANT_sh.sql CREATE USER SH WITH PASSWORD 'change_my_secret' LOGIN; ALTER TABLE sh.fweek_pscat_sales_mv OWNER TO sh; GRANT ALL ON sh.fweek_pscat_sales_mv TO sh; Materialized views require relevant query permissions, so import permissions. Please keep up with users here $ psql orcl sh -f MVIEW_sh.sql SELECT 0 SELECT 0 CREATE INDEX CREATE INDEX CREATE INDEX CREATE INDEX $ psql orcl -f VIEW_sh.sql SET SET SET CREATE VIEW $ psql orcl -f PARTITION_sh.sql SET SET SET CREATE TABLE CREATE TABLE CREATE TABLE CREATE TABLE CREATE TABLE CREATE TABLE ………………………… $ psql orcl -f sh_data.sql SET COPY 0 SET COPY 0 SET COPY 0 SET COPY 0 SET COPY 0 SET COPY 0 SET COPY 0 SET COPY 4500 SET COPY 1826 COMMIT Source database and target side extract part of objects for comparison: SYS@PROD1>select count(*) from sh.products; COUNT(*) ---------- 72 orcl=# select count(*) from sh.products; count ------- 72 (1 row) --------------------------------------------------------------------------- SYS@PROD1>select count(*) from sh.channels; COUNT(*) ---------- 5 orcl=# select count(*) from sh.channels; count ------- 5 (1 row) -------------------------------------------------------------------------- SYS@PROD1>select count(*) from sh.customers ; COUNT(*) ---------- 55500 orcl=# select count(*) from sh.customers ; count ------- 55500 (1 row) When using, there are two options — project_ Base and — init_ Project indicates to ora2pg that he must create a project template, which contains the work tree, configuration files and scripts for exporting all objects from the Oracle database. Generate a generic configuration file. 1. Create script export_ Schema.sh to automatically perform all exports. 2. Create script import_ All.sh to automatically perform all imports. example: mkdir -p /ora2pg/migration # ora2pg --project_base /ora2pg/migration/ --init_project test_project Creating project test_project. /ora2pg/migration//test_project/ schema/ dblinks/ directories/ functions/ grants/ mviews/ packages/ partitions/ procedures/ sequences/ synonyms/ tables/ tablespaces/ triggers/ types/ views/ sources/ functions/ mviews/ packages/ partitions/ procedures/ triggers/ types/ views/ data/ config/ reports/ Generating generic configuration file Creating script export_schema.sh to automate all exports. Creating script import_all.sh to automate all imports.","title":"Migration guide","component":"ivorysql-doc","version":"master","name":"migration_guide","url":"/ivorysql-doc/master/migration_guide.html","titles":[{"text":"1. Migration overview","hash":"migration-overview","id":1},{"text":"2. Migration tool——Ora2Pg","hash":"migration-toolora2pg","id":2},{"text":"3. Migrate Oracle Database to IvorySQL","hash":"migrate-oracle-database-to-ivorysql","id":3},{"text":"3.1. Environment preparation","hash":"environment-preparation","id":4},{"text":"3.2. Environment-dependent installation","hash":"environment-dependent-installation","id":5},{"text":"3.2.1. Install Perl","hash":"install-perl","id":6},{"text":"3.2.2. Install the DBI module","hash":"install-the-dbi-module","id":7},{"text":"3.2.3. Install DBD-Oracle","hash":"install-dbd-oracle","id":8},{"text":"3.2.4. Install DBD-PG (optional)","hash":"install-dbd-pg-optional","id":9},{"text":"3.3. Install Ora2pg","hash":"install-ora2pg","id":10},{"text":"3.4. Source side preparation","hash":"source-side-preparation","id":11},{"text":"3.5. Ora2pg export table structure","hash":"ora2pg-export-table-structure","id":12},{"text":"3.5.1. Test connection","hash":"test-connection","id":13},{"text":"3.5.2. Migration cost assessment","hash":"migration-cost-assessment","id":14},{"text":"3.5.3. Export SH table structure","hash":"export-sh-table-structure","id":15},{"text":"3.5.4. Export SH user data","hash":"export-sh-user-data","id":16},{"text":"3.6. Create orcl library in IvorySQL environment","hash":"create-orcl-library-in-ivorysql-environment","id":17},{"text":"4. Migration Portal","hash":"migration-portal","id":18},{"text":"4.1. Import table structure","hash":"import-table-structure","id":19},{"text":"4.2. Authorize objects","hash":"authorize-objects","id":20},{"text":"4.3. Import materialized view structure","hash":"import-materialized-view-structure","id":21},{"text":"4.4. Import View","hash":"import-view","id":22},{"text":"4.5. Import partition table","hash":"import-partition-table","id":23},{"text":"4.6. Import data","hash":"import-data","id":24},{"text":"5. Data validation","hash":"data-validation","id":25},{"text":"6. Generate migration template","hash":"generate-migration-template","id":26}]},"7":{"id":7,"text":"Since IvorySQL is based on PostgreSQL, it is recommended that when reading and understanding this section, O&M staff also refer to doc。 The IvorySQL version number consists of a major version and a minor version. For example, 3 in IvorySQL 3.2 is the major version and 2 is the minor version. Releasing a minor version is not going to change the internal storage format, so it is always compatible with the same major version. For example, IvorySQL 3.4 is compatible with Ivory SQL 3.0 and the subsequent Ivory SQL 3.x. Upgrading for these compatible versions is as simple as shutting down the database service, installing a replacement binary executable, and restarting the service. Next, we focus on cross-version upgrades of IvorySQL, for example, from IvorySQL 2.3 to IvorySQL 3.2. Major version upgrades may modify the internal data storage format and therefore require additional operations to be performed. The common cross-version upgrade methods and applicable scenarios are as follows. Upgrade method Applicable scenarios Shutdown time pg_dumpall Small to medium sized databases, e.g. less than 100GB to support cross-platform data migration Depends on the size of the database pg_upgrade Large and medium-sized databases, e.g., >100GB local upgrade A few minutes Logical Replication Large and medium-sized databases, e.g. >100GB cross-platform support A few seconds Attention: New major releases usually introduce some user-visible incompatibilities and may therefore require application programming changes. All user-visible changes are listed in description,Please pay special attention to the section labeled \"Migration\". Although you may upgrade from one major version to another without upgrading an intermediate version, you should read the major release notes for all intermediate versions. The traditional cross-version upgrade method uses pg_dump/pg_dumpall to logically backup the database and then restore it in the new version via pg_restore. It is recommended to use the new version of pg_dump/pg_dumpall tool when exporting the old version of the database. You can take advantage of its latest parallel export and restore features, while reducing database bloat problems. Logical backup and restore is very simple but slow. Downtime depends on the size of the database, so it is suitable for small to medium sized database upgrades. The following describes how this upgrade method works. If the current IvorySQL software installation directory is located in /usr/local/pgsql and the data directory is located in /usr/local/pgsql/data, we do the upgrade on the same server. 1.Stop the application before performing a logical backup and make sure that no data is updated, as updates after the backup has started will not be exported. If necessary, modify the /usr/local/pgsql/data/pg_hba.conf file to disable others from accessing the database. Then backup the database. pg_dumpall > outputfile If you have installed a new version of IvorySQL, you can use the new version of the pg_dumpall command to back up the old version of the database. 2.Stop the backend services of older versions. pg_ctl stop Or stop the background service by other means. 3.If the installation directory does not contain a specific version identifier, the directory can be renamed and modified back if necessary. Directories can be renamed using a command similar to the following. mv /usr/local/pgsql /usr/local/pgsql.old 4.Install the new version of IvorySQL software, if the installation directory is still /usr/local/pgsql. 5.Initializing a new database cluster requires the use of a database specific user (usually postgres; if upgrading the version, this user should already exist) to perform the operation. /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data 6.Change the old configuration file pg_hba.conf, postgresql.conf, etc. in the corresponding new configuration file. 7.To start a new version of the backend service using a dedicated database user. /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data 8.Finally, using the new version of the psql command to restore the data. /usr/local/pgsql/bin/psql -d postgres -f outputfile To reduce downtime, you can install the new version of IvorySQL to another directory, while starting the service using a different port. Then perform both the export and import of the database. pg_dumpall -p 5432 | psql -d postgres -p 5433 When the above operation is executed, the old and new versions of the backend service run simultaneously, with the new version using port 5433 and the old version using port 5432. The pg_upgrade tool is a built-in cross-version upgrade utility in PostgreSQL that enables in-place database upgrades without requiring export and import operations. Since IvorySQL is derived from PostgreSQL, it can also use the pg_upgrade tool for major version upgrades. Below is a brief introduction on how to use pg_upgrade to upgrade IvorySQL to the latest 5.0 version on the CentOS8 platform. pg_upgrade provides a pre-upgrade compatibility check (using the -c or --check option), which can identify issues such as plugin or data type incompatibilities. If the --link option is specified, the new version service can directly use the existing database files without copying, typically completing the upgrade in just a few minutes. Commonly used parameters include: -b bindir, --old-bindir=bindir: The directory of the old IvorySQL executable files; -B bindir, --new-bindir=bindir: The directory of the new IvorySQL executable files; -d configdir, --old-datadir=configdir: The data directory of the old version; -D configdir, --new-datadir=configdir: The data directory of the new version; -c, --check: Only check upgrade compatibility without modifying any data; -k, --link: Upgrade using hard link method; Upgrade preparation: First, stop the old version of the IvorySQL 4.6 database: /usr/ivory-4/bin/pg_ctl -D ./data stop Then install the new version of the IvorySQL 5.0 database: dnf install -y ivorysql5-5.0 Initialize the new IvorySQL 5.0 data directory: /usr/ivory-5/bin/initdb -D ./data Check version compatibility: /usr/ivory-5/bin/pg_upgrade --old-datadir=/home/ivorysql/test/4.6/data --new-datadir=/home/ivorysql/test/5.0/data --old-bindir=/usr/ivory-4/bin/ --new-bindir=/usr/ivory-5/bin/ --check The appearance of \"Clusters are compatible\" at the end indicates that there are no compatibility issues between the two versions of data, and the upgrade can proceed. Official upgrade: /usr/ivory-5/bin/pg_upgrade --old-datadir=/home/ivorysql/test/4.6/data --new-datadir=/home/ivorysql/test/5.0/data --old-bindir=/usr/ivory-4/bin/ --new-bindir=/usr/ivory-5/bin/ Seeing \"Upgrade Complete\" indicates that the upgrade has been successfully completed. Update statistics: pg_upgrade creates new system tables and reuses old data for the upgrade. However, statistics are not migrated during the upgrade process. Therefore, before enabling the new version, you should first recollect statistics to avoid incorrect query plans caused by missing statistics. Start the new version of the database. /usr/ivory-5/bin/pg_ctl -D ./data -l logfile start Manually run the vacuum command vacuum --all --analyze-in-stage -h 127.0.0.1 -p 1521 Cleanup after upgrade rm -rf /home/ivorysql/test/4.6/data pg_upgrade Documentoutlines the steps required above. We can also create a fallback server using logical replication of an updated version of IvorySQL, which supports replication between different major versions of IvorySQL. The fallback server can be on the same computer or on a different computer. Once it is synchronized with the primary server (running an older version of IvorySQL), you can switch hosts and use the backup server as the host, and then shut down the older database instance. Such a switchover allows an upgrade with only a few seconds of downtime. This upgrade method can be used with built-in logical replication tools and external logical replication systems such as pglogical, Slony, Londiste, and Bucardo. IvorySQL is based on PostgreSQL and is updated at the same frequency as PostgreSQL, with one major release per year and one minor release per quarter. IvorySQL 5.0 is based on PostgreSQL 18.0, and all versions of IvorySQL are backward compatible.The relevant version features can be viewed by looking at Official Website。 IvorySQL uses the concept of Roles to manage database access rights. A role can be thought of as a database user or a group of database users, depending on how the role is set. Roles can own database objects (for example, tables and functions) and can delegate permissions on those objects to other roles to control who can access which objects. In addition, membership in one role can be granted to another role, allowing member roles to use the permissions granted to another role. The concept of roles encompasses the concepts of \"user\" and \"group\". The database roles are conceptually completely separate from the operating system users. It may in fact be easier to maintain a correspondence, but this is not necessary. Database roles are global within a database cluster installation (and not within a separate database). To create a role, use the CREATE ROLE SQL command. CREATE ROLE name; Name follows the rules of SQL identifiers: either unadorned with no special characters or surrounded by double quotes (in fact, you will always have to add additional options to the command, such as LOGIN. see below for more details). To remove an existing role, use the similar DROP ROLE command. DROP ROLE name; For convenience, the createuser and dropuser programs are provided as wrappers for these SQL commands, which can be invoked from the shell command line at createuser name dropuser name To determine the set of existing roles, check the pg_roles system directory, e.g. SELECT rolname FROM pg_roles; The \\du meta command of the psql program can also be used to list existing roles. To bootstrap a database system, a system that has just been initialized always contains a predefined role. This role is always a \"superuser\" and by default (unless changed when running initdb) it is named the same as the OS user who initialized the database cluster. By convention, this role will be named postgres. In order to create more roles, you must first connect as the initial role. Each connection to the database server is established using a particular role name, and this role determines the initial access rights to the command that initiates the connection. The role name to use for a particular database connection is indicated by the client, which initiates the connection request in an application-related style. For example, the psql program uses the -U command line option to specify which role to connect under. Many applications assume that this name is the current operating system user by default (including createuser and psql). Therefore it is often convenient to maintain a name correspondence between the role and the OS user. The set of database roles that a given client connection can use to connect to is determined by the authentication settings of that client, so a client is not limited to connecting with a role that matches its OS user, just as a person’s login name does not need to match her real name. Because role identity determines the set of permissions available to a connected client, be careful when setting up a multi-user environment to configure permissions. A database role can have a number of attributes that define the permissions of the role and interact with the client authentication system. It is often convenient to group users together to facilitate the management of permissions: in this way, permissions can be granted to or reclaimed from an entire group. This is done in IvorySQL by creating a role that represents a group, and then granting membership in that group role to individual user roles. Since roles can own database objects and hold privileges to access other objects, deleting a role is often not a one-time DROP ROLE solution. Any objects owned by that user must first be deleted or transferred to another owner, and any privileges that have been granted to that role must be withdrawn. For more details on database access management, refers to doc. IvorySQL is based on PostgreSQL and has a full SQL with defined data objects that can be referred to doc.On top of that, IvorySQL has done some Oracle proprietary data object compatibility for Oracle compatibility. Variable length strings with maximum length bytes or characters. You must specify the size for VARCHAR2. The minimum size is 1 byte or 1 character. VARCHAR2(size) create table test(a varchar2(5)); CREATE TABLE SET NLS_LENGTH_SEMANTICS TO CHAR; SET SHOW NLS_LENGTH_SEMANTICS; nls_length_semantics ---------------------- char (1 row) insert into test values ('Hello,Mr.li'); INSERT 0 1 IvorySQL is developed based on PostgreSQL, with full SQL, query data specific operations can be referred to doc. IvorySQL implements portions of the SQL/MED specification, allowing you to access data that resides outside IvorySQL using regular SQL queries. Such data is referred to as foreign data. (Note that this usage is not to be confused with foreign keys, which are a type of constraint within the database.) Foreign data is accessed with help from a foreign data wrapper. A foreign data wrapper is a library that can communicate with an external data source, hiding the details of connecting to the data source and obtaining data from it. There are some foreign data wrappers available as contrib modules;see Appendix F. Other kinds of foreign data wrappers might be found as third party products. If none of the existing foreign data wrappers suit your needs, you can write your own; see doc. To access foreign data, you need to create a foreign server object, which defines how to connect to a particular external data source according to the set of options used by its supporting foreign data wrapper. Then you need to create one or more foreign tables, which define the structure of the remote data. A foreign table can be used in queries just like a normal table, but a foreign table has no storage in the IvorySQL server. Whenever it is used, IvorySQL asks the foreign data wrapper to fetch data from the external source, or transmit data to the external source in the case of update commands. Accessing remote data may require authenticating to the external data source. This information can be provided by a user mapping, which can provide additional data such as user names and passwords based on the current IvorySQL role. As with everything that contains valuable data, IvorySQL databases should be backed up regularly. While the procedure is essentially simple, it is important to have a clear understanding of the underlying techniques and assumptions. There are three fundamentally different approaches to backing up IvorySQL data: SQL dump File system level backup Continuous archiving The idea behind this dump method is to generate a file with SQL commands that, when fed back to the server, will recreate the database in the same state as it was at the time of the dump. IvorySQL provides the utility program pg_dumpfor this purpose. The basic usage of this command is: pg_dump dbname > dumpfile As you see, pg_dump writes its result to the standard output. We will see below how this can be useful. While the above command creates a text file, pg_dump can create files in other formats that allow for parallelism and more fine-grained control of object restoration. pg_dump is a regular IvorySQL client application (albeit a particularly clever one). This means that you can perform this backup procedure from any remote host that has access to the database. pg_dump must have read access to all tables that you want to back up, so in order to back up the entire database you almost always have to run it as a database superuser. (If you do not have sufficient privileges to back up the entire database, you can still back up portions of the database to which you do have access using options such as -n `schema` or -t `table`.) To specify which database server pg_dump should contact, use the command line options -h `host` and -p `port. The default host is the local host or whatever your `HOST environment variable specifies. Similarly, the default port is indicated by the PORT environment variable or, failing that, by the compiled-in default. (Conveniently, the server will normally have the same compiled-in default.) pg_dump will by default connect with the database user name that is equal to the current operating system user name. To override this, either specify the -U option or set the environment variable PGUSER. Remember that pg_dump connections are subject to the normal client authentication mechanisms 。 An important advantage of pg_dump over the other backup methods described later is that pg_dump’s output can generally be re-loaded into newer versions of IvorySQL, whereas file-level backups and continuous archiving are both extremely server-version-specific. pg_dump is also the only method that will work when transferring a database to a different machine architecture, such as going from a 32-bit to a 64-bit server. Dumps created by pg_dump are internally consistent, meaning, the dump represents a snapshot of the database at the time pg_dump began running. pg_dump does not block other operations on the database while it is working. (Exceptions are those operations that need to operate with an exclusive lock, such as most forms of ALTER TABLE.) Text files created by pg_dump are intended to be read in by the psql program. The general command form to restore a dump is psql dbname < dumpfile where dumpfile is the file output by the pg_dump command. The database dbname will not be created by this command, so you must create it yourself from template0 before executing psql (e.g., with createdb -T template0 `dbname`). psql supports options similar to pg_dump for specifying the database server to connect to and the user name to use. See the psql reference page for more information. Non-text file dumps are restored using the pg_restore utility. Before restoring an SQL dump, all the users who own objects or were granted permissions on objects in the dumped database must already exist. If they do not, the restore will fail to recreate the objects with the original ownership and/or permissions. (Sometimes this is what you want, but usually it is not.) By default, the psql script will continue to execute after an SQL error is encountered. You might wish to run psql with the ON_ERROR_STOP variable set to alter that behavior and have psql exit with an exit status of 3 if an SQL error occurs: psql --set ON_ERROR_STOP=on dbname < infile Either way, you will only have a partially restored database. Alternatively, you can specify that the whole dump should be restored as a single transaction, so the restore is either fully completed or fully rolled back. This mode can be specified by passing the -1 or --single-transaction command-line options to psql. When using this mode, be aware that even a minor error can rollback a restore that has already run for many hours. However, that might still be preferable to manually cleaning up a complex database after a partially restored dump. The ability of pg_dump and psql to write to or read from pipes makes it possible to dump a database directly from one server to another, for example: pg_dump -h host1 dbname | psql -h host2 dbname Important:The dumps produced by pg_dump are relative to template0. This means that any languages, procedures, etc. added via template1 will also be dumped by pg_dump. As a result, when restoring, if you are using a customized template1, you must create the empty database from template0, as in the example above. After restoring a backup, it is wise to run ANALYZE on each database so the query optimizer has useful statistics. pg_dump dumps only a single database at a time, and it does not dump information about roles or tablespaces (because those are cluster-wide rather than per-database). To support convenient dumping of the entire contents of a database cluster, the pg_dumpall program is provided. pg_dumpall backs up each database in a given cluster, and also preserves cluster-wide data such as role and tablespace definitions. The basic usage of this command is: pg_dumpall > dumpfile The resulting dump can be restored with psql: psql -f dumpfile ivorysql (Actually, you can specify any existing database name to start from, but if you are loading into an empty cluster then ivorysql should usually be used.) It is always necessary to have database superuser access when restoring a pg_dumpall dump, as that is required to restore the role and tablespace information. If you use tablespaces, make sure that the tablespace paths in the dump are appropriate for the new installation. pg_dumpall works by emitting commands to re-create roles, tablespaces, and empty databases, then invoking pg_dump for each database. This means that while each database will be internally consistent, the snapshots of different databases are not synchronized. Cluster-wide data can be dumped alone using the pg_dumpall --globals-only option. This is necessary to fully backup the cluster if running the pg_dump command on individual databases. Some operating systems have maximum file size limits that cause problems when creating large pg_dump output files. Fortunately, pg_dump can write to the standard output, so you can use standard Unix tools to work around this potential problem. There are several possible methods: Use compressed dumps. You can use your favorite compression program, for example gzip: pg_dump dbname | gzip > filename.gz Reload with: gunzip -c filename.gz | psql dbname or: cat filename.gz | gunzip | psql dbname Use split. The split command allows you to split the output into smaller files that are acceptable in size to the underlying file system. For example, to make 2 gigabyte chunks: pg_dump dbname | split -b 2G - filename Reload with: cat filename* | psql dbname If using GNU split, it is possible to use it and gzip together: pg_dump dbname | split -b 2G -−filter='gzip > $FILE.gz' It can be restored using zcat. Use pg_dump’s custom dump format. If IvorySQL was built on a system with the zlib compression library installed, the custom dump format will compress data as it writes it to the output file. This will produce dump file sizes similar to using gzip, but it has the added advantage that tables can be restored selectively. The following command dumps a database using the custom dump format: pg_dump -Fc dbname > filename A custom-format dump is not a script for psql, but instead must be restored with pg_restore, for example: pg_restore -d dbname filename See the pg_dump and pg_restore reference pages for details. For very large databases, you might need to combine split with one of the other two approaches. Use pg_dump’s parallel dump feature. To speed up the dump of a large database, you can use pg_dump’s parallel mode. This will dump multiple tables at the same time. You can control the degree of parallelism with the -j parameter. Parallel dumps are only supported for the \"directory\" archive format. pg_dump -j num -F d -f out.dir dbname You can use pg_restore -j to restore a dump in parallel. This will work for any archive of either the \"custom\" or the \"directory\" archive mode, whether or not it has been created with pg_dump -j. An alternative backup strategy is to directly copy the files that IvorySQL uses to store the data in the database,You can use whatever method you prefer for doing file system backups; for example: tar -cf backup.tar /usr/local/pgsql/data There are two restrictions, however, which make this method impractical, or at least inferior to the pg_dump method: The database server must be shut down in order to get a usable backup. Half-way measures such as disallowing all connections will not work (in part because tar and similar tools do not take an atomic snapshot of the state of the file system, but also because of internal buffering within the server).Needless to say, you also need to shut down the server before restoring the data. If you have dug into the details of the file system layout of the database, you might be tempted to try to back up or restore only certain individual tables or databases from their respective files or directories. This will not work because the information contained in these files is not usable without the commit log files, pg_xact/*, which contain the commit status of all transactions. A table file is only usable with this information. Of course it is also impossible to restore only a table and the associated pg_xact data because that would render all other tables in the database cluster useless. So file system backups only work for complete backup and restoration of an entire database cluster. An alternative file-system backup approach is to make a “consistent snapshot” of the data directory, if the file system supports that functionality (and you are willing to trust that it is implemented correctly). The typical procedure is to make a “frozen snapshot” of the volume containing the database, then copy the whole data directory (not just parts, see above) from the snapshot to a backup device, then release the frozen snapshot. This will work even while the database server is running. However, a backup created in this way saves the database files in a state as if the database server was not properly shut down; therefore, when you start the database server on the backed-up data, it will think the previous server instance crashed and will replay the WAL log. This is not a problem; just be aware of it (and be sure to include the WAL files in your backup). You can perform a CHECKPOINT before taking the snapshot to reduce recovery time. If your database is spread across multiple file systems, there might not be any way to obtain exactly-simultaneous frozen snapshots of all the volumes. For example, if your data files and WAL log are on different disks, or if tablespaces are on different file systems, it might not be possible to use snapshot backup because the snapshots must be simultaneous. Read your file system documentation very carefully before trusting the consistent-snapshot technique in such situations. If simultaneous snapshots are not possible, one option is to shut down the database server long enough to establish all the frozen snapshots. Another option is to perform a continuous archiving base backup,because such backups are immune to file system changes during the backup. This requires enabling continuous archiving just during the backup process; restore is done using continuous archive recovery Another option is to use rsync to perform a file system backup. This is done by first running rsync while the database server is running, then shutting down the database server long enough to do an rsync --checksum. (--checksum is necessary because rsync only has file modification-time granularity of one second.) The second rsync will be quicker than the first, because it has relatively little data to transfer, and the end result will be consistent because the server was down. This method allows a file system backup to be performed with minimal downtime. Note that a file system backup will typically be larger than an SQL dump. (pg_dump does not need to dump the contents of indexes for example, just the commands to recreate them.) However, taking a file system backup might be faster. At all times,IvorySQLmaintains a write ahead log (WAL) in the pg_wal/ subdirectory of the cluster’s data directory. The log records every change made to the database’s data files. This log exists primarily for crash-safety purposes: if the system crashes, the database can be restored to consistency by “replaying” the log entries made since the last checkpoint. However, the existence of the log makes it possible to use a third strategy for backing up databases: we can combine a file-system-level backup with backup of the WAL files. If recovery is needed, we restore the file system backup and then replay from the backed-up WAL files to bring the system to a current state. This approach is more complex to administer than either of the previous approaches, but it has some significant benefits: We do not need a perfectly consistent file system backup as the starting point. Any internal inconsistency in the backup will be corrected by log replay (this is not significantly different from what happens during crash recovery). So we do not need a file system snapshot capability, just tar or a similar archiving tool. Since we can combine an indefinitely long sequence of WAL files for replay, continuous backup can be achieved simply by continuing to archive the WAL files. This is particularly valuable for large databases, where it might not be convenient to take a full backup frequently. It is not necessary to replay the WAL entries all the way to the end. We could stop the replay at any point and have a consistent snapshot of the database as it was at that time. Thus, this technique supports point-in-time recovery: it is possible to restore the database to its state at any time since your base backup was taken. If we continuously feed the series of WAL files to another machine that has been loaded with the same base backup file, we have a warm standby system: at any point we can bring up the second machine and it will have a nearly-current copy of the database. Note: pg_dump and pg_dumpall do not produce file-system-level backups and cannot be used as part of a continuous-archiving solution. Such dumps are logical and do not contain enough information to be used by WAL replay. As with the plain file-system-backup technique, this method can only support restoration of an entire database cluster, not a subset. Also, it requires a lot of archival storage: the base backup might be bulky, and a busy system will generate many megabytes of WAL traffic that have to be archived. Still, it is the preferred backup technique in many situations where high reliability is needed. To recover successfully using continuous archiving (also called “online backup” by many database vendors), you need a continuous sequence of archived WAL files that extends back at least as far as the start time of your backup. So to get started, you should set up and test your procedure for archiving WAL files before you take your first base backup. Accordingly, we first discuss the mechanics of archiving WAL files.For more information on how to create archives and backups and the key points during operation, please refer to doc。 COPY moves data between IvorySQL tables and standard file-system files. COPY TO copies the contents of a table to a file, while COPY FROM copies data from a file to a table (appending the data to whatever is in the table already). COPY TO can also copy the results of a SELECT query. If a column list is specified, COPY TO copies only the data in the specified columns to the file. For COPY FROM, each field in the file is inserted, in order, into the specified column. Table columns not specified in the COPY FROM column list will receive their default values. COPY with a file name instructs the IvorySQL server to directly read from or write to a file. The file must be accessible by the IvorySQL user (the user ID the server runs as) and the name must be specified from the viewpoint of the server. When PROGRAM is specified, the server executes the given command and reads from the standard output of the program, or writes to the standard input of the program. The command must be specified from the viewpoint of the server, and be executable by the IvorySQL user. When STDIN or STDOUT is specified, data is transmitted via the connection between the client and the server. Each backend running COPY will report its progress in the pg_stat_progress_copy view. COPY table_name [ ( column_name [, ...] ) ] FROM { 'filename' | PROGRAM 'command' | STDIN } [ [ WITH ] ( option [, ...] ) ] [ WHERE condition ] COPY { table_name [ ( column_name [, ...] ) ] | ( query ) } TO { 'filename' | PROGRAM 'command' | STDOUT } [ [ WITH ] ( option [, ...] ) ] where option can be one of: FORMAT format_name FREEZE [ boolean ] DELIMITER 'delimiter_character' NULL 'null_string' HEADER [ boolean ] QUOTE 'quote_character' ESCAPE 'escape_character' FORCE_QUOTE { ( column_name [, ...] ) | * } FORCE_NOT_NULL ( column_name [, ...] ) FORCE_NULL ( column_name [, ...] ) ENCODING 'encoding_name' For detailed parameter settings, please refer to doc. On successful completion, a COPY command returns a command tag of the form COPY count The count is the number of rows copied. Note: psql will print this command tag only if the command was not COPY … TO STDOUT, or the equivalent psql meta-command \\copy … to stdout. This is to prevent confusing the command tag with the data that was just printed. COPY TO can be used only with plain tables, not views, and does not copy rows from child tables or child partitions. For example, COPY `table TO` copies the same rows as SELECT * FROM ONLY `table. The syntax `COPY (SELECT * FROM `table) TO …` can be used to dump all of the rows in an inheritance hierarchy, partitioned table, or view. COPY FROM can be used with plain, foreign, or partitioned tables or with views that have INSTEAD OF INSERT triggers. You must have select privilege on the table whose values are read by COPY TO, and insert privilege on the table into which values are inserted by COPY FROM. It is sufficient to have column privileges on the column(s) listed in the command. If row-level security is enabled for the table, the relevant SELECT policies will apply to COPY `table TO` statements. Currently, COPY FROM is not supported for tables with row-level security. Use equivalent INSERT statements instead. Files named in a COPY command are read or written directly by the server, not by the client application. Therefore, they must reside on or be accessible to the database server machine, not the client. They must be accessible to and readable or writable by the IvorySQL user (the user ID the server runs as), not the client. Similarly, the command specified with PROGRAM is executed directly by the server, not by the client application, must be executable by the IvorySQL user. COPY naming a file or command is only allowed to database superusers or users who are granted one of the roles pg_read_server_files, pg_write_server_files, or pg_execute_server_program, since it allows reading or writing any file or running a program that the server has privileges to access. Do not confuse COPY with the psql instruction \\copy. \\copy invokes COPY FROM STDIN or COPY TO STDOUT, and then fetches/stores the data in a file accessible to the psql client. Thus, file accessibility and access rights depend on the client rather than the server when \\copy is used. It is recommended that the file name used in COPY always be specified as an absolute path. This is enforced by the server in the case of COPY TO, but for COPY FROM you do have the option of reading from a file specified by a relative path. The path will be interpreted relative to the working directory of the server process (normally the cluster’s data directory), not the client’s working directory. Executing a command with PROGRAM might be restricted by the operating system’s access control mechanisms, such as SELinux. COPY FROM will invoke any triggers and check constraints on the destination table. However, it will not invoke rules. For identity columns, the COPY FROM command will always write the column values provided in the input data, like the INSERT option OVERRIDING SYSTEM VALUE. COPY input and output is affected by DateStyle. To ensure portability to other IvorySQL installations that might use non-default DateStyle settings, DateStyle should be set to ISO before using COPY TO. It is also a good idea to avoid dumping data with IntervalStyle set to sql_standard, because negative interval values might be misinterpreted by a server that has a different setting for IntervalStyle. Input data is interpreted according to ENCODING option or the current client encoding, and output data is encoded in ENCODING or the current client encoding, even if the data does not pass through the client but is read from or written to a file directly by the server. COPY stops operation at the first error. This should not lead to problems in the event of a COPY TO, but the target table will already have received earlier rows in a COPY FROM. These rows will not be visible or accessible, but they still occupy disk space. This might amount to a considerable amount of wasted disk space if the failure happened well into a large copy operation. You might wish to invoke VACUUM to recover the wasted space. FORCE_NULL and FORCE_NOT_NULL can be used simultaneously on the same column. This results in converting quoted null strings to null values and unquoted null strings to empty strings. When the text format is used, the data read or written is a text file with one line per table row. Columns in a row are separated by the delimiter character. The column values themselves are strings generated by the output function, or acceptable to the input function, of each attribute’s data type. The specified null string is used in place of columns that are null. COPY FROM will raise an error if any line of the input file contains more or fewer columns than are expected. End of data can be represented by a single line containing just backslash-period (\\.). An end-of-data marker is not necessary when reading from a file, since the end of file serves perfectly well; it is needed only when copying data to or from client applications using pre-3.0 client protocol. Backslash characters (\\) can be used in the COPY data to quote data characters that might otherwise be taken as row or column delimiters. In particular, the following characters must be preceded by a backslash if they appear as part of a column value: backslash itself, newline, carriage return, and the current delimiter character. The specified null string is sent by COPY TO without adding any backslashes; conversely, COPY FROM matches the input against the null string before removing backslashes. Therefore, a null string such as \\N cannot be confused with the actual data value \\N (which would be represented as \\\\N). The following special backslash sequences are recognized by COPY FROM: Sequence Represents \\b Backspace (ASCII 8) \\f Form feed (ASCII 12) \\n Newline (ASCII 10) \\r Carriage return (ASCII 13) \\t Tab (ASCII 9) \\v Vertical tab (ASCII 11) \\digits Backslash followed by one to three octal digits specifies the byte with that numeric code \\xdigits Backslash x followed by one or two hex digits specifies the byte with that numeric code Presently, COPY TO will never emit an octal or hex-digits backslash sequence, but it does use the other sequences listed above for those control characters. Any other backslashed character that is not mentioned in the above table will be taken to represent itself. However, beware of adding backslashes unnecessarily, since that might accidentally produce a string matching the end-of-data marker (\\.) or the null string (\\N by default). These strings will be recognized before any other backslash processing is done. It is strongly recommended that applications generating COPY data convert data newlines and carriage returns to the \\n and \\r sequences respectively. At present it is possible to represent a data carriage return by a backslash and carriage return, and to represent a data newline by a backslash and newline. However, these representations might not be accepted in future releases. They are also highly vulnerable to corruption if the COPY file is transferred across different machines (for example, from Unix to Windows or vice versa). All backslash sequences are interpreted after encoding conversion. The bytes specified with the octal and hex-digit backslash sequences must form valid characters in the database encoding. COPY TO will terminate each row with a Unix-style newline (“\\n”). Servers running on Microsoft Windows instead output carriage return/newline (“\\r\\n”), but only for COPY to a server file; for consistency across platforms, COPY TO STDOUT always sends “\\n” regardless of server platform. COPY FROM can handle lines ending with newlines, carriage returns, or carriage return/newlines. To reduce the risk of error due to un-backslashed newlines or carriage returns that were meant as data, COPY FROM will complain if the line endings in the input are not all alike. This format option is used for importing and exporting the Comma Separated Value (CSV) file format used by many other programs, such as spreadsheets. Instead of the escaping rules used by IvorySQL’s standard text format, it produces and recognizes the common CSV escaping mechanism. The values in each record are separated by the DELIMITER character. If the value contains the delimiter character, the QUOTE character, the NULL string, a carriage return, or line feed character, then the whole value is prefixed and suffixed by the QUOTE character, and any occurrence within the value of a QUOTE character or the ESCAPE character is preceded by the escape character. You can also use FORCE_QUOTE to force quotes when outputting non-NULL values in specific columns. The CSV format has no standard way to distinguish a NULL value from an empty string. IvorySQL’s COPY handles this by quoting. A NULL is output as the NULL parameter string and is not quoted, while a non-NULL value matching the NULL parameter string is quoted. For example, with the default settings, a NULL is written as an unquoted empty string, while an empty string data value is written with double quotes (\"\"). Reading values follows similar rules. You can use FORCE_NOT_NULL to prevent NULL input comparisons for specific columns. You can also use FORCE_NULL to convert quoted null string data values to NULL. Because backslash is not a special character in the CSV format, \\., the end-of-data marker, could also appear as a data value. To avoid any misinterpretation, a \\. data value appearing as a lone entry on a line is automatically quoted on output, and on input, if quoted, is not interpreted as the end-of-data marker. If you are loading a file created by another application that has a single unquoted column and might have a value of \\., you might need to quote that value in the input file. Note CSV format, all characters are significant. A quoted value surrounded by white space, or any characters other than DELIMITER, will include those characters. This can cause errors if you import data from a system that pads CSV lines with white space out to some fixed width. If such a situation arises you might need to preprocess the CSV file to remove the trailing white space, before importing the data into IvorySQL. Note CSV format will both recognize and produce CSV files with quoted values containing embedded carriage returns and line feeds. Thus the files are not strictly one line per table row like text-format files. Note Many programs produce strange and occasionally perverse CSV files, so the file format is more a convention than a standard. Thus you might encounter some files that cannot be imported using this mechanism, and COPY might produce files that other programs cannot process. The binary format option causes all data to be stored/read as binary format rather than as text. It is somewhat faster than the text and CSV formats, but a binary-format file is less portable across machine architectures and IvorySQL versions. Also, the binary format is very data type specific; for example it will not work to output binary data from a smallint column and read it into an integer column, even though that would work fine in text format. The binary file format consists of a file header, zero or more tuples containing the row data, and a file trailer. Headers and data are in network byte order. File Header The file header consists of 15 bytes of fixed fields, followed by a variable-length header extension area. The fixed fields are: Signature 11-byte sequence PGCOPY\\n\\377\\r\\n\\0 — note that the zero byte is a required part of the signature. (The signature is designed to allow easy identification of files that have been munged by a non-8-bit-clean transfer. This signature will be changed by end-of-line-translation filters, dropped zero bytes, dropped high bits, or parity changes.) Flags field 32-bit integer bit mask to denote important aspects of the file format. Bits are numbered from 0 (LSB) to 31 (MSB). Note that this field is stored in network byte order (most significant byte first), as are all the integer fields used in the file format. Bits 16–31 are reserved to denote critical file format issues; a reader should abort if it finds an unexpected bit set in this range. Bits 0–15 are reserved to signal backwards-compatible format issues; a reader should simply ignore any unexpected bits set in this range. Currently only one flag bit is defined, and the rest must be zero: Bit 16 If 1, OIDs are included in the data; if 0, not. Oid system columns are not supported in IvorySQL anymore, but the format still contains the indicator. Header extension area length 32-bit integer, length in bytes of remainder of header, not including self. Currently, this is zero, and the first tuple follows immediately. Future changes to the format might allow additional data to be present in the header. A reader should silently skip over any header extension data it does not know what to do with. The header extension area is envisioned to contain a sequence of self-identifying chunks. The flags field is not intended to tell readers what is in the extension area. Specific design of header extension contents is left for a later release. This design allows for both backwards-compatible header additions (add header extension chunks, or set low-order flag bits) and non-backwards-compatible changes (set high-order flag bits to signal such changes, and add supporting data to the extension area if needed). Tuples Each tuple begins with a 16-bit integer count of the number of fields in the tuple. (Presently, all tuples in a table will have the same count, but that might not always be true.) Then, repeated for each field in the tuple, there is a 32-bit length word followed by that many bytes of field data. (The length word does not include itself, and can be zero.) As a special case, -1 indicates a NULL field value. No value bytes follow in the NULL case. There is no alignment padding or any other extra data between fields. Presently, all data values in a binary-format file are assumed to be in binary format (format code one). It is anticipated that a future extension might add a header field that allows per-column format codes to be specified. To determine the appropriate binary format for the actual tuple data you should consult the PostgreSQL source, in particular the *send and *recv functions for each column’s data type (typically these functions are found in the src/backend/utils/adt/ directory of the source distribution). If OIDs are included in the file, the OID field immediately follows the field-count word. It is a normal field except that it’s not included in the field-count. Note that oid system columns are not supported in current versions of IvorySQL. The file trailer consists of a 16-bit integer word containing -1. This is easily distinguished from a tuple’s field-count word. A reader should report an error if a field-count word is neither -1 nor the expected number of columns. This provides an extra check against somehow getting out of sync with the data. The following example copies a table to the client using the vertical bar (|) as the field delimiter: COPY country TO STDOUT (DELIMITER '|'); To copy data from a file into the country table: COPY country TO STDOUT (DELIMITER '|'); To copy into a file just the countries whose names start with 'A': COPY (SELECT * FROM country WHERE country_name LIKE 'A%') TO '/usr1/proj/bray/sql/a_list_countries.copy'; To copy into a compressed file, you can pipe the output through an external compression program: COPY country TO PROGRAM 'gzip > /usr1/proj/bray/sql/country_data.gz'; Here is a sample of data suitable for copying into a table from STDIN: AF AFGHANISTAN AL ALBANIA DZ ALGERIA ZM ZAMBIA ZW ZIMBABWE Note that the white space on each line is actually a tab character. The following is the same data, output in binary format. The data is shown after filtering through the Unix utility od -c. The table has three columns; the first has type char(2), the second has type text, and the third has type integer. All the rows have a null value in the third column. 0000000 P G C O P Y \\n 377 \\r \\n \\0 \\0 \\0 \\0 \\0 \\0 0000020 \\0 \\0 \\0 \\0 003 \\0 \\0 \\0 002 A F \\0 \\0 \\0 013 A 0000040 F G H A N I S T A N 377 377 377 377 \\0 003 0000060 \\0 \\0 \\0 002 A L \\0 \\0 \\0 007 A L B A N I 0000100 A 377 377 377 377 \\0 003 \\0 \\0 \\0 002 D Z \\0 \\0 \\0 0000120 007 A L G E R I A 377 377 377 377 \\0 003 \\0 \\0 0000140 \\0 002 Z M \\0 \\0 \\0 006 Z A M B I A 377 377 0000160 377 377 \\0 003 \\0 \\0 \\0 002 Z W \\0 \\0 \\0 \\b Z I 0000200 M B A B W E 377 377 377 377 377 377 The remaining details can see doc. Query performance can be affected by a variety of factors. Some of these factors can be controlled by the user, while others are fundamentals of the system’s lower-level design. IvorySQL devises a query plan for each query it receives. Choosing the right plan to match the query structure and the properties of the data is absolutely critical for good performance, so the system includes a complex planner that tries to choose good plans. You can use the EXPLAIN command to see what query plan the planner creates for any query. Plan-reading is an art that requires some experience to master, but this section attempts to cover the basics. The examples use `EXPLAIN’s default “text” output format, which is compact and convenient for humans to read. If you want to feed `EXPLAIN’s output to a program for further analysis, you should use one of its machine-readable output formats (XML, JSON, or YAML) instead. The structure of a query plan is a tree of plan nodes. Nodes at the bottom level of the tree are scan nodes: they return raw rows from a table. There are different types of scan nodes for different table access methods: sequential scans, index scans, and bitmap index scans. There are also non-table row sources, such as VALUES clauses and set-returning functions in FROM, which have their own scan node types. If the query requires joining, aggregation, sorting, or other operations on the raw rows, then there will be additional nodes above the scan nodes to perform these operations. Again, there is usually more than one possible way to do these operations, so different node types can appear here too. The output of EXPLAIN has one line for each node in the plan tree, showing the basic node type plus the cost estimates that the planner made for the execution of that plan node. Additional lines might appear, indented from the node’s summary line, to show additional properties of the node. The very first line (the summary line for the topmost node) has the estimated total execution cost for the plan; it is this number that the planner seeks to minimize. Here is a trivial example, just to show what the output looks like: EXPLAIN SELECT * FROM tenk1; QUERY PLAN ------------------------------------------------------------- Seq Scan on tenk1 (cost=0.00..458.00 rows=10000 width=244) Since this query has no WHERE clause, it must scan all the rows of the table, so the planner has chosen to use a simple sequential scan plan. The numbers that are quoted in parentheses are (left to right): Estimated start-up cost. This is the time expended before the output phase can begin, e.g., time to do the sorting in a sort node. Estimated total cost. This is stated on the assumption that the plan node is run to completion, i.e., all available rows are retrieved. In practice a node’s parent node might stop short of reading all available rows (see the LIMIT example below). Estimated number of rows output by this plan node. Again, the node is assumed to be run to completion. Estimated average width of rows output by this plan node (in bytes). The costs are measured in arbitrary units determined by the planner’s cost parameters .Traditional practice is to measure the costs in units of disk page fetches; that is, seq_page_cost is conventionally set to 1.0 and the other cost parameters are set relative to that. The examples in this section are run with the default cost parameters. It’s important to understand that the cost of an upper-level node includes the cost of all its child nodes. It’s also important to realize that the cost only reflects things that the planner cares about. In particular, the cost does not consider the time spent transmitting result rows to the client, which could be an important factor in the real elapsed time; but the planner ignores it because it cannot change it by altering the plan. (Every correct plan will output the same row set, we trust.) The rows value is a little tricky because it is not the number of rows processed or scanned by the plan node, but rather the number emitted by the node. This is often less than the number scanned, as a result of filtering by any WHERE-clause conditions that are being applied at the node. Ideally the top-level rows estimate will approximate the number of rows actually returned, updated, or deleted by the query. Returning to our example: EXPLAIN SELECT * FROM tenk1; QUERY PLAN ------------------------------------------------------------- Seq Scan on tenk1 (cost=0.00..458.00 rows=10000 width=244) These numbers are derived very straightforwardly. If you do: SELECT relpages, reltuples FROM pg_class WHERE relname = 'tenk1'; you will find that tenk1 has 358 disk pages and 10000 rows. The estimated cost is computed as (disk pages read * seq_page_cost) + (rows scanned * cpu_tuple_cost). By default, seq_page_cost is 1.0 and cpu_tuple_cost is 0.01, so the estimated cost is (358 * 1.0) + (10000 * 0.01) = 458. Now let’s modify the query to add a WHERE condition: EXPLAIN SELECT * FROM tenk1 WHERE unique1 < 7000; QUERY PLAN ------------------------------------------------------------ Seq Scan on tenk1 (cost=0.00..483.00 rows=7001 width=244) Filter: (unique1 < 7000) Notice that the EXPLAIN output shows the WHERE clause being applied as a “filter” condition attached to the Seq Scan plan node. This means that the plan node checks the condition for each row it scans, and outputs only the ones that pass the condition. The estimate of output rows has been reduced because of the WHERE clause. However, the scan will still have to visit all 10000 rows, so the cost hasn’t decreased; in fact it has gone up a bit (by 10000 * cpu_operator_cost, to be exact) to reflect the extra CPU time spent checking the WHERE condition. The actual number of rows this query would select is 7000, but the rows estimate is only approximate. If you try to duplicate this experiment, you will probably get a slightly different estimate; moreover, it can change after each ANALYZE command, because the statistics produced by ANALYZE are taken from a randomized sample of the table. Now, let’s make the condition more restrictive: EXPLAIN SELECT * FROM tenk1 WHERE unique1 < 100; QUERY PLAN ------------------------------------------------------------------------------ Bitmap Heap Scan on tenk1 (cost=5.07..229.20 rows=101 width=244) Recheck Cond: (unique1 < 100) -> Bitmap Index Scan on tenk1_unique1 (cost=0.00..5.04 rows=101 width=0) Index Cond: (unique1 < 100) Here the planner has decided to use a two-step plan: the child plan node visits an index to find the locations of rows matching the index condition, and then the upper plan node actually fetches those rows from the table itself. Fetching rows separately is much more expensive than reading them sequentially, but because not all the pages of the table have to be visited, this is still cheaper than a sequential scan. (The reason for using two plan levels is that the upper plan node sorts the row locations identified by the index into physical order before reading them, to minimize the cost of separate fetches. The “bitmap” mentioned in the node names is the mechanism that does the sorting.) Now let’s add another condition to the WHERE clause: EXPLAIN SELECT * FROM tenk1 WHERE unique1 < 100 AND stringu1 = 'xxx'; QUERY PLAN ------------------------------------------------------------------------------ Bitmap Heap Scan on tenk1 (cost=5.04..229.43 rows=1 width=244) Recheck Cond: (unique1 < 100) Filter: (stringu1 = 'xxx'::name) -> Bitmap Index Scan on tenk1_unique1 (cost=0.00..5.04 rows=101 width=0) Index Cond: (unique1 < 100) The added condition stringu1 = 'xxx' reduces the output row count estimate, but not the cost because we still have to visit the same set of rows. Notice that the stringu1 clause cannot be applied as an index condition, since this index is only on the unique1 column. Instead it is applied as a filter on the rows retrieved by the index. Thus the cost has actually gone up slightly to reflect this extra checking. In some cases the planner will prefer a “simple” index scan plan: EXPLAIN SELECT * FROM tenk1 WHERE unique1 = 42; QUERY PLAN ------------------------------------------------------------------------------ Index Scan using tenk1_unique1 on tenk1 (cost=0.29..8.30 rows=1 width=244) Index Cond: (unique1 = 42) In this type of plan the table rows are fetched in index order, which makes them even more expensive to read, but there are so few that the extra cost of sorting the row locations is not worth it. You’ll most often see this plan type for queries that fetch just a single row. It’s also often used for queries that have an ORDER BY condition that matches the index order, because then no extra sorting step is needed to satisfy the ORDER BY. In this example, adding ORDER BY unique1 would use the same plan because the index already implicitly provides the requested ordering. The planner may implement an ORDER BY clause in several ways. The above example shows that such an ordering clause may be implemented implicitly. The planner may also add an explicit sort step: EXPLAIN SELECT * FROM tenk1 ORDER BY unique1; QUERY PLAN ------------------------------------------------------------------- Sort (cost=1109.39..1134.39 rows=10000 width=244) Sort Key: unique1 -> Seq Scan on tenk1 (cost=0.00..445.00 rows=10000 width=244) If a part of the plan guarantees an ordering on a prefix of the required sort keys, then the planner may instead decide to use an `incremental sort` step: EXPLAIN SELECT * FROM tenk1 ORDER BY four, ten LIMIT 100; QUERY PLAN ------------------------------------------------------------------------------------------------------ Limit (cost=521.06..538.05 rows=100 width=244) -> Incremental Sort (cost=521.06..2220.95 rows=10000 width=244) Sort Key: four, ten Presorted Key: four -> Index Scan using index_tenk1_on_four on tenk1 (cost=0.29..1510.08 rows=10000 width=244) Compared to regular sorts, sorting incrementally allows returning tuples before the entire result set has been sorted, which particularly enables optimizations with LIMIT queries. It may also reduce memory usage and the likelihood of spilling sorts to disk, but it comes at the cost of the increased overhead of splitting the result set into multiple sorting batches. If there are separate indexes on several of the columns referenced in WHERE, the planner might choose to use an AND or OR combination of the indexes: EXPLAIN SELECT * FROM tenk1 WHERE unique1 < 100 AND unique2 > 9000; QUERY PLAN ------------------------------------------------------------------------------------- Bitmap Heap Scan on tenk1 (cost=25.08..60.21 rows=10 width=244) Recheck Cond: ((unique1 < 100) AND (unique2 > 9000)) -> BitmapAnd (cost=25.08..25.08 rows=10 width=0) -> Bitmap Index Scan on tenk1_unique1 (cost=0.00..5.04 rows=101 width=0) Index Cond: (unique1 < 100) -> Bitmap Index Scan on tenk1_unique2 (cost=0.00..19.78 rows=999 width=0) Index Cond: (unique2 > 9000) But this requires visiting both indexes, so it’s not necessarily a win compared to using just one index and treating the other condition as a filter. If you vary the ranges involved you’ll see the plan change accordingly. Here is an example showing the effects of LIMIT: EXPLAIN SELECT * FROM tenk1 WHERE unique1 < 100 AND unique2 > 9000 LIMIT 2; QUERY PLAN ------------------------------------------------------------------------------------- Limit (cost=0.29..14.48 rows=2 width=244) -> Index Scan using tenk1_unique2 on tenk1 (cost=0.29..71.27 rows=10 width=244) Index Cond: (unique2 > 9000) Filter: (unique1 < 100) This is the same query as above, but we added a LIMIT so that not all the rows need be retrieved, and the planner changed its mind about what to do. Notice that the total cost and row count of the Index Scan node are shown as if it were run to completion. However, the Limit node is expected to stop after retrieving only a fifth of those rows, so its total cost is only a fifth as much, and that’s the actual estimated cost of the query. This plan is preferred over adding a Limit node to the previous plan because the Limit could not avoid paying the startup cost of the bitmap scan, so the total cost would be something over 25 units with that approach. Let’s try joining two tables, using the columns we have been discussing: EXPLAIN SELECT * FROM tenk1 t1, tenk2 t2 WHERE t1.unique1 < 10 AND t1.unique2 = t2.unique2; QUERY PLAN ------------------------------------------------------------------------------------- Nested Loop (cost=4.65..118.62 rows=10 width=488) -> Bitmap Heap Scan on tenk1 t1 (cost=4.36..39.47 rows=10 width=244) Recheck Cond: (unique1 < 10) -> Bitmap Index Scan on tenk1_unique1 (cost=0.00..4.36 rows=10 width=0) Index Cond: (unique1 < 10) -> Index Scan using tenk2_unique2 on tenk2 t2 (cost=0.29..7.91 rows=1 width=244) Index Cond: (unique2 = t1.unique2) In this plan, we have a nested-loop join node with two table scans as inputs, or children. The indentation of the node summary lines reflects the plan tree structure. The join’s first, or “outer”, child is a bitmap scan similar to those we saw before. Its cost and row count are the same as we’d get from SELECT … WHERE unique1 < 10 because we are applying the WHERE clause unique1 < 10 at that node. The t1.unique2 = t2.unique2 clause is not relevant yet, so it doesn’t affect the row count of the outer scan. The nested-loop join node will run its second, or “inner” child once for each row obtained from the outer child. Column values from the current outer row can be plugged into the inner scan; here, the t1.unique2 value from the outer row is available, so we get a plan and costs similar to what we saw above for a simple SELECT … WHERE t2.unique2 = `constant` case. (The estimated cost is actually a bit lower than what was seen above, as a result of caching that’s expected to occur during the repeated index scans on t2.) The costs of the loop node are then set on the basis of the cost of the outer scan, plus one repetition of the inner scan for each outer row (10 * 7.91, here), plus a little CPU time for join processing. In this example the join’s output row count is the same as the product of the two scans' row counts, but that’s not true in all cases because there can be additional WHERE clauses that mention both tables and so can only be applied at the join point, not to either input scan. Here’s an example: EXPLAIN SELECT * FROM tenk1 t1, tenk2 t2 WHERE t1.unique1 < 10 AND t2.unique2 < 10 AND t1.hundred < t2.hundred; QUERY PLAN ------------------------------------------------------------------------------------- Nested Loop (cost=4.65..49.46 rows=33 width=488) Join Filter: (t1.hundred < t2.hundred) -> Bitmap Heap Scan on tenk1 t1 (cost=4.36..39.47 rows=10 width=244) Recheck Cond: (unique1 < 10) -> Bitmap Index Scan on tenk1_unique1 (cost=0.00..4.36 rows=10 width=0) Index Cond: (unique1 < 10) -> Materialize (cost=0.29..8.51 rows=10 width=244) -> Index Scan using tenk2_unique2 on tenk2 t2 (cost=0.29..8.46 rows=10 width=244) Index Cond: (unique2 < 10) The condition t1.hundred < t2.hundred can’t be tested in the tenk2_unique2 index, so it’s applied at the join node. This reduces the estimated output row count of the join node, but does not change either input scan. Notice that here the planner has chosen to “materialize” the inner relation of the join, by putting a Materialize plan node atop it. This means that the t2 index scan will be done just once, even though the nested-loop join node needs to read that data ten times, once for each row from the outer relation. The Materialize node saves the data in memory as it’s read, and then returns the data from memory on each subsequent pass. When dealing with outer joins, you might see join plan nodes with both “Join Filter” and plain “Filter” conditions attached. Join Filter conditions come from the outer join’s ON clause, so a row that fails the Join Filter condition could still get emitted as a null-extended row. But a plain Filter condition is applied after the outer-join rules and so acts to remove rows unconditionally. In an inner join there is no semantic difference between these types of filters. If we change the query’s selectivity a bit, we might get a very different join plan: EXPLAIN SELECT * FROM tenk1 t1, tenk2 t2 WHERE t1.unique1 < 100 AND t1.unique2 = t2.unique2; QUERY PLAN ------------------------------------------------------------------------------------- Hash Join (cost=230.47..713.98 rows=101 width=488) Hash Cond: (t2.unique2 = t1.unique2) -> Seq Scan on tenk2 t2 (cost=0.00..445.00 rows=10000 width=244) -> Hash (cost=229.20..229.20 rows=101 width=244) -> Bitmap Heap Scan on tenk1 t1 (cost=5.07..229.20 rows=101 width=244) Recheck Cond: (unique1 < 100) -> Bitmap Index Scan on tenk1_unique1 (cost=0.00..5.04 rows=101 width=0) Index Cond: (unique1 < 100) Here, the planner has chosen to use a hash join, in which rows of one table are entered into an in-memory hash table, after which the other table is scanned and the hash table is probed for matches to each row. Again note how the indentation reflects the plan structure: the bitmap scan on tenk1 is the input to the Hash node, which constructs the hash table. That’s then returned to the Hash Join node, which reads rows from its outer child plan and searches the hash table for each one. Another possible type of join is a merge join, illustrated here: EXPLAIN SELECT * FROM tenk1 t1, onek t2 WHERE t1.unique1 < 100 AND t1.unique2 = t2.unique2; QUERY PLAN ------------------------------------------------------------------------------------- Merge Join (cost=198.11..268.19 rows=10 width=488) Merge Cond: (t1.unique2 = t2.unique2) -> Index Scan using tenk1_unique2 on tenk1 t1 (cost=0.29..656.28 rows=101 width=244) Filter: (unique1 < 100) -> Sort (cost=197.83..200.33 rows=1000 width=244) Sort Key: t2.unique2 -> Seq Scan on onek t2 (cost=0.00..148.00 rows=1000 width=244) Merge join requires its input data to be sorted on the join keys. In this plan the tenk1 data is sorted by using an index scan to visit the rows in the correct order, but a sequential scan and sort is preferred for onek, because there are many more rows to be visited in that table. (Sequential-scan-and-sort frequently beats an index scan for sorting many rows, because of the nonsequential disk access required by the index scan.) One way to look at variant plans is to force the planner to disregard whatever strategy it thought was the cheapest, using the enable/disable flags .For example, if we’re unconvinced that sequential-scan-and-sort is the best way to deal with table onek in the previous example, we could try SET enable_sort = off; EXPLAIN SELECT * FROM tenk1 t1, onek t2 WHERE t1.unique1 < 100 AND t1.unique2 = t2.unique2; QUERY PLAN ------------------------------------------------------------------------------------------ Merge Join (cost=0.56..292.65 rows=10 width=488) Merge Cond: (t1.unique2 = t2.unique2) -> Index Scan using tenk1_unique2 on tenk1 t1 (cost=0.29..656.28 rows=101 width=244) Filter: (unique1 < 100) -> Index Scan using onek_unique2 on onek t2 (cost=0.28..224.79 rows=1000 width=244) which shows that the planner thinks that sorting onek by index-scanning is about 12% more expensive than sequential-scan-and-sort. Of course, the next question is whether it’s right about that. We can investigate that using EXPLAIN ANALYZE, as discussed below. It is possible to check the accuracy of the planner’s estimates by using EXPLAIN’s `ANALYZE option. With this option, EXPLAIN actually executes the query, and then displays the true row counts and true run time accumulated within each plan node, along with the same estimates that a plain EXPLAIN shows. For example, we might get a result like this: EXPLAIN ANALYZE SELECT * FROM tenk1 t1, tenk2 t2 WHERE t1.unique1 < 10 AND t1.unique2 = t2.unique2; QUERY PLAN --------------------------------------------------------------------------------------------------------------------------------- Nested Loop (cost=4.65..118.62 rows=10 width=488) (actual time=0.128..0.377 rows=10 loops=1) -> Bitmap Heap Scan on tenk1 t1 (cost=4.36..39.47 rows=10 width=244) (actual time=0.057..0.121 rows=10 loops=1) Recheck Cond: (unique1 < 10) -> Bitmap Index Scan on tenk1_unique1 (cost=0.00..4.36 rows=10 width=0) (actual time=0.024..0.024 rows=10 loops=1) Index Cond: (unique1 < 10) -> Index Scan using tenk2_unique2 on tenk2 t2 (cost=0.29..7.91 rows=1 width=244) (actual time=0.021..0.022 rows=1 loops=10) Index Cond: (unique2 = t1.unique2) Planning time: 0.181 ms Execution time: 0.501 ms Note that the “actual time” values are in milliseconds of real time, whereas the cost estimates are expressed in arbitrary units; so they are unlikely to match up. The thing that’s usually most important to look for is whether the estimated row counts are reasonably close to reality. In this example the estimates were all dead-on, but that’s quite unusual in practice. In some query plans, it is possible for a subplan node to be executed more than once. For example, the inner index scan will be executed once per outer row in the above nested-loop plan. In such cases, the loops value reports the total number of executions of the node, and the actual time and rows values shown are averages per-execution. This is done to make the numbers comparable with the way that the cost estimates are shown. Multiply by the loops value to get the total time actually spent in the node. In the above example, we spent a total of 0.220 milliseconds executing the index scans on tenk2. In some cases EXPLAIN ANALYZE shows additional execution statistics beyond the plan node execution times and row counts. For example, Sort and Hash nodes provide extra information: EXPLAIN ANALYZE SELECT * FROM tenk1 t1, tenk2 t2 WHERE t1.unique1 < 100 AND t1.unique2 = t2.unique2 ORDER BY t1.fivethous; QUERY PLAN -------------------------------------------------------------------------------------------------------------------------------------------- Sort (cost=717.34..718.09 rows=101 width=488) (actual time=7.761..7.774 rows=100 loops=1) Sort Key: t1.fivethous Sort Method: quicksort Memory: 77kB -> Hash Join (cost=230.47..713.98 rows=101 width=488) (actual time=0.711..7.427 rows=100 loops=1) Hash Cond: (t2.unique2 = t1.unique2) -> Seq Scan on tenk2 t2 (cost=0.00..445.00 rows=10000 width=244) (actual time=0.007..2.583 rows=10000 loops=1) -> Hash (cost=229.20..229.20 rows=101 width=244) (actual time=0.659..0.659 rows=100 loops=1) Buckets: 1024 Batches: 1 Memory Usage: 28kB -> Bitmap Heap Scan on tenk1 t1 (cost=5.07..229.20 rows=101 width=244) (actual time=0.080..0.526 rows=100 loops=1) Recheck Cond: (unique1 < 100) -> Bitmap Index Scan on tenk1_unique1 (cost=0.00..5.04 rows=101 width=0) (actual time=0.049..0.049 rows=100 loops=1) Index Cond: (unique1 < 100) Planning time: 0.194 ms Execution time: 8.008 ms The Sort node shows the sort method used (in particular, whether the sort was in-memory or on-disk) and the amount of memory or disk space needed. The Hash node shows the number of hash buckets and batches as well as the peak amount of memory used for the hash table. (If the number of batches exceeds one, there will also be disk space usage involved, but that is not shown.) Another type of extra information is the number of rows removed by a filter condition: EXPLAIN ANALYZE SELECT * FROM tenk1 WHERE ten < 7; QUERY PLAN --------------------------------------------------------------------------------------------------------- Seq Scan on tenk1 (cost=0.00..483.00 rows=7000 width=244) (actual time=0.016..5.107 rows=7000 loops=1) Filter: (ten < 7) Rows Removed by Filter: 3000 Planning time: 0.083 ms Execution time: 5.905 ms These counts can be particularly valuable for filter conditions applied at join nodes. The “Rows Removed” line only appears when at least one scanned row, or potential join pair in the case of a join node, is rejected by the filter condition. A case similar to filter conditions occurs with “lossy” index scans. For example, consider this search for polygons containing a specific point: EXPLAIN ANALYZE SELECT * FROM polygon_tbl WHERE f1 @> polygon '(0.5,2.0)'; QUERY PLAN ------------------------------------------------------------------------------------------------------ Seq Scan on polygon_tbl (cost=0.00..1.05 rows=1 width=32) (actual time=0.044..0.044 rows=0 loops=1) Filter: (f1 @> '((0.5,2))'::polygon) Rows Removed by Filter: 4 Planning time: 0.040 ms Execution time: 0.083 ms The planner thinks (quite correctly) that this sample table is too small to bother with an index scan, so we have a plain sequential scan in which all the rows got rejected by the filter condition. But if we force an index scan to be used, we see: SET enable_seqscan TO off; EXPLAIN ANALYZE SELECT * FROM polygon_tbl WHERE f1 @> polygon '(0.5,2.0)'; QUERY PLAN -------------------------------------------------------------------------------------------------------------------------- Index Scan using gpolygonind on polygon_tbl (cost=0.13..8.15 rows=1 width=32) (actual time=0.062..0.062 rows=0 loops=1) Index Cond: (f1 @> '((0.5,2))'::polygon) Rows Removed by Index Recheck: 1 Planning time: 0.034 ms Execution time: 0.144 ms Here we can see that the index returned one candidate row, which was then rejected by a recheck of the index condition. This happens because a GiST index is “lossy” for polygon containment tests: it actually returns the rows with polygons that overlap the target, and then we have to do the exact containment test on those rows. EXPLAIN has a BUFFERS option that can be used with ANALYZE to get even more run time statistics: EXPLAIN (ANALYZE, BUFFERS) SELECT * FROM tenk1 WHERE unique1 < 100 AND unique2 > 9000; QUERY PLAN --------------------------------------------------------------------------------------------------------------------------------- Bitmap Heap Scan on tenk1 (cost=25.08..60.21 rows=10 width=244) (actual time=0.323..0.342 rows=10 loops=1) Recheck Cond: ((unique1 < 100) AND (unique2 > 9000)) Buffers: shared hit=15 -> BitmapAnd (cost=25.08..25.08 rows=10 width=0) (actual time=0.309..0.309 rows=0 loops=1) Buffers: shared hit=7 -> Bitmap Index Scan on tenk1_unique1 (cost=0.00..5.04 rows=101 width=0) (actual time=0.043..0.043 rows=100 loops=1) Index Cond: (unique1 < 100) Buffers: shared hit=2 -> Bitmap Index Scan on tenk1_unique2 (cost=0.00..19.78 rows=999 width=0) (actual time=0.227..0.227 rows=999 loops=1) Index Cond: (unique2 > 9000) Buffers: shared hit=5 Planning time: 0.088 ms Execution time: 0.423 ms The numbers provided by BUFFERS help to identify which parts of the query are the most I/O-intensive. Keep in mind that because EXPLAIN ANALYZE actually runs the query, any side-effects will happen as usual, even though whatever results the query might output are discarded in favor of printing the EXPLAIN data. If you want to analyze a data-modifying query without changing your tables, you can roll the command back afterwards, for example: BEGIN; EXPLAIN ANALYZE UPDATE tenk1 SET hundred = hundred + 1 WHERE unique1 < 100; QUERY PLAN -------------------------------------------------------------------------------------------------------------------------------- Update on tenk1 (cost=5.07..229.46 rows=101 width=250) (actual time=14.628..14.628 rows=0 loops=1) -> Bitmap Heap Scan on tenk1 (cost=5.07..229.46 rows=101 width=250) (actual time=0.101..0.439 rows=100 loops=1) Recheck Cond: (unique1 < 100) -> Bitmap Index Scan on tenk1_unique1 (cost=0.00..5.04 rows=101 width=0) (actual time=0.043..0.043 rows=100 loops=1) Index Cond: (unique1 < 100) Planning time: 0.079 ms Execution time: 14.727 ms ROLLBACK; As seen in this example, when the query is an INSERT, UPDATE, or DELETE command, the actual work of applying the table changes is done by a top-level Insert, Update, or Delete plan node. The plan nodes underneath this node perform the work of locating the old rows and/or computing the new data. So above, we see the same sort of bitmap table scan we’ve seen already, and its output is fed to an Update node that stores the updated rows. It’s worth noting that although the data-modifying node can take a considerable amount of run time (here, it’s consuming the lion’s share of the time), the planner does not currently add anything to the cost estimates to account for that work. That’s because the work to be done is the same for every correct query plan, so it doesn’t affect planning decisions. When an UPDATE or DELETE command affects an inheritance hierarchy, the output might look like this: EXPLAIN UPDATE parent SET f2 = f2 + 1 WHERE f1 = 101; QUERY PLAN ----------------------------------------------------------------------------------- Update on parent (cost=0.00..24.53 rows=4 width=14) Update on parent Update on child1 Update on child2 Update on child3 -> Seq Scan on parent (cost=0.00..0.00 rows=1 width=14) Filter: (f1 = 101) -> Index Scan using child1_f1_key on child1 (cost=0.15..8.17 rows=1 width=14) Index Cond: (f1 = 101) -> Index Scan using child2_f1_key on child2 (cost=0.15..8.17 rows=1 width=14) Index Cond: (f1 = 101) -> Index Scan using child3_f1_key on child3 (cost=0.15..8.17 rows=1 width=14) Index Cond: (f1 = 101) In this example the Update node needs to consider three child tables as well as the originally-mentioned parent table. So there are four input scanning subplans, one per table. For clarity, the Update node is annotated to show the specific target tables that will be updated, in the same order as the corresponding subplans. The Planning time shown by EXPLAIN ANALYZE is the time it took to generate the query plan from the parsed query and optimize it. It does not include parsing or rewriting. The Execution time shown by EXPLAIN ANALYZE includes executor start-up and shut-down time, as well as the time to run any triggers that are fired, but it does not include parsing, rewriting, or planning time. Time spent executing BEFORE triggers, if any, is included in the time for the related Insert, Update, or Delete node; but time spent executing AFTER triggers is not counted there because AFTER triggers are fired after completion of the whole plan. The total time spent in each trigger (either BEFORE or AFTER) is also shown separately. Note that deferred constraint triggers will not be executed until end of transaction and are thus not considered at all by EXPLAIN ANALYZE. There are two significant ways in which run times measured by EXPLAIN ANALYZE can deviate from normal execution of the same query. First, since no output rows are delivered to the client, network transmission costs and I/O conversion costs are not included. Second, the measurement overhead added by EXPLAIN ANALYZE can be significant, especially on machines with slow gettimeofday() operating-system calls. You can use the pg_test_timing tool to measure the overhead of timing on your system. EXPLAIN results should not be extrapolated to situations much different from the one you are actually testing; for example, results on a toy-sized table cannot be assumed to apply to large tables. The planner’s cost estimates are not linear and so it might choose a different plan for a larger or smaller table. An extreme example is that on a table that only occupies one disk page, you’ll nearly always get a sequential scan plan whether indexes are available or not. The planner realizes that it’s going to take one disk page read to process the table in any case, so there’s no value in expending additional page reads to look at an index. (We saw this happening in the polygon_tbl example above.) There are cases in which the actual and estimated values won’t match up well, but nothing is really wrong. One such case occurs when plan node execution is stopped short by a LIMIT or similar effect. For example, in the LIMIT query we used before, EXPLAIN ANALYZE SELECT * FROM tenk1 WHERE unique1 < 100 AND unique2 > 9000 LIMIT 2; QUERY PLAN ------------------------------------------------------------------------------------------------------------------------------- Limit (cost=0.29..14.71 rows=2 width=244) (actual time=0.177..0.249 rows=2 loops=1) -> Index Scan using tenk1_unique2 on tenk1 (cost=0.29..72.42 rows=10 width=244) (actual time=0.174..0.244 rows=2 loops=1) Index Cond: (unique2 > 9000) Filter: (unique1 < 100) Rows Removed by Filter: 287 Planning time: 0.096 ms Execution time: 0.336 ms the estimated cost and row count for the Index Scan node are shown as though it were run to completion. But in reality the Limit node stopped requesting rows after it got two, so the actual row count is only 2 and the run time is less than the cost estimate would suggest. This is not an estimation error, only a discrepancy in the way the estimates and true values are displayed. Merge joins also have measurement artifacts that can confuse the unwary. A merge join will stop reading one input if it’s exhausted the other input and the next key value in the one input is greater than the last key value of the other input; in such a case there can be no more matches and so no need to scan the rest of the first input. This results in not reading all of one child, with results like those mentioned for LIMIT. Also, if the outer (first) child contains rows with duplicate key values, the inner (second) child is backed up and rescanned for the portion of its rows matching that key value. EXPLAIN ANALYZE counts these repeated emissions of the same inner rows as if they were real additional rows. When there are many outer duplicates, the reported actual row count for the inner child plan node can be significantly larger than the number of rows that are actually in the inner relation. BitmapAnd and BitmapOr nodes always report their actual row counts as zero, due to implementation limitations. Normally, EXPLAIN will display every plan node created by the planner. However, there are cases where the executor can determine that certain nodes need not be executed because they cannot produce any rows, based on parameter values that were not available at planning time. (Currently this can only happen for child nodes of an Append or MergeAppend node that is scanning a partitioned table.) When this happens, those plan nodes are omitted from the EXPLAIN output and a Subplans Removed: `N` annotation appears instead. As we saw in the previous section, the query planner needs to estimate the number of rows retrieved by a query in order to make good choices of query plans. This section provides a quick look at the statistics that the system uses for these estimates. One component of the statistics is the total number of entries in each table and index, as well as the number of disk blocks occupied by each table and index. This information is kept in the table pg_class, in the columns reltuples and relpages. We can look at it with queries similar to this one: SELECT relname, relkind, reltuples, relpages FROM pg_class WHERE relname LIKE 'tenk1%'; relname | relkind | reltuples | relpages ----------------------+---------+-----------+---------- tenk1 | r | 10000 | 358 tenk1_hundred | i | 10000 | 30 tenk1_thous_tenthous | i | 10000 | 30 tenk1_unique1 | i | 10000 | 30 tenk1_unique2 | i | 10000 | 30 (5 rows) Here we can see that tenk1 contains 10000 rows, as do its indexes, but the indexes are (unsurprisingly) much smaller than the table. For efficiency reasons, reltuples and relpages are not updated on-the-fly, and so they usually contain somewhat out-of-date values. They are updated by VACUUM, ANALYZE, and a few DDL commands such as CREATE INDEX. A VACUUM or ANALYZE operation that does not scan the entire table (which is commonly the case) will incrementally update the reltuples count on the basis of the part of the table it did scan, resulting in an approximate value. In any case, the planner will scale the values it finds in pg_class to match the current physical table size, thus obtaining a closer approximation. Most queries retrieve only a fraction of the rows in a table, due to WHERE clauses that restrict the rows to be examined. The planner thus needs to make an estimate of the selectivity of WHERE clauses, that is, the fraction of rows that match each condition in the WHERE clause. The information used for this task is stored in the pg_statistic system catalog. Entries in pg_statistic are updated by the ANALYZE and VACUUM ANALYZE commands, and are always approximate even when freshly updated. Rather than look at pg_statistic directly, it’s better to look at its view pg_stats when examining the statistics manually. pg_stats is designed to be more easily readable. Furthermore, pg_stats is readable by all, whereas pg_statistic is only readable by a superuser. (This prevents unprivileged users from learning something about the contents of other people’s tables from the statistics. The pg_stats view is restricted to show only rows about tables that the current user can read.) For example, we might do: SELECT attname, inherited, n_distinct, array_to_string(most_common_vals, E'\\n') as most_common_vals FROM pg_stats WHERE tablename = 'road'; attname | inherited | n_distinct | most_common_vals ---------+-----------+------------+------------------------------------ name | f | -0.363388 | I- 580 Ramp+ | | | I- 880 Ramp+ | | | Sp Railroad + | | | I- 580 + | | | I- 680 Ramp name | t | -0.284859 | I- 880 Ramp+ | | | I- 580 Ramp+ | | | I- 680 Ramp+ | | | I- 580 + | | | State Hwy 13 Ramp (2 rows) Note that two rows are displayed for the same column, one corresponding to the complete inheritance hierarchy starting at the road table (inherited=t), and another one including only the road table itself (inherited=f). The amount of information stored in pg_statistic by ANALYZE, in particular the maximum number of entries in the most_common_vals and histogram_bounds arrays for each column, can be set on a column-by-column basis using the ALTER TABLE SET STATISTICS command, or globally by setting the default_statistics_target configuration variable. The default limit is presently 100 entries. Raising the limit might allow more accurate planner estimates to be made, particularly for columns with irregular data distributions, at the price of consuming more space in pg_statistic and slightly more time to compute the estimates. Conversely, a lower limit might be sufficient for columns with simple data distributions. Further details about the planner’s use of statistics can be found in doc. It is common to see slow queries running bad execution plans because multiple columns used in the query clauses are correlated. The planner normally assumes that multiple conditions are independent of each other, an assumption that does not hold when column values are correlated. Regular statistics, because of their per-individual-column nature, cannot capture any knowledge about cross-column correlation. However, IvorySQL has the ability to compute multivariate statistics, which can capture such information. Because the number of possible column combinations is very large, it’s impractical to compute multivariate statistics automatically. Instead, extended statistics objects, more often called just statistics objects, can be created to instruct the server to obtain statistics across interesting sets of columns. Statistics objects are created using the CREATE STATISTICS command. Creation of such an object merely creates a catalog entry expressing interest in the statistics. Actual data collection is performed by ANALYZE (either a manual command, or background auto-analyze). The collected values can be examined in the pg_statistic_ext_data catalog. ANALYZE computes extended statistics based on the same sample of table rows that it takes for computing regular single-column statistics. Since the sample size is increased by increasing the statistics target for the table or any of its columns (as described in the previous section), a larger statistics target will normally result in more accurate extended statistics, as well as more time spent calculating them. The following subsections describe the kinds of extended statistics that are currently supported. The simplest kind of extended statistics tracks functional dependencies, a concept used in definitions of database normal forms. We say that column b is functionally dependent on column a if knowledge of the value of a is sufficient to determine the value of b, that is there are no two rows having the same value of a but different values of b. In a fully normalized database, functional dependencies should exist only on primary keys and superkeys. However, in practice many data sets are not fully normalized for various reasons; intentional denormalization for performance reasons is a common example. Even in a fully normalized database, there may be partial correlation between some columns, which can be expressed as partial functional dependency. The existence of functional dependencies directly affects the accuracy of estimates in certain queries. If a query contains conditions on both the independent and the dependent column(s), the conditions on the dependent columns do not further reduce the result size; but without knowledge of the functional dependency, the query planner will assume that the conditions are independent, resulting in underestimating the result size. To inform the planner about functional dependencies, ANALYZE can collect measurements of cross-column dependency. Assessing the degree of dependency between all sets of columns would be prohibitively expensive, so data collection is limited to those groups of columns appearing together in a statistics object defined with the dependencies option. It is advisable to create dependencies statistics only for column groups that are strongly correlated, to avoid unnecessary overhead in both ANALYZE and later query planning. Here is an example of collecting functional-dependency statistics: CREATE STATISTICS stts (dependencies) ON city, zip FROM zipcodes; ANALYZE zipcodes; SELECT stxname, stxkeys, stxddependencies FROM pg_statistic_ext join pg_statistic_ext_data on (oid = stxoid) WHERE stxname = 'stts'; stxname | stxkeys | stxddependencies ---------+---------+------------------------------------------ stts | 1 5 | {\"1 => 5\": 1.000000, \"5 => 1\": 0.423130} (1 row) Here it can be seen that column 1 (zip code) fully determines column 5 (city) so the coefficient is 1.0, while city only determines zip code about 42% of the time, meaning that there are many cities (58%) that are represented by more than a single ZIP code. When computing the selectivity for a query involving functionally dependent columns, the planner adjusts the per-condition selectivity estimates using the dependency coefficients so as not to produce an underestimate. Functional dependencies are currently only applied when considering simple equality conditions that compare columns to constant values, and IN clauses with constant values. They are not used to improve estimates for equality conditions comparing two columns or comparing a column to an expression, nor for range clauses, LIKE or any other type of condition. When estimating with functional dependencies, the planner assumes that conditions on the involved columns are compatible and hence redundant. If they are incompatible, the correct estimate would be zero rows, but that possibility is not considered. For example, given a query like SELECT * FROM zipcodes WHERE city = 'San Francisco' AND zip = '94105'; the planner will disregard the city clause as not changing the selectivity, which is correct. However, it will make the same assumption about SELECT * FROM zipcodes WHERE city = 'San Francisco' AND zip = '90210'; even though there will really be zero rows satisfying this query. Functional dependency statistics do not provide enough information to conclude that, however. In many practical situations, this assumption is usually satisfied; for example, there might be a GUI in the application that only allows selecting compatible city and ZIP code values to use in a query. But if that’s not the case, functional dependencies may not be a viable option. Single-column statistics store the number of distinct values in each column. Estimates of the number of distinct values when combining more than one column (for example, for GROUP BY a, b) are frequently wrong when the planner only has single-column statistical data, causing it to select bad plans. To improve such estimates, ANALYZE can collect n-distinct statistics for groups of columns. As before, it’s impractical to do this for every possible column grouping, so data is collected only for those groups of columns appearing together in a statistics object defined with the ndistinct option. Data will be collected for each possible combination of two or more columns from the set of listed columns. Continuing the previous example, the n-distinct counts in a table of ZIP codes might look like the following: CREATE STATISTICS stts2 (ndistinct) ON city, state, zip FROM zipcodes; ANALYZE zipcodes; SELECT stxkeys AS k, stxdndistinct AS nd FROM pg_statistic_ext join pg_statistic_ext_data on (oid = stxoid) WHERE stxname = 'stts2'; -[ RECORD 1 ]-------------------------------------------------------- k | 1 2 5 nd | {\"1, 2\": 33178, \"1, 5\": 33178, \"2, 5\": 27435, \"1, 2, 5\": 33178} (1 row) This indicates that there are three combinations of columns that have 33178 distinct values: ZIP code and state; ZIP code and city; and ZIP code, city and state (the fact that they are all equal is expected given that ZIP code alone is unique in this table). On the other hand, the combination of city and state has only 27435 distinct values. It’s advisable to create ndistinct statistics objects only on combinations of columns that are actually used for grouping, and for which misestimation of the number of groups is resulting in bad plans. Otherwise, the ANALYZE cycles are just wasted. Another type of statistic stored for each column are most-common value lists. This allows very accurate estimates for individual columns, but may result in significant misestimates for queries with conditions on multiple columns. To improve such estimates, ANALYZE can collect MCV lists on combinations of columns. Similarly to functional dependencies and n-distinct coefficients, it’s impractical to do this for every possible column grouping. Even more so in this case, as the MCV list (unlike functional dependencies and n-distinct coefficients) does store the common column values. So data is collected only for those groups of columns appearing together in a statistics object defined with the mcv option. Continuing the previous example, the MCV list for a table of ZIP codes might look like the following (unlike for simpler types of statistics, a function is required for inspection of MCV contents): CREATE STATISTICS stts3 (mcv) ON city, state FROM zipcodes; ANALYZE zipcodes; SELECT m.* FROM pg_statistic_ext join pg_statistic_ext_data on (oid = stxoid), pg_mcv_list_items(stxdmcv) m WHERE stxname = 'stts3'; index | values | nulls | frequency | base_frequency -------+------------------------+-------+-----------+---------------- 0 | {Washington, DC} | {f,f} | 0.003467 | 2.7e-05 1 | {Apo, AE} | {f,f} | 0.003067 | 1.9e-05 2 | {Houston, TX} | {f,f} | 0.002167 | 0.000133 3 | {El Paso, TX} | {f,f} | 0.002 | 0.000113 4 | {New York, NY} | {f,f} | 0.001967 | 0.000114 5 | {Atlanta, GA} | {f,f} | 0.001633 | 3.3e-05 6 | {Sacramento, CA} | {f,f} | 0.001433 | 7.8e-05 7 | {Miami, FL} | {f,f} | 0.0014 | 6e-05 8 | {Dallas, TX} | {f,f} | 0.001367 | 8.8e-05 9 | {Chicago, IL} | {f,f} | 0.001333 | 5.1e-05 ... (99 rows) This indicates that the most common combination of city and state is Washington in DC, with actual frequency (in the sample) about 0.35%. The base frequency of the combination (as computed from the simple per-column frequencies) is only 0.0027%, resulting in two orders of magnitude under-estimates. It’s advisable to create MCV statistics objects only on combinations of columns that are actually used in conditions together, and for which misestimation of the number of groups is resulting in bad plans. Otherwise, the ANALYZE and planning cycles are just wasted. It is possible to control the query planner to some extent by using the explicit JOIN syntax. To see why this matters, we first need some background. In a simple join query, such as: SELECT * FROM a, b, c WHERE a.id = b.id AND b.ref = c.id; the planner is free to join the given tables in any order. For example, it could generate a query plan that joins A to B, using the WHERE condition a.id = b.id, and then joins C to this joined table, using the other WHERE condition. Or it could join B to C and then join A to that result. Or it could join A to C and then join them with B — but that would be inefficient, since the full Cartesian product of A and C would have to be formed, there being no applicable condition in the WHERE clause to allow optimization of the join. (All joins in the IvorySQL executor happen between two input tables, so it’s necessary to build up the result in one or another of these fashions.) The important point is that these different join possibilities give semantically equivalent results but might have hugely different execution costs. Therefore, the planner will explore all of them to try to find the most efficient query plan. When a query only involves two or three tables, there aren’t many join orders to worry about. But the number of possible join orders grows exponentially as the number of tables expands. Beyond ten or so input tables it’s no longer practical to do an exhaustive search of all the possibilities, and even for six or seven tables planning might take an annoyingly long time. When there are too many input tables, the IvorySQL planner will switch from exhaustive search to a genetic probabilistic search through a limited number of possibilities. (The switch-over threshold is set by the geqo_threshold run-time parameter.) The genetic search takes less time, but it won’t necessarily find the best possible plan. When the query involves outer joins, the planner has less freedom than it does for plain (inner) joins. For example, consider: SELECT * FROM a LEFT JOIN (b JOIN c ON (b.ref = c.id)) ON (a.id = b.id); Although this query’s restrictions are superficially similar to the previous example, the semantics are different because a row must be emitted for each row of A that has no matching row in the join of B and C. Therefore the planner has no choice of join order here: it must join B to C and then join A to that result. Accordingly, this query takes less time to plan than the previous query. In other cases, the planner might be able to determine that more than one join order is safe. For example, given: SELECT * FROM a LEFT JOIN b ON (a.bid = b.id) LEFT JOIN c ON (a.cid = c.id); it is valid to join A to either B or C first. Currently, only FULL JOIN completely constrains the join order. Most practical cases involving LEFT JOIN or RIGHT JOIN can be rearranged to some extent. Explicit inner join syntax (INNER JOIN, CROSS JOIN, or unadorned JOIN) is semantically the same as listing the input relations in FROM, so it does not constrain the join order. Even though most kinds of JOIN don’t completely constrain the join order, it is possible to instruct the IvorySQL query planner to treat all JOIN clauses as constraining the join order anyway. For example, these three queries are logically equivalent: SELECT * FROM a, b, c WHERE a.id = b.id AND b.ref = c.id; SELECT * FROM a CROSS JOIN b CROSS JOIN c WHERE a.id = b.id AND b.ref = c.id; SELECT * FROM a JOIN (b JOIN c ON (b.ref = c.id)) ON (a.id = b.id); But if we tell the planner to honor the JOIN order, the second and third take less time to plan than the first. This effect is not worth worrying about for only three tables, but it can be a lifesaver with many tables. To force the planner to follow the join order laid out by explicit `JOIN`s, set the join_collapse_limit run-time parameter to 1. (Other possible values are discussed below.) You do not need to constrain the join order completely in order to cut search time, because it’s OK to use JOIN operators within items of a plain FROM list. For example, consider: SELECT * FROM a CROSS JOIN b, c, d, e WHERE ...; With join_collapse_limit = 1, this forces the planner to join A to B before joining them to other tables, but doesn’t constrain its choices otherwise. In this example, the number of possible join orders is reduced by a factor of 5. Constraining the planner’s search in this way is a useful technique both for reducing planning time and for directing the planner to a good query plan. If the planner chooses a bad join order by default, you can force it to choose a better order via JOIN syntax — assuming that you know of a better order, that is. Experimentation is recommended. A closely related issue that affects planning time is collapsing of subqueries into their parent query. For example, consider: SELECT * FROM x, y, (SELECT * FROM a, b, c WHERE something) AS ss WHERE somethingelse; This situation might arise from use of a view that contains a join; the view’s SELECT rule will be inserted in place of the view reference, yielding a query much like the above. Normally, the planner will try to collapse the subquery into the parent, yielding: SELECT * FROM x, y, a, b, c WHERE something AND somethingelse; This usually results in a better plan than planning the subquery separately. (For example, the outer WHERE conditions might be such that joining X to A first eliminates many rows of A, thus avoiding the need to form the full logical output of the subquery.) But at the same time, we have increased the planning time; here, we have a five-way join problem replacing two separate three-way join problems. Because of the exponential growth of the number of possibilities, this makes a big difference. The planner tries to avoid getting stuck in huge join search problems by not collapsing a subquery if more than from_collapse_limit FROM items would result in the parent query. You can trade off planning time against quality of plan by adjusting this run-time parameter up or down. from_collapse_limit and join_collapse_limit are similarly named because they do almost the same thing: one controls when the planner will “flatten out” subqueries, and the other controls when it will flatten out explicit joins. Typically you would either set join_collapse_limit equal to from_collapse_limit (so that explicit joins and subqueries act similarly) or set join_collapse_limit to 1 (if you want to control join order with explicit joins). But you might set them differently if you are trying to fine-tune the trade-off between planning time and run time. One might need to insert a large amount of data when first populating a database. This section contains some suggestions on how to make this process as efficient as possible. When using multiple INSERT`s, turn off autocommit and just do one commit at the end. (In plain SQL, this means issuing `BEGIN at the start and COMMIT at the end. Some client libraries might do this behind your back, in which case you need to make sure the library does it when you want it done.) If you allow each insertion to be committed separately, IvorySQL is doing a lot of work for each row that is added. An additional benefit of doing all insertions in one transaction is that if the insertion of one row were to fail then the insertion of all rows inserted up to that point would be rolled back, so you won’t be stuck with partially loaded data. Use COPY to load all the rows in one command, instead of using a series of INSERT commands. The COPY command is optimized for loading large numbers of rows; it is less flexible than INSERT, but incurs significantly less overhead for large data loads. Since COPY is a single command, there is no need to disable autocommit if you use this method to populate a table. If you cannot use COPY, it might help to use PREPARE to create a prepared INSERT statement, and then use EXECUTE as many times as required. This avoids some of the overhead of repeatedly parsing and planning INSERT. Different interfaces provide this facility in different ways; look for “prepared statements” in the interface documentation. Note that loading a large number of rows using COPY is almost always faster than using INSERT, even if PREPARE is used and multiple insertions are batched into a single transaction. COPY is fastest when used within the same transaction as an earlier CREATE TABLE or TRUNCATE command. In such cases no WAL needs to be written, because in case of an error, the files containing the newly loaded data will be removed anyway. However, this consideration only applies when wal_level is minimal as all commands must write WAL otherwise. If you are loading a freshly created table, the fastest method is to create the table, bulk load the table’s data using COPY, then create any indexes needed for the table. Creating an index on pre-existing data is quicker than updating it incrementally as each row is loaded. If you are adding large amounts of data to an existing table, it might be a win to drop the indexes, load the table, and then recreate the indexes. Of course, the database performance for other users might suffer during the time the indexes are missing. One should also think twice before dropping a unique index, since the error checking afforded by the unique constraint will be lost while the index is missing. Just as with indexes, a foreign key constraint can be checked “in bulk” more efficiently than row-by-row. So it might be useful to drop foreign key constraints, load data, and re-create the constraints. Again, there is a trade-off between data load speed and loss of error checking while the constraint is missing. What’s more, when you load data into a table with existing foreign key constraints, each new row requires an entry in the server’s list of pending trigger events (since it is the firing of a trigger that checks the row’s foreign key constraint). Loading many millions of rows can cause the trigger event queue to overflow available memory, leading to intolerable swapping or even outright failure of the command. Therefore it may be necessary, not just desirable, to drop and re-apply foreign keys when loading large amounts of data. If temporarily removing the constraint isn’t accept. Temporarily increasing the maintenance_work_mem configuration variable when loading large amounts of data can lead to improved performance. This will help to speed up CREATE INDEX commands and ALTER TABLE ADD FOREIGN KEY commands. It won’t do much for COPY itself, so this advice is only useful when you are using one or both of the above techniques. Temporarily increasing the max_wal_size configuration variable can also make large data loads faster. This is because loading a large amount of data into IvorySQL will cause checkpoints to occur more often than the normal checkpoint frequency (specified by the checkpoint_timeout configuration variable). Whenever a checkpoint occurs, all dirty pages must be flushed to disk. By increasing max_wal_size temporarily during bulk data loads, the number of checkpoints that are required can be reduced. When loading large amounts of data into an installation that uses WAL archiving or streaming replication, it might be faster to take a new base backup after the load has completed than to process a large amount of incremental WAL data. To prevent incremental WAL logging while loading, disable archiving and streaming replication, by setting wal_level to minimal, archive_mode to off, and max_wal_senders to zero. But note that changing these settings requires a server restart, and makes any base backups taken before unavailable for archive recovery and standby server, which may lead to data loss. Aside from avoiding the time for the archiver or WAL sender to process the WAL data, doing this will actually make certain commands faster, because they do not to write WAL at all if wal_level is minimal and the current subtransaction (or top-level transaction) created or truncated the table or index they change. (They can guarantee crash safety more cheaply by doing an fsync at the end than by writing WAL.) Whenever you have significantly altered the distribution of data within a table, running ANALYZE is strongly recommended. This includes bulk loading large amounts of data into the table. Running ANALYZE (or VACUUM ANALYZE) ensures that the planner has up-to-date statistics about the table. With no statistics or obsolete statistics, the planner might make poor decisions during query planning, leading to poor performance on any tables with inaccurate or nonexistent statistics. Note that if the autovacuum daemon is enabled, it might run ANALYZE automatically. Dump scripts generated by pg_dump automatically apply several, but not all, of the above guidelines. To restore a pg_dump dump as quickly as possible, you need to do a few extra things manually. (Note that these points apply while restoring a dump, not while creating it. The same points apply whether loading a text dump with psql or using pg_restore to load from a pg_dump archive file.) By default, pg_dump uses COPY, and when it is generating a complete schema-and-data dump, it is careful to load data before creating indexes and foreign keys. So in this case several guidelines are handled automatically. What is left for you to do is to: Set appropriate (i.e., larger than normal) values for maintenance_work_mem and max_wal_size. If using WAL archiving or streaming replication, consider disabling them during the restore. To do that, set archive_mode to off, wal_level to minimal, and max_wal_senders to zero before loading the dump. Afterwards, set them back to the right values and take a fresh base backup. Experiment with the parallel dump and restore modes of both pg_dump and pg_restore and find the optimal number of concurrent jobs to use. Dumping and restoring in parallel by means of the -j option should give you a significantly higher performance over the serial mode. Consider whether the whole dump should be restored as a single transaction. To do that, pass the -1 or --single-transaction command-line option to psql or pg_restore. When using this mode, even the smallest of errors will rollback the entire restore, possibly discarding many hours of processing. Depending on how interrelated the data is, that might seem preferable to manual cleanup, or not. COPY commands will run fastest if you use a single transaction and have WAL archiving turned off. If multiple CPUs are available in the database server, consider using pg_restore’s --jobs option. This allows concurrent data loading and index creation. Run ANALYZE afterwards. Durability is a database feature that guarantees the recording of committed transactions even if the server crashes or loses power. However, durability adds significant database overhead, so if your site does not require such a guarantee, IvorySQL can be configured to run much faster. The following are configuration changes you can make to improve performance in such cases. Except as noted below, durability is still guaranteed in case of a crash of the database software; only an abrupt operating system crash creates a risk of data loss or corruption when these settings are used. Place the database cluster’s data directory in a memory-backed file system (i.e., RAM disk). This eliminates all database disk I/O, but limits data storage to the amount of available memory (and perhaps swap). Turn off fsync; there is no need to flush data to disk. Turn off synchronous_commit; there might be no need to force WAL writes to disk on every commit. This setting does risk transaction loss (though not data corruption) in case of a crash of the database. Turn off full_page_writes; there is no need to guard against partial page writes. Increase max_wal_size and checkpoint_timeout; this reduces the frequency of checkpoints, but increases the storage requirements of /pg_wal. Create unlogged tables to avoid WAL writes, though it makes the tables non-crash-safe.","title":"Operation and maintenance management guide","component":"ivorysql-doc","version":"master","name":"operation_guide","url":"/ivorysql-doc/master/operation_guide.html","titles":[{"text":"1. Upgrade IvorySQL version","hash":"upgrade-ivorysql-version","id":1},{"text":"1.1. Overview of upgrade scheme","hash":"overview-of-upgrade-scheme","id":2},{"text":"1.2. Upgrade data via pg_dumpall","hash":"upgrade-data-via-pg_dumpall","id":3},{"text":"1.3. Upgrade with the pg_upgrade utility","hash":"upgrade-with-the-pg_upgrade-utility","id":4},{"text":"1.4. Upgrade data by copying","hash":"upgrade-data-by-copying","id":5},{"text":"2. Managing IvorySQL Versions","hash":"managing-ivorysql-versions","id":6},{"text":"3. Managing IvorySQL database access","hash":"managing-ivorysql-database-access","id":7},{"text":"4. Defining Data Objects","hash":"defining-data-objects","id":8},{"text":"4.1. VARCHAR2","hash":"varchar2","id":9},{"text":"4.1.1. Overview","hash":"overview","id":10},{"text":"4.1.2. Grammar","hash":"grammar","id":11},{"text":"4.1.3. Use Cases","hash":"use-cases","id":12},{"text":"5. Search Data","hash":"search-data","id":13},{"text":"6. Use of foreign data","hash":"use-of-foreign-data","id":14},{"text":"7. Backup and Restore","hash":"backup-and-restore","id":15},{"text":"7.1. SQL Dump","hash":"sql-dump","id":16},{"text":"7.1.1. Restoring the Dump","hash":"restoring-the-dump","id":17},{"text":"7.1.2. Using pg_dumpall","hash":"using-pg_dumpall","id":18},{"text":"7.1.3. Handling Large Databases","hash":"handling-large-databases","id":19},{"text":"7.2. File System Level Backup","hash":"file-system-level-backup","id":20},{"text":"7.3. Continuous Archiving and Point-in-Time Recovery (PITR)","hash":"continuous-archiving-and-point-in-time-recovery-pitr","id":21},{"text":"8. Loading and unloading data","hash":"loading-and-unloading-data","id":22},{"text":"8.1. Synopsis","hash":"synopsis","id":23},{"text":"8.2. Outputs","hash":"outputs","id":24},{"text":"8.3. Notes","hash":"notes","id":25},{"text":"8.4. File Formats","hash":"file-formats","id":26},{"text":"8.4.1. Text Format","hash":"text-format","id":27},{"text":"8.4.2. CSV Format","hash":"csv-format","id":28},{"text":"8.4.3. Binary Format","hash":"binary-format","id":29},{"text":"8.4.4. File Trailer","hash":"file-trailer","id":30},{"text":"8.5. Examples","hash":"examples","id":31},{"text":"9. Performance Tips","hash":"performance-tips","id":32},{"text":"9.1. Using EXPLAIN","hash":"using-explain","id":33},{"text":"9.1.1. EXPLAIN Basics","hash":"explain-basics","id":34},{"text":"9.1.2. EXPLAIN ANALYZE","hash":"explain-analyze","id":35},{"text":"9.1.3. Caveats","hash":"caveats","id":36},{"text":"9.2. Statistics Used by the Planner","hash":"statistics-used-by-the-planner","id":37},{"text":"9.2.1. Single-Column Statistics","hash":"single-column-statistics","id":38},{"text":"9.2.2. Extended Statistics","hash":"extended-statistics","id":39},{"text":"9.2.2.1. Functional Dependencies","hash":"functional-dependencies","id":40},{"text":"9.2.2.1.1. Limitations of Functional Dependencies","hash":"limitations-of-functional-dependencies","id":41},{"text":"9.2.2.2. Multivariate N-Distinct Counts","hash":"multivariate-n-distinct-counts","id":42},{"text":"9.2.2.3. Multivariate MCV Lists","hash":"multivariate-mcv-lists","id":43},{"text":"9.3. Controlling the Planner with Explicit JOIN Clauses","hash":"controlling-the-planner-with-explicit-join-clauses","id":44},{"text":"9.4. Populating a Database","hash":"populating-a-database","id":45},{"text":"9.4.1. Disable Autocommit","hash":"disable-autocommit","id":46},{"text":"9.4.2. Use COPY","hash":"use-copy","id":47},{"text":"9.4.3. Remove Indexes","hash":"remove-indexes","id":48},{"text":"9.4.4. Remove Foreign Key Constraints","hash":"remove-foreign-key-constraints","id":49},{"text":"9.4.5. Increase maintenance_work_mem","hash":"increase-maintenance_work_mem","id":50},{"text":"9.4.6. Increase max_wal_size","hash":"increase-max_wal_size","id":51},{"text":"9.4.7. Disable WAL Archival and Streaming Replication","hash":"disable-wal-archival-and-streaming-replication","id":52},{"text":"9.4.8. Run ANALYZE Afterwards","hash":"run-analyze-afterwards","id":53},{"text":"9.4.9. Some Notes about pg_dump","hash":"some-notes-about-pg_dump","id":54},{"text":"9.5. Non-Durable Settings","hash":"non-durable-settings","id":55}]},"8":{"id":8,"text":"[Release Date: Nov 25, 2025] IvorySQL 5.0, based on PostgreSQL 18.0, introduces significant Oracle compatibility improvements, PL/iSQL enhancements, and new globalization capabilities while refreshing packaging, automation, and tooling. For a comprehensive list of updates, please visit our documentation site. PostgreSQL 18.0 An asynchronous I/O (AIO) subsystem that can improve performance of sequential scans, bitmap heap scans, vacuums, and other operations. pg_upgrade now retains optimizer statistics. Support for \"skip scan\" lookups that allow using multicolumn B-tree indexes in more cases. uuidv7() function for generating timestamp-ordered UUIDs. Virtual generated columns that compute their values during read operations. This is now the default for generated columns. OAuth authentication support. OLD and NEW support for RETURNING clauses in INSERT, UPDATE, DELETE, and MERGE commands. Temporal constraints, or constraints over ranges, for PRIMARY KEY, UNIQUE, and FOREIGN KEY constraints. For further details, visit PostgreSQL’s release notes. Oracle-compatible ROWID support: Feature #126 Ensures IvorySQL row identifiers align with Oracle semantics for seamless cross-database tooling. PL/iSQL CALL invocation syntax: Feature #764 Adds the Oracle-style CALL entry point so stored procedures can be invoked consistently. PL/iSQL %ROWTYPE support: Feature #765 Allows variables to mirror entire table or cursor rows for concise PL/iSQL coding. PL/iSQL %TYPE support: Feature #766 Enables variables to adopt the data type of existing columns or variables to reduce drift. Case-sensitive compatibility switch: Feature #767 Preserves identifier case to match Oracle behavior when required. NLS parameter compatibility: Feature #768 Honors Oracle-style NLS settings such as NLS_DATE_FORMAT and NLS_TIMESTAMP_FORMAT. Empty string to NULL translation: Feature #769 Converts zero-length strings to NULL to match Oracle compatibility rules. Parser switching capability: Feature #770 Adds toggles between Oracle and PostgreSQL parsers for per-session flexibility. GB18030 database encoding: Feature #771 Provides GB18030 initialization and create-database options for full Chinese market coverage. Oracle-compatible SYS_GUID: Feature #773 Implements the Oracle SYS_GUID function to generate RAW-based GUIDs. Oracle-compatible SYS_CONTEXT: Feature #774 Delivers the Oracle SYS_CONTEXT API for querying session and environment metadata. Oracle-compatible USERENV: Feature #775 Adds the USERENV function so sessions can inspect Oracle-style contextual details. Oracle-compatible function syntax: Feature #776 Supports Oracle constructs such as EDITIONABLE/NONEDITIONABLE, RETURN, IS, and OUT … NOCOPY options. Oracle-compatible procedure syntax: Feature #777 Enables procedure DDL with Oracle options, EXEC invocation, and ALTER PROCEDURE support. libpq OUT parameter plumbing: Feature #778 Extends client protocol handling so OUT parameters can be consumed like OCI. Procedure OUT parameter support: Feature #779 Allows stored procedures to declare IN, OUT, and IN OUT modes per Oracle conventions. Function OUT parameter support: Feature #780 Permits Oracle-style OUT parameters within functions, including IN OUT combinations. Nested subprograms: Feature #781 Introduces support for declaring functions or procedures within other subprograms, including overloading. Oracle-compatible INSTR: Feature #782 Matches Oracle INSTR behavior for substring searches and position checks. Oracle-compatible FORCE VIEW: Feature #783 Lets views be created even when referenced objects do not yet exist, mirroring Oracle’s FORCE option. Oracle-compatible LIKE operator: Feature #784 Aligns pattern-matching semantics with Oracle for predictable wildcard behavior. Online Experience: IvorySQL v5.0: Featuare #887 An interactive, browser-based environment will be launched to allow users to explore and evaluate IvorySQL v5.0 in real time — no installation required. Packaging for All Platforms: Featuare #949 Provides multi-platform media packages for X86、ARM、MIPS、LoongArch architecture. Containerized Deployment Support (Docker Compose & Docker Swarm): Supports deployment of standalone IvorySQL databases and high-availability clusters in Docker Swarm and Docker Compose environments. Containerized Deployment Support (Kubernetes): Supports deployment of standalone IvorySQL databases and high-availability clusters on Kubernetes (K8S) using Helm. IvorySQL Operator v5 released (Kubernetes): The IvorySQL Operator v5 has been adapted to support IvorySQL v5.0, with upgrades to system component versions and database extension versions. IvorySQL Cloud v5 released (Unified Lifecycle & Visual Control Plane): Offers a fully managed, graphical control plane that handles IvorySQL v5 database subscriptions, orchestrates end-to-end lifecycle operations, and integrates surrounding ecosystem services. pg_cron: Feature #882 Scheduled job execution within the database layer will be available through pg_cron integration. pgAudit: Feature #929 Provides detailed session and/or object audit logging via the standard PostgreSQL logging facility. PostGIS: Feature #880 Spatial data processing and geospatial analytics will be enabled through PostGIS compatibility. pgRouting: Feature #881 Network and routing analysis features will be introduced with pgRouting support. PGroonga: Feature #879 Full-text search capabilities will be enhanced via planned PGroonga support. ddlx: Feature #877 Support for ddlx to enable advanced schema introspection and automated DDL generation. pgsql-http: Feature #883 Allow the database to initiate HTTP/HTTPS requests internally, enabling seamless communication between the database and external web services. system_stats: Feature #946 System level statistics will be provided by system_stats support. plpgsql_check: Feature #915 Static code analysis on PL/pgSQL functions to identify errors, warnings, and potential issues before runtime execution pgvector: Feature #878 Integration with pgvector to empower AI/ML workloads through native vector similarity search. Repaired unused_oids and duplicate_oids catalog tooling so header scans correctly detect conflicts without false positives: Issue #841 Added .gitignore coverage for libpq/ivytest artifacts to prevent generated binaries and logs from polluting developer trees: Issue #843 Extended GitHub workflow regression runs to cover builds configured with --with-libnuma, preventing future breakages on NUMA-enabled hosts: Issue #869 Enabled psql users to access CREATE PACKAGE syntax help via \\h create package, closing the CLI documentation gap for PL/iSQL packages: Issue #936 Eliminated the MainLoop dangling-pointer scenario that triggered intermittent segmentation faults under concurrency stress: Issue #898 Re-enabled oracle_test/modules/*/sql cases by fixing harness assumptions so Oracle-compatibility suites execute end-to-end again: Issue #897 Updated README.md and README_CN.md to reflect IvorySQL v5 feature set, packaging, and onboarding instructions: Issue #896 Corrected globally unique index enforcement so related regression tests now pass reliably across supported platforms: Issue #894 IvorySQL’s development is maintained across four main repositories: IvorySQL database source code: https://github.com/IvorySQL/IvorySQL IvorySQL official website: https://github.com/IvorySQL/Ivory-www IvorySQL documentation: https://github.com/IvorySQL/IvorySQL-docs IvorySQL Docker: https://github.com/IvorySQL/docker_library The following individuals (in alphabetical order) have contributed to this release as patch authors, committers, reviewers, testers, or reporters of issues. Carlos Chong ccwxl Cédric Villemain elodiefb Fawei Zhao Ge Sui Grant Zhou Imran Zaheer jerome-peng Jiaoshun Tian luss Martin Gerhardy msdnchina omstack otegami rophy Shaolin Chu Shawn Yan Shihua Yang Shiji Niu Shuisen Tong shlei6067 sjw1933 Xiangyu Liang Xiaohui Liu Xinjie Lv xuexiaoganghs Xueyu Gao yangchunwanwusheng Yanliang Lei Yasir Hussain Shah Yuan Li Zheng Tao Zhenhao Pan Zhuoyan Shi","title":"","component":"ivorysql-doc","version":"master","name":"release_notes","url":"/ivorysql-doc/master/release_notes.html","titles":[{"text":"1. Version Overview","hash":"version-overview","id":1},{"text":"2. Enhancements","hash":"enhancements","id":2},{"text":"3. New Features","hash":"new-features","id":3},{"text":"3.1. 21 New Oracle Compatibility Features","hash":"21-new-oracle-compatibility-features","id":4},{"text":"3.2. Online Trial and Multi-Platform Distribution Packages","hash":"online-trial-and-multi-platform-distribution-packages","id":5},{"text":"3.3. Cloud-Native & Containerized","hash":"cloud-native-containerized","id":6},{"text":"3.4. Support for 10 Additional PostgreSQL Extensions","hash":"support-for-10-additional-postgresql-extensions","id":7},{"text":"4. Fixed Issues","hash":"fixed-issues","id":8},{"text":"5. Source Code","hash":"source-code","id":9},{"text":"6. Contributors","hash":"contributors","id":10}]},"9":{"id":9,"text":"This part contains reference information for IvorySQL client applications and utilities. Not all of these commands are of general utility; some might require special privileges. The common feature of Client Applications is that they can be run on any host, independent of where the database server resides. When specified on the command line, user and database names have their case preserved — the presence of spaces or special characters might require quoting. Table names and other identifiers do not have their case preserved, except where documented, and might require quoting. category Tool name Description Client Applications clusterdb clusterdb is a utility for reclustering tables in a IvorySQL database. It finds tables that have previously been clustered, and clusters them again on the same index that was last used. Tables that have never been clustered are not affected.clusterdb is a wrapper around the SQL command CLUSTER. There is no effective difference between clustering databases via this utility and via other methods for accessing the server. createdb createdb creates a new IvorySQL database.Normally, the database user who executes this command becomes the owner of the new database. However, a different owner can be specified via the -O option, if the executing user has appropriate privileges.createdb is a wrapper around the SQL command CREATE DATABASE. There is no effective difference between creating databases via this utility and via other methods for accessing the server. createuser createuser creates a new IvorySQL user (or more precisely, a role). Only superusers and users with CREATEROLE privilege can create new users, so createuser must be invoked by someone who can connect as a superuser or a user with CREATEROLE privilege. createuser is a wrapper around the SQL command CREATE ROLE. There is no effective difference between creating users via this utility and via other methods for accessing the server. dropdb dropdb destroys an existing IvorySQL database. The user who executes this command must be a database superuser or the owner of the database.dropdb is a wrapper around the SQL command DROP DATABASE. There is no effective difference between dropping databases via this utility and via other methods for accessing the server. dropuser dropuser removes an existing IvorySQL user. Only superusers and users with the CREATEROLE privilege can remove IvorySQL users. (To remove a superuser, you must yourself be a superuser.)dropuser is a wrapper around the SQL command DROP ROLE. There is no effective difference between dropping users via this utility and via other methods for accessing the server. ecpg ecpg is the embedded SQL preprocessor for C programs. It converts C programs with embedded SQL statements to normal C code by replacing the SQL invocations with special function calls. The output files can then be processed with any C compiler tool chain.ecpg will convert each input file given on the command line to the corresponding C output file. If an input file name does not have any extension, .pgc is assumed. The file’s extension will be replaced by .c to construct the output file name. But the output file name can be overridden using the -o option.If an input file name is just -, ecpg reads the program from standard input (and writes to standard output, unless that is overridden with -o).This reference page does not describe the embedded SQL language. pg_amcheck pg_amcheck supports running amcheck's corruption checking functions against one or more databases, with options to select which schemas, tables and indexes to check, which kinds of checking to perform, and whether to perform the checks in parallel, and if so, the number of parallel connections to establish and use. pg_basebackup pg_basebackup is used to take a base backup of a running IvorySQL database cluster. The backup is taken without affecting other clients of the database, and can be used both for point-in-time recovery and as the starting point for a log-shipping or streaming-replication standby server.pg_basebackup makes an exact copy of the database cluster’s files, while making sure the server is put into and out of backup mode automatically. Backups are always taken of the entire database cluster; it is not possible to back up individual databases or database objects. For selective backups, another tool such as pg_dump must be used.The backup is made over a regular IvorySQL connection that uses the replication protocol. The connection must be made with a user ID that has REPLICATION permissions or is a superuser, and pg_hba.conf must permit the replication connection. The server must also be configured with max_wal_senders set high enough to provide at least one walsender for the backup plus one for WAL streaming (if used).There can be multiple pg_basebackup`s running at the same time, but it is usually better from a performance point of view to take only one backup, and copy the result.pg_basebackup can make a base backup from not only a primary server but also a standby. To take a backup from a standby, set up the standby so that it can accept replication connections (that is, set `max_wal_senders and hot_standby, and configure its pg_hba.conf appropriately). You will also need to enable full_page_writes on the primary. pgbench pgbench is a simple program for running benchmark tests on IvorySQL. It runs the same sequence of SQL commands over and over, possibly in multiple concurrent database sessions, and then calculates the average transaction rate (transactions per second). By default, pgbench tests a scenario that is loosely based on TPC-B, involving five SELECT, UPDATE, and INSERT commands per transaction. However, it is easy to test other cases by writing your own transaction script files. pg_config The pg_config utility prints configuration parameters of the currently installed version of IvorySQL. It is intended, for example, to be used by software packages that want to interface to IvorySQL to facilitate finding the required header files and libraries. pg_dump pg_dump is a utility for backing up a IvorySQL database. It makes consistent backups even if the database is being used concurrently. pg_dump does not block other users accessing the database (readers or writers).pg_dump only dumps a single database. To back up an entire cluster, or to back up global objects that are common to all databases in a cluster (such as roles and tablespaces), use pg_dumpall. Dumps can be output in script or archive file formats. Script dumps are plain-text files containing the SQL commands required to reconstruct the database to the state it was in at the time it was saved. To restore from such a script, feed it to psql. Script files can be used to reconstruct the database even on other machines and other architectures; with some modifications, even on other SQL database products.The alternative archive file formats must be used with pg_restore to rebuild the database. They allow pg_restore to be selective about what is restored, or even to reorder the items prior to being restored. The archive file formats are designed to be portable across architectures.When used with one of the archive file formats and combined with pg_restore, pg_dump provides a flexible archival and transfer mechanism. pg_dump can be used to backup an entire database, then pg_restore can be used to examine the archive and/or select which parts of the database are to be restored. The most flexible output file formats are the “custom” format ( -Fc ) and the “directory” format ( -Fd ). They allow for selection and reordering of all archived items, support parallel restoration, and are compressed by default. The “directory” format is the only format that supports parallel dumps.While running pg_dump, one should examine the output for any warnings (printed on standard error), especially in light of the limitations listed below. pg_dumpall pg_dumpall is a utility for writing out (“dumping”) all IvorySQL databases of a cluster into one script file. The script file contains SQL commands that can be used as input to psql to restore the databases. It does this by calling pg_dump for each database in the cluster. pg_dumpall also dumps global objects that are common to all databases, namely database roles, tablespaces, and privilege grants for configuration parameters. (pg_dump does not save these objects.)Since pg_dumpall reads tables from all databases you will most likely have to connect as a database superuser in order to produce a complete dump. Also you will need superuser privileges to execute the saved script in order to be allowed to add roles and create databases.The SQL script will be written to the standard output. Use the -f/--file option or shell operators to redirect it into a file.pg_dumpall needs to connect several times to the IvorySQL server (once per database). If you use password authentication it will ask for a password each time. It is convenient to have a ~/.pgpass file in such cases. pg_isready pg_isready is a utility for checking the connection status of a IvorySQL database server. The exit status specifies the result of the connection check. pg_receivewal pg_receivewal is used to stream the write-ahead log from a running IvorySQL cluster. The write-ahead log is streamed using the streaming replication protocol, and is written to a local directory of files. This directory can be used as the archive location for doing a restore using point-in-time recovery.pg_receivewal streams the write-ahead log in real time as it’s being generated on the server, and does not wait for segments to complete like archive_command does. For this reason, it is not necessary to set archive_timeout when using pg_receivewal.Unlike the WAL receiver of a IvorySQL standby server, pg_receivewal by default flushes WAL data only when a WAL file is closed. The option --synchronous must be specified to flush WAL data in real time. Since pg_receivewal does not apply WAL, you should not allow it to become a synchronous standby when synchronous_commit equals remote_apply. If it does, it will appear to be a standby that never catches up, and will cause transaction commits to block. To avoid this, you should either configure an appropriate value for synchronous_standby_names, or specify application_name for pg_receivewal that does not match it, or change the value of synchronous_commit to something other than remote_apply.The write-ahead log is streamed over a regular IvorySQL connection and uses the replication protocol. The connection must be made with a user having REPLICATION permissions or a superuser, and pg_hba.conf must permit the replication connection. The server must also be configured with max_wal_senders set high enough to leave at least one session available for the stream. pg_recvlogical pg_recvlogical controls logical decoding replication slots and streams data from such replication slots.It creates a replication-mode connection, so it is subject to the same constraints as pg_receivewal, plus those for logical replication .pg_recvlogical has no equivalent to the logical decoding SQL interface’s peek and get modes. It sends replay confirmations for data lazily as it receives it and on clean exit. To examine pending data on a slot without consuming it, use pg_logical_slot_peek_changes. pg_restore pg_restore is a utility for restoring a IvorySQL database from an archive created by pg_dump in one of the non-plain-text formats. It will issue the commands necessary to reconstruct the database to the state it was in at the time it was saved. The archive files also allow pg_restore to be selective about what is restored, or even to reorder the items prior to being restored. The archive files are designed to be portable across architectures.pg_restore can operate in two modes. If a database name is specified, pg_restore connects to that database and restores archive contents directly into the database. Otherwise, a script containing the SQL commands necessary to rebuild the database is created and written to a file or standard output. This script output is equivalent to the plain text output format of pg_dump. Some of the options controlling the output are therefore analogous to pg_dump options.Obviously, pg_restore cannot restore information that is not present in the archive file. For instance, if the archive was made using the “dump data as INSERT commands” option, pg_restore will not be able to load the data using COPY statements. pg_verifybackup pg_verifybackup is used to check the integrity of a database cluster backup taken using pg_basebackup against a backup_manifest generated by the server at the time of the backup. The backup must be stored in the \"plain\" format; a \"tar\" format backup can be checked after extracting it.It is important to note that the validation which is performed by pg_verifybackup does not and cannot include every check which will be performed by a running server when attempting to make use of the backup. Even if you use this tool, you should still perform test restores and verify that the resulting databases work as expected and that they appear to contain the correct data. However, pg_verifybackup can detect many problems that commonly occur due to storage problems or user error.Backup verification proceeds in four stages. First, pg_verifybackup reads the backup_manifest file. If that file does not exist, cannot be read, is malformed, or fails verification against its own internal checksum, pg_verifybackup will terminate with a fatal error. psql psql is a terminal-based front-end to IvorySQL. It enables you to type in queries interactively, issue them to IvorySQL, and see the query results. Alternatively, input can be from a file or from command line arguments. In addition, psql provides a number of meta-commands and various shell-like features to facilitate writing scripts and automating a wide variety of tasks. reindexdb reindexdb is a utility for rebuilding indexes in a IvorySQL database.reindexdb is a wrapper around the SQL command REINDEX. There is no effective difference between reindexing databases via this utility and via other methods for accessing the server. vacuumdb vacuumdb is a utility for cleaning a IvorySQL database. vacuumdb will also generate internal statistics used by the IvorySQL query optimizer. Server Applications initdb(1) initdb creates a new IvorySQL database cluster. A database cluster is a collection of databases that are managed by a single server instance.Creating a database cluster consists of creating the directories in which the database data will live, generating the shared catalog tables (tables that belong to the whole cluster rather than to any particular database), and creating the postgres, template1, and template0 databases. The postgres database is a default database meant for use by users, utilities and third party applications. template1 and template0 are meant as source databases to be copied by later CREATE DATABASE commands. template0 should never be modified, but you can add objects to template1, which by default will be copied into databases created later.Although initdb will attempt to create the specified data directory, it might not have permission if the parent directory of the desired data directory is root-owned. To initialize in such a setup, create an empty data directory as root, then use chown to assign ownership of that directory to the database user account, then su to become the database user to run initdb. Server Applications initdb(2) initdb must be run as the user that will own the server process, because the server needs to have access to the files and directories that initdb creates. Since the server cannot be run as root, you must not run initdb as root either. (It will in fact refuse to do so.)For security reasons the new cluster created by initdb will only be accessible by the cluster owner by default. The --allow-group-access option allows any user in the same group as the cluster owner to read files in the cluster. This is useful for performing backups as a non-privileged user.initdb initializes the database cluster’s default locale and character set encoding. These can also be set separately for each database when it is created. initdb determines those settings for the template databases, which will serve as the default for all other databases. By default, initdb uses the locale provider libc, takes the locale settings from the environment, and determines the encoding from the locale settings. This is almost always sufficient, unless there are special requirements.To choose a different locale for the cluster, use the option --locale. There are also individual options --lc-* (see below) to set values for the individual locale categories. Note that inconsistent settings for different locale categories can give nonsensical results, so this should be used with care.Alternatively, the ICU library can be used to provide locale services. (Again, this only sets the default for subsequently created databases.) To select this option, specify --locale-provider=icu. To choose the specific ICU locale ID to apply, use the option --icu-locale. Note that for implementation reasons and to support legacy code, initdb will still select and initialize libc locale settings when the ICU locale provider is used.When initdb runs, it will print out the locale settings it has chosen. If you have complex requirements or specified multiple options, it is advisable to check that the result matches what was intended. pg_archivecleanup pg_archivecleanup is designed to be used as an archive_cleanup_command to clean up WAL file archives when running as a standby server .pg_archivecleanup can also be used as a standalone program to clean WAL file archives. pg_checksums pg_checksums checks, enables or disables data checksums in a IvorySQL cluster. The server must be shut down cleanly before running pg_checksums. When verifying checksums, the exit status is zero if there are no checksum errors, and nonzero if at least one checksum failure is detected. When enabling or disabling checksums, the exit status is nonzero if the operation failed.When verifying checksums, every file in the cluster is scanned. When enabling checksums, each relation file block with a changed checksum is rewritten in-place. Disabling checksums only updates the file pg_control. pg_controldata pg_controldata prints information initialized during initdb, such as the catalog version. It also shows information about write-ahead logging and checkpoint processing. This information is cluster-wide, and not specific to any one database.This utility can only be run by the user who initialized the cluster because it requires read access to the data directory. You can specify the data directory on the command line, or use the environment variable PGDATA. This utility supports the options -V and --version, which print the pg_controldata version and exit. It also supports options -? and --help, which output the supported arguments. pg_ctl pg_ctl is a utility for initializing a IvorySQL database cluster, starting, stopping, or restarting the IvorySQL database server (postgres), or displaying the status of a running server. Although the server can be started manually, pg_ctl encapsulates tasks such as redirecting log output and properly detaching from the terminal and process group. It also provides convenient options for controlled shutdown. pg_resetwal pg_resetwal clears the write-ahead log (WAL) and optionally resets some other control information stored in the pg_control file. This function is sometimes needed if these files have become corrupted. It should be used only as a last resort, when the server will not start due to such corruption.After running this command, it should be possible to start the server, but bear in mind that the database might contain inconsistent data due to partially-committed transactions. You should immediately dump your data, run initdb, and restore. After restore, check for inconsistencies and repair as needed.This utility can only be run by the user who installed the server, because it requires read/write access to the data directory. For safety reasons, you must specify the data directory on the command line. pg_resetwal does not use the environment variable PGDATA.If pg_resetwal complains that it cannot determine valid data for pg_control, you can force it to proceed anyway by specifying the -f (force) option. In this case plausible values will be substituted for the missing data. Most of the fields can be expected to match, but manual assistance might be needed for the next OID, next transaction ID and epoch, next multitransaction ID and offset, and WAL starting location fields. These fields can be set using the options discussed below. If you are not able to determine correct values for all these fields, -f can still be used, but the recovered database must be treated with even more suspicion than usual: an immediate dump and restore is imperative. Do not execute any data-modifying operations in the database before you dump, as any such action is likely to make the corruption worse. pg_rewind(1) pg_rewind is a tool for synchronizing a IvorySQL cluster with another copy of the same cluster, after the clusters' timelines have diverged. A typical scenario is to bring an old primary server back online after failover as a standby that follows the new primary.After a successful rewind, the state of the target data directory is analogous to a base backup of the source data directory. Unlike taking a new base backup or using a tool like rsync, pg_rewind does not require comparing or copying unchanged relation blocks in the cluster. Only changed blocks from existing relation files are copied; all other files, including new relation files, configuration files, and WAL segments, are copied in full. As such the rewind operation is significantly faster than other approaches when the database is large and only a small fraction of blocks differ between the clusters.pg_rewind examines the timeline histories of the source and target clusters to determine the point where they diverged, and expects to find WAL in the target cluster’s pg_wal directory reaching all the way back to the point of divergence. The point of divergence can be found either on the target timeline, the source timeline, or their common ancestor. In the typical failover scenario where the target cluster was shut down soon after the divergence, this is not a problem, but if the target cluster ran for a long time after the divergence, its old WAL files might no longer be present. In this case, you can manually copy them from the WAL archive to the pg_wal directory, or run pg_rewind with the -c option to automatically retrieve them from the WAL archive. The use of pg_rewind is not limited to failover, e.g., a standby server can be promoted, run some write transactions, and then rewound to become a standby again.After running pg_rewind, WAL replay needs to complete for the data directory to be in a consistent state. pg_rewind(2) When the target server is started again it will enter archive recovery and replay all WAL generated in the source server from the last checkpoint before the point of divergence. If some of the WAL was no longer available in the source server when pg_rewind was run, and therefore could not be copied by the pg_rewind session, it must be made available when the target server is started. This can be done by creating a recovery.signal file in the target data directory and by configuring a suitable restore_command in IvorySQL.conf.pg_rewind requires that the target server either has the wal_log_hints option enabled in IvorySQL.conf or data checksums enabled when the cluster was initialized with initdb. Neither of these are currently on by default. full_page_writes must also be set to on, but is enabled by default. pg_test_fsync pg_test_fsync is intended to give you a reasonable idea of what the fastest wal_sync_method is on your specific system, as well as supplying diagnostic information in the event of an identified I/O problem. However, differences shown by pg_test_fsync might not make any significant difference in real database throughput, especially since many database servers are not speed-limited by their write-ahead logs. pg_test_fsync reports average file sync operation time in microseconds for each wal_sync_method, which can also be used to inform efforts to optimize the value of commit_delay. pg_test_timing pg_test_timing is a tool to measure the timing overhead on your system and confirm that the system time never moves backwards. Systems that are slow to collect timing data can give less accurate EXPLAIN ANALYZE results. pg_upgrade Major IvorySQL releases regularly add new features that often change the layout of the system tables, but the internal data storage format rarely changes. pg_upgrade uses this fact to perform rapid upgrades by creating new system tables and simply reusing the old user data files. If a future major release ever changes the data storage format in a way that makes the old data format unreadable, pg_upgrade will not be usable for such upgrades. (The community will attempt to avoid such situations.)pg_upgrade does its best to make sure the old and new clusters are binary-compatible, e.g., by checking for compatible compile-time settings, including 32/64-bit binaries. It is important that any external modules are also binary compatible, though this cannot be checked by pg_upgrade. pg_waldump pg_waldump displays the write-ahead log (WAL) and is mainly useful for debugging or educational purposes.This utility can only be run by the user who installed the server, because it requires read-only access to the data directory. postgres postgres is the IvorySQL database server. In order for a client application to access a database it connects (over a network or locally) to a running postgres instance. The postgres instance then starts a separate server process to handle the connection. clusterdb [connection-option…] [ --verbose | -v ] [ --table | -t table ] … [dbname] clusterdb` [*`connection-option`*...] [ `--verbose` | `-v` ] `--all` | `-a clusterdb accepts the following command-line arguments: -a --all Cluster all databases. [-d] dbname dbname Specifies the name of the database to be clustered, when -a / --all is not used. If this is not specified, the database name is read from the environment variable PGDATABASE. If that is not set, the user name specified for the connection is used. The dbname can be a connection string. If so, connection string parameters will override any conflicting command line options. -e --echo Echo the commands that clusterdb generates and sends to the server. -q --quiet Do not display progress messages. -t table --table=table Cluster table only. Multiple tables can be clustered by writing multiple -t switches. -v --verbose Print detailed information during processing. -V --version Print the clusterdb version and exit. -? --help Show help about clusterdb command line arguments, and exit.clusterdb also accepts the following command-line arguments for connection parameters: -h host --host=host Specifies the host name of the machine on which the server is running. If the value begins with a slash, it is used as the directory for the Unix domain socket. -p port --port=port Specifies the TCP port or local Unix domain socket file extension on which the server is listening for connections. -U username --username=username User name to connect as. -w --no-password Never issue a password prompt. If the server requires password authentication and a password is not available by other means such as a .pgpass file, the connection attempt will fail. This option can be useful in batch jobs and scripts where no user is present to enter a password. -W --password Force clusterdb to prompt for a password before connecting to a database.This option is never essential, since clusterdb will automatically prompt for a password if the server demands password authentication. However, clusterdb will waste a connection attempt finding out that the server wants a password. In some cases it is worth typing -W to avoid the extra connection attempt. --maintenance-db=dbname Specifies the name of the database to connect to to discover which databases should be clustered, when -a / --all is used. If not specified, the postgres database will be used, or if that does not exist, template1 will be used. This can be a connection string. If so, connection string parameters will override any conflicting command line options. Also, connection string parameters other than the database name itself will be re-used when connecting to other databases. PGDATABASE PGHOST PGPORT PGUSER Default connection parameters PG_COLOR Specifies whether to use color in diagnostic messages. Possible values are always, auto and never. This utility, like most other IvorySQL utilities, also uses the environment variables supported by libpq In case of difficulty, see CLUSTER and psql for discussions of potential problems and error messages. The database server must be running at the targeted host. Also, any default connection settings and environment variables used by the libpq front-end library will apply. To cluster the database test: $ clusterdb test To cluster a single table foo in a database named xyzzy: $ clusterdb --table=foo xyzzy createdb — create a new IvorySQL database createdb [connection-option…] [option…] [dbname [description]] createdb accepts the following command-line arguments: dbname Specifies the name of the database to be created. The name must be unique among all IvorySQL databases in this cluster. The default is to create a database with the same name as the current system user. description Specifies a comment to be associated with the newly created database. -D tablespace --tablespace=tablespace Specifies the default tablespace for the database. (This name is processed as a double-quoted identifier.) -e --echo Echo the commands that createdb generates and sends to the server. -E encoding --encoding=encoding Specifies the character encoding scheme to be used in this database. -l locale --locale=locale Specifies the locale to be used in this database. This is equivalent to specifying both --lc-collate and --lc-ctype. --lc-collate=`locale` Specifies the LC_COLLATE setting to be used in this database. --lc-ctype=locale Specifies the LC_CTYPE setting to be used in this database. --icu-locale=`locale` Specifies the ICU locale ID to be used in this database, if the ICU locale provider is selected. --locale-provider={libc|icu} Specifies the locale provider for the database’s default collation. -O `owner` --owner=`owner` Specifies the database user who will own the new database. (This name is processed as a double-quoted identifier.) -T template --template=template Specifies the template database from which to build this database. (This name is processed as a double-quoted identifier.) -V --version Print the createdb version and exit. -? --help Show help about createdb command line arguments, and exit. The options -D, -l, -E, -O, and -T correspond to options of the underlying SQL command CREATE DATABASE; see there for more information about them. createdb also accepts the following command-line arguments for connection parameters: -h host --host=host Specifies the host name of the machine on which the server is running. If the value begins with a slash, it is used as the directory for the Unix domain socket. -p port --port=port Specifies the TCP port or the local Unix domain socket file extension on which the server is listening for connections. -U username --username=username User name to connect as. -w --no-password Never issue a password prompt. If the server requires password authentication and a password is not available by other means such as a .pgpass file, the connection attempt will fail. This option can be useful in batch jobs and scripts where no user is present to enter a password. -W --password Force createdb to prompt for a password before connecting to a database.This option is never essential, since createdb will automatically prompt for a password if the server demands password authentication. However, createdb will waste a connection attempt finding out that the server wants a password. In some cases it is worth typing -W to avoid the extra connection attempt. --maintenance-db=`dbname` Specifies the name of the database to connect to when creating the new database. If not specified, the postgres database will be used; if that does not exist (or if it is the name of the new database being created), template1 will be used. This can be a connection string. If so, connection string parameters will override any conflicting command line options. PGDATABASE If set, the name of the database to create, unless overridden on the command line. PGHOST PGPORT PGUSER Default connection parameters. PGUSER also determines the name of the database to create, if it is not specified on the command line or by PGDATABASE. PG_COLOR Specifies whether to use color in diagnostic messages. Possible values are always, auto and never. This utility, like most other IvorySQL utilities, also uses the environment variables supported by libpq In case of difficulty, see CREATE DATABASE and psql for discussions of potential problems and error messages. The database server must be running at the targeted host. Also, any default connection settings and environment variables used by the libpq front-end library will apply. To create the database demo using the default database server: $ createdb demo To create the database demo using the server on host eden, port 5000, using the template0 template database, here is the command-line command and the underlying SQL command: $ createdb -p 5000 -h eden -T template0 -e demo CREATE DATABASE demo TEMPLATE template0; createuser — define a new IvorySQL user account createuser [connection-option…] [option…] [username] createuser accepts the following command-line arguments: username Specifies the name of the IvorySQL user to be created. -c number --connection-limit=number Set a maximum number of connections for the new user. The default is to set no limit. -d --createdb The new user will be allowed to create databases. -D --no-createdb The new user will not be allowed to create databases. This is the default. -e --echo Echo the commands that createuser generates and sends to the server. -E --encrypted This option is obsolete but still accepted for backward compatibility. -g role --role=role Indicates role to which this role will be added immediately as a new member. Multiple roles to which this role will be added as a member can be specified by writing multiple -g switches. -i --inherit The new role will automatically inherit privileges of roles it is a member of. This is the default. -I --no-inherit The new role will not automatically inherit privileges of roles it is a member of. --interactive Prompt for the user name if none is specified on the command line, and also prompt for whichever of the options -d / -D, -r / -R, -s / -S is not specified on the command line. -l --login The new user will be allowed to log in (that is, the user name can be used as the initial session user identifier). This is the default. -L --no-login The new user will not be allowed to log in. (A role without login privilege is still useful as a means of managing database permissions.) -P --pwprompt If given, createuser will issue a prompt for the password of the new user. This is not necessary if you do not plan on using password authentication. -r --createrole The new user will be allowed to create new roles. That is, this user will have CREATEROLE privilege. -R --no-createrole The new user will not be allowed to create new roles. This is the default. -s --superuser The new user will be a superuser. -S --no-superuser The new user will not be a superuser. This is the default. -V --version Print the createuser version and exit. --replication The new user will have the REPLICATION privilege, which is described more fully in the documentation for CREATE ROLE. --no-replication The new user will not have the REPLICATION privilege, which is described more fully in the documentation for CREATE ROLE. -? --help Show help about createuser command line arguments, and exit. createuser also accepts the following command-line arguments for connection parameters: -h host --host=host Specifies the host name of the machine on which the server is running. If the value begins with a slash, it is used as the directory for the Unix domain socket. -p port --port=port Specifies the TCP port or local Unix domain socket file extension on which the server is listening for connections. -U username --username=username User name to connect as (not the user name to create). -w --no-password Never issue a password prompt. If the server requires password authentication and a password is not available by other means such as a .pgpass file, the connection attempt will fail. This option can be useful in batch jobs and scripts where no user is present to enter a password. -W --password Force createuser to prompt for a password (for connecting to the server, not for the password of the new user).This option is never essential, since createuser will automatically prompt for a password if the server demands password authentication. However, createuser will waste a connection attempt finding out that the server wants a password. In some cases it is worth typing -W to avoid the extra connection attempt. PGHOST PGPORT PGUSER Default connection parameters PG_COLOR Specifies whether to use color in diagnostic messages. Possible values are always, auto and never. This utility, like most other IvorySQL utilities, also uses the environment variables supported by libpq In case of difficulty, see CREATE ROLE and psql for discussions of potential problems and error messages. The database server must be running at the targeted host. Also, any default connection settings and environment variables used by the libpq front-end library will apply. To create a user joe on the default database server: $ createuser joe To create a user joe on the default database server with prompting for some additional attributes: $ createuser --interactive joe Shall the new role be a superuser? (y/n) n Shall the new role be allowed to create databases? (y/n) n Shall the new role be allowed to create more new roles? (y/n) n To create the same user joe using the server on host eden, port 5000, with attributes explicitly specified, taking a look at the underlying command: $ createuser -h eden -p 5000 -S -D -R -e joe CREATE ROLE joe NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN; To create the user joe as a superuser, and assign a password immediately: $ createuser -P -s -e joe Enter password for new role: xyzzy Enter it again: xyzzy CREATE ROLE joe PASSWORD 'md5b5f5ba1a423792b526f799ae4eb3d59e' SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN; In the above example, the new password isn’t actually echoed when typed, but we show what was typed for clarity. As you see, the password is encrypted before it is sent to the client. dropdb — remove a IvorySQL database dropdb [connection-option…] [option…] dbname dropdb accepts the following command-line arguments: dbname Specifies the name of the database to be removed. -e --echo Echo the commands that dropdb generates and sends to the server. -f --force Attempt to terminate all existing connections to the target database before dropping it. See DROP DATABASE for more information on this option. -i --interactive Issues a verification prompt before doing anything destructive. -V --version Print the dropdb version and exit. --if-exists Do not throw an error if the database does not exist. A notice is issued in this case. -? --help Show help about dropdb command line arguments, and exit. dropdb also accepts the following command-line arguments for connection parameters: -h host --host=host Specifies the host name of the machine on which the server is running. If the value begins with a slash, it is used as the directory for the Unix domain socket. -p port --port=port Specifies the TCP port or local Unix domain socket file extension on which the server is listening for connections. -U username --username=username User name to connect as. -w --no-password Never issue a password prompt. If the server requires password authentication and a password is not available by other means such as a .pgpass file, the connection attempt will fail. This option can be useful in batch jobs and scripts where no user is present to enter a password. -W --password Force dropdb to prompt for a password before connecting to a database.This option is never essential, since dropdb will automatically prompt for a password if the server demands password authentication. However, dropdb will waste a connection attempt finding out that the server wants a password. In some cases it is worth typing -W to avoid the extra connection attempt. --maintenance-db=dbname Specifies the name of the database to connect to in order to drop the target database. If not specified, the postgres database will be used; if that does not exist (or is the database being dropped), template1 will be used. This can be a connection string. If so, connection string parameters will override any conflicting command line options. PGHOST PGPORT PGUSER Default connection parameters PG_COLOR Specifies whether to use color in diagnostic messages. Possible values are always, auto and never. This utility, like most other IvorySQL utilities, also uses the environment variables supported by libpq . In case of difficulty, see DROP DATABASE and psql for discussions of potential problems and error messages. The database server must be running at the targeted host. Also, any default connection settings and environment variables used by the libpq front-end library will apply. To destroy the database demo on the default database server: $ dropdb demo To destroy the database demo using the server on host eden, port 5000, with verification and a peek at the underlying command: $ dropdb -p 5000 -h eden -i -e demo Database \"demo\" will be permanently deleted. Are you sure? (y/n) y DROP DATABASE demo; dropuser — remove a IvorySQL user account dropuser [connection-option…] [option…] [username] dropuser accepts the following command-line arguments: username Specifies the name of the IvorySQL user to be removed. You will be prompted for a name if none is specified on the command line and the -i / --interactive option is used. -e --echo Echo the commands that dropuser generates and sends to the server. -i --interactive Prompt for confirmation before actually removing the user, and prompt for the user name if none is specified on the command line. -V --version Print the dropuser version and exit. --if-exists Do not throw an error if the user does not exist. A notice is issued in this case. -? --help Show help about dropuser command line arguments, and exit. dropuser also accepts the following command-line arguments for connection parameters: -h host --host=host Specifies the host name of the machine on which the server is running. If the value begins with a slash, it is used as the directory for the Unix domain socket. -p port --port=port Specifies the TCP port or local Unix domain socket file extension on which the server is listening for connections. -U username --username=username User name to connect as (not the user name to drop). -w --no-password Never issue a password prompt. If the server requires password authentication and a password is not available by other means such as a .pgpass file, the connection attempt will fail. This option can be useful in batch jobs and scripts where no user is present to enter a password. -W --password Force dropuser to prompt for a password before connecting to a database.This option is never essential, since dropuser will automatically prompt for a password if the server demands password authentication. However, dropuser will waste a connection attempt finding out that the server wants a password. In some cases it is worth typing -W to avoid the extra connection attempt. PGHOST PGPORT PGUSER Default connection parameters PG_COLOR Specifies whether to use color in diagnostic messages. Possible values are always, auto and never. This utility, like most other IvorySQL utilities, also uses the environment variables supported by libpq In case of difficulty, see DROP ROLE and psql for discussions of potential problems and error messages. The database server must be running at the targeted host. Also, any default connection settings and environment variables used by the libpq front-end library will apply. To remove user joe from the default database server: $ dropuser joe To remove user joe using the server on host eden, port 5000, with verification and a peek at the underlying command: $ dropuser -p 5000 -h eden -i -e joe Role \"joe\" will be permanently removed. Are you sure? (y/n) y DROP ROLE joe; ecpg — embedded SQL C preprocessor ecpg [option…] file… ecpg accepts the following command-line arguments: -c Automatically generate certain C code from SQL code. Currently, this works for EXEC SQL TYPE. -C mode Set a compatibility mode. mode can be INFORMIX, INFORMIX_SE, or ORACLE. -D `symbol` Define a C preprocessor symbol. -h Process header files. When this option is specified, the output file extension becomes .h not .c, and the default input file extension is .pgh not .pgc. Also, the -c option is forced on. -i Parse system include files as well. -I `directory` Specify an additional include path, used to find files included via EXEC SQL INCLUDE. Defaults are . (current directory), /usr/local/include, the IvorySQL include directory which is defined at compile time (default: /usr/local/pgsql/include), and /usr/include, in that order. -o `filename` Specifies that ecpg should write all its output to the given filename. Write -o - to send all output to standard output. -r `option` Selects run-time behavior. Option can be one of the following:`no_indicator`Do not use indicators but instead use special values to represent null values. Historically there have been databases using this approach.prepare`Prepare all statements before using them. Libecpg will keep a cache of prepared statements and reuse a statement if it gets executed again. If the cache runs full, libecpg will free the least used statement.`questionmarks Allow question mark as placeholder for compatibility reasons. This used to be the default long ago. -t Turn on autocommit of transactions. In this mode, each SQL command is automatically committed unless it is inside an explicit transaction block. In the default mode, commands are committed only when EXEC SQL COMMIT is issued. -v Print additional information including the version and the \"include\" path. --version Print the ecpg version and exit. -? --help Show help about ecpg command line arguments, and exit. When compiling the preprocessed C code files, the compiler needs to be able to find the ECPG header files in the IvorySQL include directory. Therefore, you might have to use the -I option when invoking the compiler (e.g., -I/usr/local/pgsql/include). Programs using C code with embedded SQL have to be linked against the libecpg library, for example using the linker options -L/usr/local/pgsql/lib -lecpg. The value of either of these directories that is appropriate for the installation can be found out using pg_config. If you have an embedded SQL C source file named prog1.pgc, you can create an executable program using the following sequence of commands: ecpg prog1.pgc cc -I/usr/local/pgsql/include -c prog1.c cc -o prog1 prog1.o -L/usr/local/pgsql/lib -lecpg pg_amcheck — checks for corruption in one or more IvorySQL databases pg_amcheck [option…] [dbname] The following command-line options control what is checked: -a --all Check all databases, except for any excluded via --exclude-database. -d pattern --database=pattern Check databases matching the specified pattern, except for any excluded by --exclude-database. This option can be specified more than once. -D pattern --exclude-database=pattern Exclude databases matching the given pattern. This option can be specified more than once. -i pattern --index=pattern Check indexes matching the specified pattern, unless they are otherwise excluded. This option can be specified more than once.This is similar to the --relation option, except that it applies only to indexes, not to other relation types. -I pattern --exclude-index=pattern Exclude indexes matching the specified pattern. This option can be specified more than once.This is similar to the --exclude-relation option, except that it applies only to indexes, not other relation types. -r `pattern` --relation=`pattern` Check relations matching the specified pattern, unless they are otherwise excluded. This option can be specified more than once.Patterns may be unqualified, e.g. myrel*, or they may be schema-qualified, e.g. myschema*.myrel* or database-qualified and schema-qualified, e.g. mydb*.myscheam*.myrel*. A database-qualified pattern will add matching databases to the list of databases to be checked. -R pattern --exclude-relation=pattern Exclude relations matching the specified pattern. This option can be specified more than once.As with --relation, the pattern may be unqualified, schema-qualified, or database- and schema-qualified. -s pattern --schema=pattern Check tables and indexes in schemas matching the specified pattern, unless they are otherwise excluded. This option can be specified more than once.To select only tables in schemas matching a particular pattern, consider using something like --table=SCHEMAPAT.* --no-dependent-indexes. To select only indexes, consider using something like --index=SCHEMAPAT..A schema pattern may be database-qualified. For example, you may write --schema=mydb.myschema* to select schemas matching myschema* in databases matching mydb*. -S pattern --exclude-schema=pattern Exclude tables and indexes in schemas matching the specified pattern. This option can be specified more than once.As with --schema, the pattern may be database-qualified. -t pattern --table=pattern Check tables matching the specified pattern, unless they are otherwise excluded. This option can be specified more than once.This is similar to the --relation option, except that it applies only to tables, materialized views, and sequences, not to indexes. -T pattern --exclude-table=pattern Exclude tables matching the specified pattern. This option can be specified more than once.This is similar to the --exclude-relation option, except that it applies only to tables, materialized views, and sequences, not to indexes. --no-dependent-indexes By default, if a table is checked, any btree indexes of that table will also be checked, even if they are not explicitly selected by an option such as --index or --relation. This option suppresses that behavior. --no-dependent-toast By default, if a table is checked, its toast table, if any, will also be checked, even if it is not explicitly selected by an option such as --table or --relation. This option suppresses that behavior. --no-strict-names By default, if an argument to --database, --table, --index, or --relation matches no objects, it is a fatal error. This option downgrades that error to a warning. The following command-line options control checking of tables: --exclude-toast-pointers By default, whenever a toast pointer is encountered in a table, a lookup is performed to ensure that it references apparently-valid entries in the toast table. These checks can be quite slow, and this option can be used to skip them. --on-error-stop After reporting all corruptions on the first page of a table where corruption is found, stop processing that table relation and move on to the next table or index.Note that index checking always stops after the first corrupt page. This option only has meaning relative to table relations. --skip=`option` If all-frozen is given, table corruption checks will skip over pages in all tables that are marked as all frozen.If all-visible is given, table corruption checks will skip over pages in all tables that are marked as all visible.By default, no pages are skipped. This can be specified as none, but since this is the default, it need not be mentioned. --startblock=`block` Start checking at the specified block number. An error will occur if the table relation being checked has fewer than this number of blocks. This option does not apply to indexes, and is probably only useful when checking a single table relation. See --endblock for further caveats. --endblock=`block` End checking at the specified block number. An error will occur if the table relation being checked has fewer than this number of blocks. This option does not apply to indexes, and is probably only useful when checking a single table relation. If both a regular table and a toast table are checked, this option will apply to both, but higher-numbered toast blocks may still be accessed while validating toast pointers, unless that is suppressed using --exclude-toast-pointers. The following command-line options control checking of B-tree indexes: --heapallindexed For each index checked, verify the presence of all heap tuples as index tuples in the index using amcheck's heapallindexed option. --parent-check For each btree index checked, use amcheck's bt_index_parent_check function, which performs additional checks of parent/child relationships during index checking.The default is to use amcheck’s bt_index_check function, but note that use of the --rootdescend option implicitly selects bt_index_parent_check. --rootdescend For each index checked, re-find tuples on the leaf level by performing a new search from the root page for each tuple using amcheck's rootdescend option.Use of this option implicitly also selects the --parent-check option.This form of verification was originally written to help in the development of btree index features. It may be of limited use or even of no use in helping detect the kinds of corruption that occur in practice. It may also cause corruption checking to take considerably longer and consume considerably more resources on the server. The extra checks performed against B-tree indexes when the --parent-check option or the --rootdescend option is specified require relatively strong relation-level locks. These checks are the only checks that will block concurrent data modification from INSERT, UPDATE, and DELETE commands. The following command-line options control the connection to the server: -h hostname --host=hostname Specifies the host name of the machine on which the server is running. If the value begins with a slash, it is used as the directory for the Unix domain socket. -p port --port=port Specifies the TCP port or local Unix domain socket file extension on which the server is listening for connections. -U --username=username User name to connect as. -w --no-password Never issue a password prompt. If the server requires password authentication and a password is not available by other means such as a .pgpass file, the connection attempt will fail. This option can be useful in batch jobs and scripts where no user is present to enter a password. -W --password Force pg_amcheck to prompt for a password before connecting to a database.This option is never essential, since pg_amcheck will automatically prompt for a password if the server demands password authentication. However, pg_amcheck will waste a connection attempt finding out that the server wants a password. In some cases it is worth typing -W to avoid the extra connection attempt. --maintenance-db=dbname Specifies a database or connection string to be used to discover the list of databases to be checked. If neither --all nor any option including a database pattern is used, no such connection is required and this option does nothing. Otherwise, any connection string parameters other than the database name which are included in the value for this option will also be used when connecting to the databases being checked. If this option is omitted, the default is postgres or, if that fails, template1. Other options are also available: -e --echo Echo to stdout all SQL sent to the server. -j `num` --jobs=`num` Use num concurrent connections to the server, or one per object to be checked, whichever is less.The default is to use a single connection. -P --progress Show progress information. Progress information includes the number of relations for which checking has been completed, and the total size of those relations. It also includes the total number of relations that will eventually be checked, and the estimated size of those relations. -v --verbose Print more messages. In particular, this will print a message for each relation being checked, and will increase the level of detail shown for server errors. -V --version Print the pg_amcheck version and exit. --install-missing --install-missing=`schema` Install any missing extensions that are required to check the database(s). If not yet installed, each extension’s objects will be installed into the given schema, or if not specified into schema pg_catalog.At present, the only required extension is amcheck. -? --help Show help about pg_amcheck command line arguments, and exit. pg_basebackup — take a base backup of a IvorySQL cluster pg_basebackup [option…] The following command-line options control the location and format of the output: -D directory --pgdata=directory Sets the target directory to write the output to. pg_basebackup will create this directory (and any missing parent directories) if it does not exist. If it already exists, it must be empty.When the backup is in tar format, the target directory may be specified as - (dash), causing the tar file to be written to stdout.This option is required. -F format --format=format Selects the format for the output. format can be one of the following: p plain Write the output as plain files, with the same layout as the source server’s data directory and tablespaces. When the cluster has no additional tablespaces, the whole database will be placed in the target directory. If the cluster contains additional tablespaces, the main data directory will be placed in the target directory, but all other tablespaces will be placed in the same absolute path as they have on the source server. (See --tablespace-mapping to change that.)This is the default format. t tar Write the output as tar files in the target directory. The main data directory’s contents will be written to a file named base.tar, and each other tablespace will be written to a separate tar file named after that tablespace’s OID.If the target directory is specified as - (dash), the tar contents will be written to standard output, suitable for piping to (for example) gzip. This is only allowed if the cluster has no additional tablespaces and WAL streaming is not used. -R --write-recovery-conf Creates a standby.signal file and appends connection settings to the IvorySQL.auto.conf file in the target directory (or within the base archive file when using tar format). This eases setting up a standby server using the results of the backup.The IvorySQL.auto.conf file will record the connection settings and, if specified, the replication slot that pg_basebackup is using, so that streaming replication will use the same settings later on. -t target --target=target Instructs the server where to place the base backup. The default target is client, which specifies that the backup should be sent to the machine where pg_basebackup is running. If the target is instead set to server:/some/path, the backup will be stored on the machine where the server is running in the /some/path directory. Storing a backup on the server requires superuser privileges or having privileges of the pg_write_server_files role. If the target is set to blackhole, the contents are discarded and not stored anywhere. This should only be used for testing purposes, as you will not end up with an actual backup.Since WAL streaming is implemented by pg_basebackup rather than by the server, this option cannot be used together with -Xstream. Since that is the default, when this option is specified, you must also specify either -Xfetch or -Xnone. -T olddir=newdir --tablespace-mapping=olddir=newdir Relocates the tablespace in directory olddir to newdir during the backup. To be effective, olddir must exactly match the path specification of the tablespace as it is defined on the source server. (But it is not an error if there is no tablespace in olddir on the source server.) Meanwhile newdir is a directory in the receiving host’s filesystem. As with the main target directory, newdir need not exist already, but if it does exist it must be empty. Both olddir and newdir must be absolute paths. If either path needs to contain an equal sign (=), precede that with a backslash. This option can be specified multiple times for multiple tablespaces.If a tablespace is relocated in this way, the symbolic links inside the main data directory are updated to point to the new location. So the new data directory is ready to be used for a new server instance with all tablespaces in the updated locations.Currently, this option only works with plain output format; it is ignored if tar format is selected. --waldir=waldir Sets the directory to write WAL (write-ahead log) files to. By default WAL files will be placed in the pg_wal subdirectory of the target directory, but this option can be used to place them elsewhere. waldir must be an absolute path. As with the main target directory, waldir need not exist already, but if it does exist it must be empty. This option can only be specified when the backup is in plain format. -X method --wal-method=method Includes the required WAL (write-ahead log) files in the backup. This will include all write-ahead logs generated during the backup. Unless the method none is specified, it is possible to start a postmaster in the target directory without the need to consult the log archive, thus making the output a completely standalone backup.The following methods for collecting the write-ahead logs are supported: n none Don’t include write-ahead logs in the backup. f fetch`The write-ahead log files are collected at the end of the backup. Therefore, it is necessary for the source server’s wal_keep_size parameter to be set high enough that the required log data is not removed before the end of the backup. If the required log data has been recycled before it’s time to transfer it, the backup will fail and be unusable.When tar format is used, the write-ahead log files will be included in the `base.tar file.s stream`Stream write-ahead log data while the backup is being taken. This method will open a second connection to the server and start streaming the write-ahead log in parallel while running the backup. Therefore, it will require two replication connections not just one. As long as the client can keep up with the write-ahead log data, using this method requires no extra write-ahead logs to be saved on the source server.When tar format is used, the write-ahead log files will be written to a separate file named `pg_wal.tar (if the server is a version earlier than 10, the file will be named pg_xlog.tar).This value is the default. -z --gzip Enables gzip compression of tar file output, with the default compression level. Compression is only available when using the tar format, and the suffix .gz will automatically be added to all tar filenames. -Z level -Z method[:*detail*] --compress=level --compress=method[:*detail*] Requests compression of the backup. If client or server is included, it specifies where the compression is to be performed. Compressing on the server will reduce transfer bandwidth but will increase server CPU consumption. The default is client except when --target is used. In that case, the backup is not being sent to the client, so only server compression is sensible. When -Xstream, which is the default, is used, server-side compression will not be applied to the WAL. To compress the WAL, use client-side compression, or specify -Xfetch.The compression method can be set to gzip, lz4, zstd, or none for no compression. A compression detail string can optionally be specified. If the detail string is an integer, it specifies the compression level. Otherwise, it should be a comma-separated list of items, each of the form keyword or keyword=value. Currently, the supported keywords are level and workers.If no compression level is specified, the default compression level will be used. If only a level is specified without mentioning an algorithm, gzip compression will be used if the level is greater than 0, and no compression will be used if the level is 0.When the tar format is used with gzip, lz4, or zstd, the suffix .gz, .lz4, or .zst, respectively, will be automatically added to all tar filenames. When the plain format is used, client-side compression may not be specified, but it is still possible to request server-side compression. If this is done, the server will compress the backup for transmission, and the client will decompress and extract it.When this option is used in combination with -Xstream, pg_wal.tar will be compressed using gzip if client-side gzip compression is selected, but will not be compressed if any other compression algorithm is selected, or if server-side compression is selected. The following command-line options control the generation of the backup and the invocation of the program: -c {fast|spread} --checkpoint={fast|spread} Sets checkpoint mode to fast (immediate) or spread (the default) . -C --create-slot Specifies that the replication slot named by the --slot option should be created before starting the backup. An error is raised if the slot already exists. -l label --label=label Sets the label for the backup. If none is specified, a default value of “pg_basebackup base backup” will be used. -n --no-clean By default, when pg_basebackup aborts with an error, it removes any directories it might have created before discovering that it cannot finish the job (for example, the target directory and write-ahead log directory). This option inhibits tidying-up and is thus useful for debugging.Note that tablespace directories are not cleaned up either way. -N --no-sync By default, pg_basebackup will wait for all files to be written safely to disk. This option causes pg_basebackup to return without waiting, which is faster, but means that a subsequent operating system crash can leave the base backup corrupt. Generally, this option is useful for testing but should not be used when creating a production installation. -P --progress Enables progress reporting. Turning this on will deliver an approximate progress report during the backup. Since the database may change during the backup, this is only an approximation and may not end at exactly 100%. In particular, when WAL log is included in the backup, the total amount of data cannot be estimated in advance, and in this case the estimated target size will increase once it passes the total estimate without WAL. -r rate --max-rate=rate Sets the maximum transfer rate at which data is collected from the source server. This can be useful to limit the impact of pg_basebackup on the server. Values are in kilobytes per second. Use a suffix of M to indicate megabytes per second. A suffix of k is also accepted, and has no effect. Valid values are between 32 kilobytes per second and 1024 megabytes per second.This option always affects transfer of the data directory. Transfer of WAL files is only affected if the collection method is fetch. -S slotname --slot=slotname This option can only be used together with -X stream. It causes WAL streaming to use the specified replication slot. If the base backup is intended to be used as a streaming-replication standby using a replication slot, the standby should then use the same replication slot name as primary_slot_name. This ensures that the primary server does not remove any necessary WAL data in the time between the end of the base backup and the start of streaming replication on the new standby.The specified replication slot has to exist unless the option -C is also used.If this option is not specified and the server supports temporary replication slots (version 10 and later), then a temporary replication slot is automatically used for WAL streaming. -v --verbose Enables verbose mode. Will output some extra steps during startup and shutdown, as well as show the exact file name that is currently being processed if progress reporting is also enabled. --manifest-checksums=algorithm Specifies the checksum algorithm that should be applied to each file included in the backup manifest. Currently, the available algorithms are NONE, CRC32C, SHA224, SHA256, SHA384, and SHA512. The default is CRC32C.If NONE is selected, the backup manifest will not contain any checksums. Otherwise, it will contain a checksum of each file in the backup using the specified algorithm. In addition, the manifest will always contain a SHA256 checksum of its own contents. The SHA algorithms are significantly more CPU-intensive than CRC32C, so selecting one of them may increase the time required to complete the backup.Using a SHA hash function provides a cryptographically secure digest of each file for users who wish to verify that the backup has not been tampered with, while the CRC32C algorithm provides a checksum that is much faster to calculate; it is good at catching errors due to accidental changes but is not resistant to malicious modifications. Note that, to be useful against an adversary who has access to the backup, the backup manifest would need to be stored securely elsewhere or otherwise verified not to have been modified since the backup was taken. pg_verifybackup can be used to check the integrity of a backup against the backup manifest. --manifest-force-encode Forces all filenames in the backup manifest to be hex-encoded. If this option is not specified, only non-UTF8 filenames are hex-encoded. This option is mostly intended to test that tools which read a backup manifest file properly handle this case. --no-estimate-size Prevents the server from estimating the total amount of backup data that will be streamed, resulting in the backup_total column in the pg_stat_progress_basebackup view always being NULL.Without this option, the backup will start by enumerating the size of the entire database, and then go back and send the actual contents. This may make the backup take slightly longer, and in particular it will take longer before the first data is sent. This option is useful to avoid such estimation time if it’s too long.This option is not allowed when using --progress. --no-manifest Disables generation of a backup manifest. If this option is not specified, the server will generate and send a backup manifest which can be verified using pg_verifybackup. The manifest is a list of every file present in the backup with the exception of any WAL files that may be included. It also stores the size, last modification time, and an optional checksum for each file. --no-slot Prevents the creation of a temporary replication slot for the backup.By default, if log streaming is selected but no slot name is given with the -S option, then a temporary replication slot is created (if supported by the source server).The main purpose of this option is to allow taking a base backup when the server has no free replication slots. Using a replication slot is almost always preferred, because it prevents needed WAL from being removed by the server during the backup. --no-verify-checksums Disables verification of checksums, if they are enabled on the server the base backup is taken from.By default, checksums are verified and checksum failures will result in a non-zero exit status. However, the base backup will not be removed in such a case, as if the --no-clean option had been used. Checksum verification failures will also be reported in the pg_stat_database view. The following command-line options control the connection to the source server: -d connstr --dbname=connstr Specifies parameters used to connect to the server, as a connection string; these will override any conflicting command line options.The option is called --dbname for consistency with other client applications, but because pg_basebackup doesn’t connect to any particular database in the cluster, any database name in the connection string will be ignored. -h host --host=host Specifies the host name of the machine on which the server is running. If the value begins with a slash, it is used as the directory for a Unix domain socket. The default is taken from the PGHOST environment variable, if set, else a Unix domain socket connection is attempted. -p port --port=port Specifies the TCP port or local Unix domain socket file extension on which the server is listening for connections. Defaults to the PGPORT environment variable, if set, or a compiled-in default. -s interval --status-interval=interval Specifies the number of seconds between status packets sent back to the source server. Smaller values allow more accurate monitoring of backup progress from the server. A value of zero disables periodic status updates completely, although an update will still be sent when requested by the server, to avoid timeout-based disconnects. The default value is 10 seconds. -U username --username=username Specifies the user name to connect as. -w --no-password Prevents issuing a password prompt. If the server requires password authentication and a password is not available by other means such as a .pgpass file, the connection attempt will fail. This option can be useful in batch jobs and scripts where no user is present to enter a password. -W --password Forces pg_basebackup to prompt for a password before connecting to the source server.This option is never essential, since pg_basebackup will automatically prompt for a password if the server demands password authentication. However, pg_basebackup will waste a connection attempt finding out that the server wants a password. In some cases it is worth typing -W to avoid the extra connection attempt. Other options are also available: -V --version Prints the pg_basebackup version and exits. -? --help Shows help about pg_basebackup command line arguments, and exits. This utility, like most other IvorySQL utilities, uses the environment variables supported by libpq . The environment variable PG_COLOR specifies whether to use color in diagnostic messages. Possible values are always, auto and never. At the beginning of the backup, a checkpoint needs to be performed on the source server. This can take some time (especially if the option --checkpoint=fast is not used), during which pg_basebackup will appear to be idle. The backup will include all files in the data directory and tablespaces, including the configuration files and any additional files placed in the directory by third parties, except certain temporary files managed by IvorySQL. But only regular files and directories are copied, except that symbolic links used for tablespaces are preserved. Symbolic links pointing to certain directories known to IvorySQL are copied as empty directories. Other symbolic links and special device files are skipped. In plain format, tablespaces will be backed up to the same path they have on the source server, unless the option --tablespace-mapping is used. Without this option, running a plain format base backup on the same host as the server will not work if tablespaces are in use, because the backup would have to be written to the same directory locations as the original tablespaces. When tar format is used, it is the user’s responsibility to unpack each tar file before starting a IvorySQL server that uses the data. If there are additional tablespaces, the tar files for them need to be unpacked in the correct locations. In this case the symbolic links for those tablespaces will be created by the server according to the contents of the tablespace_map file that is included in the base.tar file. pg_basebackup works with servers of the same or an older major version. pg_basebackup will preserve group permissions for data files if group permissions are enabled on the source cluster. To create a base backup of the server at mydbserver and store it in the local directory /usr/local/pgsql/data: $ pg_basebackup -h mydbserver -D /usr/local/pgsql/data To create a backup of the local server with one compressed tar file for each tablespace, and store it in the directory backup, showing a progress report while running: $ pg_basebackup -D backup -Ft -z -P To create a backup of a single-tablespace local database and compress this with bzip2: $ pg_basebackup -D - -Ft -X fetch | bzip2 > backup.tar.bz2 (This command will fail if there are multiple tablespaces in the database.) To create a backup of a local database where the tablespace in /opt/ts is relocated to ./backup/ts: $ pg_basebackup -D backup/data -T /opt/ts=$(pwd)/backup/ts To create a backup of a local server with one tar file for each tablespace compressed with gzip at level 9, stored in the directory backup: $ pg_basebackup -D backup -Ft --compress=gzip:9 pgbench — run a benchmark test on IvorySQL pgbench -i [option…] [dbname] pgbench [option…] [dbname] pgbench -i creates four tables pgbench_accounts, pgbench_branches, pgbench_history, and pgbench_tellers, destroying any existing tables of these names. Be very careful to use another database if you have tables having these names! At the default “scale factor” of 1, the tables initially contain this many rows: table # of rows --------------------------------- pgbench_branches 1 pgbench_tellers 10 pgbench_accounts 100000 pgbench_history 0 You can (and, for most purposes, probably should) increase the number of rows by using the -s (scale factor) option. The -F (fillfactor) option might also be used at this point. Once you have done the necessary setup, you can run your benchmark with a command that doesn’t include -i, that is pgbench [ options ] dbname In nearly all cases, you’ll need some options to make a useful test. The most important options are -c (number of clients), -t (number of transactions), -T (time limit), and -f (specify a custom script file). See below for a full list. The following is divided into three subsections. Different options are used during database initialization and while running benchmarks, but some options are useful in both cases. pgbench accepts the following command-line initialization arguments: dbname Specifies the name of the database to test in. If this is not specified, the environment variable PGDATABASE is used. If that is not set, the user name specified for the connection is used. -i --initialize Required to invoke initialization mode. -I init_steps --init-steps=init_steps Perform just a selected set of the normal initialization steps. init_steps specifies the initialization steps to be performed, using one character per step. Each step is invoked in the specified order. The default is dtgvp. The available steps are:`d` (Drop)Drop any existing pgbench tables.t (create Tables)Create the tables used by the standard pgbench scenario, namely pgbench_accounts, pgbench_branches, pgbench_history, and pgbench_tellers.g or G (Generate data, client-side or server-side)Generate data and load it into the standard tables, replacing any data already present.With g (client-side data generation), data is generated in pgbench client and then sent to the server. This uses the client/server bandwidth extensively through a COPY. pgbench uses the FREEZE option with version 14 or later of IvorySQL to speed up subsequent VACUUM, unless partitions are enabled. Using g causes logging to print one message every 100,000 rows while generating data for the pgbench_accounts table.With G (server-side data generation), only small queries are sent from the pgbench client and then data is actually generated in the server. No significant bandwidth is required for this variant, but the server will do more work. Using G causes logging not to print any progress message while generating data.The default initialization behavior uses client-side data generation (equivalent to g).v (Vacuum)Invoke VACUUM on the standard tables.p (create Primary keys)Create primary key indexes on the standard tables.f (create Foreign keys)Create foreign key constraints between the standard tables. (Note that this step is not performed by default.) -F fillfactor --fillfactor= fillfactor Create the pgbench_accounts, pgbench_tellers and pgbench_branches tables with the given fillfactor. Default is 100. -n --no-vacuum Perform no vacuuming during initialization. (This option suppresses the v initialization step, even if it was specified in -I.) -q --quiet Switch logging to quiet mode, producing only one progress message per 5 seconds. The default logging prints one message each 100,000 rows, which often outputs many lines per second (especially on good hardware).This setting has no effect if G is specified in -I. -s scale_factor --scale=scale_factor Multiply the number of rows generated by the scale factor. For example, -s 100 will create 10,000,000 rows in the pgbench_accounts table. Default is 1. When the scale is 20,000 or larger, the columns used to hold account identifiers (aid columns) will switch to using larger integers (bigint), in order to be big enough to hold the range of account identifiers. --foreign-keys Create foreign key constraints between the standard tables. (This option adds the f step to the initialization step sequence, if it is not already present.) --index-tablespace=index_tablespace Create indexes in the specified tablespace, rather than the default tablespace. --partition-method=`NAME` Create a partitioned pgbench_accounts table with NAME method. Expected values are range or hash. This option requires that --partitions is set to non-zero. If unspecified, default is range. --partitions=NUM Create a partitioned pgbench_accounts table with NUM partitions of nearly equal size for the scaled number of accounts. Default is 0, meaning no partitioning. --tablespace=`tablespace` Create tables in the specified tablespace, rather than the default tablespace. --unlogged-tables Create all tables as unlogged tables, rather than permanent tables. pgbench accepts the following command-line benchmarking arguments: -b scriptname[@weight] --builtin=scriptname[@weight] Add the specified built-in script to the list of scripts to be executed. Available built-in scripts are: tpcb-like, simple-update and select-only. Unambiguous prefixes of built-in names are accepted. With the special name list, show the list of built-in scripts and exit immediately.Optionally, write an integer weight after @ to adjust the probability of selecting this script versus other ones. The default weight is 1. See below for details. -c clients --client=clients Number of clients simulated, that is, number of concurrent database sessions. Default is 1. -C --connect Establish a new connection for each transaction, rather than doing it just once per client session. This is useful to measure the connection overhead. -d --debug Print debugging output. -D varname=value --define=varname=value Define a variable for use by a custom script (see below). Multiple -D options are allowed. -f filename[@weight] --file=filename[@weight] Add a transaction script read from filename to the list of scripts to be executed.Optionally, write an integer weight after @ to adjust the probability of selecting this script versus other ones. The default weight is 1. (To use a script file name that includes an @ character, append a weight so that there is no ambiguity, for example filen@me@1.) See below for details. -j threads --jobs=threads Number of worker threads within pgbench. Using more than one thread can be helpful on multi-CPU machines. Clients are distributed as evenly as possible among available threads. Default is 1. -l --log Write information about each transaction to a log file. See below for details. -L limit --latency-limit=limit Transactions that last more than limit milliseconds are counted and reported separately, as late.When throttling is used (--rate=…), transactions that lag behind schedule by more than limit ms, and thus have no hope of meeting the latency limit, are not sent to the server at all. They are counted and reported separately as skipped.When the --max-tries option is used, a transaction which fails due to a serialization anomaly or from a deadlock will not be retried if the total time of all its tries is greater than limit ms. To limit only the time of tries and not their number, use --max-tries=0. By default, the option --max-tries is set to 1 and transactions with serialization/deadlock errors are not retried. -M querymode --protocol=querymode Protocol to use for submitting queries to the server:`simple`: use simple query protocol. extended : use extended query protocol. prepared : use extended query protocol with prepared statements.In the prepared mode, pgbench reuses the parse analysis result starting from the second query iteration, so pgbench runs faster than in other modes.The default is simple query protocol. -n --no-vacuum Perform no vacuuming before running the test. This option is necessary if you are running a custom test scenario that does not include the standard tables pgbench_accounts, pgbench_branches, pgbench_history, and pgbench_tellers. -N --skip-some-updates Run built-in simple-update script. Shorthand for -b simple-update. -P sec --progress=sec Show progress report every sec seconds. The report includes the time since the beginning of the run, the TPS since the last report, and the transaction latency average, standard deviation, and the number of failed transactions since the last report. Under throttling (-R), the latency is computed with respect to the transaction scheduled start time, not the actual transaction beginning time, thus it also includes the average schedule lag time. When --max-tries is used to enable transaction retries after serialization/deadlock errors, the report includes the number of retried transactions and the sum of all retries. -r --report-per-command Report the following statistics for each command after the benchmark finishes: the average per-statement latency (execution time from the perspective of the client), the number of failures, and the number of retries after serialization or deadlock errors in this command. The report displays retry statistics only if the --max-tries option is not equal to 1. -R rate --rate=rate Execute transactions targeting the specified rate instead of running as fast as possible (the default). The rate is given in transactions per second. If the targeted rate is above the maximum possible rate, the rate limit won’t impact the results.The rate is targeted by starting transactions along a Poisson-distributed schedule time line. The expected start time schedule moves forward based on when the client first started, not when the previous transaction ended. That approach means that when transactions go past their original scheduled end time, it is possible for later ones to catch up again.When throttling is active, the transaction latency reported at the end of the run is calculated from the scheduled start times, so it includes the time each transaction had to wait for the previous transaction to finish. The wait time is called the schedule lag time, and its average and maximum are also reported separately. The transaction latency with respect to the actual transaction start time, i.e., the time spent executing the transaction in the database, can be computed by subtracting the schedule lag time from the reported latency.If --latency-limit is used together with --rate, a transaction can lag behind so much that it is already over the latency limit when the previous transaction ends, because the latency is calculated from the scheduled start time. Such transactions are not sent to the server, but are skipped altogether and counted separately.A high schedule lag time is an indication that the system cannot process transactions at the specified rate, with the chosen number of clients and threads. When the average transaction execution time is longer than the scheduled interval between each transaction, each successive transaction will fall further behind, and the schedule lag time will keep increasing the longer the test run is. When that happens, you will have to reduce the specified transaction rate. -s scale_factor --scale=scale_factor Report the specified scale factor in pgbench’s output. With the built-in tests, this is not necessary; the correct scale factor will be detected by counting the number of rows in the pgbench_branches table. However, when testing only custom benchmarks (-f option), the scale factor will be reported as 1 unless this option is used. -S --select-only Run built-in select-only script. Shorthand for -b select-only. -t transactions --transactions=transactions Number of transactions each client runs. Default is 10. -T seconds --time=seconds Run the test for this many seconds, rather than a fixed number of transactions per client. -t and -T are mutually exclusive. -v --vacuum-all Vacuum all four standard tables before running the test. With neither -n nor -v, pgbench will vacuum the pgbench_tellers and pgbench_branches tables, and will truncate pgbench_history. --aggregate-interval=`seconds` Length of aggregation interval (in seconds). May be used only with -l option. With this option, the log contains per-interval summary data, as described below. --failures-detailed Report failures in per-transaction and aggregation logs, as well as in the main and per-script reports, grouped by the following types:serialization failures;deadlock failures. --log-prefix=`prefix` Set the filename prefix for the log files created by --log. The default is pgbench_log. --max-tries=`number_of_tries` Enable retries for transactions with serialization/deadlock errors and set the maximum number of these tries. This option can be combined with the --latency-limit option which limits the total time of all transaction tries; moreover, you cannot use an unlimited number of tries (--max-tries=0) without --latency-limit or --time. The default value is 1 and transactions with serialization/deadlock errors are not retried. --progress-timestamp When showing progress (option -P), use a timestamp (Unix epoch) instead of the number of seconds since the beginning of the run. The unit is in seconds, with millisecond precision after the dot. This helps compare logs generated by various tools. --random-seed=seed Set random generator seed. Seeds the system random number generator, which then produces a sequence of initial generator states, one for each thread. Values for seed may be: time (the default, the seed is based on the current time), rand (use a strong random source, failing if none is available), or an unsigned decimal integer value. The random generator is invoked explicitly from a pgbench script (random… functions) or implicitly (for instance option --rate uses it to schedule transactions). When explicitly set, the value used for seeding is shown on the terminal. Any value allowed for seed may also be provided through the environment variable PGBENCH_RANDOM_SEED. To ensure that the provided seed impacts all possible uses, put this option first or use the environment variable.Setting the seed explicitly allows to reproduce a pgbench run exactly, as far as random numbers are concerned. As the random state is managed per thread, this means the exact same pgbench run for an identical invocation if there is one client per thread and there are no external or data dependencies. From a statistical viewpoint reproducing runs exactly is a bad idea because it can hide the performance variability or improve performance unduly, e.g., by hitting the same pages as a previous run. However, it may also be of great help for debugging, for instance re-running a tricky case which leads to an error. Use wisely. --sampling-rate=`rate` Sampling rate, used when writing data into the log, to reduce the amount of log generated. If this option is given, only the specified fraction of transactions are logged. 1.0 means all transactions will be logged, 0.05 means only 5% of the transactions will be logged.Remember to take the sampling rate into account when processing the log file. For example, when computing TPS values, you need to multiply the numbers accordingly (e.g., with 0.01 sample rate, you’ll only get 1/100 of the actual TPS). --show-script=scriptname Show the actual code of builtin script scriptname on stderr, and exit immediately. --verbose-errors Print messages about all errors and failures (errors without retrying) including which limit for retries was exceeded and how far it was exceeded for the serialization/deadlock failures. (Note that in this case the output can be significantly increased.). pgbench also accepts the following common command-line arguments for connection parameters: -h hostname --host=hostname The database server’s host name -p port --port=port The database server’s port number -U login --username=login The user name to connect as -V --version Print the pgbench version and exit. -? --help Show help about pgbench command line arguments, and exit. A successful run will exit with status 0. Exit status 1 indicates static problems such as invalid command-line options or internal errors which are supposed to never occur. Early errors that occur when starting benchmark such as initial connection failures also exit with status 1. Errors during the run such as database errors or problems in the script will result in exit status 2. In the latter case, pgbench will print partial results. PGDATABASE PGHOST PGPORT PGUSER Default connection parameters. This utility, like most other IvorySQL utilities, uses the environment variables supported by libpq . The environment variable PG_COLOR specifies whether to use color in diagnostic messages. Possible values are always, auto and never. pg_config — retrieve information about the installed version of IvorySQL pg_config [option…] To use pg_config, supply one or more of the following options: --bindir Print the location of user executables. Use this, for example, to find the psql program. This is normally also the location where the pg_config program resides. --docdir Print the location of documentation files. --htmldir Print the location of HTML documentation files. --includedir Print the location of C header files of the client interfaces. --pkgincludedir Print the location of other C header files. --includedir-server Print the location of C header files for server programming. --libdir Print the location of object code libraries. --pkglibdir Print the location of dynamically loadable modules, or where the server would search for them. (Other architecture-dependent data files might also be installed in this directory.) --localedir Print the location of locale support files. (This will be an empty string if locale support was not configured when IvorySQL was built.) --mandir Print the location of manual pages. --sharedir Print the location of architecture-independent support files. --sysconfdir Print the location of system-wide configuration files. --pgxs Print the location of extension makefiles. --configure Print the options that were given to the configure script when IvorySQL was configured for building. This can be used to reproduce the identical configuration, or to find out with what options a binary package was built. (Note however that binary packages often contain vendor-specific custom patches.) See also the examples below. --cc Print the value of the CC variable that was used for building IvorySQL. This shows the C compiler used. --cppflags Print the value of the CPPFLAGS variable that was used for building IvorySQL. This shows C compiler switches needed at preprocessing time (typically, -I switches). --cflags Print the value of the CFLAGS variable that was used for building IvorySQL. This shows C compiler switches. --cflags_sl Print the value of the CFLAGS_SL variable that was used for building IvorySQL. This shows extra C compiler switches used for building shared libraries. --ldflags Print the value of the LDFLAGS variable that was used for building IvorySQL. This shows linker switches. --ldflags_ex Print the value of the LDFLAGS_EX variable that was used for building IvorySQL. This shows linker switches used for building executables only. --ldflags_sl Print the value of the LDFLAGS_SL variable that was used for building IvorySQL. This shows linker switches used for building shared libraries only. --libs Print the value of the LIBS variable that was used for building IvorySQL. This normally contains -l switches for external libraries linked into IvorySQL. --version Print the version of IvorySQL. -? --help Show help about pg_config command line arguments, and exit. If more than one option is given, the information is printed in that order, one item per line. If no options are given, all available information is printed, with labels. To reproduce the build configuration of the current IvorySQL installation, run the following command: eval ./configure `pg_config --configure` The output of pg_config --configure contains shell quotation marks so arguments with spaces are represented correctly. Therefore, using eval is required for proper results. pg_dump — extract a IvorySQL database into a script file or other archive file pg_dump [connection-option…] [option…] [dbname] The following command-line options control the content and format of the output. dbname Specifies the name of the database to be dumped. If this is not specified, the environment variable `PGDATABASE` is used. If that is not set, the user name specified for the connection is used. -a --data-only Dump only the data, not the schema (data definitions). Table data, large objects, and sequence values are dumped.This option is similar to, but for historical reasons not identical to, specifying `--section=data`. -b --blobs Include large objects in the dump. This is the default behavior except when `--schema`, `--table`, or `--schema-only` is specified. The `-b` switch is therefore only useful to add large objects to dumps where a specific schema or table has been requested. Note that blobs are considered data and therefore will be included when `--data-only` is used, but not when `--schema-only` is. -B --no-blobs Exclude large objects in the dump.When both `-b` and `-B` are given, the behavior is to output large objects, when data is being dumped, see the `-b` documentation. -c --clean Output commands to clean (drop) database objects prior to outputting the commands for creating them. (Unless `--if-exists` is also specified, restore might generate some harmless error messages, if any objects were not present in the destination database.)This option is ignored when emitting an archive (non-text) output file. For the archive formats, you can specify the option when you call `pg_restore`. -C --create Begin the output with a command to create the database itself and reconnect to the created database. (With a script of this form, it doesn't matter which database in the destination installation you connect to before running the script.) If `--clean` is also specified, the script drops and recreates the target database before reconnecting to it.With `--create`, the output also includes the database's comment if any, and any configuration variable settings that are specific to this database, that is, any `ALTER DATABASE ... SET ...` and `ALTER ROLE ... IN DATABASE ... SET ...` commands that mention this database. Access privileges for the database itself are also dumped, unless `--no-acl` is specified.This option is ignored when emitting an archive (non-text) output file. For the archive formats, you can specify the option when you call `pg_restore`. -e `pattern` --extension=`pattern` Dump only extensions matching *`pattern`*. When this option is not specified, all non-system extensions in the target database will be dumped. Multiple extensions can be selected by writing multiple `-e` switches. The *`pattern`* parameter is interpreted as a pattern according to the same rules used by psql's `\\d` commands , so multiple extensions can also be selected by writing wildcard characters in the pattern. When using wildcards, be careful to quote the pattern if needed to prevent the shell from expanding the wildcards.Any configuration relation registered by `pg_extension_config_dump` is included in the dump if its extension is specified by `--extension`.NoteWhen `-e` is specified, pg_dump makes no attempt to dump any other database objects that the selected extension(s) might depend upon. Therefore, there is no guarantee that the results of a specific-extension dump can be successfully restored by themselves into a clean database. -E `encoding` --encoding=`encoding` Create the dump in the specified character set encoding. By default, the dump is created in the database encoding. (Another way to get the same result is to set the `PGCLIENTENCODING` environment variable to the desired dump encoding.) -f `file` --file=`file` Send output to the specified file. This parameter can be omitted for file based output formats, in which case the standard output is used. It must be given for the directory output format however, where it specifies the target directory instead of a file. In this case the directory is created by `pg_dump` and must not exist before. -F `format` --format=`format` Selects the format of the output. *`format`* can be one of the following:`p` `plain`Output a plain-text SQL script file (the default).`c` `custom`Output a custom-format archive suitable for input into pg_restore. Together with the directory output format, this is the most flexible output format in that it allows manual selection and reordering of archived items during restore. This format is also compressed by default.`d` `directory`Output a directory-format archive suitable for input into pg_restore. This will create a directory with one file for each table and blob being dumped, plus a so-called Table of Contents file describing the dumped objects in a machine-readable format that pg_restore can read. A directory format archive can be manipulated with standard Unix tools; for example, files in an uncompressed archive can be compressed with the gzip tool. This format is compressed by default and also supports parallel dumps.`t` `tar`Output a `tar`-format archive suitable for input into pg_restore. The tar format is compatible with the directory format: extracting a tar-format archive produces a valid directory-format archive. However, the tar format does not support compression. Also, when using tar format the relative order of table data items cannot be changed during restore. -j `njobs` --jobs=`njobs` Run the dump in parallel by dumping *`njobs`* tables simultaneously. This option may reduce the time needed to perform the dump but it also increases the load on the database server. You can only use this option with the directory output format because this is the only output format where multiple processes can write their data at the same time.pg_dump will open *`njobs`* + 1 connections to the database, so make sure your http://www.postgresql.org/docs/17/runtime-config-connection.html#GUC-MAX-CONNECTIONS[max_connections] setting is high enough to accommodate all connections.Requesting exclusive locks on database objects while running a parallel dump could cause the dump to fail. The reason is that the pg_dump leader process requests shared locks on the objects that the worker processes are going to dump later in order to make sure that nobody deletes them and makes them go away while the dump is running. If another client then requests an exclusive lock on a table, that lock will not be granted but will be queued waiting for the shared lock of the leader process to be released. Consequently any other access to the table will not be granted either and will queue after the exclusive lock request. This includes the worker process trying to dump the table. Without any precautions this would be a classic deadlock situation. To detect this conflict, the pg_dump worker process requests another shared lock using the `NOWAIT` option. If the worker process is not granted this shared lock, somebody else must have requested an exclusive lock in the meantime and there is no way to continue with the dump, so pg_dump has no choice but to abort the dump.To perform a parallel dump, the database server needs to support synchronized snapshots, a feature that was introduced in IvorySQL for primary servers and 10 for standbys. With this feature, database clients can ensure they see the same data set even though they use different connections. `pg_dump -j` uses multiple database connections; it connects to the database once with the leader process and once again for each worker job. Without the synchronized snapshot feature, the different worker jobs wouldn't be guaranteed to see the same data in each connection, which could lead to an inconsistent backup. -n `pattern` --schema=`pattern` Dump only schemas matching *`pattern`*; this selects both the schema itself, and all its contained objects. When this option is not specified, all non-system schemas in the target database will be dumped. Multiple schemas can be selected by writing multiple `-n` switches. The *`pattern`* parameter is interpreted as a pattern according to the same rules used by psql's `\\d` commands, so multiple schemas can also be selected by writing wildcard characters in the pattern. When using wildcards, be careful to quote the pattern if needed to prevent the shell from expanding the wildcards. NoteWhen `-n` is specified, pg_dump makes no attempt to dump any other database objects that the selected schema(s) might depend upon. Therefore, there is no guarantee that the results of a specific-schema dump can be successfully restored by themselves into a clean database.NoteNon-schema objects such as blobs are not dumped when `-n` is specified. You can add blobs back to the dump with the `--blobs` switch. -N `pattern` --exclude-schema=`pattern` Do not dump any schemas matching *`pattern`*. The pattern is interpreted according to the same rules as for `-n`. `-N` can be given more than once to exclude schemas matching any of several patterns.When both `-n` and `-N` are given, the behavior is to dump just the schemas that match at least one `-n` switch but no `-N` switches. If `-N` appears without `-n`, then schemas matching `-N` are excluded from what is otherwise a normal dump. -O --no-owner Do not output commands to set ownership of objects to match the original database. By default, pg_dump issues `ALTER OWNER` or `SET SESSION AUTHORIZATION` statements to set ownership of created database objects. These statements will fail when the script is run unless it is started by a superuser (or the same user that owns all of the objects in the script). To make a script that can be restored by any user, but will give that user ownership of all the objects, specify `-O`.This option is ignored when emitting an archive (non-text) output file. For the archive formats, you can specify the option when you call `pg_restore`. -R --no-reconnect This option is obsolete but still accepted for backwards compatibility. -s --schema-only Dump only the object definitions (schema), not data.This option is the inverse of `--data-only`. It is similar to, but for historical reasons not identical to, specifying `--section=pre-data --section=post-data`.(Do not confuse this with the `--schema` option, which uses the word “schema” in a different meaning.)To exclude table data for only a subset of tables in the database, see `--exclude-table-data`. -S `username` --superuser=`username` Specify the superuser user name to use when disabling triggers. This is relevant only if `--disable-triggers` is used. (Usually, it's better to leave this out, and instead start the resulting script as superuser.) -t `pattern` --table=`pattern` Dump only tables with names matching *`pattern`*. Multiple tables can be selected by writing multiple `-t` switches. The *`pattern`* parameter is interpreted as a pattern according to the same rules used by psql's `\\d` commands , so multiple tables can also be selected by writing wildcard characters in the pattern. When using wildcards, be careful to quote the pattern if needed to prevent the shell from expanding the wildcards; As well as tables, this option can be used to dump the definition of matching views, materialized views, foreign tables, and sequences. It will not dump the contents of views or materialized views, and the contents of foreign tables will only be dumped if the corresponding foreign server is specified with `--include-foreign-data`.The `-n` and `-N` switches have no effect when `-t` is used, because tables selected by `-t` will be dumped regardless of those switches, and non-table objects will not be dumped.NoteWhen `-t` is specified, pg_dump makes no attempt to dump any other database objects that the selected table(s) might depend upon. Therefore, there is no guarantee that the results of a specific-table dump can be successfully restored by themselves into a clean database. -T `pattern` --exclude-table=`pattern` Do not dump any tables matching *`pattern`*. The pattern is interpreted according to the same rules as for `-t`. `-T` can be given more than once to exclude tables matching any of several patterns.When both `-t` and `-T` are given, the behavior is to dump just the tables that match at least one `-t` switch but no `-T` switches. If `-T` appears without `-t`, then tables matching `-T` are excluded from what is otherwise a normal dump. -v --verbose Specifies verbose mode. This will cause pg_dump to output detailed object comments and start/stop times to the dump file, and progress messages to standard error. Repeating the option causes additional debug-level messages to appear on standard error. -V --version Print the pg_dump version and exit. -x --no-privileges --no-acl Prevent dumping of access privileges (grant/revoke commands). -Z `0..9` --compress=`0..9` Specify the compression level to use. Zero means no compression. For the custom and directory archive formats, this specifies compression of individual table-data segments, and the default is to compress at a moderate level. For plain text output, setting a nonzero compression level causes the entire output file to be compressed, as though it had been fed through gzip; but the default is not to compress. The tar archive format currently does not support compression at all. --binary-upgrade This option is for use by in-place upgrade utilities. Its use for other purposes is not recommended or supported. The behavior of the option may change in future releases without notice. --column-inserts --attribute-inserts Dump data as `INSERT` commands with explicit column names (`INSERT INTO *`table`* (*`column`*, ...) VALUES ...`). This will make restoration very slow; it is mainly useful for making dumps that can be loaded into non-IvorySQL databases. Any error during restoring will cause only rows that are part of the problematic `INSERT` to be lost, rather than the entire table contents. --disable-dollar-quoting This option disables the use of dollar quoting for function bodies, and forces them to be quoted using SQL standard string syntax. --disable-triggers This option is relevant only when creating a data-only dump. It instructs pg_dump to include commands to temporarily disable triggers on the target tables while the data is restored. Use this if you have referential integrity checks or other triggers on the tables that you do not want to invoke during data restore.Presently, the commands emitted for `--disable-triggers` must be done as superuser. So, you should also specify a superuser name with `-S`, or preferably be careful to start the resulting script as a superuser.This option is ignored when emitting an archive (non-text) output file. For the archive formats, you can specify the option when you call `pg_restore`. --enable-row-security This option is relevant only when dumping the contents of a table which has row security. By default, pg_dump will set http://www.postgresql.org/docs/17/runtime-config-client.html#GUC-ROW-SECURITY[row_security] to off, to ensure that all data is dumped from the table. If the user does not have sufficient privileges to bypass row security, then an error is thrown. This parameter instructs pg_dump to set http://www.postgresql.org/docs/17/runtime-config-client.html#GUC-ROW-SECURITY[row_security] to on instead, allowing the user to dump the parts of the contents of the table that they have access to.Note that if you use this option currently, you probably also want the dump be in `INSERT` format, as the `COPY FROM` during restore does not support row security. --exclude-table-data=`pattern` Do not dump data for any tables matching *`pattern`*. The pattern is interpreted according to the same rules as for `-t`. `--exclude-table-data` can be given more than once to exclude tables matching any of several patterns. This option is useful when you need the definition of a particular table even though you do not need the data in it.To exclude data for all tables in the database, see `--schema-only`. --extra-float-digits=`ndigits` Use the specified value of `extra_float_digits` when dumping floating-point data, instead of the maximum available precision. Routine dumps made for backup purposes should not use this option. --if-exists Use conditional commands (i.e., add an `IF EXISTS` clause) when cleaning database objects. This option is not valid unless `--clean` is also specified. --include-foreign-data=`foreignserver` Dump the data for any foreign table with a foreign server matching *`foreignserver`* pattern. Multiple foreign servers can be selected by writing multiple `--include-foreign-data` switches. Also, the *`foreignserver`* parameter is interpreted as a pattern according to the same rules used by psql's `\\d` commands, so multiple foreign servers can also be selected by writing wildcard characters in the pattern. When using wildcards, be careful to quote the pattern if needed to prevent the shell from expanding the wildcards; The only exception is that an empty pattern is disallowed.NoteWhen `--include-foreign-data` is specified, pg_dump does not check that the foreign table is writable. Therefore, there is no guarantee that the results of a foreign table dump can be successfully restored. --inserts Dump data as `INSERT` commands (rather than `COPY`). This will make restoration very slow; it is mainly useful for making dumps that can be loaded into non-IvorySQL databases. Any error during restoring will cause only rows that are part of the problematic `INSERT` to be lost, rather than the entire table contents. Note that the restore might fail altogether if you have rearranged column order. The `--column-inserts` option is safe against column order changes, though even slower. --load-via-partition-root When dumping data for a table partition, make the `COPY` or `INSERT` statements target the root of the partitioning hierarchy that contains it, rather than the partition itself. This causes the appropriate partition to be re-determined for each row when the data is loaded. This may be useful when restoring data on a server where rows do not always fall into the same partitions as they did on the original server. That could happen, for example, if the partitioning column is of type text and the two systems have different definitions of the collation used to sort the partitioning column.It is best not to use parallelism when restoring from an archive made with this option, because pg_restore will not know exactly which partition(s) a given archive data item will load data into. This could result in inefficiency due to lock conflicts between parallel jobs, or perhaps even restore failures due to foreign key constraints being set up before all the relevant data is loaded. --lock-wait-timeout=`timeout` Do not wait forever to acquire shared table locks at the beginning of the dump. Instead fail if unable to lock a table within the specified *`timeout`*. The timeout may be specified in any of the formats accepted by `SET statement_timeout` --no-comments Do not dump comments. --no-publications Do not dump publications. --no-security-labels Do not dump security labels. --no-subscriptions Do not dump subscriptions. --no-sync By default, `pg_dump` will wait for all files to be written safely to disk. This option causes `pg_dump` to return without waiting, which is faster, but means that a subsequent operating system crash can leave the dump corrupt. Generally, this option is useful for testing but should not be used when dumping data from production installation. --no-tablespaces Do not output commands to select tablespaces. With this option, all objects will be created in whichever tablespace is the default during restore.This option is ignored when emitting an archive (non-text) output file. For the archive formats, you can specify the option when you call `pg_restore`. --no-toast-compression Do not output commands to set TOAST compression methods. With this option, all columns will be restored with the default compression setting. --no-unlogged-table-data Do not dump the contents of unlogged tables and sequences. This option has no effect on whether or not the table and sequence definitions (schema) are dumped; it only suppresses dumping the table and sequence data. Data in unlogged tables and sequences is always excluded when dumping from a standby server. --on-conflict-do-nothing Add `ON CONFLICT DO NOTHING` to `INSERT` commands. This option is not valid unless `--inserts`, `--column-inserts` or `--rows-per-insert` is also specified. --quote-all-identifiers Force quoting of all identifiers. This option is recommended when dumping a database from a server whose IvorySQL major version is different from pg_dump's, or when the output is intended to be loaded into a server of a different major version. By default, pg_dump quotes only identifiers that are reserved words in its own major version. This sometimes results in compatibility issues when dealing with servers of other versions that may have slightly different sets of reserved words. Using `--quote-all-identifiers` prevents such issues, at the price of a harder-to-read dump script. --rows-per-insert=`nrows` Dump data as `INSERT` commands (rather than `COPY`). Controls the maximum number of rows per `INSERT` command. The value specified must be a number greater than zero. Any error during restoring will cause only rows that are part of the problematic `INSERT` to be lost, rather than the entire table contents. --section=`sectionname` Only dump the named section. The section name can be `pre-data`, `data`, or `post-data`. This option can be specified more than once to select multiple sections. The default is to dump all sections.The data section contains actual table data, large-object contents, and sequence values. Post-data items include definitions of indexes, triggers, rules, and constraints other than validated check constraints. Pre-data items include all other data definition items. --serializable-deferrable Use a `serializable` transaction for the dump, to ensure that the snapshot used is consistent with later database states; but do this by waiting for a point in the transaction stream at which no anomalies can be present, so that there isn't a risk of the dump failing or causing other transactions to roll back with a `serialization_failure`.This option is not beneficial for a dump which is intended only for disaster recovery. It could be useful for a dump used to load a copy of the database for reporting or other read-only load sharing while the original database continues to be updated. Without it the dump may reflect a state which is not consistent with any serial execution of the transactions eventually committed. For example, if batch processing techniques are used, a batch may show as closed in the dump without all of the items which are in the batch appearing.This option will make no difference if there are no read-write transactions active when pg_dump is started. If read-write transactions are active, the start of the dump may be delayed for an indeterminate length of time. Once running, performance with or without the switch is the same. --snapshot=`snapshotname` Use the specified synchronized snapshot when making a dump of the database.This option is useful when needing to synchronize the dump with a logical replication slot or with a concurrent session.In the case of a parallel dump, the snapshot name defined by this option is used rather than taking a new snapshot. --strict-names Require that each extension (`-e`/`--extension`), schema (`-n`/`--schema`) and table (`-t`/`--table`) qualifier match at least one extension/schema/table in the database to be dumped. Note that if none of the extension/schema/table qualifiers find matches, pg_dump will generate an error even without `--strict-names`.This option has no effect on `-N`/`--exclude-schema`, `-T`/`--exclude-table`, or `--exclude-table-data`. An exclude pattern failing to match any objects is not considered an error. --use-set-session-authorization Output SQL-standard `SET SESSION AUTHORIZATION` commands instead of `ALTER OWNER` commands to determine object ownership. This makes the dump more standards-compatible, but depending on the history of the objects in the dump, might not restore properly. Also, a dump using `SET SESSION AUTHORIZATION` will certainly require superuser privileges to restore correctly, whereas `ALTER OWNER` requires lesser privileges. -? --help Show help about pg_dump command line arguments, and exit. The following command-line options control the database connection parameters. -d `dbname` --dbname=`dbname` Specifies the name of the database to connect to. This is equivalent to specifying *`dbname`* as the first non-option argument on the command line. The *`dbname`* can be a http://www.postgresql.org/docs/17/libpq-connect.html#LIBPQ-CONNSTRING[connection string]. If so, connection string parameters will override any conflicting command line options. -h `host` --host=`host` Specifies the host name of the machine on which the server is running. If the value begins with a slash, it is used as the directory for the Unix domain socket. The default is taken from the `PGHOST` environment variable, if set, else a Unix domain socket connection is attempted. -p `port` --port=`port` Specifies the TCP port or local Unix domain socket file extension on which the server is listening for connections. Defaults to the `PGPORT` environment variable, if set, or a compiled-in default. -U `username` --username=`username` User name to connect as. -w --no-password Never issue a password prompt. If the server requires password authentication and a password is not available by other means such as a `.pgpass` file, the connection attempt will fail. This option can be useful in batch jobs and scripts where no user is present to enter a password. -W --password Force pg_dump to prompt for a password before connecting to a database.This option is never essential, since pg_dump will automatically prompt for a password if the server demands password authentication. However, pg_dump will waste a connection attempt finding out that the server wants a password. In some cases it is worth typing `-W` to avoid the extra connection attempt. --role=`rolename` Specifies a role name to be used to create the dump. This option causes pg_dump to issue a `SET ROLE` *`rolename`* command after connecting to the database. It is useful when the authenticated user (specified by `-U`) lacks privileges needed by pg_dump, but can switch to a role with the required rights. Some installations have a policy against logging in directly as a superuser, and use of this option allows dumps to be made without violating the policy. PGDATABASE PGHOST PGOPTIONS PGPORT PGUSER Default connection parameters. PG_COLOR Specifies whether to use color in diagnostic messages. Possible values are `always`, `auto` and `never`. This utility, like most other IvorySQL utilities, also uses the environment variables supported by libpq. pg_dump internally executes SELECT statements. If you have problems running pg_dump, make sure you are able to select information from the database using, for example, psql. Also, any default connection settings and environment variables used by the libpq front-end library will apply. The database activity of pg_dump is normally collected by the cumulative statistics system. If this is undesirable, you can set parameter track_counts to false via PGOPTIONS or the ALTER USER command. If your database cluster has any local additions to the template1 database, be careful to restore the output of pg_dump into a truly empty database; otherwise you are likely to get errors due to duplicate definitions of the added objects. To make an empty database without any local additions, copy from template0 not template1, for example: CREATE DATABASE foo WITH TEMPLATE template0; When a data-only dump is chosen and the option --disable-triggers is used, pg_dump emits commands to disable triggers on user tables before inserting the data, and then commands to re-enable them after the data has been inserted. If the restore is stopped in the middle, the system catalogs might be left in the wrong state. The dump file produced by pg_dump does not contain the statistics used by the optimizer to make query planning decisions. Therefore, it is wise to run ANALYZE after restoring from a dump file to ensure optimal performance. When dumping logical replication subscriptions, pg_dump will generate CREATE SUBSCRIPTION commands that use the connect = false option, so that restoring the subscription does not make remote connections for creating a replication slot or for initial table copy. That way, the dump can be restored without requiring network access to the remote servers. It is then up to the user to reactivate the subscriptions in a suitable way. If the involved hosts have changed, the connection information might have to be changed. It might also be appropriate to truncate the target tables before initiating a new full table copy. If users intend to copy initial data during refresh they must create the slot with two_phase = false. After the initial sync, the two_phase option will be automatically enabled by the subscriber if the subscription had been originally created with two_phase = true option. To dump a database called mydb into an SQL-script file: $ pg_dump mydb > db.sql To reload such a script into a (freshly created) database named newdb: $ psql -d newdb -f db.sql To dump a database into a custom-format archive file: $ pg_dump -Fc mydb > db.dump To dump a database into a directory-format archive: $ pg_dump -Fd mydb -f dumpdir To dump a database into a directory-format archive in parallel with 5 worker jobs: $ pg_dump -Fd mydb -j 5 -f dumpdir To reload an archive file into a (freshly created) database named newdb: $ pg_restore -d newdb db.dump To reload an archive file into the same database it was dumped from, discarding the current contents of that database: $ pg_restore -d postgres --clean --create db.dump To dump a single table named mytab: $ pg_dump -t mytab mydb > db.sql To dump all tables whose names start with emp in the detroit schema, except for the table named employee_log: $ pg_dump -t 'detroit.emp*' -T detroit.employee_log mydb > db.sql To dump all schemas whose names start with east or west and end in gsm, excluding any schemas whose names contain the word test: $ pg_dump -n 'east*gsm' -n 'west*gsm' -N '*test*' mydb > db.sql The same, using regular expression notation to consolidate the switches: $ pg_dump -n '(east|west)*gsm' -N '*test*' mydb > db.sql To dump all database objects except for tables whose names begin with ts_: $ pg_dump -T 'ts_*' mydb > db.sql To specify an upper-case or mixed-case name in -t and related switches, you need to double-quote the name; else it will be folded to lower case.But double quotes are special to the shell, so in turn they must be quoted. Thus, to dump a single table with a mixed-case name, you need something like $ pg_dump -t \"\\\"MixedCaseName\\\"\" mydb > mytab.sql pg_dumpall — extract a IvorySQL database cluster into a script file pg_dumpall [connection-option…] [option…] The following command-line options control the content and format of the output. -a --data-only Dump only the data, not the schema (data definitions). -c --clean Include SQL commands to clean (drop) databases before recreating them. DROP commands for roles and tablespaces are added as well. -E encoding --encoding=encoding Create the dump in the specified character set encoding. By default, the dump is created in the database encoding. (Another way to get the same result is to set the PGCLIENTENCODING environment variable to the desired dump encoding.) -f filename --file=filename Send output to the specified file. If this is omitted, the standard output is used. -g --globals-only Dump only global objects (roles and tablespaces), no databases. -O --no-owner Do not output commands to set ownership of objects to match the original database. By default, pg_dumpall issues ALTER OWNER or SET SESSION AUTHORIZATION statements to set ownership of created schema elements. These statements will fail when the script is run unless it is started by a superuser (or the same user that owns all of the objects in the script). To make a script that can be restored by any user, but will give that user ownership of all the objects, specify -O. -r --roles-only Dump only roles, no databases or tablespaces. -s --schema-only Dump only the object definitions (schema), not data. -S username --superuser=username Specify the superuser user name to use when disabling triggers. This is relevant only if --disable-triggers is used. (Usually, it’s better to leave this out, and instead start the resulting script as superuser.) -t --tablespaces-only Dump only tablespaces, no databases or roles. -v --verbose Specifies verbose mode. This will cause pg_dumpall to output start/stop times to the dump file, and progress messages to standard error. Repeating the option causes additional debug-level messages to appear on standard error. The option is also passed down to pg_dump. -V --version Print the pg_dumpall version and exit. -x --no-privileges --no-acl Prevent dumping of access privileges (grant/revoke commands). --binary-upgrade This option is for use by in-place upgrade utilities. Its use for other purposes is not recommended or supported. The behavior of the option may change in future releases without notice. --column-inserts --attribute-inserts Dump data as INSERT commands with explicit column names (INSERT INTO table (column, …) VALUES …). This will make restoration very slow; it is mainly useful for making dumps that can be loaded into non-IvorySQL databases. --disable-dollar-quoting This option disables the use of dollar quoting for function bodies, and forces them to be quoted using SQL standard string syntax. --disable-triggers This option is relevant only when creating a data-only dump. It instructs pg_dumpall to include commands to temporarily disable triggers on the target tables while the data is restored. Use this if you have referential integrity checks or other triggers on the tables that you do not want to invoke during data restore.Presently, the commands emitted for --disable-triggers must be done as superuser. So, you should also specify a superuser name with -S, or preferably be careful to start the resulting script as a superuser. --exclude-database=`pattern` Do not dump databases whose name matches pattern. Multiple patterns can be excluded by writing multiple --exclude-database switches. The pattern parameter is interpreted as a pattern according to the same rules used by psql’s \\d commands, so multiple databases can also be excluded by writing wildcard characters in the pattern. When using wildcards, be careful to quote the pattern if needed to prevent shell wildcard expansion. --extra-float-digits=`ndigits` Use the specified value of extra_float_digits when dumping floating-point data, instead of the maximum available precision. Routine dumps made for backup purposes should not use this option. --if-exists Use conditional commands (i.e., add an IF EXISTS clause) to drop databases and other objects. This option is not valid unless --clean is also specified. --inserts Dump data as INSERT commands (rather than COPY). This will make restoration very slow; it is mainly useful for making dumps that can be loaded into non-IvorySQL databases. Note that the restore might fail altogether if you have rearranged column order. The --column-inserts option is safer, though even slower. --load-via-partition-root When dumping data for a table partition, make the COPY or INSERT statements target the root of the partitioning hierarchy that contains it, rather than the partition itself. This causes the appropriate partition to be re-determined for each row when the data is loaded. This may be useful when restoring data on a server where rows do not always fall into the same partitions as they did on the original server. That could happen, for example, if the partitioning column is of type text and the two systems have different definitions of the collation used to sort the partitioning column. --lock-wait-timeout=`timeout` Do not wait forever to acquire shared table locks at the beginning of the dump. Instead, fail if unable to lock a table within the specified timeout. The timeout may be specified in any of the formats accepted by SET statement_timeout. --no-comments Do not dump comments. --no-publications Do not dump publications. --no-role-passwords Do not dump passwords for roles. When restored, roles will have a null password, and password authentication will always fail until the password is set. Since password values aren’t needed when this option is specified, the role information is read from the catalog view pg_roles instead of pg_authid. Therefore, this option also helps if access to pg_authid is restricted by some security policy. --no-security-labels Do not dump security labels. --no-subscriptions Do not dump subscriptions. --no-sync By default, pg_dumpall will wait for all files to be written safely to disk. This option causes pg_dumpall to return without waiting, which is faster, but means that a subsequent operating system crash can leave the dump corrupt. Generally, this option is useful for testing but should not be used when dumping data from production installation. --no-table-access-method Do not output commands to select table access methods. With this option, all objects will be created with whichever table access method is the default during restore. --no-tablespaces Do not output commands to create tablespaces nor select tablespaces for objects. With this option, all objects will be created in whichever tablespace is the default during restore. --no-toast-compression Do not output commands to set TOAST compression methods. With this option, all columns will be restored with the default compression setting. --no-unlogged-table-data Do not dump the contents of unlogged tables. This option has no effect on whether or not the table definitions (schema) are dumped; it only suppresses dumping the table data. --on-conflict-do-nothing Add ON CONFLICT DO NOTHING to INSERT commands. This option is not valid unless --inserts or --column-inserts is also specified. --quote-all-identifiers Force quoting of all identifiers. This option is recommended when dumping a database from a server whose IvorySQL major version is different from pg_dumpall’s, or when the output is intended to be loaded into a server of a different major version. By default, pg_dumpall quotes only identifiers that are reserved words in its own major version. This sometimes results in compatibility issues when dealing with servers of other versions that may have slightly different sets of reserved words. Using --quote-all-identifiers prevents such issues, at the price of a harder-to-read dump script. --rows-per-insert=`nrows` Dump data as INSERT commands (rather than COPY). Controls the maximum number of rows per INSERT command. The value specified must be a number greater than zero. Any error during restoring will cause only rows that are part of the problematic INSERT to be lost, rather than the entire table contents. --use-set-session-authorization Output SQL-standard SET SESSION AUTHORIZATION commands instead of ALTER OWNER commands to determine object ownership. This makes the dump more standards compatible, but depending on the history of the objects in the dump, might not restore properly. -? --help Show help about pg_dumpall command line arguments, and exit. The following command-line options control the database connection parameters. -d connstr --dbname=connstr Specifies parameters used to connect to the server, as a connection string; these will override any conflicting command line options.The option is called --dbname for consistency with other client applications, but because pg_dumpall needs to connect to many databases, the database name in the connection string will be ignored. Use the -l option to specify the name of the database used for the initial connection, which will dump global objects and discover what other databases should be dumped. -h host --host=host Specifies the host name of the machine on which the database server is running. If the value begins with a slash, it is used as the directory for the Unix domain socket. The default is taken from the PGHOST environment variable, if set, else a Unix domain socket connection is attempted. -l dbname --database=dbname Specifies the name of the database to connect to for dumping global objects and discovering what other databases should be dumped. If not specified, the postgres database will be used, and if that does not exist, template1 will be used. -p `port` --port=`port` Specifies the TCP port or local Unix domain socket file extension on which the server is listening for connections. Defaults to the PGPORT environment variable, if set, or a compiled-in default. -U username --username=username User name to connect as. -w --no-password Never issue a password prompt. If the server requires password authentication and a password is not available by other means such as a .pgpass file, the connection attempt will fail. This option can be useful in batch jobs and scripts where no user is present to enter a password. -W --password Force pg_dumpall to prompt for a password before connecting to a database.This option is never essential, since pg_dumpall will automatically prompt for a password if the server demands password authentication. However, pg_dumpall will waste a connection attempt finding out that the server wants a password. In some cases it is worth typing -W to avoid the extra connection attempt.Note that the password prompt will occur again for each database to be dumped. Usually, it’s better to set up a ~/.pgpass file than to rely on manual password entry. --role=`rolename` Specifies a role name to be used to create the dump. This option causes pg_dumpall to issue a SET ROLE rolename command after connecting to the database. It is useful when the authenticated user (specified by -U) lacks privileges needed by pg_dumpall, but can switch to a role with the required rights. Some installations have a policy against logging in directly as a superuser, and use of this option allows dumps to be made without violating the policy. PGHOST PGOPTIONS PGPORT PGUSER Default connection parameters PG_COLOR Specifies whether to use color in diagnostic messages. Possible values are always, auto and never. This utility, like most other IvorySQL utilities, also uses the environment variables supported by libpq Since pg_dumpall calls pg_dump internally, some diagnostic messages will refer to pg_dump. The --clean option can be useful even when your intention is to restore the dump script into a fresh cluster. Use of --clean authorizes the script to drop and re-create the built-in postgres and template1 databases, ensuring that those databases will retain the same properties (for instance, locale and encoding) that they had in the source cluster. Without the option, those databases will retain their existing database-level properties, as well as any pre-existing contents. Once restored, it is wise to run ANALYZE on each database so the optimizer has useful statistics. You can also run vacuumdb -a -z to analyze all databases. The dump script should not be expected to run completely without errors. In particular, because the script will issue CREATE ROLE for every role existing in the source cluster, it is certain to get a “role already exists” error for the bootstrap superuser, unless the destination cluster was initialized with a different bootstrap superuser name. This error is harmless and should be ignored. Use of the --clean option is likely to produce additional harmless error messages about non-existent objects, although you can minimize those by adding --if-exists. pg_dumpall requires all needed tablespace directories to exist before the restore; otherwise, database creation will fail for databases in non-default locations. To dump all databases: $ pg_dumpall > db.out To restore database(s) from this file, you can use: $ psql -f db.out postgres It is not important to which database you connect here since the script file created by pg_dumpall will contain the appropriate commands to create and connect to the saved databases. An exception is that if you specified --clean, you must connect to the postgres database initially; the script will attempt to drop other databases immediately, and that will fail for the database you are connected to. pg_isready — check the connection status of a IvorySQL server pg_isready [connection-option…] [option…] -d dbname --dbname=dbname Specifies the name of the database to connect to. The dbname can be a connection string. If so, connection string parameters will override any conflicting command line options. -h hostname --host=hostname Specifies the host name of the machine on which the server is running. If the value begins with a slash, it is used as the directory for the Unix-domain socket. -p port --port=port Specifies the TCP port or the local Unix-domain socket file extension on which the server is listening for connections. Defaults to the value of the PGPORT environment variable or, if not set, to the port specified at compile time, usually 5432. -q --quiet Do not display status message. This is useful when scripting. -t seconds --timeout=seconds The maximum number of seconds to wait when attempting connection before returning that the server is not responding. Setting to 0 disables. The default is 3 seconds. -U username --username=username Connect to the database as the user username instead of the default. -V --version Print the pg_isready version and exit. -? --help Show help about pg_isready command line arguments, and exit. pg_isready returns 0 to the shell if the server is accepting connections normally, 1 if the server is rejecting connections (for example during startup), 2 if there was no response to the connection attempt, and 3 if no attempt was made (for example due to invalid parameters). pg_isready, like most other IvorySQL utilities, also uses the environment variables supported by libpq . The environment variable PG_COLOR specifies whether to use color in diagnostic messages. Possible values are always, auto and never. It is not necessary to supply correct user name, password, or database name values to obtain the server status; however, if incorrect values are provided, the server will log a failed connection attempt. Standard Usage: $ pg_isready /tmp:5432 - accepting connections $ echo $? 0 Running with connection parameters to a IvorySQL cluster in startup: $ pg_isready -h localhost -p 5433 localhost:5433 - rejecting connections $ echo $? 1 Running with connection parameters to a non-responsive IvorySQL cluster: $ pg_isready -h someremotehost someremotehost:5432 - no response $ echo $? 2 pg_receivewal — stream write-ahead logs from a IvorySQL server pg_receivewal [option…] -D directory --directory=directory Directory to write the output to.This parameter is required. -E lsn --endpos=lsn Automatically stop replication and exit with normal exit status 0 when receiving reaches the specified LSN.If there is a record with LSN exactly equal to lsn, the record will be processed. --if-not-exists Do not error out when --create-slot is specified and a slot with the specified name already exists. -n --no-loop Don’t loop on connection errors. Instead, exit right away with an error. --no-sync This option causes pg_receivewal to not force WAL data to be flushed to disk. This is faster, but means that a subsequent operating system crash can leave the WAL segments corrupt. Generally, this option is useful for testing but should not be used when doing WAL archiving on a production deployment.This option is incompatible with --synchronous. -s interval --status-interval=interval Specifies the number of seconds between status packets sent back to the server. This allows for easier monitoring of the progress from server. A value of zero disables the periodic status updates completely, although an update will still be sent when requested by the server, to avoid timeout disconnect. The default value is 10 seconds. -S slotname --slot=slotname Require pg_receivewal to use an existing replication slot, When this option is used, pg_receivewal will report a flush position to the server, indicating when each segment has been synchronized to disk so that the server can remove that segment if it is not otherwise needed.When the replication client of pg_receivewal is configured on the server as a synchronous standby, then using a replication slot will report the flush position to the server, but only when a WAL file is closed. Therefore, that configuration will cause transactions on the primary to wait for a long time and effectively not work satisfactorily. The option --synchronous (see below) must be specified in addition to make this work correctly. --synchronous Flush the WAL data to disk immediately after it has been received. Also send a status packet back to the server immediately after flushing, regardless of --status-interval.This option should be specified if the replication client of pg_receivewal is configured on the server as a synchronous standby, to ensure that timely feedback is sent to the server. -v --verbose Enables verbose mode. -Z level -Z method[:*detail*] --compress=level --compress=method[:*detail*] Enables compression of write-ahead logs.The compression method can be set to gzip, lz4 (if IvorySQL was compiled with --with-lz4) or none for no compression. A compression detail string can optionally be specified. If the detail string is an integer, it specifies the compression level. Otherwise, it should be a comma-separated list of items, each of the form keyword or keyword=value. Currently, the only supported keyword is level.If no compression level is specified, the default compression level will be used. If only a level is specified without mentioning an algorithm, gzip compression will be used if the level is greater than 0, and no compression will be used if the level is 0.The suffix .gz will automatically be added to all filenames when using gzip, and the suffix .lz4 is added when using lz4. The following command-line options control the database connection parameters. -d connstr --dbname=connstr Specifies parameters used to connect to the server, as a connection string; these will override any conflicting command line options.The option is called --dbname for consistency with other client applications, but because pg_receivewal doesn’t connect to any particular database in the cluster, database name in the connection string will be ignored. -h `host` --host=`host` Specifies the host name of the machine on which the server is running. If the value begins with a slash, it is used as the directory for the Unix domain socket. The default is taken from the PGHOST environment variable, if set, else a Unix domain socket connection is attempted. -p `port` --port=`port` Specifies the TCP port or local Unix domain socket file extension on which the server is listening for connections. Defaults to the PGPORT environment variable, if set, or a compiled-in default. -U `username` --username=`username` User name to connect as. -w --no-password Never issue a password prompt. If the server requires password authentication and a password is not available by other means such as a .pgpass file, the connection attempt will fail. This option can be useful in batch jobs and scripts where no user is present to enter a password. -W --password Force pg_receivewal to prompt for a password before connecting to a database.This option is never essential, since pg_receivewal will automatically prompt for a password if the server demands password authentication. However, pg_receivewal will waste a connection attempt finding out that the server wants a password. In some cases it is worth typing -W to avoid the extra connection attempt. pg_receivewal can perform one of the two following actions in order to control physical replication slots: --create-slot Create a new physical replication slot with the name specified in --slot, then exit. --drop-slot Drop the replication slot with the name specified in --slot, then exit. Other options are also available: -V --version Print the pg_receivewal version and exit. -? --help Show help about pg_receivewal command line arguments, and exit. pg_receivewal will exit with status 0 when terminated by the SIGINT signal. (That is the normal way to end it. Hence it is not an error.) For fatal errors or other signals, the exit status will be nonzero. This utility, like most other IvorySQL utilities, uses the environment variables supported by libpq The environment variable PG_COLOR specifies whether to use color in diagnostic messages. Possible values are always, auto and never. When using pg_receivewal instead of archive_command as the main WAL backup method, it is strongly recommended to use replication slots. Otherwise, the server is free to recycle or remove write-ahead log files before they are backed up, because it does not have any information, either from archive_command or the replication slots, about how far the WAL stream has been archived. Note, however, that a replication slot will fill up the server’s disk space if the receiver does not keep up with fetching the WAL data. pg_receivewal will preserve group permissions on the received WAL files if group permissions are enabled on the source cluster. To stream the write-ahead log from the server at mydbserver and store it in the local directory /usr/local/pgsql/archive: $ pg_receivewal -h mydbserver -D /usr/local/pgsql/archive pg_recvlogical — control IvorySQL logical decoding streams pg_recvlogical [option…] At least one of the following options must be specified to select an action: --create-slot Create a new logical replication slot with the name specified by --slot, using the output plugin specified by --plugin, for the database specified by --dbname.The --two-phase can be specified with --create-slot to enable decoding of prepared transactions. --drop-slot Drop the replication slot with the name specified by --slot, then exit. --start Begin streaming changes from the logical replication slot specified by --slot, continuing until terminated by a signal. If the server side change stream ends with a server shutdown or disconnect, retry in a loop unless --no-loop is specified.The stream format is determined by the output plugin specified when the slot was created.The connection must be to the same database used to create the slot. --create-slot and --start can be specified together. --drop-slot cannot be combined with another action. The following command-line options control the location and format of the output and other replication behavior: -E lsn --endpos=lsn In --start mode, automatically stop replication and exit with normal exit status 0 when receiving reaches the specified LSN. If specified when not in --start mode, an error is raised.If there’s a record with LSN exactly equal to lsn, the record will be output.The --endpos option is not aware of transaction boundaries and may truncate output partway through a transaction. Any partially output transaction will not be consumed and will be replayed again when the slot is next read from. Individual messages are never truncated. -f filename --file=filename Write received and decoded transaction data into this file. Use - for stdout. -F interval_seconds --fsync-interval=interval_seconds Specifies how often pg_recvlogical should issue fsync() calls to ensure the output file is safely flushed to disk.The server will occasionally request the client to perform a flush and report the flush position to the server. This setting is in addition to that, to perform flushes more frequently.Specifying an interval of 0 disables issuing fsync() calls altogether, while still reporting progress to the server. In this case, data could be lost in the event of a crash. -I lsn --startpos=lsn In --start mode, start replication from the given LSN. For details on the effect of this. --if-not-exists Do not error out when --create-slot is specified and a slot with the specified name already exists. -n --no-loop When the connection to the server is lost, do not retry in a loop, just exit. -o name[=value] --option=name[=value] Pass the option name to the output plugin with, if specified, the option value value. Which options exist and their effects depends on the used output plugin. -P plugin --plugin=plugin When creating a slot, use the specified logical decoding output plugin. This option has no effect if the slot already exists. -s interval_seconds --status-interval=interval_seconds This option has the same effect as the option of the same name in pg_receivewal. See the description there. -S slot_name --slot=slot_name In --start mode, use the existing logical replication slot named slot_name. In --create-slot mode, create the slot with this name. In --drop-slot mode, delete the slot with this name. -t --two-phase Enables decoding of prepared transactions. This option may only be specified with --create-slot -v --verbose Enables verbose mode. The following command-line options control the database connection parameters. -d dbname --dbname=dbname The database to connect to. See the description of the actions for what this means in detail. The dbname can be a connection string. If so, connection string parameters will override any conflicting command line options. Defaults to the user name. -h hostname-or-ip --host=hostname-or-ip Specifies the host name of the machine on which the server is running. If the value begins with a slash, it is used as the directory for the Unix domain socket. The default is taken from the PGHOST environment variable, if set, else a Unix domain socket connection is attempted. -p port --port=port Specifies the TCP port or local Unix domain socket file extension on which the server is listening for connections. Defaults to the PGPORT environment variable, if set, or a compiled-in default. -U user --username=user User name to connect as. Defaults to current operating system user name. -w --no-password Never issue a password prompt. If the server requires password authentication and a password is not available by other means such as a .pgpass file, the connection attempt will fail. This option can be useful in batch jobs and scripts where no user is present to enter a password. -W --password Force pg_recvlogical to prompt for a password before connecting to a database.This option is never essential, since pg_recvlogical will automatically prompt for a password if the server demands password authentication. However, pg_recvlogical will waste a connection attempt finding out that the server wants a password. In some cases it is worth typing -W to avoid the extra connection attempt. The following additional options are available: -V --version Print the pg_recvlogical version and exit. -? --help Show help about pg_recvlogical command line arguments, and exit. This utility, like most other IvorySQL utilities, uses the environment variables supported by libpq . The environment variable PG_COLOR specifies whether to use color in diagnostic messages. Possible values are always, auto and never. pg_recvlogical will preserve group permissions on the received WAL files if group permissions are enabled on the source cluster. pg_restore — restore a IvorySQL database from an archive file created by pg_dump pg_restore [connection-option…] [option…] [filename] pg_restore accepts the following command line arguments. filename Specifies the location of the archive file (or directory, for a directory-format archive) to be restored. If not specified, the standard input is used. -a --data-only Restore only the data, not the schema (data definitions). Table data, large objects, and sequence values are restored, if present in the archive.This option is similar to, but for historical reasons not identical to, specifying --section=data. -c --clean Clean (drop) database objects before recreating them. (Unless --if-exists is used, this might generate some harmless error messages, if any objects were not present in the destination database.) -C --create Create the database before restoring into it. If --clean is also specified, drop and recreate the target database before connecting to it.With --create, pg_restore also restores the database’s comment if any, and any configuration variable settings that are specific to this database, that is, any ALTER DATABASE … SET … and ALTER ROLE … IN DATABASE … SET … commands that mention this database. Access privileges for the database itself are also restored, unless --no-acl is specified.When this option is used, the database named with -d is used only to issue the initial DROP DATABASE and CREATE DATABASE commands. All data is restored into the database name that appears in the archive. -d dbname --dbname=dbname Connect to database dbname and restore directly into the database. The dbname can be a connection string. If so, connection string parameters will override any conflicting command line options. -e --exit-on-error Exit if an error is encountered while sending SQL commands to the database. The default is to continue and to display a count of errors at the end of the restoration. -f `filename` --file=`filename` Specify output file for generated script, or for the listing when used with -l. Use - for stdout. -F format --format=format Specify format of the archive. It is not necessary to specify the format, since pg_restore will determine the format automatically. If specified, it can be one of the following:`c` custom`The archive is in the custom format of pg_dump.`d directory`The archive is a directory archive.`t tar`The archive is a `tar archive. -I index --index=index Restore definition of named index only. Multiple indexes may be specified with multiple -I switches. -j number-of-jobs --jobs=number-of-jobs Run the most time-consuming steps of pg_restore — those that load data, create indexes, or create constraints — concurrently, using up to number-of-jobs concurrent sessions. This option can dramatically reduce the time to restore a large database to a server running on a multiprocessor machine. This option is ignored when emitting a script rather than connecting directly to a database server.Each job is one process or one thread, depending on the operating system, and uses a separate connection to the server.The optimal value for this option depends on the hardware setup of the server, of the client, and of the network. Factors include the number of CPU cores and the disk setup. A good place to start is the number of CPU cores on the server, but values larger than that can also lead to faster restore times in many cases. Of course, values that are too high will lead to decreased performance because of thrashing.Only the custom and directory archive formats are supported with this option. The input must be a regular file or directory (not, for example, a pipe or standard input). Also, multiple jobs cannot be used together with the option --single-transaction. -l --list List the table of contents of the archive. The output of this operation can be used as input to the -L option. Note that if filtering switches such as -n or -t are used with -l, they will restrict the items listed. -L list-file --use-list=list-file Restore only those archive elements that are listed in list-file, and restore them in the order they appear in the file. Note that if filtering switches such as -n or -t are used with -L, they will further restrict the items restored.list-file is normally created by editing the output of a previous -l operation. Lines can be moved or removed, and can also be commented out by placing a semicolon (;) at the start of the line. See below for examples. -n schema --schema=schema Restore only objects that are in the named schema. Multiple schemas may be specified with multiple -n switches. This can be combined with the -t option to restore just a specific table. -N schema --exclude-schema=schema Do not restore objects that are in the named schema. Multiple schemas to be excluded may be specified with multiple -N switches.When both -n and -N are given for the same schema name, the -N switch wins and the schema is excluded. -O --no-owner Do not output commands to set ownership of objects to match the original database. By default, pg_restore issues ALTER OWNER or SET SESSION AUTHORIZATION statements to set ownership of created schema elements. These statements will fail unless the initial connection to the database is made by a superuser (or the same user that owns all of the objects in the script). With -O, any user name can be used for the initial connection, and this user will own all the created objects. -P function-name(argtype [, …]) --function=function-name(argtype [, …]) Restore the named function only. Be careful to spell the function name and arguments exactly as they appear in the dump file’s table of contents. Multiple functions may be specified with multiple -P switches. -R --no-reconnect This option is obsolete but still accepted for backwards compatibility. -s --schema-only Restore only the schema (data definitions), not data, to the extent that schema entries are present in the archive.This option is the inverse of --data-only. It is similar to, but for historical reasons not identical to, specifying --section=pre-data --section=post-data.(Do not confuse this with the --schema option, which uses the word “schema” in a different meaning.) -S username --superuser=username Specify the superuser user name to use when disabling triggers. This is relevant only if --disable-triggers is used. -t table --table=table Restore definition and/or data of only the named table. For this purpose, “table” includes views, materialized views, sequences, and foreign tables. Multiple tables can be selected by writing multiple -t switches. This option can be combined with the -n option to specify table(s) in a particular schema.NoteWhen -t is specified, pg_restore makes no attempt to restore any other database objects that the selected table(s) might depend upon. Therefore, there is no guarantee that a specific-table restore into a clean database will succeed.NoteThis flag does not behave identically to the -t flag of pg_dump. There is not currently any provision for wild-card matching in pg_restore, nor can you include a schema name within its -t. And, while pg_dump’s -t flag will also dump subsidiary objects (such as indexes) of the selected table(s), pg_restore’s -t flag does not include such subsidiary objects. -T trigger --trigger=trigger Restore named trigger only. Multiple triggers may be specified with multiple -T switches. -v --verbose Specifies verbose mode. This will cause pg_restore to output detailed object comments and start/stop times to the output file, and progress messages to standard error. Repeating the option causes additional debug-level messages to appear on standard error. -V --version Print the pg_restore version and exit. -x --no-privileges --no-acl Prevent restoration of access privileges (grant/revoke commands). -1 --single-transaction Execute the restore as a single transaction (that is, wrap the emitted commands in BEGIN / COMMIT). This ensures that either all the commands complete successfully, or no changes are applied. This option implies --exit-on-error. --disable-triggers This option is relevant only when performing a data-only restore. It instructs pg_restore to execute commands to temporarily disable triggers on the target tables while the data is restored. Use this if you have referential integrity checks or other triggers on the tables that you do not want to invoke during data restore.Presently, the commands emitted for --disable-triggers must be done as superuser. So you should also specify a superuser name with -S or, preferably, run pg_restore as a IvorySQL superuser. --enable-row-security This option is relevant only when restoring the contents of a table which has row security. By default, pg_restore will set row_security to off, to ensure that all data is restored in to the table. If the user does not have sufficient privileges to bypass row security, then an error is thrown. This parameter instructs pg_restore to set row_security to on instead, allowing the user to attempt to restore the contents of the table with row security enabled. This might still fail if the user does not have the right to insert the rows from the dump into the table.Note that this option currently also requires the dump be in INSERT format, as COPY FROM does not support row security. --if-exists Use conditional commands (i.e., add an IF EXISTS clause) to drop database objects. This option is not valid unless --clean is also specified. --no-comments Do not output commands to restore comments, even if the archive contains them. --no-data-for-failed-tables By default, table data is restored even if the creation command for the table failed (e.g., because it already exists). With this option, data for such a table is skipped. This behavior is useful if the target database already contains the desired table contents. For example, auxiliary tables for IvorySQL extensions such as PostGIS might already be loaded in the target database; specifying this option prevents duplicate or obsolete data from being loaded into them.This option is effective only when restoring directly into a database, not when producing SQL script output. --no-publications Do not output commands to restore publications, even if the archive contains them. --no-security-labels Do not output commands to restore security labels, even if the archive contains them. --no-subscriptions Do not output commands to restore subscriptions, even if the archive contains them. --no-table-access-method Do not output commands to select table access methods. With this option, all objects will be created with whichever access method is the default during restore. --no-tablespaces Do not output commands to select tablespaces. With this option, all objects will be created in whichever tablespace is the default during restore. --section=`sectionname` Only restore the named section. The section name can be pre-data, data, or post-data. This option can be specified more than once to select multiple sections. The default is to restore all sections.The data section contains actual table data as well as large-object definitions. Post-data items consist of definitions of indexes, triggers, rules and constraints other than validated check constraints. Pre-data items consist of all other data definition items. --strict-names Require that each schema (-n/--schema) and table (-t/--table) qualifier match at least one schema/table in the backup file. --use-set-session-authorization Output SQL-standard SET SESSION AUTHORIZATION commands instead of ALTER OWNER commands to determine object ownership. This makes the dump more standards-compatible, but depending on the history of the objects in the dump, might not restore properly. -? --help Show help about pg_restore command line arguments, and exit. pg_restore also accepts the following command line arguments for connection parameters: -h host --host=host Specifies the host name of the machine on which the server is running. If the value begins with a slash, it is used as the directory for the Unix domain socket. The default is taken from the PGHOST environment variable, if set, else a Unix domain socket connection is attempted. -p port --port=port Specifies the TCP port or local Unix domain socket file extension on which the server is listening for connections. Defaults to the PGPORT environment variable, if set, or a compiled-in default. -U username --username=username User name to connect as. -w --no-password Never issue a password prompt. If the server requires password authentication and a password is not available by other means such as a .pgpass file, the connection attempt will fail. This option can be useful in batch jobs and scripts where no user is present to enter a password. -W --password Force pg_restore to prompt for a password before connecting to a database.This option is never essential, since pg_restore will automatically prompt for a password if the server demands password authentication. However, pg_restore will waste a connection attempt finding out that the server wants a password. In some cases it is worth typing -W to avoid the extra connection attempt. --role=`rolename` Specifies a role name to be used to perform the restore. This option causes pg_restore to issue a SET ROLE rolename command after connecting to the database. It is useful when the authenticated user (specified by -U) lacks privileges needed by pg_restore, but can switch to a role with the required rights. Some installations have a policy against logging in directly as a superuser, and use of this option allows restores to be performed without violating the policy. PGHOST PGOPTIONS PGPORT PGUSER Default connection parameters PG_COLOR Specifies whether to use color in diagnostic messages. Possible values are always, auto and never. This utility, like most other IvorySQL utilities, also uses the environment variables supported by libpq. However, it does not read PGDATABASE when a database name is not supplied. When a direct database connection is specified using the -d option, pg_restore internally executes SQL statements. If you have problems running pg_restore, make sure you are able to select information from the database using, for example, psql. Also, any default connection settings and environment variables used by the libpq front-end library will apply. If your installation has any local additions to the template1 database, be careful to load the output of pg_restore into a truly empty database; otherwise you are likely to get errors due to duplicate definitions of the added objects. To make an empty database without any local additions, copy from template0 not template1, for example: CREATE DATABASE foo WITH TEMPLATE template0; The limitations of pg_restore are detailed below. When restoring data to a pre-existing table and the option --disable-triggers is used, pg_restore emits commands to disable triggers on user tables before inserting the data, then emits commands to re-enable them after the data has been inserted. If the restore is stopped in the middle, the system catalogs might be left in the wrong state. pg_restore cannot restore large objects selectively; for instance, only those for a specific table. If an archive contains large objects, then all large objects will be restored, or none of them if they are excluded via -L, -t, or other options. Assume we have dumped a database called mydb into a custom-format dump file: $ pg_dump -Fc mydb > db.dump To drop the database and recreate it from the dump: $ dropdb mydb $ pg_restore -C -d postgres db.dump The database named in the -d switch can be any database existing in the cluster; pg_restore only uses it to issue the CREATE DATABASE command for mydb. With -C, data is always restored into the database name that appears in the dump file. To restore the dump into a new database called newdb: $ createdb -T template0 newdb $ pg_restore -d newdb db.dump Notice we don’t use -C, and instead connect directly to the database to be restored into. Also note that we clone the new database from template0 not template1, to ensure it is initially empty. To reorder database items, it is first necessary to dump the table of contents of the archive: $ pg_restore -l db.dump > db.list The listing file consists of a header and one line for each item, e.g.: ; ; Archive created at Mon Sep 14 13:55:39 2009 ; dbname: DBDEMOS ; TOC Entries: 81 ; Compression: 9 ; Dump Version: 1.10-0 ; Format: CUSTOM ; Integer: 4 bytes ; Offset: 8 bytes ; Dumped from database version: 8.3.5 ; Dumped by pg_dump version: 8.3.8 ; ; ; Selected TOC Entries: ; 3; 2615 2200 SCHEMA - public pasha 1861; 0 0 COMMENT - SCHEMA public pasha 1862; 0 0 ACL - public pasha 317; 1247 17715 TYPE public composite pasha 319; 1247 25899 DOMAIN public domain0 pasha Semicolons start a comment, and the numbers at the start of lines refer to the internal archive ID assigned to each item. Lines in the file can be commented out, deleted, and reordered. For example: 10; 145433 TABLE map_resolutions postgres ;2; 145344 TABLE species postgres ;4; 145359 TABLE nt_header postgres 6; 145402 TABLE species_records postgres ;8; 145416 TABLE ss_old postgres could be used as input to pg_restore and would only restore items 10 and 6, in that order: $ pg_restore -L db.list db.dump pg_verifybackup — verify the integrity of a base backup of a IvorySQL cluster pg_verifybackup [option…] pg_verifybackup accepts the following command-line arguments: -e --exit-on-error Exit as soon as a problem with the backup is detected. If this option is not specified, pg_verifybackup will continue checking the backup even after a problem has been detected, and will report all problems detected as errors. -i path --ignore=path Ignore the specified file or directory, which should be expressed as a relative path name, when comparing the list of data files actually present in the backup to those listed in the backup_manifest file. If a directory is specified, this option affects the entire subtree rooted at that location. Complaints about extra files, missing files, file size differences, or checksum mismatches will be suppressed if the relative path name matches the specified path name. This option can be specified multiple times. -m path --manifest-path=path Use the manifest file at the specified path, rather than one located in the root of the backup directory. -n --no-parse-wal Don’t attempt to parse write-ahead log data that will be needed to recover from this backup. -q --quiet Don’t print anything when a backup is successfully verified. -s --skip-checksums Do not verify data file checksums. The presence or absence of files and the sizes of those files will still be checked. This is much faster, because the files themselves do not need to be read. -w path --wal-directory=path Try to parse WAL files stored in the specified directory, rather than in pg_wal. This may be useful if the backup is stored in a separate location from the WAL archive. Other options are also available: -V --version Print the pg_verifybackup version and exit. -? --help Show help about pg_verifybackup command line arguments, and exit. To create a base backup of the server at mydbserver and verify the integrity of the backup: $ pg_basebackup -h mydbserver -D /usr/local/pgsql/data $ pg_verifybackup /usr/local/pgsql/data To create a base backup of the server at mydbserver, move the manifest somewhere outside the backup directory, and verify the backup: $ pg_basebackup -h mydbserver -D /usr/local/pgsql/backup1234 $ mv /usr/local/pgsql/backup1234/backup_manifest /my/secure/location/backup_manifest.1234 $ pg_verifybackup -m /my/secure/location/backup_manifest.1234 /usr/local/pgsql/backup1234 To verify a backup while ignoring a file that was added manually to the backup directory, and also skipping checksum verification: $ pg_basebackup -h mydbserver -D /usr/local/pgsql/data $ edit /usr/local/pgsql/data/note.to.self $ pg_verifybackup --ignore=note.to.self --skip-checksums /usr/local/pgsql/data psql — IvorySQL interactive terminal psql [option…] [dbname [username]] -a --echo-all Print all nonempty input lines to standard output as they are read. (This does not apply to lines read interactively.) This is equivalent to setting the variable ECHO to all. -A --no-align Switches to unaligned output mode. (The default output mode is aligned.) This is equivalent to \\pset format unaligned. -b --echo-errors Print failed SQL commands to standard error output. This is equivalent to setting the variable ECHO to errors. -c command --command=command Specifies that psql is to execute the given command string, command. This option can be repeated and combined in any order with the -f option. When either -c or -f is specified, psql does not read commands from standard input; instead it terminates after processing all the -c and -f options in sequence.command must be either a command string that is completely parsable by the server (i.e., it contains no psql-specific features), or a single backslash command. Thus you cannot mix SQL and psql meta-commands within a -c option. To achieve that, you could use repeated -c options or pipe the string into psql, for example:`psql -c '\\x' -c 'SELECT * FROM foo;' or`echo '\\x \\\\ SELECT * FROM foo;' | psql `(\\\\` is the separator meta-command.)Each SQL command string passed to -c is sent to the server as a single request. Because of this, the server executes it as a single transaction even if the string contains multiple SQL commands, unless there are explicit BEGIN/COMMIT commands included in the string to divide it into multiple transactions.If having several commands executed in one transaction is not desired, use repeated -c commands or feed multiple commands to psql’s standard input, either using echo as illustrated above, or via a shell here-document, for example:`psql <90%) individual timing calls take less than one microsecond. Average per loop overhead will be even lower, below 100 nanoseconds. This example from an Intel i7-860 system using a TSC clock source shows excellent performance: Testing timing overhead for 3 seconds. Per loop time including overhead: 35.96 ns Histogram of timing durations: < us % of total count 1 96.40465 80435604 2 3.59518 2999652 4 0.00015 126 8 0.00002 13 16 0.00000 2 Note that different units are used for the per loop time than the histogram. The loop can have resolution within a few nanoseconds (ns), while the individual timing calls can only resolve down to one microsecond (us). When the query executor is running a statement using EXPLAIN ANALYZE, individual operations are timed as well as showing a summary. The overhead of your system can be checked by counting rows with the psql program: CREATE TABLE t AS SELECT * FROM generate_series(1,100000); \\timing SELECT COUNT(*) FROM t; EXPLAIN ANALYZE SELECT COUNT(*) FROM t; The i7-860 system measured runs the count query in 9.8 ms while the EXPLAIN ANALYZE version takes 16.6 ms, each processing just over 100,000 rows. That 6.8 ms difference means the timing overhead per row is 68 ns, about twice what pg_test_timing estimated it would be. Even that relatively small amount of overhead is making the fully timed count statement take almost 70% longer. On more substantial queries, the timing overhead would be less problematic. On some newer Linux systems, it’s possible to change the clock source used to collect timing data at any time. A second example shows the slowdown possible from switching to the slower acpi_pm time source, on the same system used for the fast results above: # cat /sys/devices/system/clocksource/clocksource0/available_clocksource tsc hpet acpi_pm # echo acpi_pm > /sys/devices/system/clocksource/clocksource0/current_clocksource # pg_test_timing Per loop time including overhead: 722.92 ns Histogram of timing durations: < us % of total count 1 27.84870 1155682 2 72.05956 2990371 4 0.07810 3241 8 0.01357 563 16 0.00007 3 In this configuration, the sample EXPLAIN ANALYZE above takes 115.9 ms. That’s 1061 ns of timing overhead, again a small multiple of what’s measured directly by this utility. That much timing overhead means the actual query itself is only taking a tiny fraction of the accounted for time, most of it is being consumed in overhead instead. In this configuration, any EXPLAIN ANALYZE totals involving many timed operations would be inflated significantly by timing overhead. FreeBSD also allows changing the time source on the fly, and it logs information about the timer selected during boot: # dmesg | grep \"Timecounter\" Timecounter \"ACPI-fast\" frequency 3579545 Hz quality 900 Timecounter \"i8254\" frequency 1193182 Hz quality 0 Timecounters tick every 10.000 msec Timecounter \"TSC\" frequency 2531787134 Hz quality 800 # sysctl kern.timecounter.hardware=TSC kern.timecounter.hardware: ACPI-fast -> TSC Other systems may only allow setting the time source on boot. On older Linux systems the \"clock\" kernel setting is the only way to make this sort of change. And even on some more recent ones, the only option you’ll see for a clock source is \"jiffies\". Jiffies are the older Linux software clock implementation, which can have good resolution when it’s backed by fast enough timing hardware, as in this example: $ cat /sys/devices/system/clocksource/clocksource0/available_clocksource jiffies $ dmesg | grep time.c time.c: Using 3.579545 MHz WALL PM GTOD PIT/TSC timer. time.c: Detected 2400.153 MHz processor. $ pg_test_timing Testing timing overhead for 3 seconds. Per timing duration including loop overhead: 97.75 ns Histogram of timing durations: < us % of total count 1 90.23734 27694571 2 9.75277 2993204 4 0.00981 3010 8 0.00007 22 16 0.00000 1 32 0.00000 1 Collecting accurate timing information is normally done on computers using hardware clocks with various levels of accuracy. With some hardware the operating systems can pass the system clock time almost directly to programs. A system clock can also be derived from a chip that simply provides timing interrupts, periodic ticks at some known time interval. In either case, operating system kernels provide a clock source that hides these details. But the accuracy of that clock source and how quickly it can return results varies based on the underlying hardware. Inaccurate time keeping can result in system instability. Test any change to the clock source very carefully. Operating system defaults are sometimes made to favor reliability over best accuracy. And if you are using a virtual machine, look into the recommended time sources compatible with it. Virtual hardware faces additional difficulties when emulating timers, and there are often per operating system settings suggested by vendors. The Time Stamp Counter (TSC) clock source is the most accurate one available on current generation CPUs. It’s the preferred way to track the system time when it’s supported by the operating system and the TSC clock is reliable. There are several ways that TSC can fail to provide an accurate timing source, making it unreliable. Older systems can have a TSC clock that varies based on the CPU temperature, making it unusable for timing. Trying to use TSC on some older multicore CPUs can give a reported time that’s inconsistent among multiple cores. This can result in the time going backwards, a problem this program checks for. And even the newest systems can fail to provide accurate TSC timing with very aggressive power saving configurations. Newer operating systems may check for the known TSC problems and switch to a slower, more stable clock source when they are seen. If your system supports TSC time but doesn’t default to that, it may be disabled for a good reason. And some operating systems may not detect all the possible problems correctly, or will allow using TSC even in situations where it’s known to be inaccurate. The High Precision Event Timer (HPET) is the preferred timer on systems where it’s available and TSC is not accurate. The timer chip itself is programmable to allow up to 100 nanosecond resolution, but you may not see that much accuracy in your system clock. Advanced Configuration and Power Interface (ACPI) provides a Power Management (PM) Timer, which Linux refers to as the acpi_pm. The clock derived from acpi_pm will at best provide 300 nanosecond resolution. Timers used on older PC hardware include the 8254 Programmable Interval Timer (PIT), the real-time clock (RTC), the Advanced Programmable Interrupt Controller (APIC) timer, and the Cyclone timer. These timers aim for millisecond resolution. pg_upgrade — upgrade a IvorySQL server instance pg_upgrade -b oldbindir [-B newbindir] -d oldconfigdir -D newconfigdir [option…] pg_upgrade accepts the following command-line arguments: -b bindir --old-bindir=bindir the old IvorySQL executable directory; environment variable PGBINOLD -B bindir --new-bindir=bindir the new IvorySQL executable directory; default is the directory where pg_upgrade resides; environment variable PGBINNEW -c --check check clusters only, don’t change any data -d configdir --old-datadir=configdir the old database cluster configuration directory; environment variable PGDATAOLD -D configdir --new-datadir=configdir the new database cluster configuration directory; environment variable PGDATANEW -j `njobs` --jobs=`njobs` number of simultaneous processes or threads to use -k --link use hard links instead of copying files to the new cluster -N --no-sync By default, pg_upgrade will wait for all files of the upgraded cluster to be written safely to disk. This option causes pg_upgrade to return without waiting, which is faster, but means that a subsequent operating system crash can leave the data directory corrupt. Generally, this option is useful for testing but should not be used on a production installation. -o options --old-options options options to be passed directly to the old postgres command; multiple option invocations are appended -O options --new-options options options to be passed directly to the new postgres command; multiple option invocations are appended -p port --old-port=port the old cluster port number; environment variable PGPORTOLD -P port --new-port=port the new cluster port number; environment variable PGPORTNEW -r --retain retain SQL and log files even after successful completion -s dir --socketdir=dir directory to use for postmaster sockets during upgrade; default is current working directory; environment variable PGSOCKETDIR -U username --username=username cluster’s install user name; environment variable PGUSER -v --verbose enable verbose internal logging -V --version display version information, then exit --clone Use efficient file cloning (also known as “reflinks” on some systems) instead of copying files to the new cluster. This can result in near-instantaneous copying of the data files, giving the speed advantages of -k/--link while leaving the old cluster untouched.File cloning is only supported on some operating systems and file systems. If it is selected but not supported, the pg_upgrade run will error. At present, it is supported on Linux (kernel 4.5 or later) with Btrfs and XFS (on file systems created with reflink support), and on macOS with APFS. -? --help show help, then exit These are the steps to perform an upgrade with pg_upgrade: 1.Optionally move the old cluster If your installation directory is not version-specific, e.g., /usr/local/pgsql, it is necessary to move the current IvorySQL install directory so it does not interfere with the new IvorySQL installation. Once the current IvorySQL server is shut down, it is safe to rename the IvorySQL installation directory; assuming the old directory is /usr/local/pgsql, you can do: mv /usr/local/pgsql /usr/local/pgsql.old to rename the directory. 2.For source installs, build the new version Build the new IvorySQL source with configure flags that are compatible with the old cluster. pg_upgrade will check pg_controldata to make sure all settings are compatible before starting the upgrade. 3.Install the new IvorySQL binaries Install the new server’s binaries and support files. pg_upgrade is included in a default installation. For source installs, if you wish to install the new server in a custom location, use the prefix variable: make prefix=/usr/local/pgsql.new install 4.Initialize the new IvorySQL cluster Initialize the new cluster using initdb. Again, use compatible initdb flags that match the old cluster. Many prebuilt installers do this step automatically. There is no need to start the new cluster. 5.Install extension shared object files Many extensions and custom modules, whether from contrib or another source, use shared object files (or DLLs), e.g., pgcrypto.so. If the old cluster used these, shared object files matching the new server binary must be installed in the new cluster, usually via operating system commands. Do not load the schema definitions, e.g., CREATE EXTENSION pgcrypto, because these will be duplicated from the old cluster. If extension updates are available, pg_upgrade will report this and create a script that can be run later to update them. 6.Copy custom full-text search files Copy any custom full text search files (dictionary, synonym, thesaurus, stop words) from the old to the new cluster. 7.Adjust authentication pg_upgrade will connect to the old and new servers several times, so you might want to set authentication to peer in pg_hba.conf or use a ~/.pgpass file . 8.Stop both servers Make sure both database servers are stopped using, on Unix, e.g.: pg_ctl -D /opt/IvorySQL/1.5 stop pg_ctl -D /opt/IvorySQL/2.1 stop or on Windows, using the proper service names: NET STOP IvorySQL-1.5 NET STOP IvorySQL-2.1 Streaming replication and log-shipping standby servers can remain running until a later step. 9.Prepare for standby server upgrades Verify that the old standby servers are caught up by running pg_controldata against the old primary and standby clusters. Verify that the “Latest checkpoint location” values match in all clusters. (There will be a mismatch if old standby servers were shut down before the old primary or if the old standby servers are still running.) Also, make sure wal_level is not set to minimal in the IvorySQL.conf file on the new primary cluster. 10.Run pg_upgrade Always run the pg_upgrade binary of the new server, not the old one. pg_upgrade requires the specification of the old and new cluster’s data and executable (bin) directories. You can also specify user and port values, and whether you want the data files linked or cloned instead of the default copy behavior. If you use link mode, the upgrade will be much faster (no file copying) and use less disk space, but you will not be able to access your old cluster once you start the new cluster after the upgrade. Link mode also requires that the old and new cluster data directories be in the same file system. (Tablespaces and pg_wal can be on different file systems.) Clone mode provides the same speed and disk space advantages but does not cause the old cluster to be unusable once the new cluster is started. Clone mode also requires that the old and new data directories be in the same file system. This mode is only available on certain operating systems and file systems. The --jobs option allows multiple CPU cores to be used for copying/linking of files and to dump and restore database schemas in parallel; a good place to start is the maximum of the number of CPU cores and tablespaces. This option can dramatically reduce the time to upgrade a multi-database server running on a multiprocessor machine. For Windows users, you must be logged into an administrative account, and then start a shell as the postgres user and set the proper path: RUNAS /USER:postgres \"CMD.EXE\" SET PATH=%PATH%;C:\\Program Files\\IvorySQL\\15\\bin; and then run pg_upgrade with quoted directories, e.g.: pg_upgrade.exe --old-datadir \"C:/Program Files/IvorySQL/1.5/data\" --new-datadir \"C:/Program Files/IvorySQL/2.1/data\" --old-bindir \"C:/Program Files/IvorySQL/1.5/bin\" --new-bindir \"C:/Program Files/IvorySQL/2.1/bin\" Once started, pg_upgrade will verify the two clusters are compatible and then do the upgrade. You can use pg_upgrade --check to perform only the checks, even if the old server is still running. pg_upgrade --check will also outline any manual adjustments you will need to make after the upgrade. If you are going to be using link or clone mode, you should use the option --link or --clone with --check to enable mode-specific checks. pg_upgrade requires write permission in the current directory. Obviously, no one should be accessing the clusters during the upgrade. pg_upgrade defaults to running servers on port 50432 to avoid unintended client connections. You can use the same port number for both clusters when doing an upgrade because the old and new clusters will not be running at the same time. However, when checking an old running server, the old and new port numbers must be different. If an error occurs while restoring the database schema, pg_upgrade will exit and you will have to revert to the old cluster .To try pg_upgrade again, you will need to modify the old cluster so the pg_upgrade schema restore succeeds. If the problem is a contrib module, you might need to uninstall the contrib module from the old cluster and install it in the new cluster after the upgrade, assuming the module is not being used to store user data. 11.Upgrade streaming replication and log-shipping standby servers If you used link mode and have Streaming Replication or Log-Shipping standby servers, you can follow these steps to quickly upgrade them. You will not be running pg_upgrade on the standby servers, but rather rsync on the primary. Do not start any servers yet. If you did not use link mode, do not have or do not want to use rsync, or want an easier solution, skip the instructions in this section and simply recreate the standby servers once pg_upgrade completes and the new primary is running. Install the new IvorySQL binaries on standby servers Make sure the new binaries and support files are installed on all standby servers. Make sure the new standby data directories do *not\\* exist Make sure the new standby data directories do *not* exist or are empty. If initdb was run, delete the standby servers' new data directories. Install extension shared object files Install the same extension shared object files on the new standbys that you installed in the new primary cluster. Stop standby servers If the standby servers are still running, stop them now using the above instructions. Save configuration files Save any configuration files from the old standbys' configuration directories you need to keep, e.g., `IvorySQL.conf` (and any files included by it), `IvorySQL.auto.conf`, `pg_hba.conf`, because these will be overwritten or removed in the next step. Run rsync When using link mode, standby servers can be quickly upgraded using rsync. To accomplish this, from a directory on the primary server that is above the old and new database cluster directories, run this on the *primary* for each standby server: ``` rsync --archive --delete --hard-links --size-only --no-inc-recursive old_cluster new_cluster remote_dir ``` where `old_cluster` and `new_cluster` are relative to the current directory on the primary, and `remote_dir` is *above* the old and new cluster directories on the standby. The directory structure under the specified directories on the primary and standbys must match. Consult the rsync manual page for details on specifying the remote directory, e.g., ``` rsync --archive --delete --hard-links --size-only --no-inc-recursive /opt/IvorySQL/1.5 \\ /opt/IvorySQL/2.1 standby.example.com:/opt/IvorySQL ``` You can verify what the command will do using rsync's `--dry-run` option. While rsync must be run on the primary for at least one standby, it is possible to run rsync on an upgraded standby to upgrade other standbys, as long as the upgraded standby has not been started. What this does is to record the links created by pg_upgrade's link mode that connect files in the old and new clusters on the primary server. It then finds matching files in the standby's old cluster and creates links for them in the standby's new cluster. Files that were not linked on the primary are copied from the primary to the standby. (They are usually small.) This provides rapid standby upgrades. Unfortunately, rsync needlessly copies files associated with temporary and unlogged tables because these files don't normally exist on standby servers. If you have relocated `pg_wal` outside the data directories, rsync must be run on those directories too. Configure streaming replication and log-shipping standby servers Configure the servers for log shipping. (You do not need to run `pg_backup_start()` and `pg_backup_stop()` or take a file system backup as the standbys are still synchronized with the primary.) Replication slots are not copied and must be recreated. 12.Restore pg_hba.conf If you modified pg_hba.conf, restore its original settings. It might also be necessary to adjust other configuration files in the new cluster to match the old cluster, e.g., IvorySQL.conf (and any files included by it), IvorySQL.auto.conf. 13.Start the new server The new server can now be safely started, and then any rsync’ed standby servers. 14.Post-upgrade processing If any post-upgrade processing is required, pg_upgrade will issue warnings as it completes. It will also generate script files that must be run by the administrator. The script files will connect to each database that needs post-upgrade processing. Each script should be run using: psql --username=postgres --file=script.sql postgres The scripts can be run in any order and can be deleted once they have been run. Caution In general it is unsafe to access tables referenced in rebuild scripts until the rebuild scripts have run to completion; doing so could yield incorrect results or poor performance. Tables not referenced in rebuild scripts can be accessed immediately. 15.Statistics Because optimizer statistics are not transferred by pg_upgrade, you will be instructed to run a command to regenerate that information at the end of the upgrade. You might need to set connection parameters to match your new cluster. 16.Delete old cluster Once you are satisfied with the upgrade, you can delete the old cluster’s data directories by running the script mentioned when pg_upgrade completes. (Automatic deletion is not possible if you have user-defined tablespaces inside the old data directory.) You can also delete the old installation directories (e.g., bin, share). 17.Reverting to old cluster If, after running pg_upgrade, you wish to revert to the old cluster, there are several options: If the --check option was used, the old cluster was unmodified; it can be restarted. If the --link option was not used, the old cluster was unmodified; it can be restarted. If the --link option was used, the data files might be shared between the old and new cluster: If pg_upgrade aborted before linking started, the old cluster was unmodified; it can be restarted. If you did not start the new cluster, the old cluster was unmodified except that, when linking started, a .old suffix was appended to $PGDATA/global/pg_control. To reuse the old cluster, remove the .old suffix from $PGDATA/global/pg_control; you can then restart the old cluster. If you did start the new cluster, it has written to shared files and it is unsafe to use the old cluster. The old cluster will need to be restored from backup in this case. pg_upgrade creates various working files, such as schema dumps, stored within pg_upgrade_output.d in the directory of the new cluster. Each run creates a new subdirectory named with a timestamp formatted as per ISO 8601 (%Y%m%dT%H%M%S), where all its generated files are stored. pg_upgrade_output.d and its contained files will be removed automatically if pg_upgrade completes successfully; but in the event of trouble, the files there may provide useful debugging information. pg_upgrade launches short-lived postmasters in the old and new data directories. Temporary Unix socket files for communication with these postmasters are, by default, made in the current working directory. In some situations the path name for the current directory might be too long to be a valid socket name. In that case you can use the -s option to put the socket files in some directory with a shorter path name. For security, be sure that that directory is not readable or writable by any other users. (This is not supported on Windows.) All failure, rebuild, and reindex cases will be reported by pg_upgrade if they affect your installation; post-upgrade scripts to rebuild tables and indexes will be generated automatically. If you are trying to automate the upgrade of many clusters, you should find that clusters with identical database schemas require the same post-upgrade steps for all cluster upgrades; this is because the post-upgrade steps are based on the database schemas, and not user data. For deployment testing, create a schema-only copy of the old cluster, insert dummy data, and upgrade that. pg_upgrade does not support upgrading of databases containing table columns using these reg* OID-referencing system data types: regcollation regconfig regdictionary regnamespace regoper regoperator regproc regprocedure (regclass, regrole, and regtype can be upgraded.) If you want to use link mode and you do not want your old cluster to be modified when the new cluster is started, consider using the clone mode. If that is not available, make a copy of the old cluster and upgrade that in link mode. To make a valid copy of the old cluster, use rsync to create a dirty copy of the old cluster while the server is running, then shut down the old server and run rsync --checksum again to update the copy with any changes to make it consistent. (--checksum is necessary because rsync only has file modification-time granularity of one second.) . If your file system supports file system snapshots or copy-on-write file copies, you can use that to make a backup of the old cluster and tablespaces, though the snapshot and copies must be created simultaneously or while the database server is down. pg_waldump — display a human-readable rendering of the write-ahead log of a IvorySQL database cluster pg_waldump [option…] [startseg [endseg]] The following command-line options control the location and format of the output: startseg Start reading at the specified log segment file. This implicitly determines the path in which files will be searched for, and the timeline to use. endseg Stop after reading the specified log segment file. -b --bkp-details Output detailed information about backup blocks. -B block --block=block Only display records that modify the given block. The relation must also be provided with --relation or -R. -e end --end=end Stop reading at the specified WAL location, instead of reading to the end of the log stream. -f --follow After reaching the end of valid WAL, keep polling once per second for new WAL to appear. -F fork --fork=fork If provided, only display records that modify blocks in the given fork. The valid values are main for the main fork, fsm for the free space map, vm for the visibility map, and init for the init fork. -n limit --limit=limit Display the specified number of records, then stop. -p path --path=path Specifies a directory to search for log segment files or a directory with a pg_wal subdirectory that contains such files. The default is to search in the current directory, the pg_wal subdirectory of the current directory, and the pg_wal subdirectory of PGDATA. -q --quiet Do not print any output, except for errors. This option can be useful when you want to know whether a range of WAL records can be successfully parsed but don’t care about the record contents. -r rmgr --rmgr=rmgr Only display records generated by the specified resource manager. You can specify the option multiple times to select multiple resource managers. If list is passed as name, print a list of valid resource manager names, and exit.Extensions may define custom resource managers, but pg_waldump does not load the extension module and therefore does not recognize custom resource managers by name. Instead, you can specify the custom resource managers as custom where “” is the three-digit resource manager ID. Names of this form will always be considered valid. -R tblspc / db / rel --relation=tblspc / db / rel Only display records that modify blocks in the given relation. The relation is specified with tablespace OID, database OID, and relfilenode separated by slashes, for example 1234/12345/12345. This is the same format used for relations in the program’s output. -s start --start=start WAL location at which to start reading. The default is to start reading the first valid log record found in the earliest file found. -t timeline --timeline=timeline Timeline from which to read log records. The default is to use the value in startseg, if that is specified; otherwise, the default is 1. -V --version Print the pg_waldump version and exit. -w --fullpage Only display records that include full page images. -x xid --xid=xid Only display records marked with the given transaction ID. -z --stats[=record] Display summary statistics (number and size of records and full-page images) instead of individual records. Optionally generate statistics per-record instead of per-rmgr.If pg_waldump is terminated by signal SIGINT (Control + C), the summary of the statistics computed is displayed up to the termination point. This operation is not supported on Windows. -? --help Show help about pg_waldump command line arguments, and exit. PGDATA Data directory; see also the -p option. PG_COLOR Specifies whether to use color in diagnostic messages. Possible values are always, auto and never. Can give wrong results when the server is running. Only the specified timeline is displayed (or the default, if none is specified). Records in other timelines are ignored. pg_waldump cannot read WAL files with suffix .partial. If those files need to be read, .partial suffix needs to be removed from the file name. postgres — IvorySQL database server postgres [option…] postgres accepts the following command-line arguments. You can save typing most of these options by setting up a configuration file. Some (safe) options can also be set from the connecting client in an application-dependent way to apply only for that session. For example, if the environment variable PGOPTIONS is set, then libpq-based clients will pass that string to the server, which will interpret it as postgres command-line options. -B nbuffers Sets the number of shared buffers for use by the server processes. The default value of this parameter is chosen automatically by initdb. Specifying this option is equivalent to setting the shared_buffers configuration parameter. -c name=value Sets a named run-time parameter. Most of the other command line options are in fact short forms of such a parameter assignment. -c can appear multiple times to set multiple parameters. -C name Prints the value of the named run-time parameter, and exits. (See the -c option above for details.) This returns values from postgresql.conf, modified by any parameters supplied in this invocation. It does not reflect parameters supplied when the cluster was started.This can be used on a running server for most parameters. This option is meant for other programs that interact with a server instance, such as pg_ctl, to query configuration parameter values. User-facing applications should instead use SHOW or the pg_settings view. -d debug-level Sets the debug level. The higher this value is set, the more debugging output is written to the server log. Values are from 1 to 5. It is also possible to pass -d 0 for a specific session, which will prevent the server log level of the parent postgres process from being propagated to this session. -D datadir Specifies the file system location of the database configuration files. -e Sets the default date style to “European”, that is DMY ordering of input date fields. This also causes the day to be printed before the month in certain date output formats. -F Disables fsync calls for improved performance, at the risk of data corruption in the event of a system crash. Specifying this option is equivalent to disabling the fsync configuration parameter. Read the detailed documentation before using this! -h hostname Specifies the IP host name or address on which postgres is to listen for TCP/IP connections from client applications. The value can also be a comma-separated list of addresses, or * to specify listening on all available interfaces. An empty value specifies not listening on any IP addresses, in which case only Unix-domain sockets can be used to connect to the server. Defaults to listening only on localhost. Specifying this option is equivalent to setting the listen_addresses configuration parameter. -i Allows remote clients to connect via TCP/IP (Internet domain) connections. Without this option, only local connections are accepted. This option is equivalent to setting listen_addresses to * in IvorySQL.conf or via -h.This option is deprecated since it does not allow access to the full functionality of listen_addresses. It’s usually better to set listen_addresses directly. -k directory Specifies the directory of the Unix-domain socket on which postgres is to listen for connections from client applications. The value can also be a comma-separated list of directories. An empty value specifies not listening on any Unix-domain sockets, in which case only TCP/IP sockets can be used to connect to the server. The default value is normally /tmp, but that can be changed at build time. Specifying this option is equivalent to setting the unix_socket_directories configuration parameter. -l Enables secure connections using SSL. IvorySQL must have been compiled with support for SSL for this option to be available. -N max-connections Sets the maximum number of client connections that this server will accept. The default value of this parameter is chosen automatically by initdb. Specifying this option is equivalent to setting the max_connections configuration parameter. -p port Specifies the TCP/IP port or local Unix domain socket file extension on which postgres is to listen for connections from client applications. Defaults to the value of the PGPORT environment variable, or if PGPORT is not set, then defaults to the value established during compilation (normally 5432). If you specify a port other than the default port, then all client applications must specify the same port using either command-line options or PGPORT. -s Print time information and other statistics at the end of each command. This is useful for benchmarking or for use in tuning the number of buffers. -S work-mem Specifies the base amount of memory to be used by sorts and hash tables before resorting to temporary disk files. -V --version Print the postgres version and exit. --name=value Sets a named run-time parameter; a shorter form of -c. --describe-config This option dumps out the server’s internal configuration variables, descriptions, and defaults in tab-delimited COPY format. It is designed primarily for use by administration tools. -? --help Show help about postgres command line arguments, and exit. The options described here are used mainly for debugging purposes, and in some cases to assist with recovery of severely damaged databases. There should be no reason to use them in a production database setup. They are listed here only for use by IvorySQL system developers. Furthermore, these options might change or be removed in a future release without notice. -f { s | i | o | b | t | n | m | h } Forbids the use of particular scan and join methods: s and i disable sequential and index scans respectively, o, b and t disable index-only scans, bitmap index scans, and TID scans respectively, while n, m, and h disable nested-loop, merge and hash joins respectively.Neither sequential scans nor nested-loop joins can be disabled completely; the -fs and -fn options simply discourage the optimizer from using those plan types if it has any other alternative. -n This option is for debugging problems that cause a server process to die abnormally. The ordinary strategy in this situation is to notify all other server processes that they must terminate and then reinitialize the shared memory and semaphores. This is because an errant server process could have corrupted some shared state before terminating. This option specifies that postgres will not reinitialize shared data structures. A knowledgeable system programmer can then use a debugger to examine shared memory and semaphore state. -O Allows the structure of system tables to be modified. This is used by initdb. -P Ignore system indexes when reading system tables, but still update the indexes when modifying the tables. This is useful when recovering from damaged system indexes. -t pa[rser] | pl[anner] | e[xecutor] Print timing statistics for each query relating to each of the major system modules. This option cannot be used together with the -s option. -T This option is for debugging problems that cause a server process to die abnormally. The ordinary strategy in this situation is to notify all other server processes that they must terminate and then reinitialize the shared memory and semaphores. This is because an errant server process could have corrupted some shared state before terminating. This option specifies that postgres will stop all other server processes by sending the signal SIGSTOP, but will not cause them to terminate. This permits system programmers to collect core dumps from all server processes by hand. -v protocol Specifies the version number of the frontend/backend protocol to be used for a particular session. This option is for internal use only. -W seconds A delay of this many seconds occurs when a new server process is started, after it conducts the authentication procedure. This is intended to give an opportunity to attach to the server process with a debugger. The following options only apply to the single-user mode (see Single-User Mode below). --single Selects the single-user mode. This must be the first argument on the command line. database Specifies the name of the database to be accessed. This must be the last argument on the command line. If it is omitted it defaults to the user name. -E Echo all commands to standard output before executing them. -j Use semicolon followed by two newlines, rather than just newline, as the command entry terminator. -r filename Send all server log output to filename. This option is only honored when supplied as a command-line option. PGCLIENTENCODING Default character encoding used by clients. (The clients can override this individually.) This value can also be set in the configuration file. PGDATA Default data directory location PGDATESTYLE Default value of the DateStyle run-time parameter. (The use of this environment variable is deprecated.) PGPORT Default port number (preferably set in the configuration file) A failure message mentioning semget or shmget probably indicates you need to configure your kernel to provide adequate shared memory and semaphores. You might be able to postpone reconfiguring your kernel by decreasing shared_buffers to reduce the shared memory consumption of IvorySQL, and/or by reducing max_connections to reduce the semaphore consumption. A failure message suggesting that another server is already running should be checked carefully, for example by using the command $ ps ax | grep postgres or $ ps -ef | grep postgres depending on your system. If you are certain that no conflicting server is running, you can remove the lock file mentioned in the message and try again. A failure message indicating inability to bind to a port might indicate that that port is already in use by some non-IvorySQL process. You might also get this error if you terminate postgres and immediately restart it using the same port; in this case, you must simply wait a few seconds until the operating system closes the port before trying again. Finally, you might get this error if you specify a port number that your operating system considers to be reserved. For example, many versions of Unix consider port numbers under 1024 to be “trusted” and only permit the Unix superuser to access them. The utility command pg_ctl can be used to start and shut down the postgres server safely and comfortably. If at all possible, do not use SIGKILL to kill the main postgres server. Doing so will prevent postgres from freeing the system resources (e.g., shared memory and semaphores) that it holds before terminating. This might cause problems for starting a fresh postgres run. To terminate the postgres server normally, the signals SIGTERM, SIGINT, or SIGQUIT can be used. The first will wait for all clients to terminate before quitting, the second will forcefully disconnect all clients, and the third will quit immediately without proper shutdown, resulting in a recovery run during restart. The SIGHUP signal will reload the server configuration files. It is also possible to send SIGHUP to an individual server process, but that is usually not sensible. To cancel a running query, send the SIGINT signal to the process running that command. To terminate a backend process cleanly, send SIGTERM to that process. See also pg_cancel_backend. The postgres server uses SIGQUIT to tell subordinate server processes to terminate without normal cleanup. This signal should not be used by users. It is also unwise to send SIGKILL to a server process — the main postgres process will interpret this as a crash and will force all the sibling processes to quit as part of its standard crash-recovery procedure. The -- options will not work on FreeBSD or OpenBSD. Use -c instead. This is a bug in the affected operating systems; a future release of IvorySQL will provide a workaround if this is not fixed. To start a single-user mode server, use a command like postgres --single -D /usr/local/pgsql/data other-options my_database Provide the correct path to the database directory with -D, or make sure that the environment variable PGDATA is set. Also specify the name of the particular database you want to work in. Normally, the single-user mode server treats newline as the command entry terminator; there is no intelligence about semicolons, as there is in psql. To continue a command across multiple lines, you must type backslash just before each newline except the last one. The backslash and adjacent newline are both dropped from the input command. Note that this will happen even when within a string literal or comment. But if you use the -j command line switch, a single newline does not terminate command entry; instead, the sequence semicolon-newline-newline does. That is, type a semicolon immediately followed by a completely empty line. Backslash-newline is not treated specially in this mode. Again, there is no intelligence about such a sequence appearing within a string literal or comment. In either input mode, if you type a semicolon that is not just before or part of a command entry terminator, it is considered a command separator. When you do type a command entry terminator, the multiple statements you’ve entered will be executed as a single transaction. To quit the session, type EOF (Control+D, usually). If you’ve entered any text since the last command entry terminator, then EOF will be taken as a command entry terminator, and another EOF will be needed to exit. Note that the single-user mode server does not provide sophisticated line-editing features (no command history, for example). Single-user mode also does not do any background processing, such as automatic checkpoints or replication. To start postgres in the background using default values, type: $ nohup postgres >logfile 2>&1 >. ## /home/ivory/config/application-native.yaml datasource: druid: db-type: com.alibaba.druid.pool.DruidDataSource driver-class-name: org.postgresql.Driver url: jdbc:postgresql://127.0.0.1:5432/ivorysql username: ivorysql password: \"ivory@123\" # Install JDK 1.8 yum install -y java-1.8.0-openjdk.x86_64 [root@cloud ivory]# pwd /home/ivory/ [root@cloud ivory]# nohup java -jar cloudnative-1.0-SNAPSHOT.jar > log_native 2>&1 & [root@cloud ivory]# ps -ef | grep java root 77494 1 0 Oct09 ? 00:03:07 java -jar cloudnative-1.0-SNAPSHOT.jar ## Fetch the code git clone https://github.com/IvorySQL/ivory-cloud-web.git ## Go to the project root cd ivorysql-cloud-web ## Install dependencies npm install ## Build for production npm run build:prod # Create a deployment directory [root@cloud opt]# mkdir -p /opt/cloud/web # Copy the generated `dist` folder to /opt/cloud/web # Grant permissions [root@cloud web]# chmod 755 /opt/cloud/web/dist [root@cloud web]# chmod -R 777 /opt/cloud/web/dist Edit the configuration file: [root@cloud dist]# pwd /home/cloud/web/dist [root@cloud dist]# vi config.js var PLATFROM_CONFIG = {}; // Replace with the IP address of the current server PLATFROM_CONFIG.baseUrl = \"http://192.168.31.43:8081/cloudapi/api/v1\" // true: show the “Register” button on the login page // false: hide the “Register” button on the login page globalShowRegister = true // Hide the cloud-native database? true: hide; false: show disableNative = false // Database type dbtype = \"IvorySQL\" dbversion = \"5.0\" The IvorySQL Cloud host must have NGINX installed to serve the web interface. Users can select any installation method; the following steps are provided for reference. [root@cloud web]# wget https://nginx.org/download/nginx-1.20.1.tar.gz [root@cloud web]# ls -lrt total 3924 -rwxrwxr-x. 1 root root 1061461 May 25 2021 nginx-1.20.1.tar.gz -rwxrwxr-x. 1 root root 2943732 Oct 9 16:43 dist.tar.gz drwxrwxrwx. 4 root root 103 Oct 21 13:20 dist [root@host30 cloud]# yum -y install pcre-devel [root@host30 cloud]# yum -y install openssl openssl-devel NGINX is installed under the directory specified by --prefix during configure. The example below installs it to /opt/cloud/nginx. ## Extract nginx-1.20.1.tar.gz [root@cloud web]# tar -zxvf nginx-1.20.1.tar.gz ## Verify that nginx-1.20.1 was created [root@cloud web]# ls -lrt total 3924 -rwxrwxr-x. 1 root root 1061461 May 25 2021 nginx-1.20.1.tar.gz -rwxrwxr-x. 1 root root 2943732 Oct 9 16:43 dist.tar.gz drwxrwxr-x. 9 1001 1001 186 Oct 9 16:53 nginx-1.20.1 drwxrwxrwx. 4 root root 103 Oct 21 13:20 dist ## Configure [root@cloud web]# cd nginx-1.20.1 [root@cloud nginx-1.20.1]# ./configure --prefix=/opt/cloud/nginx --with-http_ssl_module ## Compile and install [root@cloud nginx-1.20.1]# make [root@cloud nginx-1.20.1]# make install The configuration file is stored under /opt/cloud/nginx. Adjust it according to the README on GitHub, and replace the IP with the address of the current server. server { listen 9104; server_name 192.168.31.43; location / { root /opt/cloud/web/dist; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } [root@cloud sbin]# pwd /opt/cloud/nginx/sbin [root@cloud sbin]# ./nginx -c /opt/cloud/nginx/conf/nginx.conf [root@cloud sbin]# ps -ef | grep nginx root 2179 131037 0 09:46 pts/1 00:00:00 grep --color=auto nginx root 55047 1 0 Oct21 ? 00:00:00 nginx: master process ./nginx -c /opt/cloud/nginx/conf/nginx.conf nobody 55048 55047 0 Oct21 ? 00:00:00 nginx: worker process Set up the Kubernetes cluster yourself. This section describes how to install ivory-operator on the cluster and preload container images. Refer to the README on GitHub: https://github.com/IvorySQL/ivory-operator/tree/IVYO_REL_5_STABLE If your servers have direct access to Docker Hub, you can skip this step. Otherwise, preload the following images on every node in the Kubernetes cluster. docker.io/ivorysql/pgadmin:ubi8-9.9-5.0-1 docker.io/ivorysql/pgbackrest:ubi8-2.56.0-5.0-1 docker.io/ivorysql/pgbouncer:ubi8-1.23.0-5.0-1 docker.io/ivorysql/postgres-exporter:ubi8-0.17.0-5.0-1 docker.io/ivorysql/ivorysql:ubi8-5.0-5.0-1 docker.io/prom/prometheus:v2.33.5 docker.io/prom/alertmanager:v0.22.2 docker.io/grafana/grafana:8.5.10","title":"Installation Guide","component":"ivorysql-doc","version":"master","name":"ivorysql_cloud_installation","url":"/ivorysql-doc/master/cloud_platform/ivorysql_cloud_installation.html","titles":[{"text":"1. IvorySQL Cloud Platform Installation","hash":"ivorysql-cloud-platform-installation","id":1},{"text":"2. Pre-installation Checklist","hash":"pre-installation-checklist","id":2},{"text":"2.1. Disable the firewall","hash":"disable-the-firewall","id":3},{"text":"2.2. Backend deployment","hash":"backend-deployment","id":4},{"text":"2.2.1. Backend database","hash":"backend-db","id":5},{"text":"2.2.2. Backend services","hash":"backend-services","id":6},{"text":"2.2.2.1. Compile the backend service","hash":"compile-the-backend-service","id":7},{"text":"2.2.2.2. Deploy the service","hash":"deploy-the-service","id":8},{"text":"2.2.3. Start the backend service","hash":"start-the-backend-service","id":9},{"text":"2.3. Frontend deployment","hash":"frontend-deployment","id":10},{"text":"2.3.1. Compile the frontend","hash":"compile-the-frontend","id":11},{"text":"2.3.2. Update directory and file permissions","hash":"update-directory-and-file-permissions","id":12},{"text":"2.3.3. Update config.js","hash":"update-config-js","id":13},{"text":"2.4. Install and configure NGINX","hash":"install-and-configure-nginx","id":14},{"text":"2.4.1. Download the NGINX source package","hash":"download-the-nginx-source-package","id":15},{"text":"2.4.2. Install dependencies","hash":"install-dependencies","id":16},{"text":"2.4.3. Build and install NGINX","hash":"build-and-install-nginx","id":17},{"text":"2.4.4. Update nginx.conf","hash":"update-nginx-conf","id":18},{"text":"2.4.5. Start NGINX","hash":"start-nginx","id":19},{"text":"2.5. Operator deployment","hash":"operator-deployment","id":20},{"text":"2.5.1. Install ivory-operator","hash":"install-ivory-operator","id":21},{"text":"2.5.2. Load container images","hash":"load-container-images","id":22}]},"17":{"id":17,"text":"IvorySQL Cloud is a web-based service platform that can be accessed from any computer through a browser. After installing the cloud service platform on the server with IP 192.168.31.43, open a browser and enter http://192.168.31.43:9104/ (9104 is the port configured in nginx.conf.default) to reach the login page: On the login page, enter the prompted information to access the IvorySQL Cloud service platform: Click the avatar in the upper-right corner to display the current username and the Log Out action. Click Log Out to exit; click the username to stay on the current page: After signing in as the admin user, click K8S Cluster Management in the left navigation bar to open the cluster list. Click Add Kubernetes Cluster in the upper-left corner, fill in the cluster information, and submit. The cluster management page lists details for each cluster and allows you to edit or delete them. Sign in with the demo user. Click Database Subscription in the left navigation, fill in the database parameters, and click Next: Confirm. Review the information and click Confirm. After confirming, the page automatically redirects to Database Management to show the subscription task. Displays all databases managed by the cloud service platform. Sign in with the demo user. Go to Database Management, select a database, click More in the Actions column, and choose Restart. Review the information and click Confirm. Sign in with the demo user. Go to Database Management, select a database, and click its Instance ID. On the database details page, click the password icon. Enter a new password and click Confirm. Sign in with the demo user. Go to Database Management, select a database, click More in the Actions column, and choose Delete Instance. Review the confirmation window and click Confirm. This feature requires additional plug-ins such as TopoLVM. Sign in with the demo user. Click Storage Expansion, select a database, then click Edit in the Actions column; alternatively, go to Database Management, click More, and choose Storage Expansion. Enter the expanded storage size and click Confirm. Sign in with the demo user. Click Specification Change, select a database, then click Edit in the Actions column; or go to Database Management, click More, and choose Specification Change. Enter the new specification and click Confirm. Sign in with the demo user. Go to Database Backup, select a database, and click Backup in the Actions column; or go to Database Management, click More, and choose Backup. Enter a backup name and click Confirm. Sign in with the demo user. Go to Database Restore, select a database, and click View in the Actions column; or go to Database Management, click More, and choose Restore. Select the backup file and click Restore in the Actions column. Enter the target database information. Use the database password from before the backup. Continue following the workflow described in “4.1 Database Subscription”. Sign in with the demo user. Click Monitoring Tools in the left navigation and select the cluster where the database resides; or go to Database Management, select a database, click More, and choose Monitoring. After the monitoring stack is created, repeat step (2) to open the monitoring page, then sign in with admin/admin and click Login. Click the magnifying glass icon to view monitoring metrics. Sign in with the demo user. Go to Database Management, select a database, click More in the Actions column, and choose Login. On the new page, enter the database account sysdba@ivyo.com and the database password, then click Login. Once the connection is established, you can operate on the database.","title":"User Guide","component":"ivorysql-doc","version":"master","name":"ivorysql_cloud_usage","url":"/ivorysql-doc/master/cloud_platform/ivorysql_cloud_usage.html","titles":[{"text":"1. Sign In and Sign Out","hash":"sign-in-and-sign-out","id":1},{"text":"1.1. Sign In","hash":"sign-in","id":2},{"text":"1.2. Sign Out","hash":"sign-out","id":3},{"text":"2. Administrator Features","hash":"administrator-features","id":4},{"text":"2.1. Add a Cluster","hash":"add-a-cluster","id":5},{"text":"2.2. Manage Clusters","hash":"manage-clusters","id":6},{"text":"3. demo User Features","hash":"demo-user-features","id":7},{"text":"3.1. Database Subscription","hash":"database-subscription","id":8},{"text":"3.2. Database Management","hash":"database-management","id":9},{"text":"3.3. Restart a Database","hash":"restart-a-database","id":10},{"text":"3.4. Change the Password","hash":"change-the-password","id":11},{"text":"3.5. Delete an Instance","hash":"delete-an-instance","id":12},{"text":"3.6. Storage Expansion","hash":"storage-expansion","id":13},{"text":"3.7. Specification Change","hash":"specification-change","id":14},{"text":"3.8. Database Backup","hash":"database-backup","id":15},{"text":"3.9. Database Restore","hash":"database-restore","id":16},{"text":"3.10. Database Monitoring","hash":"database-monitoring","id":17},{"text":"3.11. Visual Login Tool","hash":"visual-login-tool","id":18}]},"18":{"id":18,"text":"Currently, PostgreSQL’s CALL statement has the following limitations: Does not support the INTO clause; Cannot call functions that return values; Cannot assign results to client-side variables (i.e., Oracle’s binding variables / host variables). To enhance compatibility with Oracle, IvorySQL has implemented support for the CALL func(…) INTO :var; syntax, allowing users to receive function return values through binding variables (e.g., :x). This behavior (including precision checks and error handling) aligns with Oracle’s standards. Since PostgreSQL/IvorySQL inherently does not support direct assignment to client-side variables at the SQL level, this solution adopts a \"client-side rewriting + server-side collaboration\" approach: When the CALL statement includes binding variables (e.g., :x): The client rewrites it into a special anonymous PL block (DO $$ ... $$); Sends it using the extended query protocol to transmit parameter type and precision information; The server executes this anonymous block and returns the result to the client; The client then writes the result to the corresponding binding variable. When the CALL statement does not contain binding variables: The behavior remains fully consistent with native PostgreSQL, using the simple query protocol without any rewriting. To ensure compatibility with the CALL [INTO] statement in the interface, it must be converted into an anonymous PL/iSQL block, leveraging the support for OUT parameters in anonymous blocks to achieve functional equivalence. This requires the get_parameter_description function to correctly identify CALL statements and, when encountering CALL INTO, return the rewritten PL statement. Correspondingly, the get_hostvariables routine needs to store this information (such as whether it is a CALL statement, whether it includes INTO, the rewritten statement, etc.) in the HostVariable structure. The definition of HostVariable is as follows: typedef struct HostVariable { HostVariableEntry *hostvars; int length; bool isdostmt; bool iscallstmt; // Whether it is from a CALL statement char *convertcall; // Rewritten statement } HostVariable; On the server side, modifications are required in the syntax parser section. Add CALL INTO grammar rules in ora_gram.y, and generate rewritten PL statements in the action section, such as \"x := add(1,2);\". CallStmt: CALL func_application { CallStmt *n = makeNode(CallStmt); n->funccall = castNode(FuncCall, $2); $$ = (Node *)n; } | CALL func_application INTO ORAPARAM { CallStmt *n = makeNode(CallStmt); OraParamRef *hostvar = makeNode(OraParamRef); char *callstr = NULL; n->funccall = castNode(FuncCall, $2); hostvar->number = 0; hostvar->location = @4; hostvar->name = $4; n->hostvariable = hostvar; callstr = pnstrdup(pg_yyget_extra(yyscanner)->core_yy_extra.scanbuf + @2, @3 - @2); n->callinto = psprintf(\"%s := %s;\", $4, callstr); pfree(callstr); $$ = (Node *)n; } ; The CallStmt structure needs to store the INTO clause and the converted PL statement. typedef struct CallStmt { NodeTag type; FuncCall *funccall; /* from the parser */ FuncExpr *funcexpr; /* transformed call, with only input args */ List *outargs; /* transformed output-argument expressions */ OraParamRef *hostvariable; /* only used for get_parameter_description() */ char *callinto; /* rewrite CALL INTO to a PL assign stmt */ } CallStmt; To distinguish between regular DO statements and anonymous blocks converted from CALL statements, a new keyword GENERATED FROM CALL is added to the syntax. opt_do_from_where: GENERATED FROM CALL { $$ = true; } | /*EMPTY*/ { $$ = false; } ; The generated DoStmt node will set do_from_call = true for executor identification. typedef struct DoStmt { NodeTag type; List *args; /* List of DefElem nodes */ List *paramsmode; /* List of parameters mode */ List *paramslen; /* List of length for parameter datatypes */ bool do_from_call; /* True if DoStmt is come from CallStmt */ } DoStmt; In the IVY interface, placeholder information is obtained through a Set-Returning Function (SRF) called get_parameter_description. This function needs to identify the type of input statement and return the rewritten PL/iSQL assignment statement when encountering CALL INTO statements. To achieve this, IvorySQL has extended the return structure (TupleDesc) of this function: a new hint field has been added specifically to return the rewritten PL code for CALL INTO statements; for other types of statements, this field remains NULL. Additionally, the first field of the first tuple in the original function result set previously used only true/false to distinguish whether the statement was an anonymous block. To more accurately identify statement types (especially CALL statements), it has now been modified to return the corresponding parse tree’s CommandTag. All these metadata details are ultimately encapsulated into a user context structure to enable efficient passing and reuse across multiple invocations of the SRF function. { OraParamExtralData *extral; const char *cmdtag; char *callintoexpr; } outparam_fctx; The IVY-prefixed interfaces involved in CALL include: IvyStmtExecute IvyStmtExecute2 IvyexecPreparedStatement IvyexecPreparedStatement2 In the aforementioned interfaces, user-provided CALL [INTO] statements are rewritten into a \"special\" anonymous block statement. To clearly identify such anonymous blocks converted from CALL statements, a dedicated type has been added to the statement type definitions of the interface. The purpose of this type is to correctly recognize such statements in IvyHandleDostmt and generate execution statements in the form of:DO ... USING … — GENERATED FROM CALL typedef enum IvyStmtType { IVY_STMT_UNKNOW, IVY_STMT_DO, IVY_STMT_DOFROMCALL, /* new statement type */ IVY_STMT_DOHANDLED, IVY_STMT_OTHERS } IvyStmtType; When rewriting CALL statements, if encountering a CALL INTO statement that invokes a function, the interface needs to internally adjust the order of bound variables. This adjustment is completely transparent to users: when binding parameters, users only need to follow the order in which the variables appear in the CALL statement—that is, the variable in the INTO clause is positioned last in the original statement. However, in the rewritten special anonymous block, this INTO variable will appear as the left-hand side (i.e., the first parameter) of an assignment expression. Therefore, the interface must internally adjust the binding order correctly to ensure the execution logic matches the user’s expectations. All interface routines involved in this logic must implement this handling. The relevant routines are as follows: Ivyreplacenamebindtoposition Ivyreplacenamebindtoposition2 Ivyreplacenamebindtoposition3 In interfaces such as IvyexecPreparedStatement and IvyexecPreparedStatement2, users must explicitly provide paramvalues, paramlengths, paramformats, and parammode for each parameter. For CALL statements, the order of elements in these parameter arrays must be adjusted according to the rewritten anonymous block structure to ensure binding consistency with the execution logic. Among them, IvyexecPreparedStatement2 is more specialized: it requires users to additionally provide an output binding list of type IvyBindOutInfo*. This list is not only used to bind OUT parameters but is also utilized by IvyAssignPLISQLOutParameter to identify the data type of each OUT parameter when retrieving PL/iSQL procedure results. Therefore, when processing CALL statements, the interface first reorders the user-provided IvyBindOutInfo* list (moving the INTO-bound output variable to the first position) and then writes it into the IvyPreparedStatement statement handle for subsequent assignment. Regarding precision handling for output parameters: When there is a mismatch between the precision of an output binding variable in a CALL statement and the actual returned value, the system may either raise an error or automatically truncate—the specific behavior depends on whether the data type of the binding variable exactly matches the parameter type declared in the procedure/function. In the PL/iSQL inline handler, the precise data type of each OUT parameter can be obtained through ParamListInfo during the binding phase. If the currently executed anonymous block is a special DoStmt converted from a CALL statement, the system performs the following checks during assignment: If the type recorded in ParamListInfo exactly matches the formal parameter type of the function/stored procedure, a forced type conversion is applied for assignment. Otherwise, an implicit type conversion is used for assignment. This mechanism is designed to be compatible with Oracle’s behavior, ensuring safe and reasonable assignment even when types do not fully match. -- Original CALL statement: CALL my_func(:in1, :in2) INTO :out; -- Rewritten as: do $$BEGIN :out := my_func(:in1, :in2); END$$ using out INOUT, in1 INOUT, in2 INOUT paramslength -1,-1,-1 GENERATED FROM CALL;","title":"CALL INTO","component":"ivorysql-doc","version":"master","name":"call_into","url":"/ivorysql-doc/master/compatibility_features_design/call_into.html","titles":[{"text":"1. Purpose","hash":"purpose","id":1},{"text":"2. Overall Design Approach","hash":"overall-design-approach","id":2},{"text":"3. Implementation Details","hash":"implementation-details","id":3},{"text":"3.1. psql","hash":"psql","id":4},{"text":"3.2. Server-side","hash":"server-side","id":5},{"text":"3.3. Interface layer","hash":"interface-layer","id":6}]},"19":{"id":19,"text":"To meet Oracle’s quoted identifier case compatibility requirements, IvorySQL has designed three case conversion modes for quoted identifiers. If the parameter -C is appended during database initialization, with values of normal/interchange/lowercase, the Initdb.c→main() function in the code will process this parameter and set the global variable caseswitchmode according to the parameter value. Then the initdb command will start a postgres process in -boot mode to set up the template1 template database, while passing the parameter -C ivorysql.identifier_case_switch=caseswitchmode to the new process. This newly started backend process will write the identifier_case_switch information to the pg_control file through the following code: BootstrapModeMain() -> BootStrapXLOG(); /* save database compatible level value */ ControlFile->dbmode = bootstrap_database_mode; ControlFile->casemode = identifier_case_switch; /* some additional ControlFile fields are set in WriteControlFile() */ WriteControlFile(); When a user starts the database using the pg_ctl command, the postmaster process will read the contents of the pg_control file. The code call path is: PostmasterMain()-->SetCaseGucOption()-->GetCaseSwitchModeFromControl() After reading the parameter value, the SetConfigOption() function is called to assign the value. When each new backend process starts, since it is forked from the postmaster process, it automatically has the same ivorysql.identifier_case_switch parameter value. First, it processes the startup packet, and if it contains database or user parameters, the parameter values are processed accordingly based on identifier_case_switch. The source code is: BackendMain()->BackendInitialize()-->ProcessStartupPacket() Additionally, when processing user SQL statements, if they contain identifiers, the same processing is performed. The code is distributed in: SplitIdentifierString(), quoteOneName() and SplitGUCList() functions.","title":"Quoted Identifier Case Conversion","component":"ivorysql-doc","version":"master","name":"case_conversion","url":"/ivorysql-doc/master/compatibility_features_design/case_conversion.html","titles":[{"text":"1. Purpose","hash":"purpose","id":1},{"text":"2. Implementation Details","hash":"implementation-details","id":2}]},"20":{"id":20,"text":"In Oracle databases, empty strings ('') are treated as NULL values, which is an important Oracle feature. To maintain compatibility with this Oracle behavior, IvorySQL provides the empty string to NULL conversion functionality. When this feature is enabled, empty strings in SQL statements are automatically converted to NULL values, ensuring behavioral consistency for Oracle applications running on IvorySQL. The parameter ivorysql.enable_emptystring_to_NULL corresponds to the GUC variable enable_emptystring_to_NULL. In the file ora_scan.l, you can see how this variable is used: case xe: yylval->str = litbufdup(yyscanner); if (strcmp(yylval->str, \"\") == 0 && ORA_PARSER == compatible_db && enable_emptystring_to_NULL) { return NULL_P; } return SCONST; Where xe represents strings enclosed in quotes: extended quoted strings (support backslash escape sequences) The logic of the above code is that during lexical analysis, if an empty string is encountered and the empty-to-NULL conversion feature is enabled, it returns NULL_P; otherwise, it returns SCONST. In the grammar analysis file ora_gram.y, the statement insert into abc values(''); is parsed as follows: values_clause: VALUES '(' expr_list ')' { SelectStmt *n = makeNode(SelectStmt); n->valuesLists = list_make1($3); $$ = (Node *) n; } expr_list: a_expr { $$ = list_make1($1); } a_expr: c_expr { $$ = $1; } c_expr: AexprConst { $$ = $1; } AexprConst: Iconst | Sconst { $$ = makeStringConst($1, @1); } | NULL_P { $$ = makeNullAConst(@1); } The above code constructs corresponding nodes to handle NULL_P or SCONST returned from the lexical analysis.","title":"Empty String to NULL Conversion","component":"ivorysql-doc","version":"master","name":"empty_string_to_null","url":"/ivorysql-doc/master/compatibility_features_design/empty_string_to_null.html","titles":[{"text":"1. Purpose","hash":"purpose","id":1},{"text":"2. Implementation","hash":"implementation","id":2}]},"21":{"id":21,"text":"Force View offers Oracle-compatible CREATE [OR REPLACE] FORCE VIEW and ALTER VIEW … COMPILE behavior, allowing developers to persist a placeholder view even when dependencies are missing and then switch it back to a normal view once dependencies are available. The system records the original SQL text and identifier case mode in a dedicated catalog entry so that automatic or manual recompilation can restore the view with Oracle-style warnings and error reporting. In PostgreSQL, a base table referenced by a view cannot be dropped unless CASCADE is used. Oracle, however, allows the base table to be dropped while retaining the Force View and marking it as invalid. To align with Oracle semantics, IvorySQL introduces new grammar rules and a catalog that stores Force View metadata so that the Force state can be shared across sessions. Register the Force View keywords in src/backend/oracle_parser/ora_gram.y. Set ViewStmt→force during the grammar phase, and generate the AT_ForceViewCompile option when parsing AlterTableStmt. Preserve ViewStmt→stmt_literal for later reuse when the placeholder is materialized. /* Insert or update the pg_force_view catalog as needed */ if (need_store) { ...... StoreForceViewQuery(address.objectId, stmt->replace, ident_case, stmt->stmt_literal ? stmt->stmt_literal : queryString); } Add bool force and char *stmt_literal to ViewStmt in src/include/nodes/parsenodes.h. Define AT_ForceViewCompile consistently between parsenodes.h and tablecmds.c so that ALTER VIEW … COMPILE flows into the regular alter-table machinery. parse_analyze still follows the native path; Force mode intervenes only after a parsing error occurs. DefineView() in src/backend/commands/view.c now handles both normal and Force views. The function first attempts normal parsing inside a PG_TRY/PG_CATCH; if the semantic analysis fails, it checks stmt→force to decide whether to enter the Force View branch. On success it continues to StoreViewQuery(); on failure it falls back to the Force View logic so that the view object still exists. src/include/catalog/pg_force_view.h defines the catalog table, whose fields include the view OID (fvoid), identifier case (ident_case), and the original SQL text (source). The unique index pg_force_view_fvoid_index plus the syscache FORCEVIEWOID (declared in src/include/catalog/syscache_info.h) enable lookups by view OID. The catalog enables TOAST so lengthy SQL definitions are preserved in full, covering complex migration scripts. CATALOG(pg_force_view,9120,ForceViewRelationId) { /* oid of force view */ Oid fvoid; /* see IDENT_CASE__xxx constants below */ char ident_case; #ifdef CATALOG_VARLEN /* variable-length fields start here */ /* sql definition */ text source; #endif } FormData_pg_force_view; bool rel_is_force_view(Oid relid) in src/backend/commands/view.c determines whether a view is in Force state by checking whether the _RETURN rule exists. Force views still register as relkind = RELKIND_VIEW, avoiding extra compatibility branches. pg_class.relhasrules is set to false while in placeholder mode, which becomes part of the detection logic. After successful parsing, DefineView() calls DefineVirtualRelation() to populate pg_class, pg_attribute, and related catalogs. StoreViewQuery() generates the _RETURN rule and records dependencies. This path never touches pg_force_view; the view is immediately ready for use. CreateForceVirtualPlaceholder() in src/backend/commands/view.c creates or reuses a placeholder view: If the view does not exist, it calls DefineVirtualRelation() to create the base object without a _RETURN rule. If a Force View already exists, it reuses the current record and updates column definitions or cleans up legacy metadata. If a normal view exists and OR REPLACE is specified, it invokes make_view_invalid() to invalidate the old definition before installing the placeholder. StoreForceViewQuery() persists stmt_literal and the current ivorysql.identifier_case_switch to pg_force_view so identifier case semantics can be restored later. After the placeholder is created, the client receives WARNING: View created with compilation errors, indicating the view cannot yet be used. make_view_invalid() is triggered when dependencies are dropped, altered, or otherwise compromised. The routine removes the _RETURN rule, clears pg_depend entries, resets pg_class.relhasrules, and truncates pg_attribute column metadata. It also captures CREATE FORCE VIEW … AS and saves it in pg_force_view, while setting ident_case to IDENT_CASE_UNDEFINE to indicate the SQL is system-generated. The view remains visible in metadata catalogs but runtime access detects the Force flag. Because _RETURN is missing, the executor calls compile_force_view() when opening the view; if compilation fails, it raises view \".\" has errors. Users can recover by issuing ALTER VIEW … COMPILE or CREATE OR REPLACE FORCE VIEW once dependencies are ready. addRangeTableEntry() in parse_relation.c and the target-relation open logic in parse_clause.c call compile_force_view() after detecting a Force view. The function reruns raw_parser and parse_analyze; on success it reinstalls the _RETURN rule, and on failure it aborts the statement with the encountered error. AT_ForceViewCompile executes during phase 2 in tablecmds.c, acquiring AccessExclusiveLock before invoking compile_force_view(). Successful compilation behaves like a normal ALTER VIEW; failures emit WARNING: View altered with compilation errors, and the view stays in placeholder mode. compile_force_view() reads pg_force_view.source, rebuilds a ViewStmt, and calls compile_force_view_internal(). The routine uses checkViewColumns() to compare legacy columns, allowing additions but rejecting incompatible type changes; new columns are applied through AT_AddColumnToView(). _RETURN is regenerated via StoreViewQuery(), and DeleteForceView() removes the catalog record so the view becomes a standard one again.","title":"Force View","component":"ivorysql-doc","version":"master","name":"force_view","url":"/ivorysql-doc/master/compatibility_features_design/force_view.html","titles":[{"text":"1. Purpose","hash":"purpose","id":1},{"text":"2. Implementation Description","hash":"implementation-description","id":2},{"text":"2.1. Grammar and Parsing Entry Points","hash":"grammar-and-parsing-entry-points","id":3},{"text":"2.1.1. Force View Syntax Support","hash":"force-view-syntax-support","id":4},{"text":"2.1.2. AST Field Extensions","hash":"ast-field-extensions","id":5},{"text":"2.1.3. Parsing Entry","hash":"parsing-entry","id":6},{"text":"2.2. Force View Metadata","hash":"force-view-metadata","id":7},{"text":"2.2.1. pg_force_view Catalog","hash":"pg_force_view-catalog","id":8},{"text":"2.2.2. View State","hash":"view-state","id":9},{"text":"2.3. Creation and Replacement Flow","hash":"creation-and-replacement-flow","id":10},{"text":"2.3.1. Normal View","hash":"normal-view","id":11},{"text":"2.3.2. Force View","hash":"force-view","id":12},{"text":"2.4. Dependency Invalidations and Rollback","hash":"dependency-invalidations-and-rollback","id":13},{"text":"2.4.1. Active Invalidation Logic","hash":"active-invalidation-logic","id":14},{"text":"2.4.2. Observable Behavior After Invalidation","hash":"observable-behavior-after-invalidation","id":15},{"text":"2.5. Automatic and Manual Compilation","hash":"automatic-and-manual-compilation","id":16},{"text":"2.5.1. Automatic Compilation Triggers","hash":"automatic-compilation-triggers","id":17},{"text":"2.5.2. Manual Compilation","hash":"manual-compilation","id":18},{"text":"2.5.3. Column Checks and Metadata Updates","hash":"column-checks-and-metadata-updates","id":19}]},"22":{"id":22,"text":"PostgreSQL supports functions and stored procedures, but there are syntax differences between PostgreSQL and Oracle. To enable Oracle’s PL/SQL statements to run on IvorySQL—i.e., to achieve \"syntax compatibility\"—IvorySQL adopts the following solution: If an Oracle clause has a counterpart clause with the same function in IvorySQL, it is directly mapped to the corresponding IvorySQL clause; otherwise, only the syntax of the Oracle clause is implemented, while its function is not. PL/iSQL is the name of the procedural language in IvorySQL, specifically designed to be compatible with Oracle’s PL/SQL statements. To achieve compatibility with Oracle-style syntax for functions and stored procedures, corresponding adjustments need to be made to the psql client tool, the SQL layer, and the PL/iSQL layer. Oracle’s sqlplus tool uses a slash (/) to terminate functions and stored procedures. IvorySQL’s client tool, psql, needs to be compatible with the same syntax. This means that the conventional mechanism—where statements are sent to the server upon encountering a semicolon—becomes ineffective when dealing with Oracle-style function and stored procedure commands; instead, a slash (/) is used to send the commands. To this end the following fields are added to the PsqlScanStateData structure: bool cancel_semicolon_terminator; /* not send command when semicolon found */ /* * State to track boundaries of Oracle ANONYMOUS BLOCK. * Case 1: Statements starting with << ident >> is Oracle anonymous block. */ int token_count; /* # of tokens, not blank or newline since start of statement */ bool anonymous_label_start; /* T if the first token is \"<<\" */ bool anonymous_label_ident; /* T if the second token is an identifier */ bool anonymous_label_end; /* T if the third token is \">>\" */ /* * Case 2: DECLARE BEGIN ... END is Oracle anonymous block syntax. * DECLARE can also be a PostgreSQL cursor declaration statement, we need to tell this. */ bool maybe_anonymous_declare_start; /* T if the first token is DECLARE */ int token_cursor_idx; /* the position of keyword CURSOR in SQL statement */ /* * Case 3: DECLARE BEGIN ... END is Oracle anonymous block syntax. * BEGIN can also be a PostgreSQL transaction statement. */ bool maybe_anonymous_begin_start; /* T if the first token is BEGIN */ Meanwhile, modify ora_psqlscan.l and add or update the corresponding lexical rules. Below is a code snippet example: { if (is_oracle_slash(cur_state, cur_state->scanline)) { /* Terminate lexing temporarily */ cur_state->cancel_semicolon_terminator = false; cur_state->maybe_anonymous_declare_start = false; cur_state->maybe_anonymous_begin_start = false; cur_state->anonymous_label_start = false; cur_state->anonymous_label_ident = false; cur_state->anonymous_label_end = false; cur_state->start_state = YY_START; cur_state->token_count = 0; cur_state->token_cursor_idx = 0; cur_state->identifier_count = 0; cur_state->begin_depth = 0; cur_state->ora_plsql_expect_end_symbol = END_SYMBOL_INVALID; return LEXRES_SEMI; } ECHO; The psql tool needs to detect the meaning of the slash (/), to avoid identifying slashes in comments and other parts as terminators. To this end, a separate interface is_oracle_slash is added in the oracle_fe_utils/ora_psqlscan.l file for detection. bool is_oracle_slash(PsqlScanState state, const char *line) { bool result = false; switch (state->start_state) { case INITIAL: case xqs: /* treat these like INITIAL */ { int len, i; bool has_slash = false; len = strlen(line); for (i = 0; i < len; i++) { /* allow special char */ if (line[i] == '\\t' || line[i] == '\\n' || line[i] == '\\r' || line[i] == ' ') continue; if (line[i] == '/') { if (has_slash) break; has_slash = true; continue; } /* others */ break; } if (i == len && has_slash) result = true; } break; default: break; } return result; } The SQL layer needs to be able to recognize the creation syntax for functions and stored procedures, and this is achieved by modifying ora_base_yylex. This function prefetches and caches tokens: if the token follows Oracle syntax, it organizes an SCONST and sends it to the PL/SQL layer; otherwise, it retrieves the previously preread tokens from the stack and processes them according to the native PostgreSQL logic. The following fields are added to the ora_base_yy_extra_type structure: /* * The native PG only cache one-token info include yylloc, yylval and token * number in yyextra, IvorySQL cache multiple tokens info using two arrays. */ int max_pushbacks; /* the max size of cache array */ int loc_pushback; /* # of used tokens */ int num_pushbacks; /* # of cached tokens */ int *pushback_token; /* token number array */ TokenAuxData *pushback_auxdata; /* auxdata array */ OraBodyStyle body_style; int body_start; int body_level; Add operation interfaces for the token stack: push_back_token forward_token ora_internal_yylex internal_yylex In the ora_base_yylex function, when creating functions, procedures, or anonymous blocks, some tokens are preread. These tokens are cached into the stack using the aforementioned structure, and this is done to construct an SCONST that conforms to Oracle PL/SQL syntax and send it to the PL/iSQL layer for processing. For details, please refer to the source code. This part mainly modifies the pl_gram.y file to achieve compatibility with the syntax of PL/SQL functions and stored procedures. It enables compatibility with Oracle PL/SQL syntax forms without affecting PostgreSQL’s native PL/pgSQL. Below is a code example for the compatibility of the DECLARE section; for more details, please refer to the IvorySQL source code. /* * The declaration section of the outermost block in Oracle does not have the DECLARE keyword. */ ora_outermost_pl_block: ora_decl_sect K_BEGIN proc_sect exception_sect K_END opt_label { PLiSQL_stmt_block *new; new = palloc0(sizeof(PLiSQL_stmt_block)); new->cmd_type = PLISQL_STMT_BLOCK; new->lineno = plisql_location_to_lineno(@2); new->stmtid = ++plisql_curr_compile->nstatements; new->label = $1.label; new->n_initvars = $1.n_initvars; new->initvarnos = $1.initvarnos; new->body = $3; new->exceptions = $4; check_labels($1.label, $6, @6); plisql_ns_pop(); $$ = (PLiSQL_stmt *)new; } ; ora_decl_sect: opt_block_label opt_ora_decl_start opt_ora_decl_stmts { if ($2) { if ($1 == NULL) { plisql_ns_push(NULL, PLISQL_LABEL_BLOCK); } } } opt_ora_decl_stmts { if ($4) { plisql_IdentifierLookup = IDENTIFIER_LOOKUP_NORMAL; $$.label = ($1 == NULL ? plisql_curr_compile->namelabel : $1); if ($2 && $1 == NULL) $$.popname = true; else $$.popname = false; /* Remember variables declared in decl_stmts */ $$.n_initvars = plisql_add_initdatums(&($$.initvarnos)); } else { plisql_IdentifierLookup = IDENTIFIER_LOOKUP_NORMAL; $$.label = ($1 == NULL ? plisql_curr_compile->namelabel : $1); $$.n_initvars = 0; if ($2 && $1 == NULL) $$.popname = true; else $$.popname = false; $$.initvarnos = NULL; } } ; opt_ora_decl_start: K_DECLARE { /* Forget any variables created before block */ plisql_add_initdatums(NULL); /* * Disable scanner lookup of identifiers while * we process the decl_stmts */ plisql_IdentifierLookup = IDENTIFIER_LOOKUP_DECLARE; $$ = true; } | /*EMPTY*/ { /* Forget any variables created before block */ plisql_add_initdatums(NULL); /* * Disable scanner lookup of identifiers while * we process the decl_stmts */ plisql_IdentifierLookup = IDENTIFIER_LOOKUP_DECLARE; $$ = false; } ; opt_ora_decl_stmts: ora_decl_stmts { $$ = true; } | /*EMPTY*/ { $$ = false; } ora_decl_stmts: ora_decl_stmts ora_decl_stmt | ora_decl_stmt ; ora_decl_stmt: decl_statement ;","title":"PL/iSQL function and stored procedure","component":"ivorysql-doc","version":"master","name":"function_procedure","url":"/ivorysql-doc/master/compatibility_features_design/function_procedure.html","titles":[{"text":"1. Purpose","hash":"purpose","id":1},{"text":"2. Implementation description","hash":"implementation-description","id":2},{"text":"2.1. Client tool psql","hash":"client-tool-psql","id":3},{"text":"2.2. SQL layer","hash":"sql-layer","id":4},{"text":"2.3. PL/iSQL layer","hash":"plisql-layer","id":5}]},"23":{"id":23,"text":"The LIKE syntax in Oracle and IvorySQL is identical. Their difference lies in the expression types: Oracle supports using the LIKE keyword with wildcards for fuzzy queries on columns of numeric, date, and string types. Native PostgreSQL only supports string types, not date or numeric types. IvorySQL achieves Oracle-compatible LIKE operator functionality by extending data type support and operator overloading. In PostgreSQL, the fundamental string type is text, so LIKE is text-based. Other PostgreSQL types implicitly convert to text, enabling automatic conversion without creating operators. In IvorySQL, the Oracle-compatible string type is varchar2. Therefore, a LIKE operator for varchar2 is created, and other Oracle types also utilize the LIKE operator by implicitly converting to varchar2 without requiring additional operator creation. In the previous implementation of Oracle-compatible data types, IvorySQL established implicit conversions from certain data types (such as integer, float8, float4) to varchar2, but not directly to text. To achieve LIKE operator compatibility for these types, there are two approaches: 1、Add a separate LIKE operator for each individual type. 2、Implement a base LIKE operator for varchar2. In the second approach, since IvorySQL already supports implicit conversions from float8, integer, number, etc., to varchar2, these data types can share the same operator. Thus, only a single LIKE operator for varchar2 needs to be created. You can use the following SQL statement to check existing implicit type conversions. -- Check existing implicit conversion paths (where 9503 is the OID of varchar2) SELECT t1.typname AS source_type, t2.typname AS target_type FROM pg_cast C JOIN pg_type t1 ON C.castsource = t1.OID JOIN pg_type t2 ON C.casttarget = t2.OID WHERE C.casttarget = 9503; After reviewing, it can be observed that all the types requiring compatibility have implicit conversions defined in this table. Therefore, these types can be directly converted to the text type for fuzzy query operations. CREATE OR REPLACE FUNCTION sys.varchar2like(varchar2, varchar2) RETURNS bool AS $$ SELECT $1::text LIKE $2::text; $$ LANGUAGE SQL IMMUTABLE STRICT; CREATE OPERATOR ~~ ( PROCEDURE = sys.varchar2like, LEFTARG = varchar2, RIGHTARG = varchar2 ); The first code segment defines a function named sys.varchar2like, which accepts two parameters of type varchar2. By converting them to PostgreSQL’s native text type, it performs standard LIKE pattern matching and ultimately returns a boolean value indicating whether the match is successful. The second code segment creates an operator named ~~, which uses the previously defined varchar2like function as its implementation. It specifies that both the left and right operands of this operator must be of type varchar2. This establishes an Oracle-compatible LIKE operator in IvorySQL. When users employ the ~~ operator, it essentially invokes PostgreSQL’s native LIKE functionality after type conversion, thereby achieving semantic compatibility with Oracle’s LIKE behavior.","title":"Functional Overview","component":"ivorysql-doc","version":"master","name":"like_operator","url":"/ivorysql-doc/master/compatibility_features_design/like_operator.html","titles":[{"text":"1. Implementation Principle","hash":"implementation-principle","id":1},{"text":"1.1. Type Conversion","hash":"type-conversion","id":2},{"text":"1.2. Core Function Implementation","hash":"core-function-implementation","id":3}]},"24":{"id":24,"text":"Nested subfunctions refer to functions or procedures defined inside another function, stored procedure, or anonymous block; they are also called subprocs or inner functions. Parent functions are the outer functions, stored procedures, or anonymous blocks that host nested subfunctions and are responsible for invoking them during execution. When a DECLARE block contains a function … is/as begin … end construct, pl_gram.y calls plisql_build_subproc_function() (similar to creating a regular function and updating the entry in pg_proc): Create a PLiSQL_subproc_function entry in the parent PLiSQL_function’s `subprocfuncs[] array to store the name, arguments, return type, and other attributes, and record the index fno as the identifier of this subfunction. Call plisql_check_subprocfunc_properties() to validate the combination of declaration and definition attributes. Nested subfunctions share the parent’s datum table. During compilation, PLiSQL_function→datums describes variables and record fields inside the subfunction, while PLiSQL_execstate→datums keeps the runtime values. If the subfunction uses polymorphic parameters, the parser stores its source code in subprocfunc→src and sets has_poly_argument to true so that the executor can recompile it for each distinct argument type. The parent PLiSQL_function gains a subprocfuncs array, each element being the PLiSQL_subproc_function created earlier. Each PLiSQL_subproc_function has a HTAB *poly_tab pointer that is initialized on the first compilation when has_poly_argument is true. The hash key is PLiSQL_func_hashkey, which records the subfunction’s fno and input argument types; the value is the compiled PLiSQL_function * execution context. PostgreSQL builds a ParseState structure during compilation. plisql_subprocfunc_ref() locates the parent PLiSQL_function through ParseState→p_subprocfunc_hook() and calls plisql_ns_lookup() to gather all fno values for subfunctions sharing the same name, then selects the best match based on argument count and types. When FuncExpr nodes are created, the subfunction call is tagged for later execution: function_from = FUNC_FROM_SUBPROCFUNC, parent_func points to the parent PLiSQL_function, and funcid = fno. In plisql_call_handler(), when function_from == FUNC_FROM_SUBPROCFUNC, the runtime fetches the appropriate PLiSQL_subproc_function via the pair (parent_func, fno): For non-polymorphic subfunctions, reuse the precompiled action tree stored in subprocfunc→function. For polymorphic subfunctions, probe poly_tab; if there is no cached plan, call plisql_dynamic_compile_subproc() to compile one and store it in the cache. Before execution, plisql_init_subprocfunc_globalvar() forks relevant entries from the parent’s datum table so the subfunction can access the latest parent variables without polluting the parent scope. After execution, plisql_assign_out_subprocfunc_globalvar() writes back the necessary variables. pl_gram.y adds productions for subprocedure declarations and nested definitions, and records metadata such as lastoutvardno and subprocedure descriptors. Nested subfunctions can reference variables from the parent scope, other subprocedures, and user-defined types. Whenever a function … is/as begin … end construct is seen inside a DECLARE block, pl_gram.y invokes plisql_build_subproc_function(): Insert a PLiSQL_subproc_function entry into the parent PLiSQL_function→subprocfuncs[], storing the name, arguments, return type, and other attributes, and assign an index fno. Call plisql_check_subprocfunc_properties() to verify that declarations and definitions are consistent and to prevent duplicate or missing declarations from introducing semantic errors. The parent program’s datum tables hold the variables accessible to nested subfunctions during compilation and execution: PLiSQL_function→datums preserves the variable and record metadata visible during compilation. PLiSQL_execstate→datums carries the live values at runtime. When a subfunction contains polymorphic arguments, the parser will: Copy the subfunction source text into subprocfunc→src. Set has_poly_argument = true to prepare for dynamic recompilation based on actual argument types. The parent PLiSQL_function includes a subprocfuncs array, with each element corresponding to a PLiSQL_subproc_function. Each PLiSQL_subproc_function maintains an optional HTAB *poly_tab; when has_poly_argument is true, the cache is initialized on the first compile. Keys are PLiSQL_func_hashkey (subfunction fno plus argument types), and values are the compiled PLiSQL_function plans. During compilation, PostgreSQL creates a ParseState. plisql_subprocfunc_ref() plugs into ParseState→p_subprocfunc_hook, reusing the namespace lookup logic to gather candidates. plisql_get_subprocfunc_detail() then chooses the best match based on argument count, types, and named parameters, enabling overloaded dispatch. When constructing FuncExpr nodes, the compiler attaches metadata so the executor can recognize nested calls: function_from = FUNC_FROM_SUBPROCFUNC. parent_func references the owning PLiSQL_function. funcid = fno, enabling direct lookup of the subfunction definition. plisql_subprocfunc_ref() implements ParseState→p_subprocfunc_hook and reuses the namespace search to find nested subfunctions. plisql_get_subprocfunc_detail() applies matching rules for argument count, type, and naming to pick the optimal overload. plisql_call_handler() checks function_from; if it is a nested subfunction, the handler locates PLiSQL_subproc_function via (parent_func, fno). For regular subfunctions, reuse the cached plan stored in subprocfunc→function. For polymorphic subfunctions, consult poly_tab; on a miss, call plisql_dynamic_compile_subproc() to build and cache a specialized plan. plisql_init_subprocfunc_globalvar() copies the relevant entries from the parent datum table before the subfunction runs to expose the latest state. plisql_assign_out_subprocfunc_globalvar() writes back OUT/INOUT variables after execution to keep parent and child scopes consistent without mutual pollution. psqlscan.l adjusts the push/pop logic of proc_func_define_level and begin_depth so the nested subfunction body is transmitted to the SQL engine as a whole. Statements are sent only when the nesting depth returns to zero and a semicolon is reached, avoiding partial dispatch of subfunction blocks. Regular functions obtain metadata via funcid from pg_proc; nested subfunctions rely on FuncExpr.parent_func, which holds the parent PLiSQL_function. A set of callback pointers (registered through plisql_register_internal_func()) allows the SQL layer to fetch nested subfunction names, return types, and OUT parameter information on demand.","title":"Nested Subfunctions","component":"ivorysql-doc","version":"master","name":"nested_function","url":"/ivorysql-doc/master/compatibility_features_design/nested_function.html","titles":[{"text":"1. Objective","hash":"objective","id":1},{"text":"2. Implementation Notes","hash":"implementation-notes","id":2},{"text":"2.1. Syntax Recognition for Nested Subfunctions","hash":"syntax-recognition-for-nested-subfunctions","id":3},{"text":"2.1.1. Detecting Nested Definitions","hash":"detecting-nested-definitions","id":4},{"text":"2.1.2. Storing Datum Entries","hash":"storing-datum-entries","id":5},{"text":"2.1.3. Preserving Polymorphic Templates","hash":"preserving-polymorphic-templates","id":6},{"text":"2.2. Recompiling the Parent Program","hash":"recompiling-the-parent-program","id":7},{"text":"2.3. Name Resolution During Invocation","hash":"name-resolution-during-invocation","id":8},{"text":"3. Module Design","hash":"module-design","id":9},{"text":"3.1. PL/iSQL Grammar Extensions","hash":"plisql-grammar-extensions","id":10},{"text":"3.2. Datum Storage","hash":"datum-storage","id":11},{"text":"3.3. Polymorphic Templates","hash":"polymorphic-templates","id":12},{"text":"3.4. Parent Recompilation","hash":"parent-recompilation","id":13},{"text":"3.5. Parser Hooks","hash":"parser-hooks","id":14},{"text":"3.6. FuncExpr Annotation","hash":"funcexpr-annotation","id":15},{"text":"3.7. Nested Subfunction Lookup","hash":"nested-subfunction-lookup","id":16},{"text":"3.8. Execution Path","hash":"execution-path","id":17},{"text":"3.9. Variable Synchronization","hash":"variable-synchronization","id":18},{"text":"3.10. Statement Dispatch in psql","hash":"statement-dispatch-in-psql","id":19},{"text":"3.11. Retrieving Return Information on the SQL Side","hash":"retrieving-return-information-on-the-sql-side","id":20}]},"25":{"id":25,"text":"IvorySQL provides Oracle-compatible NLS (National Language Support) parameter functionality, including the following parameters: Parameter Name Description ivorysql.datetime_ignore_nls_mask Indicates whether the date format ignores the influence of NLS parameters. Default is 0. nls_length_semantics Oracle-compatible parameter that specifies whether the size unit for CHAR, VARCHAR, and VARCHAR2 type modifiers is bytes or characters. nls_date_format Specifies the default date format, which can be viewed using the SHOW command. Default is 'YYYY-MM-DD'. nls_timestamp_format Oracle-compatible parameter that controls the format of timestamps. nls_timestamp_tz_format Oracle-compatible parameter that controls the format of timestamps with time zones. nls_territory Oracle-compatible parameter that specifies the default region for the database. nls_iso_currency Oracle-compatible parameter that assigns a unique currency symbol to a specified country or region. nls_currency Oracle-compatible parameter that specifies the symbol for the local currency, corresponding to the placeholder L in numeric string formats. In IvorySQL, data types have an attribute modifier called typmod, which provides additional information about the type. For example, in VARCHAR(n), n is the type modifier. When creating or modifying table columns, you can specify the length type, such as: ivorysql=# create table t1(name varchar2(2 byte)); For columns of type CHAR, VARCHAR, or VARCHAR2, if the length type is not explicitly specified, IvorySQL uses the value of the nls_length_semantics parameter to determine the length type. The possible values are BYTE and CHAR, with BYTE being the default. Note that the nls_length_semantics parameter only affects newly created columns and has no impact on existing columns. In the syntax parsing file ora_gram.y, the following code converts the original CHAR, VARCHAR, or VARCHAR2 types to oracharchar or oracharbyte based on nls_length_semantics. CharacterWithLength: character '(' Iconst ')' { if (ORA_PARSER == compatible_db) { if (strcmp($1, \"bpchar\")) { if (nls_length_semantics == NLS_LENGTH_CHAR) $1 = \"oravarcharchar\"; else $1 = \"oravarcharbyte\"; } else { if (nls_length_semantics == NLS_LENGTH_CHAR) $1 = \"oracharchar\"; else $1 = \"oracharbyte\"; } $$ = OracleSystemTypeName($1); $$->typmods = list_make1(makeIntConst($3, @3)); $$->location = @1; } else { ... } } ; The input/output functions for the oracharchar and oracharbyte data types in IvorySQL include: oravarcharchartypmodout() oravarcharbytetypmodout() oracharbytetypmodout() oracharchartypmodout() These functions call the C-language function anychar_typmodout(), which adjusts the output to include BYTE or CHAR based on the value of nls_length_semantics. Another role of nls_length_semantics is to limit column lengths in tables. If the original VARCHAR type is converted to oracharchar, the function oravarcharchar() is called, and pg_mbcharcliplen() calculates the character length instead of the byte length. Datum oravarcharchar(PG_FUNCTION_ARGS) { VarChar *source = PG_GETARG_VARCHAR_PP(0); int32 typmod = PG_GETARG_INT32(1); bool isExplicit = PG_GETARG_BOOL(2); int32 len, maxlen; size_t maxmblen; char *s_data; len = VARSIZE_ANY_EXHDR(source); s_data = VARDATA_ANY(source); maxlen = typmod - VARHDRSZ; /* No work if typmod is invalid or supplied data fits it already */ if (maxlen < 0 || len <= maxlen) PG_RETURN_VARCHAR_P(source); maxmblen = pg_mbcharcliplen(s_data, len, maxlen); ... } This parameter is defined as an int value, where the lower four bits indicate whether to ignore NLS parameter influence on the corresponding date-time formats. The mask definitions are: #define ORADATE_MASK 0x01 #define ORATIMESTAMP_MASK 0x02 #define ORATIMESTAMPTZ_MASK 0x04 #define ORATIMESTAMPLTZ_MASK 0x08 In the source code, this GUC parameter is used in the following functions: oradate_in() oratimestamp_in() oratimestampltz_in() oratimestamptz_in() If the corresponding mask is set, the native PostgreSQL processing function is called; otherwise, the compatibility code is invoked, and NLS formats are ignored. These three GUC parameters serve as format strings in the function ora_do_to_timestamp() for checking and parsing input strings. Their default values are: char *nls_date_format = \"YYYY-MM-DD\"; char *nls_timestamp_format = \"YYYY-MM-DD HH24:MI:SS.FF6\"; char *nls_timestamp_tz_format = \"YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM\"; Setting these values to \"pg\" disables NLS-specific behavior, reverting to PostgreSQL’s default behavior. Currently, nls_territory and nls_iso_currency support the values CHINA and AMERICA. The default values are: char *nls_territory = \"AMERICA\"; char *nls_currency = \"$\"; char *nls_iso_currency = \"AMERICA\"; These parameters will be used in the Oracle-compatible function to_number(). The to_number() function has not yet been implemented.","title":"Functional Overview","component":"ivorysql-doc","version":"master","name":"nls_parameter","url":"/ivorysql-doc/master/compatibility_features_design/nls_parameter.html","titles":[{"text":"1. Implementation Principles","hash":"implementation-principles","id":1},{"text":"1.1. Parameter nls_length_semantics","hash":"parameter-nls_length_semantics","id":2},{"text":"1.2. GUC Parameter datetime_ignore_nls_mask","hash":"guc-parameter-datetime_ignore_nls_mask","id":3},{"text":"1.3. GUC Parameters nls_date_format/nls_timestamp_format/nls_timestamp_tz_format","hash":"guc-parameters-nls_date_formatnls_timestamp_formatnls_timestamp_tz_format","id":4},{"text":"1.4. GUC Parameters nls_currency/nls_iso_currency/nls_territory","hash":"guc-parameters-nls_currencynls_iso_currencynls_territory","id":5}]},"26":{"id":26,"text":"IvorySQL provides Oracle-compatible OUT parameter functionality, including functions and procedures with OUT parameters, support for OUT parameters in anonymous blocks, and libpq support for OUT parameters. For PL/pgSQL functions, when creating a function, the system table pg_proc stores the total number of parameters (including OUT parameters) and their corresponding data types. In the interpret_function_parameter_list() function, which processes function parameters, it checks the parameter mode. If the mode is IN OUT, the parameter cannot have a default value. In the make_return_stmt function, the error handling for detecting OUT parameters has been removed. By modifying the FuncnameGetCandidates function, function lookup now matches all parameters, including OUT parameters. During function compilation, a row variable is constructed to hold OUT parameter variables and the return value variable. The compiled function’s return type (function→fn_rettype) is modified to RECORDOID. During function execution, the ExecInitFunc function calls the new ExecInitFuncOutParams function to construct OUT parameter computation nodes. The plisql_out_param function separates the function return value and OUT parameter values from the tuple and assigns values to the OUT parameters externally. To support binding variables in the form of colon placeholders, the ora_scan.l file was modified to add syntax that returns ORAPARAM when a colon placeholder is encountered. In the ora_gram.y file, handling for ORAPARAM was added to the c_expr and plassign_target assignment syntax, constructing an OraParamRef node. New DO + USING syntax was added: DO [ LANGUAGE lang_name ] code [USING IN | OUT | IN OUT, ...] The ora_gram.y file was modified to support the DO+USING syntax. The DoStmt structure now includes a paramsmode field to store a list of binding variable modes and other information for anonymous blocks. Modifications to the PBE (Parse, Bind, Execute) process include: In the exec_parse_message function, the parameter mode is identified based on the parameter type OID passed from the application interface. In the exec_bind_message function, for anonymous blocks with DO+USING, the parameter modes following USING are identified, and parameter information is passed to the executor. Execution of anonymous blocks with OUT parameters: 1. In the PortalStart function, for anonymous block statements, the CreateTupleDescFromParams function is called to construct parameter description information. A new value, PROKIND_ANONYMOUS_BLOCK, was added to the PLiSQL_function member fn_prokind to indicate an anonymous block. In the plisql_exec_function function, anonymous blocks with OUT parameters are evaluated. The plisql_anonymous_return_out_parameter function is called to construct a PLiSQL_row type variable for OUT parameters, and the evaluated row type variable is used as the return value of the anonymous block function. The libpq interface was modified to support binding by position and by parameter name, involving changes to the SQL layer, PL/pgSQL layer, and libpq interface layer. SQL Layer: A system function get_parameter_description was implemented on the server side. This function returns the relationship between variable names and their positions based on the SQL statement. It is used in libpq interface functions. The first row of the result shows the SQL type in the name column, followed by rows displaying placeholder names and position information. ivorysql=# select * from get_parameter_description('insert into t values(:x, :y);'); name | position -------+---------- false | 0 :x | 1 :y | 2 (3 rows) Support for anonymous block statements is not yet implemented. PL/pgSQL Layer: The PL/pgSQL block adjusts the internal identification of parameters based on their position or name. The execution function retrieves parameter values and type information from the binding handle. For OUT parameters, a special handling of return column names is applied. If a parameter is an OUT parameter, its column name is formatted as _column_xxx, where xxx is the position of the OUT parameter. This allows assigning values to OUT parameters from the result set based on the binding position and return position. At the PLiSQL execution layer, parameter names are converted to internal identifiers (e.g., $number) based on their position. When returning to the client, description information is sent to libpq, ensuring that the returned column names are constructed from parameter names. The libpq side assigns values to OUT parameters based on these column names. libpq Interface Layer: Provides functions for preparing, binding, and executing statements, similar to the corresponding OCI functions. The general calling process is as follows: Use IvyHandleAlloc to allocate statement and error handles. Call IvyStmtPrepare to prepare the statement. Call IvyBindByPos or IvyBindByName to bind parameters. Call IvyStmtExecute to execute, which can be repeated. Call IvyFreeHandle to release the statement and error handles. Additionally, a series of interface functions have been implemented, including Ivyconnectdb, Ivystatus, Ivyexec, IvyresultStatus, IvyCreatePreparedStatement, IvybindOutParameterByPos, IvyexecPreparedStatement, IvyexecPreparedStatement2, Ivynfields, Ivyntuples, and Ivyclear.","title":"Functional Overview","component":"ivorysql-doc","version":"master","name":"out_parameter","url":"/ivorysql-doc/master/compatibility_features_design/out_parameter.html","titles":[{"text":"1. Implementation Principles","hash":"implementation-principles","id":1},{"text":"1.1. Functions with OUT Parameters","hash":"functions-with-out-parameters","id":2},{"text":"1.2. Support for OUT Parameters in Anonymous Blocks","hash":"support-for-out-parameters-in-anonymous-blocks","id":3},{"text":"1.3. Calling Functions with OUT Parameters in libpq","hash":"calling-functions-with-out-parameters-in-libpq","id":4}]},"27":{"id":27,"text":"IvorySQL provides Oracle-compatible RowID functionality. RowID is a pseudo-column automatically generated by the database when a table is created, returning the address of each row in the database. RowID should have the following characteristics: 1. Logically identifies each row with a unique value 2. Allows quick querying and modification of other columns in the table via ROWID, but cannot be inserted or modified itself 3. Users can control whether this feature is enabled In IvorySQL, the system column ctid represents the physical location of a data row in a table, also known as the tuple identifier, which consists of a pair of values (block number and row index). The ctid allows for quick lookup of data rows in a table, behaving similarly to Oracle’s RowID. However, the ctid value may change (e.g., during UPDATE or VACUUM FULL), making it unsuitable as a long-term row identifier. We chose a composite type consisting of the table’s OID and a sequence value as the RowID value, where the sequence is a system column. If the RowID functionality is enabled, a sequence named table-id_rowid_seq is created simultaneously with the table. Additionally, in the heap_form_tuple constructor, the length of HeapTupleHeaderData is increased by 8 bytes, and the td→t_infomask = HEAP_HASROWID bit is set to indicate the presence of the RowID. When the RowID functionality is enabled via the GUC parameter, or by the WITH ROWID option in table creation, or by executing ALTER TABLE … SET WITH ROWID on an existing table, a sequence is created by adding a sequence creation command. /* * Build a CREATE SEQUENCE command to create the sequence object, * and add it to the list of things to be done before this CREATE/ALTER TABLE */ seqstmt = makeNode(CreateSeqStmt); seqstmt->with_rowid = true; seqstmt->sequence = makeRangeVar(snamespace, sname, -1); seqstmt->options = lcons(makeDefElem(\"as\", (Node *) makeTypeNameFromOid(INT8OID, -1), -1), seqstmt->options); seqstmt->options = lcons(makeDefElem(\"nocache\", NULL, -1), seqstmt->options); To enable fast querying of a row using the RowID pseudo-column, a UNIQUE index is automatically created on the RowID column of the table by default to provide efficient query performance. The implementation of the RowID column as a system attribute column is achieved by adding a new system column in heap.c. /* * Compatible Oracle ROWID pseudo column. */ static const FormData_pg_attribute a7 = { .attname = {\"rowid\"}, .atttypid = ROWIDOID, .attlen = -1, .attnum = RowIdAttributeNumber, .attcacheoff = -1, .atttypmod = -1, .attbyval = false, .attalign = TYPALIGN_SHORT, .attstorage = TYPSTORAGE_PLAIN, .attnotnull = true, .attislocal = true, }; A boolean field relhasrowid has been added to the pg_class system table to indicate whether the WITH ROWID option was specified during table creation. If the WITH ROWID option is included when creating a table, relhasrowid is set to t; otherwise, it is set to f. This value is also updated when a user executes the ALTER TABLE … SET WITH ROWID or ALTER TABLE … SET WITHOUT ROWID command. /* T if we generate ROWIDs for rows of rel */ bool relhasrowid BKI_DEFAULT(f); Regarding RowID storage, if the RowID pseudo-column functionality is enabled, the heap_form_tuple function will add 8 bytes to the HeapTupleHeaderData to store the sequence value, depending on whether tdhasrowid in the TupleDesc parameter is true. In the heap_prepare_insert function, the nextval of the sequence is obtained and stored in the corresponding position in the HeapTupleHeader. if (relation->rd_rel->relhasrowid) { // Get the sequence next value seqnum = nextval_internal(relation->rd_rowdSeqid, true); // Set the HeapTupleHeader HeapTupleSetRowId(tup, seqnum); }","title":"RowID","component":"ivorysql-doc","version":"master","name":"rowid","url":"/ivorysql-doc/master/compatibility_features_design/rowid.html","titles":[{"text":"1. Objective","hash":"objective","id":1},{"text":"2. Implementation Principles","hash":"implementation-principles","id":2}]},"28":{"id":28,"text":"IvorySQL’s sys_guid() is a powerful random number generation function that generates and returns a 16-byte database-level unique identifier (raw value). The sys_guid() function of IvorySQL is implemented by modifying the code of the uuid-ossp plugin. To make full use of various underlying libraries of uuid, the following logic is adopted: If the uuid-ossp exists in the system, uuid_make() will be used; If the uuid-e2fs exists in the system, uuid_generate_random() will be used; Otherwise use arc4random(); Meanwhile modify the code so that IvorySQL can load uuid-ossp extension automatically.","title":"sys_guid() function","component":"ivorysql-doc","version":"master","name":"sys_guid_function","url":"/ivorysql-doc/master/compatibility_features_design/sys_guid_function.html","titles":[{"text":"1. Purpose","hash":"purpose","id":1},{"text":"2. Implementation Description","hash":"implementation-description","id":2}]},"29":{"id":29,"text":"IvorySQL provides Oracle-compatible PL/SQL data type functionality, including %TYPE and %ROWTYPE. This is a passive process. The current implementation records the dependency between functions (stored procedures) and tablename.columnname. When the referenced type changes, the function (stored procedure) cache is invalidated based on this dependency. As a result, when the function is called, it undergoes forced compilation, ensuring that the function retrieves the latest variable type. A field named prostatus is added to the system table pg_proc to indicate the status of a function (stored procedure), with three possible states: validate (v), invalidate (i), and N/A (n). After a function is successfully compiled, this status is set to valid. When parsing function content, the functions plisql_parse_cwordtype, plisql_parse_wordrowtype, and plisql_parse_cwordrowtype identify objects referenced by %TYPE and %ROWTYPE, record them in the plisql_referenced_object linked list, and finally add them to the pg_depend system table. Add a new dependency type, DEPENDENCY_TYPE = 't', to represent %TYPE or %ROWTYPE dependencies. When adding object reference relationships to the pg_depend system table, set the dependency type to 't'. When performing operations on a table (such as modifying the table type or deleting the table), check the pg_depend system table. If there exists a dependency type deptype='t' and the dependent object is a function, call the plisql_free_function function to clear the function cache and update the function status prostatus in the pg_proc system table to N/A (n). Add bool notnull member in structure PLiSQL_type; /* * Postgres data type */ typedef struct PLiSQL_type { bool notnull; /* the type is built by variable%type, * isnull or notnull of the variable */ In the plisql_parse_wordtype or plisql_parse_cwordtype functions responsible for parsing %TYPE type functions, determine if the referenced variable type specifies a NOT NULL constraint, and set the bool notnull attribute of the returned datatype member to true. In the decl_statement grammar of the pl_gram.y file, assign the notnull attribute of the PLiSQL_variable *var variable based on the bool notnull member of PLiSQL_type. This way, the constraints of the referenced variable are inherited. Add support of %ROWTYPE for func_type in ora_gram.y | type_function_name attrs '%' ROWTYPE { $$ = makeTypeNameFromNameList(lcons(makeString($1), $2)); $$->row_type = true; $$->location = @1; } Add a member bool row_type to the TypeName struct to indicate whether %ROWTYPE is specified. typedef struct TypeName { bool pct_type; /* %TYPE specified? */ bool row_type; /* %ROWTYPE specified? */ In the LookupTypeName function, if the row_type member of TypeName is TRUE, obtain the schema name and table name from the names member of TypeName, and then retrieve the table’s typeoid. In ora_gram.y, add new syntax to support VALUES without requiring parentheses '(' afterward. values_clause_no_parens: VALUES columnref { SelectStmt *n = makeNode(SelectStmt); n->valuesLists = list_make1(list_make1($2)); n->valuesIsrow = true; $$ = (Node *) n; } Add a field bool valuesIsrow to the SelectStmt struct to indicate that values is a row. When the transformInsertStmt function processes the INSERT … VALUES statement, if valuesIsrow is true, calls the new function transformRowExpression to convert row_variable into the equivalent row_variable.field1, …, row_variable.fieldN. When transforming an UPDATE statement, i.e., when calling the transformUpdateStmt function, if in Oracle compatibility mode, invoke the newly added transformIvyUpdateTargetList function. In this new function, for cases where the origTlist (i.e., targetList) does not contain a name of row, execute the transformUpdateTargetList function following the original UPDATE transform process. For cases where the origTlist parameter contains a name row, since row can be used as a column name in PostgreSQL but is a reserved keyword in Oracle and cannot be used as a column name, it is necessary to determine whether row is a column in the table being updated. If row is not a column in the table to be updated, call the new function transformUpdateRowTargetList to convert the sql statement UPDATE table_name SET ROW = row_variable [WHERE …]; into equivalent UPDATE table_name SET table_name.column1 = row_variable.column1, table_name.column2 = row_variable.filed2,… table_name.columnN = row_variable.columnN [WHERE …]; If the variable row_variable in the statement UPDATE table_name SET ROW = row_variable is not a composite type, execute the transformUpdateTargetList function following the original UPDATE transform process. If the variable row_variable in the statement is a composite type, the column named row in the table is also a composite type, and their type OIDs match, execute the transformUpdateTargetList function following the original UPDATE transform process. In all other cases, call the new function transformUpdateRowTargetList for processing.","title":"%ROWTYPE、%TYPE","component":"ivorysql-doc","version":"master","name":"type_rowtype","url":"/ivorysql-doc/master/compatibility_features_design/type_rowtype.html","titles":[{"text":"1. Purpose","hash":"purpose","id":1},{"text":"2. Implementation description","hash":"implementation-description","id":2},{"text":"2.1. If the reference changes, variables declared with %TYPE or %ROWTYPE will change accordingly","hash":"if-the-reference-changes-variables-declared-with-type-or-rowtype-will-change-accordingly","id":3},{"text":"2.2. Variables declared with %TYPE inherit the constraints of the referenced variable.","hash":"variables-declared-with-type-inherit-the-constraints-of-the-referenced-variable","id":4},{"text":"2.3. Use table_name%ROWTYPE or view_name%ROWTYPE as the parameter type of a function / stored procedure or the return type of a function","hash":"use-table_namerowtype-or-view_namerowtype-as-the-parameter-type-of-a-function-stored-procedure-or-the-return-type-of-a-function","id":5},{"text":"2.4. Enhancement to INSERT statement","hash":"enhancement-to-insert-statement","id":6},{"text":"2.5. Enhancement to UPDATE statement","hash":"enhancement-to-update-statement","id":7}]},"30":{"id":30,"text":"Get IvorySQL image from Docker Hub $ docker pull ivorysql/ivorysql:5.0-ubi8 Running IvorySQL $ docker run --name ivorysql -p 5434:5432 -e IVORYSQL_PASSWORD=your_password -d ivorysql/ivorysql:5.0-ubi8 Check if the IvorySQL container is running successfully $ docker ps | grep ivorysql CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6faa2d0ed705 ivorysql:5.0-ubi8 \"docker-entrypoint.s…\" 50 seconds ago Up 49 seconds 5866/tcp, 0.0.0.0:5434->5432/tcp ivorysql Pull IvorySQL Image from Docker Hub [highgo@manager-node1 ~]$ podman pull ivorysql/ivorysql:5.0-ubi8 ✔ docker.io/ivorysql/ivorysql:5.0-ubi8 Trying to pull docker.io/ivorysql/ivorysql:5.0-ubi8... Getting image source signatures Copying blob 5885448c5c88 done | Copying blob 6c502b378234 done | Copying blob 8b4f2b90d6b6 done | Copying blob 9b000f2935f6 done | Copying blob 806f782da874 done | Copying blob e4c51845a9eb done | Copying blob dcb1e9a04275 done | Copying blob 285a279173f8 done | Copying blob 1f6f247b9ae0 done | Copying blob 3cc81bed8614 done | Copying blob 863c87bf25eb done | Copying blob 4f4fb700ef54 done | Copying config 88e1bbeda8 done | Writing manifest to image destination 88e1bbeda81c51d88e12cbd2b19730498f1343d1c64bb3dddc8ffcb08a1f965f Run IvorySQL Container $ podman run --name ivorysql -p 5434:5432 -e IVORYSQL_PASSWORD=123456 -d ivorysql/ivorysql:5.0-ubi8 Check if IvorySQL Container is Running Successfully [highgo@manager-node1 ~]$ podman ps | grep ivorysql CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 368dee58d5ef docker.io/ivorysql/ivorysql:5.0-ubi8 postgres 20 seconds ago Up 20 seconds 0.0.0.0:5434->5432/tcp, 1521/tcp, 5866/tcp ivorysql [highgo@manager-node1 ~]$ podman exec -it ivorysql /bin/bash [root@8cc631eb413d /]# ivorysql=# select version(); version ------------------------------------------------------------------------------------------------------------------------ PostgreSQL 18.0 (IvorySQL 5.0) on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-28), 64-bit (1 row) ivorysql=#","title":"Docker & Podman deployment IvorySQL","component":"ivorysql-doc","version":"master","name":"docker_podman_deployment","url":"/ivorysql-doc/master/containerization/docker_podman_deployment.html","titles":[{"text":"1. Running IvorySQL in docker","hash":"running-ivorysql-in-docker","id":1},{"text":"2. Running with Podman","hash":"running-with-podman","id":2}]},"31":{"id":31,"text":"Prepare three servers with network connectivity and set up a Swarm cluster. The test cluster names and corresponding IP addresses are as follows: manager-node1: 192.168.21.205 manager-node2: 192.168.21.164 manager-node3: 192.168.21.51 [root@manager-node1 docker-swarm]# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION y9d9wd9t2ncy4t9bvw6bg9sjs * manager-node1 Ready Active Reachable 26.1.4 iv17o6m9t9e06vd9iu1o6damd manager-node2 Ready Active Leader 25.0.4 vjnax76qj812mlvut6cv4qotl manager-node3 Ready Active Reachable 24.0.6 Download the source code [root@manager-node1 ~]# git clone https://github.com/IvorySQL/docker_library.git [root@manager-node1 ~]# cd docker_library/docker-cluster/docker-swarm Deploy a three-node etcd cluster [root@manager-node1 docker-swarm]# docker stack deploy -c docker-swarm-etcd.yml ivoryhac-etcd Creating network ivoryhac-etcd_etcd-net Creating service ivoryhac-etcd_etcd3 Creating service ivoryhac-etcd_etcd1 Creating service ivoryhac-etcd_etcd2 [root@manager-node1 docker-swarm]# docker service ls ID NAME MODE REPLICAS IMAGE PORTS 1jst0mva8o5n ivoryhac-etcd_etcd1 replicated 1/1 quay.io/coreos/etcd:v3.5.8 *:2379-2380->2379-2380/tcp sosag5017cis ivoryhac-etcd_etcd2 replicated 1/1 quay.io/coreos/etcd:v3.5.8 8twpgkzo2mnx ivoryhac-etcd_etcd3 replicated 1/1 quay.io/coreos/etcd:v3.5.8 You can customize the external database directory by modifying the volumes section in docker-swarm-ivypatroni.yml. After making changes, adjust the directory permissions and ownership accordingly. Example as follows: mkdir -p /home/ivorysql/{data,patroni} chown -R 1000:1000 /home/ivorysql/{data,patroni} chmod 700 /home/ivorysql/{data,patroni} Deploy an IvorySQL High Availability Cluster [root@manager-node1 docker-swarm]# docker stack deploy -c docker-swarm-ivypatroni.yml ivoryhac-patroni Since --detach=false was not specified, tasks will be created in the background. In a future release, --detach=false will become the default. Creating service ivoryhac-patroni_ivypatroni1 Creating service ivoryhac-patroni_ivypatroni2 [root@manager-node1 docker-swarm]# docker service ls ID NAME MODE REPLICAS IMAGE PORTS 1jst0mva8o5n ivoryhac-etcd_etcd1 replicated 1/1 quay.io/coreos/etcd:v3.5.8 *:2379-2380->2379-2380/tcp sosag5017cis ivoryhac-etcd_etcd2 replicated 1/1 quay.io/coreos/etcd:v3.5.8 8twpgkzo2mnx ivoryhac-etcd_etcd3 replicated 1/1 quay.io/coreos/etcd:v3.5.8 uzdvjq5j2gwt ivorysql-hac_ivypatroni1 replicated 1/1 ivorysql/docker-swarm-ha-cluster:5.0-4.0.6-ubi8 *:1521->1521/tcp, *:5866->5866/tcp fr0m9chu3ce8 ivorysql-hac_ivypatroni2 replicated 1/1 ivorysql/docker-swarm-ha-cluster:5.0-4.0.6-ubi8 *:1522->1521/tcp, *:5867->5866/tcp Connect to the database using psql via Oracle port and PostgreSQL port [root@manager-node1 docker-swarm]# psql -h127.0.0.1 -p1521 -U ivorysql -d ivorysql Password for user ivorysql: ivorysql=# select version(); version ------------------------------------------------------------------------------------------------------------------------ PostgreSQL 18.0 (IvorySQL 5.0) on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-28), 64-bit (1 row) ivorysql=# show ivorysql.compatible_mode; ivorysql.compatible_mode -------------------------- oracle (1 row) ivorysql=# exit [root@manager-node1 docker-swarm]# psql -h127.0.0.1 -p5432 -U ivorysql -d ivorysql Password for user ivorysql: ivorysql=# select version(); version ------------------------------------------------------------------------------------------------------------------------ PostgreSQL 18.0 (IvorySQL 5.0) on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-28), 64-bit (1 row) ivorysql=# show ivorysql.compatible_mode; ivorysql.compatible_mode -------------------------- pg (1 row) Uninstall the IvorySQL cluster [root@manager-node1 ~] docker stack rm ivoryhac-patroni [root@manager-node1 ~] docker stack rm ivoryhac-etcd Download the source code [root@manager-node1 ~]# git clone https://github.com/IvorySQL/docker_library.git [root@manager-node1 ~]# cd docker_library/docker-cluster/docker-compose Copy files to another server Copy the etcd and ivypatroni Docker Compose files to other servers respectively. For example, to the test server: 192.168.21.205 will host etcd1+ivorypatroni1, 192.168.21.164 will host etcd2+ivorypatroni2, 192.168.21.51 will host etcd3+ivorypatroni3 Deploy a three-node etcd cluster, taking node1 as an example [root@manager-node1 docker-compose]# docker-compose -f ./docker-compose-etcd1.yml up -d [+] Running 1/1 ✔ Container etcd Started 0.1s Deploy an IvorySQL high-availability cluster. Deploy the ivyhac service on each node, using node1 as an example. [root@manager-node1 docker-compose]# docker-compose -f ./docker-compose-ivypatroni_1.yml up -d [+] Running 1/1 ✔ Container ivyhac1 Started 0.1s [root@manager-node1 docker-compose]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 736c0d188bdd ivorysql/docker-compose-ha-cluster:5.0-4.0.6-ubi8 \"/bin/sh /docker-ent…\" 18 seconds ago Up 17 seconds ivyhac1 9d8e04e4f819 quay.io/coreos/etcd:v3.5.8 \"/usr/local/bin/etcd\" 24 minutes ago Up 24 minutes etcd At this point, the one-primary-two-standby cluster setup is complete. Connect to the database using psql via Oracle-compatible ports and PostgreSQL ports. [root@manager-node1 docker-swarm]# psql -h127.0.0.1 -p1521 -U ivorysql -d ivorysql Password for user ivorysql: ivorysql=# select version(); version ------------------------------------------------------------------------------------------------------------------------ PostgreSQL 18.0 (IvorySQL 5.0) on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-28), 64-bit (1 row) ivorysql=# show ivorysql.compatible_mode; ivorysql.compatible_mode -------------------------- oracle (1 row) ivorysql=# exit [root@manager-node1 docker-swarm]# psql -h127.0.0.1 -p5432 -U ivorysql -d ivorysql Password for user ivorysql: ivorysql=# select version(); version ------------------------------------------------------------------------------------------------------------------------ PostgreSQL 18.0 (IvorySQL 5.0) on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-28), 64-bit (1 row) ivorysql=# show ivorysql.compatible_mode; ivorysql.compatible_mode -------------------------- pg (1 row) Uninstall the IvorySQL cluster, using node1 as an example. [root@manager-node1 ~] docker-compose -f ./docker-compose-ivypatroni_1.yml down [root@manager-node1 ~] docker-compose -f ./docker-compose-etcd1.yml down","title":"Docker Swarm & Docker Compose Deploying IvorySQL High Availability Cluster","component":"ivorysql-doc","version":"master","name":"docker_swarm_compose_deployment","url":"/ivorysql-doc/master/containerization/docker_swarm_compose_deployment.html","titles":[{"text":"1. Building IvorySQL HA Cluster using Docker Swarm","hash":"building-ivorysql-ha-cluster-using-docker-swarm","id":1},{"text":"2. Set up an IvorySQL HA Cluster using Docker Compose","hash":"set-up-an-ivorysql-ha-cluster-using-docker-compose","id":2}]},"32":{"id":32,"text":"On the master node of the k8s cluster, create a namespace named ivorysql. [root@k8s-master ~]# kubectl create ns ivorysql Download the latest docker_library code. [root@k8s-master ~]# git clone https://github.com/IvorySQL/docker_library.git Enter the single-node directory [root@k8s-master ~]# cd docker_library/k8s-cluster/single [root@k8s-master single]# vim statefulset.yaml #Update the PVC information and database password in the StatefulSet to match your actual environment. Use statefulset.yaml to create a single-node pod. [root@k8s-master single]# kubectl apply -f statefulset.yaml service/ivorysql-svc created statefulset.apps/ivorysql created Wait for the single-node pod to be successfully created. [root@k8s-master single]# kubectl get all -n ivorysql NAME READY STATUS RESTARTS AGE pod/ivorysql-0 0/1 ContainerCreating 0 47s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/ivorysql-svc NodePort 10.108.178.236 5432:32106/TCP,1521:31887/TCP 47s NAME READY AGE statefulset.apps/ivorysql 0/1 47s [root@k8s-master single]# kubectl get all -n ivorysql NAME READY STATUS RESTARTS AGE pod/ivorysql-0 1/1 Running 0 2m39s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/ivorysql-svc NodePort 10.108.178.236 5432:32106/TCP,1521:31887/TCP 2m39s NAME READY AGE statefulset.apps/ivorysql 1/1 2m39s Connect to IvorySQL via its PostgreSQL port using the psql [root@k8s-master single]# psql -U ivorysql -p 32106 -h 127.0.0.1 -d ivorysql Password for user ivorysql: ivorysql=# select version(); version ------------------------------------------------------------------------------------------------------------------------ PostgreSQL 18.0 (IvorySQL 5.0) on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-28), 64-bit (1 row) ivorysql=# show ivorysql.compatible_mode; ivorysql.compatible_mode -------------------------- pg (1 row) ivorysql=# exit Connect to IvorySQL’s Oracle-compatible port using psql. [root@k8s-master single]# psql -U ivorysql -p 31887 -h 127.0.0.1 -d ivorysql Password for user ivorysql: ivorysql=# select version(); version ------------------------------------------------------------------------------------------------------------------------ PostgreSQL 18.0 (IvorySQL 5.0) on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-28), 64-bit (1 row) ivorysql=# show ivorysql.compatible_mode; ivorysql.compatible_mode -------------------------- oracle (1 row) Uninstall Single-node container [root@k8s-master single]# kubectl delete -f statefulset.yaml Access the master node of the k8s cluster and create a namespace named ivorysql. [root@k8s-master ~]# kubectl create ns ivorysql Download the latest docker_library code. [root@k8s-master ~]# git clone https://github.com/IvorySQL/docker_library.git Enter the high-availability cluster directory. [root@k8s-master ~]# cd docker_library/k8s-cluster/ha-cluster/helm_charts [root@k8s-master single]# vim values.yaml #Adjust the PVC settings, cluster size, and other configurations in values.yaml according to your environment. For the database password, check templates/secret.yaml and modify it as needed. Deploy the high-availability cluster using Helm commands. [root@k8s-master helm_charts]# helm install ivorysql-ha-cluster -n ivorysql . NAME: ivorysql-ha-cluster LAST DEPLOYED: Wed Sep 10 09:45:36 2025 NAMESPACE: ivorysql STATUS: deployed REVISION: 1 TEST SUITE: None [root@k8s-master helm_charts]# kubectl get all -n ivorysql NAME READY STATUS RESTARTS AGE pod/ivorysql-patroni-hac-0 1/1 Running 0 42s pod/ivorysql-patroni-hac-1 0/1 Running 0 18s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/ivorysql-patroni-hac NodePort 10.96.119.203 5432:32391/TCP,1521:32477/TCP 42s service/ivorysql-patroni-hac-config ClusterIP None 42s service/ivorysql-patroni-hac-pods ClusterIP None 42s service/ivorysql-patroni-hac-repl NodePort 10.100.122.0 5432:30111/TCP,1521:32654/TCP 42s NAME READY AGE statefulset.apps/ivorysql-patroni-hac 1/3 42s Wait until all pods are running successfully, indicating the cluster deployment is complete. [root@k8s-master helm_charts]# kubectl get all -n ivorysql NAME READY STATUS RESTARTS AGE pod/ivorysql-patroni-hac-0 1/1 Running 0 88s pod/ivorysql-patroni-hac-1 1/1 Running 0 64s pod/ivorysql-patroni-hac-2 1/1 Running 0 41s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/ivorysql-patroni-hac NodePort 10.96.119.203 5432:32391/TCP,1521:32477/TCP 88s service/ivorysql-patroni-hac-config ClusterIP None 88s service/ivorysql-patroni-hac-pods ClusterIP None 88s service/ivorysql-patroni-hac-repl NodePort 10.100.122.0 5432:30111/TCP,1521:32654/TCP 88s NAME READY AGE statefulset.apps/ivorysql-patroni-hac 3/3 88s Connect to the PostgreSQL and Oracle ports of the cluster’s primary node using psql. [root@k8s-master helm_charts]# psql -U ivorysql -p 32391 -h 127.0.0.1 -d ivorysql Password for user ivorysql: ivorysql=# show ivorysql.compatible_mode; ivorysql.compatible_mode -------------------------- pg (1 row) ivorysql=# SELECT pg_is_in_recovery(); pg_is_in_recovery ------------------- f (1 row) ivorysql=# exit [root@k8s-master helm_charts]# psql -U ivorysql -p 32477 -h 127.0.0.1 -d ivorysql Password for user ivorysql: ivorysql=# show ivorysql.compatible_mode; ivorysql.compatible_mode -------------------------- oracle (1 row) ivorysql=# SELECT pg_is_in_recovery(); pg_is_in_recovery ------------------- f (1 row) ivorysql=# Use psql to connect to the PostgreSQL and Oracle ports of the cluster’s standby node. [root@k8s-master helm_charts]# psql -U ivorysql -p 30111 -h 127.0.0.1 -d ivorysql Password for user ivorysql: ivorysql=# show ivorysql.compatible_mode; ivorysql.compatible_mode -------------------------- pg (1 row) ivorysql=# SELECT pg_is_in_recovery(); pg_is_in_recovery ------------------- t (1 row) ivorysql=# exit [root@k8s-master helm_charts]# psql -U ivorysql -p 32654 -h 127.0.0.1 -d ivorysql Password for user ivorysql: ivorysql=# show ivorysql.compatible_mode; ivorysql.compatible_mode -------------------------- oracle (1 row) ivorysql=# SELECT pg_is_in_recovery(); pg_is_in_recovery ------------------- t (1 row) ivorysql=# Uninstall high-availability cluster [root@k8s-master helm_charts]# helm uninstall ivorysql-ha-cluster -n ivorysql Remove PVC [root@k8s-master helm_charts]# kubectl delete pvc ivyhac-config-ivorysql-patroni-hac-0 -n ivorysql [root@k8s-master helm_charts]# kubectl delete pvc ivyhac-config-ivorysql-patroni-hac-1 -n ivorysql [root@k8s-master helm_charts]# kubectl delete pvc ivyhac-config-ivorysql-patroni-hac-2 -n ivorysql [root@k8s-master helm_charts]# kubectl delete pvc pgdata-ivorysql-patroni-hac-0 -n ivorysql [root@k8s-master helm_charts]# kubectl delete pvc pgdata-ivorysql-patroni-hac-1 -n ivorysql [root@k8s-master helm_charts]# kubectl delete pvc pgdata-ivorysql-patroni-hac-2 -n ivorysql","title":"Deploying single-node containers and high-availability clusters on k8s","component":"ivorysql-doc","version":"master","name":"k8s_deployment","url":"/ivorysql-doc/master/containerization/k8s_deployment.html","titles":[{"text":"1. Single-node container","hash":"single-node-container","id":1},{"text":"2. High Availability Cluster","hash":"high-availability-cluster","id":2}]},"33":{"id":33,"text":"Fork ivory-operator repository and clone it to your host machine: YOUR_GITHUB_UN=\"\" git clone --depth 1 \"git@github.com:${YOUR_GITHUB_UN}/ivory-operator.git\" cd ivory-operator Run the following commands: kubectl apply -k examples/kustomize/install/namespace kubectl apply --server-side -k examples/kustomize/install/default Throughout this tutorial, we will be building on the example provided in the examples/kustomize/ivory. When referring to a nested object within a YAML manifest, we will be using the . format similar to kubectl explain. For example, if we want to refer to the deepest element in this yaml file: spec: hippos: appetite: huge we would say spec.hippos.appetite. kubectl explain is your friend. You can use kubectl explain ivorycluster to introspect the ivorycluster.ivory-operator.ivorysql.org custom resource definition. Creating an Ivory cluster is pretty simple. Using the example in the examples/kustomize/ivory directory, all we have to do is run: kubectl apply -k examples/kustomize/ivory and IVYO will create a simple Ivory cluster named hippo in the ivory-operator namespace. You can track the status of your Ivory cluster using kubectl describe on the ivoryclusters.ivory-operator.ivorysql.org custom resource: kubectl -n ivory-operator describe ivoryclusters.ivory-operator.ivorysql.org hippo and you can track the state of the Ivory Pod using the following command: kubectl -n ivory-operator get pods \\ --selector=ivory-operator.ivorysql.org/cluster=hippo,ivory-operator.ivorysql.org/instance IVYO created an Ivory cluster based on the information provided to it in the Kustomize manifests located in the examples/kustomize/ivory directory. Let’s better understand what happened by inspecting the examples/kustomize/ivory/ivory.yaml file: apiVersion: ivory-operator.ivorysql.org/v1beta1 kind: IvoryCluster metadata: name: hippo spec: image: {{< param imageIvorySQL >}} postgresVersion: {{< param postgresVersion >}} instances: - name: instance1 dataVolumeClaimSpec: accessModes: - \"ReadWriteOnce\" resources: requests: storage: 1Gi backups: pgbackrest: image: {{< param imagePGBackrest >}} repos: - name: repo1 volume: volumeClaimSpec: accessModes: - \"ReadWriteOnce\" resources: requests: storage: 1Gi When we ran the kubectl apply command earlier, what we did was create a ivorycluster custom resource in Kubernetes. IVYO detected that we added a new ivorycluster resource and started to create all the objects needed to run Ivory in Kubernetes! What else happened? IVYO read the value from metadata.name to provide the Ivory cluster with the name hippo. Additionally, IVYO knew which containers to use for Ivory and pgBackRest by looking at the values in spec.image and spec.backups.pgbackrest.image respectively. The value in spec.postgresVersion is important as it will help IVYO track which major version of Ivory you are using. IVYO knows how many Ivory instances to create through the spec.instances section of the manifest. While name is optional, we opted to give it the name instance1. We could have also created multiple replicas and instances during cluster initialization, but we will cover that more when we discuss how to scale and create a HA Ivory cluster. A very important piece of your ivorycluster custom resource is the dataVolumeClaimSpec section. This describes the storage that your Ivory instance will use. It is modeled after the Persistent Volume Claim. If you do not provide a spec.instances.dataVolumeClaimSpec.storageClassName, then the default storage class in your Kubernetes environment is used. As part of creating an Ivory cluster, we also specify information about our backup archive. IVYO uses pgBackRest, an open source backup and restore tool designed to handle terabyte-scale backups. As part of initializing our cluster, we can specify where we want our backups and archives (write-ahead logs or WAL) stored. We will talk about this portion of the ivorycluster spec in greater depth in the disaster recovery section of this tutorial, and also see how we can store backups in Amazon S3, Google GCS, and Azure Blob Storage. The most common occurrence of this is due to PVCs not being bound. Ensure that you have set up your storage options correctly in any volumeClaimSpec. You can always update your settings and reapply your changes with kubectl apply. Also ensure that you have enough persistent volumes available: your Kubernetes administrator may need to provision more. If you are on OpenShift, you may need to set spec.openshift to true. We’re up and running — now let’s connect to our Ivory cluster! It’s one thing to create an Ivory cluster; it’s another thing to connect to it. Let’s explore how IVYO makes it possible to connect to an Ivory cluster! IVYO creates a series of Kubernetes Services to provide stable endpoints for connecting to your Ivory databases. These endpoints make it easy to provide a consistent way for your application to maintain connectivity to your data. To inspect what services are available, you can run the following command: kubectl -n ivory-operator get svc --selector=ivory-operator.ivorysql.org/cluster=hippo will yield something similar to: NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hippo-ha ClusterIP 10.103.73.92 5432/TCP 3h14m hippo-ha-config ClusterIP None 3h14m hippo-pods ClusterIP None 3h14m hippo-primary ClusterIP None 5432/TCP 3h14m hippo-replicas ClusterIP 10.98.110.215 5432/TCP 3h14m You do not need to worry about most of these Services, as they are used to help manage the overall health of your Ivory cluster. For the purposes of connecting to your database, the Service of interest is called hippo-primary. Thanks to IVYO, you do not need to even worry about that, as that information is captured within a Secret! When your Ivory cluster is initialized, IVYO will bootstrap a database and Ivory user that your application can access. This information is stored in a Secret named with the pattern -pguser-. For our hippo cluster, this Secret is called hippo-pguser-hippo. This Secret contains the information you need to connect your application to your Ivory database: user: The name of the user account. password: The password for the user account. dbname: The name of the database that the user has access to by default. host: The name of the host of the database. This references the Service of the primary Ivory instance. port: The port that the database is listening on. uri: A PostgresSQL connection URI that provides all the information for logging into the Ivory database. jdbc-uri: A PostgresSQL JDBC connection URI that provides all the information for logging into the Ivory database via the JDBC driver. All connections are over TLS. IVYO provides its own certificate authority (CA) to allow you to securely connect your applications to your Ivory clusters. This allows you to use the verify-full \"SSL mode\" of Ivory, which provides eavesdropping protection and prevents MITM attacks. You can also choose to bring your own CA, which is described later in this tutorial in the Customize Cluster section. By default, IVYO deploys Services with the ClusterIP Service type. Based on how you want to expose your database, you may want to modify the Services to use a different Service type and NodePort value. You can modify the Services that IVYO manages from the following attributes: spec.service - this manages the Service for connecting to an Ivory primary. spec.userInterface.pgAdmin.service - this manages the Service for connecting to the pgAdmin management tool. For example, say you want to set the Ivory primary to use a NodePort service, a specific nodePort value, and set a specific annotation and label, you would add the following to your manifest: spec: service: metadata: annotations: my-annotation: value1 labels: my-label: value2 type: NodePort nodePort: 32000 For our hippo cluster, you would see the Service type and nodePort modification as well as the annotation and label. For example: kubectl -n ivory-operator get svc --selector=ivory-operator.ivorysql.org/cluster=hippo will yield something similar to: NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hippo-ha NodePort 10.105.57.191 5432:32000/TCP 48s hippo-ha-config ClusterIP None 48s hippo-pods ClusterIP None 48s hippo-primary ClusterIP None 5432/TCP 48s hippo-replicas ClusterIP 10.106.18.99 5432/TCP 48s and the top of the output from running kubectl -n ivory-operator describe svc hippo-ha will show our custom annotation and label have been added: Name: hippo-ha Namespace: ivory-operator Labels: my-label=value2 ivory-operator.ivorysql.org/cluster=hippo ivory-operator.ivorysql.org/patroni=hippo-ha Annotations: my-annotation: value1 Note that setting the nodePort value is not allowed when using the (default) ClusterIP type, and it must be in-range and not otherwise in use or the operation will fail. Additionally, be aware that any annotations or labels provided here will win in case of conflicts with any annotations or labels a user configures elsewhere. Finally, if you are exposing your Services externally and are relying on TLS verification, you will need to use the custom TLS features of IVYO). For this tutorial, we are going to connect Keycloak, an open source identity management application. Keycloak can be deployed on Kubernetes and is backed by an Ivory database. We provide an example of deploying Keycloak andan ivorycluster, the manifest below deploys it using our hippo cluster that is already running: kubectl apply --filename=- <}} postgresVersion: {{< param postgresVersion >}} instances: - name: instance1 replicas: 2 dataVolumeClaimSpec: accessModes: - \"ReadWriteOnce\" resources: requests: storage: 1Gi backups: pgbackrest: image: {{< param imagePGBackrest >}} repos: - name: repo1 volume: volumeClaimSpec: accessModes: - \"ReadWriteOnce\" resources: requests: storage: 1Gi Apply these updates to your Ivory cluster with the following command: kubectl apply -k examples/kustomize/ivory Within moment, you should see a new Ivory instance initializing! You can see all of your Ivory Pods for the hippo cluster by running the following command: kubectl -n ivory-operator get pods \\ --selector=ivory-operator.ivorysql.org/cluster=hippo,ivory-operator.ivorysql.org/instance-set Let’s test our high availability set up. An important part of building a resilient Ivory environment is testing its resiliency, so let’s run a few tests to see how IVYO performs under pressure! Let’s try removing the primary Service that our application is connected to. This test does not actually require a HA Ivory cluster, but it will demonstrate IVYO’s ability to react to environmental changes and heal things to ensure your applications can stay up. Recall in the connecting a Ivory cluster that we observed the Services that IVYO creates, e.g.: kubectl -n ivory-operator get svc \\ --selector=ivory-operator.ivorysql.org/cluster=hippo yields something similar to: NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hippo-ha ClusterIP 10.103.73.92 5432/TCP 4h8m hippo-ha-config ClusterIP None 4h8m hippo-pods ClusterIP None 4h8m hippo-primary ClusterIP None 5432/TCP 4h8m hippo-replicas ClusterIP 10.98.110.215 5432/TCP 4h8m We also mentioned that the application is connected to the hippo-primary Service. What happens if we were to delete this Service? kubectl -n ivory-operator delete svc hippo-primary This would seem like it could create a downtime scenario, but run the above selector again: kubectl -n ivory-operator get svc \\ --selector=ivory-operator.ivorysql.org/cluster=hippo You should see something similar to: NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hippo-ha ClusterIP 10.103.73.92 5432/TCP 4h8m hippo-ha-config ClusterIP None 4h8m hippo-pods ClusterIP None 4h8m hippo-primary ClusterIP None 5432/TCP 3s hippo-replicas ClusterIP 10.98.110.215 5432/TCP 4h8m Wow — IVYO detected that the primary Service was deleted and it recreated it! Based on how your application connects to Ivory, it may not have even noticed that this event took place! Now let’s try a more extreme downtime event. StatefulSets are a Kubernetes object that provide helpful mechanisms for managing Pods that interface with stateful applications, such as databases. They provide a stable mechanism for managing Pods to help ensure data is retrievable in a predictable way. What happens if we remove the StatefulSet that is pointed to the Pod that represents the Ivory primary? First, let’s determine which Pod is the primary. We’ll store it in an environmental variable for convenience. PRIMARY_POD=$(kubectl -n ivory-operator get pods \\ --selector=ivory-operator.ivorysql.org/role=master \\ -o jsonpath='{.items[*].metadata.labels.ivory-operator\\.ivorysql\\.org/instance}') Inspect the environmental variable to see which Pod is the current primary: echo $PRIMARY_POD should yield something similar to: hippo-instance1-zj5s We can use the value above to delete the StatefulSet associated with the current Ivory primary instance: kubectl delete sts -n ivory-operator \"${PRIMARY_POD}\" Let’s see what happens. Try getting all of the StatefulSets for the Ivory instances in the hippo cluster: kubectl get sts -n ivory-operator \\ --selector=ivory-operator.ivorysql.org/cluster=hippo,ivory-operator.ivorysql.org/instance You should see something similar to: NAME READY AGE hippo-instance1-6kbw 1/1 15m hippo-instance1-zj5s 0/1 1s IVYO recreated the StatefulSet that was deleted! After this \"catastrophic\" event, IVYO proceeds to heal the Ivory instance so it can rejoin the cluster. We cover the high availability process in greater depth later in the documentation. What about the other instance? We can see that it became the new primary though the following command: kubectl -n ivory-operator get pods \\ --selector=ivory-operator.ivorysql.org/role=master \\ -o jsonpath='{.items[*].metadata.labels.ivory-operator\\.ivorysql\\.org/instance}' which should yield something similar to: hippo-instance1-6kbw You can test that the failover successfully occurred in a few ways. You can connect to the example Keycloak application that we deployed in the previous section. Based on Keycloak’s connection retry logic, you may need to wait a moment for it to reconnect, but you will see it connected and resume being able to read and write data. You can also connect to the Ivory instance directly and execute the following command: SELECT NOT pg_catalog.pg_is_in_recovery() is_primary; If it returns true (or t), then the Ivory instance is a primary! What if IVYO was down during the downtime event? Failover would still occur: the Ivory HA system works independently of IVYO and can maintain its own uptime. IVYO will still need to assist with some of the healing aspects, but your application will still maintain read/write connectivity to your Ivory cluster! IvorySQL supports synchronous replication, which is a replication mode designed to limit the risk of transaction loss. Synchronous replication waits for a transaction to be written to at least one additional server before it considers the transaction to be committed. For more information on synchronous replication, please read about IVYO’s high availability architecture To add synchronous replication to your Ivory cluster, you can add the following to your spec: spec: patroni: dynamicConfiguration: synchronous_mode: true While PostgreSQL defaults synchronous_commit to on, you may also want to explicitly set it, in which case the above block becomes: spec: patroni: dynamicConfiguration: synchronous_mode: true postgresql: parameters: synchronous_commit: \"on\" Note that Patroni, which manages many aspects of the cluster’s availability, will favor availability over synchronicity. This means that if a synchronous replica goes down, Patroni will allow for asynchronous replication to continue as well as writes to the primary. However, if you want to disable all writing if there are no synchronous replicas available, you would have to enable synchronous_mode_strict, i.e.: spec: patroni: dynamicConfiguration: synchronous_mode: true synchronous_mode_strict: true Kubernetes affinity rules, which include Pod anti-affinity and Node affinity, can help you to define where you want your workloads to reside. Pod anti-affinity is important for high availability: when used correctly, it ensures that your Ivory instances are distributed amongst different Nodes. Node affinity can be used to assign instances to specific Nodes, e.g. to utilize hardware that’s optimized for databases. IVYO sets up several labels for Ivory cluster management that can be used for Pod anti-affinity or affinity rules in general. These include: ivory-operator.ivorysql.org/cluster: This is assigned to all managed Pods in a Ivory cluster. The value of this label is the name of your Ivory cluster, in this case: hippo. ivory-operator.ivorysql.org/instance-set: This is assigned to all Ivory instances within a group of spec.instances. In the example above, the value of this label is instance1. If you do not assign a label, the value is automatically set by IVYO using a NN format, e.g. 00. ivory-operator.ivorysql.org/instance: This is a unique label assigned to each Ivory instance containing the name of the Ivory instance. Let’s look at how we can set up affinity rules for our Ivory cluster to help improve high availability. Kubernetes has two types of Pod anti-affinity: Preferred: With preferred (preferredDuringSchedulingIgnoredDuringExecution) Pod anti-affinity, Kubernetes will make a best effort to schedule Pods matching the anti-affinity rules to different Nodes. However, if it is not possible to do so, then Kubernetes may schedule one or more Pods to the same Node. Required: With required (requiredDuringSchedulingIgnoredDuringExecution) Pod anti-affinity, Kubernetes mandates that each Pod matching the anti-affinity rules must be scheduled to different Nodes. However, a Pod may not be scheduled if Kubernetes cannot find a Node that does not contain a Pod matching the rules. There is a trade-off with these two types of pod anti-affinity: while \"required\" anti-affinity will ensure that all the matching Pods are scheduled on different Nodes, if Kubernetes cannot find an available Node, your Ivory instance may not be scheduled. Likewise, while \"preferred\" anti-affinity will make a best effort to scheduled your Pods on different Nodes, Kubernetes may compromise and schedule more than one Ivory instance of the same cluster on the same Node. By understanding these trade-offs, the makeup of your Kubernetes cluster, and your requirements, you can choose the method that makes the most sense for your Ivory deployment. We’ll show examples of both methods below! First, let’s deploy our Ivory cluster with preferred Pod anti-affinity. Note that if you have a single-node Kubernetes cluster, you will not see your Ivory instances deployed to different nodes. However, your Ivory instances will be deployed. We can set up our HA Ivory cluster with preferred Pod anti-affinity like so: apiVersion: ivory-operator.ivorysql.org/v1beta1 kind: IvoryCluster metadata: name: hippo spec: image: {{< param imageIvorySQL >}} postgresVersion: {{< param postgresVersion >}} instances: - name: instance1 replicas: 2 dataVolumeClaimSpec: accessModes: - \"ReadWriteOnce\" resources: requests: storage: 1Gi affinity: podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 1 podAffinityTerm: topologyKey: kubernetes.io/hostname labelSelector: matchLabels: ivory-operator.ivorysql.org/cluster: hippo ivory-operator.ivorysql.org/instance-set: instance1 backups: pgbackrest: image: {{< param imagePGBackrest >}} repos: - name: repo1 volume: volumeClaimSpec: accessModes: - \"ReadWriteOnce\" resources: requests: storage: 1Gi Apply those changes in your Kubernetes cluster. Let’s take a closer look at this section: affinity: podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 1 podAffinityTerm: topologyKey: kubernetes.io/hostname labelSelector: matchLabels: ivory-operator.ivorysql.org/cluster: hippo ivory-operator.ivorysql.org/instance-set: instance1 spec.instances.affinity.podAntiAffinity follows the standard Kubernetes Pod anti-affinity spec. The values for the matchLabels are derived from what we described in the previous section: ivory-operator.ivorysql.org/cluster is set to our cluster name of hippo, and ivory-operator.ivorysql.org/instance-set is set to the instance set name of instance1. We choose a topologyKey of kubernetes.io/hostname, which is standard in Kubernetes clusters. Preferred Pod anti-affinity will perform a best effort to schedule your Ivory Pods to different nodes. Let’s see how you can require your Ivory Pods to be scheduled to different nodes. Required Pod anti-affinity forces Kubernetes to scheduled your Ivory Pods to different Nodes. Note that if Kubernetes is unable to schedule all Pods to different Nodes, some of your Ivory instances may become unavailable. Using the previous example, let’s indicate to Kubernetes that we want to use required Pod anti-affinity for our Ivory clusters: apiVersion: ivory-operator.ivorysql.org/v1beta1 kind: IvoryCluster metadata: name: hippo spec: image: {{< param imageIvorySQL >}} postgresVersion: {{< param postgresVersion >}} instances: - name: instance1 replicas: 2 dataVolumeClaimSpec: accessModes: - \"ReadWriteOnce\" resources: requests: storage: 1Gi affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - topologyKey: kubernetes.io/hostname labelSelector: matchLabels: ivory-operator.ivorysql.org/cluster: hippo ivory-operator.ivorysql.org/instance-set: instance1 backups: pgbackrest: image: {{< param imagePGBackrest >}} repos: - name: repo1 volume: volumeClaimSpec: accessModes: - \"ReadWriteOnce\" resources: requests: storage: 1Gi Apply those changes in your Kubernetes cluster. If you are in a single Node Kubernetes clusters, you will notice that not all of your Ivory instance Pods will be scheduled. This is due to the requiredDuringSchedulingIgnoredDuringExecution preference. However, if you have enough Nodes available, you will see the Ivory instance Pods scheduled to different Nodes: kubectl get pods -n ivory-operator -o wide \\ --selector=ivory-operator.ivorysql.org/cluster=hippo,ivory-operator.ivorysql.org/instance Node affinity can be used to assign your Ivory instances to Nodes with specific hardware or to guarantee a Ivory instance resides in a specific zone. Node affinity can be set within the spec.instances.affinity.nodeAffinity attribute, following the standard Kubernetes node affinity spec. Let’s see an example with required Node affinity. Let’s say we have a set of Nodes that are reserved for database usage that have a label workload-role=db. We can create a Ivory cluster with a required Node affinity rule to scheduled all of the databases to those Nodes using the following configuration: apiVersion: ivory-operator.ivorysql.org/v1beta1 kind: IvoryCluster metadata: name: hippo spec: image: {{< param imageIvorySQL >}} postgresVersion: {{< param postgresVersion >}} instances: - name: instance1 replicas: 2 dataVolumeClaimSpec: accessModes: - \"ReadWriteOnce\" resources: requests: storage: 1Gi affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: workload-role operator: In values: - db backups: pgbackrest: image: {{< param imagePGBackrest >}} repos: - name: repo1 volume: volumeClaimSpec: accessModes: - \"ReadWriteOnce\" resources: requests: storage: 1Gi In addition to affinity and anti-affinity settings, Kubernetes Pod Topology Spread Constraints can also help you to define where you want your workloads to reside. However, while PodAffinity allows any number of Pods to be added to a qualifying topology domain, and PodAntiAffinity allows only one Pod to be scheduled into a single topology domain, topology spread constraints allow you to distribute Pods across different topology domains with a finer level of control. The spread constraint API fields can be configured for instance, PgBouncer and pgBackRest repo host pods. The basic configuration is as follows: topologySpreadConstraints: - maxSkew: topologyKey: whenUnsatisfiable: labelSelector: