+
+# The PHP Interpreter
+
+PHP is a popular general-purpose scripting language that is especially suited to
+web development. Fast, flexible and pragmatic, PHP powers everything from your
+blog to the most popular websites in the world. PHP is distributed under the
+[PHP License v3.01](LICENSE).
+
+[](https://travis-ci.com/php/php-src)
+[](https://ci.appveyor.com/project/php/php-src)
+[](https://dev.azure.com/phpazuredevops/php/_build/latest?definitionId=1&branchName=master)
+[](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:php)
+
+## Documentation
+
+The PHP manual is available at [php.net/docs](https://php.net/docs).
+
+## Installation
+
+### Prebuilt packages and binaries
+
+Prebuilt packages and binaries can be used to get up and running fast with PHP.
+
+For Windows, the PHP binaries can be obtained from
+[windows.php.net](https://windows.php.net). After extracting the archive the
+`*.exe` files are ready to use.
+
+For other systems, see the [installation chapter](https://php.net/install).
+
+### Building PHP source code
+
+*For Windows, see [Build your own PHP on Windows](https://wiki.php.net/internals/windows/stepbystepbuild_sdk_2).*
+
+For a minimal PHP build from Git, you will need autoconf, bison, and re2c. For
+a default build, you will additionally need libxml2 and libsqlite3.
+
+On Ubuntu, you can install these using:
+
+ sudo apt install -y pkg-config build-essential autoconf bison re2c \
+ libxml2-dev libsqlite3-dev
+
+On Fedora, you can install these using:
+
+ sudo dnf install re2c bison autoconf make libtool ccache libxml2-devel sqlite-devel
+
+Generate configure:
+
+ ./buildconf
+
+Configure your build. `--enable-debug` is recommended for development, see
+`./configure --help` for a full list of options.
+
+ # For development
+ ./configure --enable-debug
+ # For production
+ ./configure
+
+Build PHP. To speed up the build, specify the maximum number of jobs using `-j`:
+
+ make -j4
+
+The number of jobs should usually match the number of available cores, which
+can be determined using `nproc`.
+
+## Testing PHP source code
+
+PHP ships with an extensive test suite, the command `make test` is used after
+successful compilation of the sources to run this test suite.
+
+It is possible to run tests using multiple cores by setting `-jN` in
+`TEST_PHP_ARGS`:
+
+ make TEST_PHP_ARGS=-j4 test
+
+Shall run `make test` with a maximum of 4 concurrent jobs: Generally the maximum
+number of jobs should not exceed the number of cores available.
+
+The [qa.php.net](https://qa.php.net) site provides more detailed info about
+testing and quality assurance.
+
+## Installing PHP built from source
+
+After a successful build (and test), PHP may be installed with:
+
+ make install
+
+Depending on your permissions and prefix, `make install` may need super user
+permissions.
+
+## PHP extensions
+
+Extensions provide additional functionality on top of PHP. PHP consists of many
+essential bundled extensions. Additional extensions can be found in the PHP
+Extension Community Library - [PECL](https://pecl.php.net).
+
+## Contributing
+
+The PHP source code is located in the Git repository at
+[github.com/php/php-src](https://github.com/php/php-src). Contributions are most
+welcome by forking the repository and sending a pull request.
+
+Discussions are done on GitHub, but depending on the topic can also be relayed
+to the official PHP developer mailing list internals@lists.php.net.
+
+New features require an RFC and must be accepted by the developers. See
+[Request for comments - RFC](https://wiki.php.net/rfc) and
+[Voting on PHP features](https://wiki.php.net/rfc/voting) for more information
+on the process.
+
+Bug fixes don't require an RFC. If the bug has a GitHub issue, reference it in
+the commit message using `GH-NNNNNN`. Use `#NNNNNN` for tickets in the old
+[bugs.php.net](https://bugs.php.net) bug tracker.
+
+ Fix GH-7815: php_uname doesn't recognise latest Windows versions
+ Fix #55371: get_magic_quotes_gpc() throws deprecation warning
+
+See [Git workflow](https://wiki.php.net/vcs/gitworkflow) for details on how pull
+requests are merged.
+
+### Guidelines for contributors
+
+See further documents in the repository for more information on how to
+contribute:
+
+- [Contributing to PHP](/CONTRIBUTING.md)
+- [PHP coding standards](/CODING_STANDARDS.md)
+- [Mailinglist rules](/docs/mailinglist-rules.md)
+- [PHP release process](/docs/release-process.md)
+
+## Credits
+
+For the list of people who've put work into PHP, please see the
+[PHP credits page](https://php.net/credits.php).
diff --git a/php/deplister.exe b/php/deplister.exe
index b2f634183..c1ca20310 100644
Binary files a/php/deplister.exe and b/php/deplister.exe differ
diff --git a/php/dev/php7ts.lib b/php/dev/php7ts.lib
deleted file mode 100644
index 196b2cdf7..000000000
Binary files a/php/dev/php7ts.lib and /dev/null differ
diff --git a/php/dev/php8ts.lib b/php/dev/php8ts.lib
new file mode 100644
index 000000000..9b9fe6a51
Binary files /dev/null and b/php/dev/php8ts.lib differ
diff --git a/php/ext/php_bz2.dll b/php/ext/php_bz2.dll
index 152de02a4..ca011a959 100644
Binary files a/php/ext/php_bz2.dll and b/php/ext/php_bz2.dll differ
diff --git a/php/ext/php_com_dotnet.dll b/php/ext/php_com_dotnet.dll
index 59994eb27..2af1048dd 100644
Binary files a/php/ext/php_com_dotnet.dll and b/php/ext/php_com_dotnet.dll differ
diff --git a/php/ext/php_curl.dll b/php/ext/php_curl.dll
index 8b9dbd178..4d680ef39 100644
Binary files a/php/ext/php_curl.dll and b/php/ext/php_curl.dll differ
diff --git a/php/ext/php_dba.dll b/php/ext/php_dba.dll
index 886f1a599..e0e248b42 100644
Binary files a/php/ext/php_dba.dll and b/php/ext/php_dba.dll differ
diff --git a/php/ext/php_enchant.dll b/php/ext/php_enchant.dll
index 9aa56e63e..426c7d3d2 100644
Binary files a/php/ext/php_enchant.dll and b/php/ext/php_enchant.dll differ
diff --git a/php/ext/php_exif.dll b/php/ext/php_exif.dll
index 999e857ce..e8f5fca07 100644
Binary files a/php/ext/php_exif.dll and b/php/ext/php_exif.dll differ
diff --git a/php/ext/php_ffi.dll b/php/ext/php_ffi.dll
new file mode 100644
index 000000000..c343dbcc9
Binary files /dev/null and b/php/ext/php_ffi.dll differ
diff --git a/php/ext/php_fileinfo.dll b/php/ext/php_fileinfo.dll
index b3fc76317..ddb923de1 100644
Binary files a/php/ext/php_fileinfo.dll and b/php/ext/php_fileinfo.dll differ
diff --git a/php/ext/php_ftp.dll b/php/ext/php_ftp.dll
index 106a1e3a8..a5064afbd 100644
Binary files a/php/ext/php_ftp.dll and b/php/ext/php_ftp.dll differ
diff --git a/php/ext/php_gd.dll b/php/ext/php_gd.dll
new file mode 100644
index 000000000..a5c64ef92
Binary files /dev/null and b/php/ext/php_gd.dll differ
diff --git a/php/ext/php_gd2.dll b/php/ext/php_gd2.dll
deleted file mode 100644
index 1acab9611..000000000
Binary files a/php/ext/php_gd2.dll and /dev/null differ
diff --git a/php/ext/php_gettext.dll b/php/ext/php_gettext.dll
index dffc6a523..69477e653 100644
Binary files a/php/ext/php_gettext.dll and b/php/ext/php_gettext.dll differ
diff --git a/php/ext/php_gmp.dll b/php/ext/php_gmp.dll
index 1627e3e31..897fd2584 100644
Binary files a/php/ext/php_gmp.dll and b/php/ext/php_gmp.dll differ
diff --git a/php/ext/php_imap.dll b/php/ext/php_imap.dll
index a9a80693d..1a08c3f1b 100644
Binary files a/php/ext/php_imap.dll and b/php/ext/php_imap.dll differ
diff --git a/php/ext/php_interbase.dll b/php/ext/php_interbase.dll
deleted file mode 100644
index 736262cb1..000000000
Binary files a/php/ext/php_interbase.dll and /dev/null differ
diff --git a/php/ext/php_intl.dll b/php/ext/php_intl.dll
index bf5cc45a5..c403cbb7b 100644
Binary files a/php/ext/php_intl.dll and b/php/ext/php_intl.dll differ
diff --git a/php/ext/php_ldap.dll b/php/ext/php_ldap.dll
index 636c403b5..4d25dc5ad 100644
Binary files a/php/ext/php_ldap.dll and b/php/ext/php_ldap.dll differ
diff --git a/php/ext/php_mbstring.dll b/php/ext/php_mbstring.dll
index 181703695..9b84a6fa8 100644
Binary files a/php/ext/php_mbstring.dll and b/php/ext/php_mbstring.dll differ
diff --git a/php/ext/php_mysqli.dll b/php/ext/php_mysqli.dll
index 5fcffd61b..748439e98 100644
Binary files a/php/ext/php_mysqli.dll and b/php/ext/php_mysqli.dll differ
diff --git a/php/ext/php_oci8_12c.dll b/php/ext/php_oci8_12c.dll
deleted file mode 100644
index a05cd481a..000000000
Binary files a/php/ext/php_oci8_12c.dll and /dev/null differ
diff --git a/php/ext/php_oci8_19.dll b/php/ext/php_oci8_19.dll
new file mode 100644
index 000000000..0e0bf687b
Binary files /dev/null and b/php/ext/php_oci8_19.dll differ
diff --git a/php/ext/php_odbc.dll b/php/ext/php_odbc.dll
index 2d162af55..2ea041dd5 100644
Binary files a/php/ext/php_odbc.dll and b/php/ext/php_odbc.dll differ
diff --git a/php/ext/php_opcache.dll b/php/ext/php_opcache.dll
index da4bef5ad..3df7e8892 100644
Binary files a/php/ext/php_opcache.dll and b/php/ext/php_opcache.dll differ
diff --git a/php/ext/php_openssl.dll b/php/ext/php_openssl.dll
index f0368946c..3c5bc8681 100644
Binary files a/php/ext/php_openssl.dll and b/php/ext/php_openssl.dll differ
diff --git a/php/ext/php_pdo_firebird.dll b/php/ext/php_pdo_firebird.dll
index e0f0f6ef5..8e0ebe529 100644
Binary files a/php/ext/php_pdo_firebird.dll and b/php/ext/php_pdo_firebird.dll differ
diff --git a/php/ext/php_pdo_mysql.dll b/php/ext/php_pdo_mysql.dll
index 17e2bac74..901969fbd 100644
Binary files a/php/ext/php_pdo_mysql.dll and b/php/ext/php_pdo_mysql.dll differ
diff --git a/php/ext/php_pdo_oci.dll b/php/ext/php_pdo_oci.dll
index a3f8f2524..0bc2ba29d 100644
Binary files a/php/ext/php_pdo_oci.dll and b/php/ext/php_pdo_oci.dll differ
diff --git a/php/ext/php_pdo_odbc.dll b/php/ext/php_pdo_odbc.dll
index c3fd4048a..b5a1fbc46 100644
Binary files a/php/ext/php_pdo_odbc.dll and b/php/ext/php_pdo_odbc.dll differ
diff --git a/php/ext/php_pdo_pgsql.dll b/php/ext/php_pdo_pgsql.dll
index 5460317a7..3b094f3cf 100644
Binary files a/php/ext/php_pdo_pgsql.dll and b/php/ext/php_pdo_pgsql.dll differ
diff --git a/php/ext/php_pdo_sqlite.dll b/php/ext/php_pdo_sqlite.dll
index e573431c4..362ddf2a1 100644
Binary files a/php/ext/php_pdo_sqlite.dll and b/php/ext/php_pdo_sqlite.dll differ
diff --git a/php/ext/php_pgsql.dll b/php/ext/php_pgsql.dll
index e6bd3b508..61572875e 100644
Binary files a/php/ext/php_pgsql.dll and b/php/ext/php_pgsql.dll differ
diff --git a/php/ext/php_phpdbg_webhelper.dll b/php/ext/php_phpdbg_webhelper.dll
deleted file mode 100644
index c10da8273..000000000
Binary files a/php/ext/php_phpdbg_webhelper.dll and /dev/null differ
diff --git a/php/ext/php_shmop.dll b/php/ext/php_shmop.dll
index 7352148ea..f9b9eaa3a 100644
Binary files a/php/ext/php_shmop.dll and b/php/ext/php_shmop.dll differ
diff --git a/php/ext/php_snmp.dll b/php/ext/php_snmp.dll
index 23eaf0f94..4da67f21e 100644
Binary files a/php/ext/php_snmp.dll and b/php/ext/php_snmp.dll differ
diff --git a/php/ext/php_soap.dll b/php/ext/php_soap.dll
index dbe799876..25e230175 100644
Binary files a/php/ext/php_soap.dll and b/php/ext/php_soap.dll differ
diff --git a/php/ext/php_sockets.dll b/php/ext/php_sockets.dll
index 5ecb88ff2..4b9e99bbb 100644
Binary files a/php/ext/php_sockets.dll and b/php/ext/php_sockets.dll differ
diff --git a/php/ext/php_sodium.dll b/php/ext/php_sodium.dll
index b5c6f484b..9348047b9 100644
Binary files a/php/ext/php_sodium.dll and b/php/ext/php_sodium.dll differ
diff --git a/php/ext/php_sqlite3.dll b/php/ext/php_sqlite3.dll
index aa7304e1e..272432a10 100644
Binary files a/php/ext/php_sqlite3.dll and b/php/ext/php_sqlite3.dll differ
diff --git a/php/ext/php_sysvshm.dll b/php/ext/php_sysvshm.dll
index 316fd32be..fb6bb41be 100644
Binary files a/php/ext/php_sysvshm.dll and b/php/ext/php_sysvshm.dll differ
diff --git a/php/ext/php_tidy.dll b/php/ext/php_tidy.dll
index 465485c7d..ea8ae3085 100644
Binary files a/php/ext/php_tidy.dll and b/php/ext/php_tidy.dll differ
diff --git a/php/ext/php_xdebug.dll b/php/ext/php_xdebug.dll
deleted file mode 100644
index 63ec4f716..000000000
Binary files a/php/ext/php_xdebug.dll and /dev/null differ
diff --git a/php/ext/php_xmlrpc.dll b/php/ext/php_xmlrpc.dll
deleted file mode 100644
index 1e014dabc..000000000
Binary files a/php/ext/php_xmlrpc.dll and /dev/null differ
diff --git a/php/ext/php_xsl.dll b/php/ext/php_xsl.dll
index a865e4212..c6af75420 100644
Binary files a/php/ext/php_xsl.dll and b/php/ext/php_xsl.dll differ
diff --git a/php/ext/php_zend_test.dll b/php/ext/php_zend_test.dll
index a3c280dc5..6e47b42fa 100644
Binary files a/php/ext/php_zend_test.dll and b/php/ext/php_zend_test.dll differ
diff --git a/php/extras/browscap.ini b/php/extras/browscap.ini
new file mode 100644
index 000000000..f650c5f85
--- /dev/null
+++ b/php/extras/browscap.ini
@@ -0,0 +1,17350 @@
+;;; Provided courtesy of http://browsers.garykeith.com
+;;; Created on Friday, December 11, 2009 at 3:27 PM GMT
+
+[GJK_Browscap_Version]
+Version=4523
+Released=Fri, 11 Dec 2009 15:27:01 -0000
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DefaultProperties
+
+[DefaultProperties]
+Browser="DefaultProperties"
+Version=0
+MajorVer=0
+MinorVer=0
+Platform=unknown
+Alpha=false
+Beta=false
+Win16=false
+Win32=false
+Win64=false
+Frames=false
+IFrames=false
+Tables=false
+Cookies=false
+BackgroundSounds=false
+CDF=false
+VBScript=false
+JavaApplets=false
+JavaScript=false
+ActiveXControls=false
+isBanned=false
+isMobileDevice=false
+isSyndicationReader=false
+Crawler=false
+CssVersion=0
+supportsCSS=false
+AOL=false
+aolVersion=0
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Ask
+
+[Ask]
+Parent=DefaultProperties
+Browser="Ask"
+Frames=true
+Tables=true
+Crawler=true
+
+[Mozilla/?.0 (compatible; Ask Jeeves/Teoma*)]
+Parent=Ask
+Browser="Teoma"
+
+[Mozilla/2.0 (compatible; Ask Jeeves)]
+Parent=Ask
+Browser="AskJeeves"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Baidu
+
+[Baidu]
+Parent=DefaultProperties
+Browser="Baidu"
+Frames=true
+Tables=true
+Crawler=true
+
+[AC-BaiduBot/1.*]
+Parent=Baidu
+Browser="AC-BaiduBot"
+
+[BaiduImageSpider*]
+Parent=Baidu
+Browser="BaiduImageSpider"
+
+[Baiduspider*]
+Parent=Baidu
+Browser="BaiDu"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Google
+
+[Google]
+Parent=DefaultProperties
+Browser="Google"
+Frames=true
+IFrames=true
+Tables=true
+JavaScript=true
+Crawler=true
+
+[* (compatible; Googlebot-Mobile/2.1; *http://www.google.com/bot.html)]
+Parent=Google
+Browser="Googlebot-Mobile"
+Frames=false
+IFrames=false
+Tables=false
+
+[*Google Wireless Transcoder*]
+Parent=Google
+Browser="Google Wireless Transcoder"
+
+[AdsBot-Google (?http://www.google.com/adsbot.html)]
+Parent=Google
+Browser="AdsBot-Google"
+
+[Feedfetcher-Google-iGoogleGadgets;*]
+Parent=Google
+Browser="iGoogleGadgets"
+isBanned=true
+isSyndicationReader=true
+
+[Feedfetcher-Google;*]
+Parent=Google
+Browser="Feedfetcher-Google"
+isBanned=true
+isSyndicationReader=true
+
+[Google OpenSocial agent (http://www.google.com/feedfetcher.html)]
+Parent=Google
+Browser="Google OpenSocial"
+
+[Google-Site-Verification/1.0]
+Parent=Google
+Browser="Google-Site-Verification"
+
+[Google-Sitemaps/*]
+Parent=Google
+Browser="Google-Sitemaps"
+
+[Googlebot-Image/*]
+Parent=Google
+Browser="Googlebot-Image"
+CDF=true
+
+[Googlebot-News/*]
+Parent=Google
+Browser="Googlebot-News"
+
+[googlebot-urlconsole]
+Parent=Google
+Browser="googlebot-urlconsole"
+
+[Googlebot-Video/1.0]
+Parent=Google
+Browser="Google-Video"
+
+[Googlebot/2.1 (?http://www.google.com/bot.html)]
+Parent=Google
+Browser="Googlebot"
+
+[Googlebot/2.1 (?http://www.googlebot.com/bot.html)]
+Parent=Google
+Browser="Googlebot"
+
+[Googlebot/Test*]
+Parent=Google
+Browser="Googlebot/Test"
+
+[GoogleFriendConnect/1.*]
+Parent=Google
+Browser="Google Friend Connect"
+
+[gsa-crawler*]
+Parent=Google
+Browser="Google Search Appliance"
+isBanned=true
+
+[Mediapartners-Google*]
+Parent=Google
+Browser="Mediapartners-Google"
+
+[Mozilla/?.0 (compatible; Google Desktop*)]
+Parent=Google
+Browser="Google Desktop"
+
+[Mozilla/5.0 (compatible; Google Keyword Tool;*)]
+Parent=Google
+Browser="Google Keyword Tool"
+
+[Mozilla/5.0 (compatible; Googlebot/2.1; ?http://www.google.com/bot.html)]
+Parent=Google
+Browser="Google Webmaster Tools"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Inktomi
+
+[Inktomi]
+Parent=DefaultProperties
+Browser="Inktomi"
+Frames=true
+Tables=true
+Crawler=true
+
+[* (compatible;YahooSeeker/M1A1-R2D2; *)]
+Parent=Inktomi
+Browser="YahooSeeker-Mobile"
+Frames=false
+Tables=false
+
+[Mozilla/4.0]
+Parent=Inktomi
+
+[Mozilla/4.0 (compatible; MSIE 5.0; Windows NT)]
+Parent=Inktomi
+Win32=true
+
+[Mozilla/4.0 (compatible; Yahoo Japan; for robot study; kasugiya)]
+Parent=Inktomi
+Browser="Yahoo! RobotStudy"
+isBanned=true
+
+[Mozilla/5.0 (compatible; BMC/1.0 (Y!J-AGENT))]
+Parent=Inktomi
+Browser="Y!J-AGENT/BMC"
+
+[Mozilla/5.0 (compatible; BMF/1.0 (Y!J-AGENT))]
+Parent=Inktomi
+Browser="Y!J-AGENT/BMF"
+
+[Mozilla/5.0 (compatible; BMI/1.0 (Y!J-AGENT; 1.0))]
+Parent=Inktomi
+Browser="Y!J-AGENT/BMI"
+
+[Mozilla/5.0 (compatible; Yahoo! DE Slurp; http://help.yahoo.com/help/us/ysearch/slurp)]
+Parent=Inktomi
+Browser="Yahoo! Directory Engine"
+
+[Mozilla/5.0 (compatible; Yahoo! SearchMonkey 1.0; *)]
+Parent=Inktomi
+Browser="Yahoo! Search Monkey"
+
+[Mozilla/5.0 (compatible; Yahoo! Slurp China; http://misc.yahoo.com.cn/help.html)]
+Parent=Inktomi
+Browser="Yahoo! Slurp China"
+
+[Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)]
+Parent=Inktomi
+Browser="Yahoo! Slurp"
+Version=3.0
+MajorVer=3
+MinorVer=0
+
+[Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)]
+Parent=Inktomi
+Browser="Yahoo! Slurp"
+
+[Mozilla/5.0 (compatible; Yahoo! Verifier/1.1)]
+Parent=Inktomi
+Browser="Yahoo! Verifier"
+Version=1.1
+MajorVer=1
+MinorVer=1
+
+[Mozilla/5.0 (Slurp/cat; slurp@inktomi.com; http://www.inktomi.com/slurp.html)]
+Parent=Inktomi
+Browser="Slurp/cat"
+
+[Mozilla/5.0 (Slurp/si; slurp@inktomi.com; http://www.inktomi.com/slurp.html)]
+Parent=Inktomi
+
+[Mozilla/5.0 (Yahoo-MMCrawler/4.0; mailto:vertical-crawl-support@yahoo-inc.com)]
+Parent=Inktomi
+Browser="Yahoo-MMCrawler"
+Version=4.0
+MajorVer=4
+MinorVer=0
+
+[Scooter/*]
+Parent=Inktomi
+Browser="Scooter"
+
+[Scooter/3.3Y!CrawlX]
+Parent=Inktomi
+Browser="Scooter/3.3Y!CrawlX"
+Version=3.3
+MajorVer=3
+MinorVer=3
+
+[slurp]
+Parent=Inktomi
+Browser="slurp"
+
+[Y!J SearchMonkey/1.0*]
+Parent=Inktomi
+Browser="YahooFeedSeeker"
+isSyndicationReader=true
+
+[Y!J-BRE*]
+Parent=Inktomi
+Browser="YahooFeedSeeker"
+isSyndicationReader=true
+
+[Y!J-BRG/GSC*]
+Parent=Inktomi
+Browser="YahooFeedSeeker"
+isSyndicationReader=true
+
+[Y!J-BRI*]
+Parent=Inktomi
+Browser="YahooFeedSeeker"
+isSyndicationReader=true
+
+[Y!J-BRO/YFSJ*]
+Parent=Inktomi
+Browser="YahooFeedSeeker"
+isSyndicationReader=true
+
+[Y!J-BRP/YFSBJ*]
+Parent=Inktomi
+Browser="YahooFeedSeeker"
+isSyndicationReader=true
+
+[Y!J-BRQ/DLCK*]
+Parent=Inktomi
+Browser="YahooFeedSeeker"
+isSyndicationReader=true
+
+[Y!J-BSC/1.0*]
+Parent=Inktomi
+Browser="YahooFeedSeeker"
+Version=1.0
+MajorVer=1
+MinorVer=0
+isSyndicationReader=true
+
+[Y!J-DSC*]
+Parent=Inktomi
+Browser="YahooFeedSeeker"
+isSyndicationReader=true
+
+[Y!J-NSC/1.0*]
+Parent=Inktomi
+Browser="YahooFeedSeeker"
+isSyndicationReader=true
+
+[Y!J-PSC*]
+Parent=Inktomi
+Browser="YahooFeedSeeker"
+isSyndicationReader=true
+
+[Y!J-SRD/1.0]
+Parent=Inktomi
+Browser="YahooFeedSeeker"
+Version=1.0
+MajorVer=1
+MinorVer=0
+
+[Y!J-VSC/ViSe*]
+Parent=Inktomi
+Browser="YahooFeedSeeker"
+isSyndicationReader=true
+
+[Yahoo Mindset]
+Parent=Inktomi
+Browser="Yahoo Mindset"
+
+[Yahoo Pipes*]
+Parent=Inktomi
+Browser="Yahoo Pipes"
+
+[Yahoo! Mindset]
+Parent=Inktomi
+Browser="Yahoo! Mindset"
+
+[Yahoo! Slurp/Site Explorer]
+Parent=Inktomi
+Browser="Yahoo! Site Explorer"
+
+[Yahoo-Blogs/*]
+Parent=Inktomi
+Browser="Yahoo-Blogs"
+
+[Yahoo-MMAudVid*]
+Parent=Inktomi
+Browser="Yahoo-MMAudVid"
+
+[Yahoo-MMCrawler*]
+Parent=Inktomi
+Browser="Yahoo-MMCrawler"
+isBanned=true
+
+[YahooFeedSeeker*]
+Parent=Inktomi
+Browser="YahooFeedSeeker"
+isSyndicationReader=true
+Crawler=false
+
+[YahooSeeker/*]
+Parent=Inktomi
+Browser="YahooSeeker"
+isMobileDevice=true
+
+[YahooSeeker/CafeKelsa (compatible; Konqueror/3.2; FreeBSD*) (KHTML, like Gecko)]
+Parent=Inktomi
+Browser="YahooSeeker/CafeKelsa"
+
+[YahooSeeker/CafeKelsa-dev (compatible; Konqueror/3.2; FreeBSD*) (KHTML, like Gecko)]
+Parent=Inktomi
+
+[YahooVideoSearch*]
+Parent=Inktomi
+Browser="YahooVideoSearch"
+
+[YahooYSMcm*]
+Parent=Inktomi
+Browser="YahooYSMcm"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; MSN
+
+[MSN]
+Parent=DefaultProperties
+Browser="MSN"
+Frames=true
+Tables=true
+Crawler=true
+
+[adidxbot/1.1 (?http://search.msn.com/msnbot.htm)]
+Parent=MSN
+Browser="adidxbot"
+
+[librabot/1.0 (*)]
+Parent=MSN
+Browser="librabot"
+
+[llssbot/1.0]
+Parent=MSN
+Browser="llssbot"
+Version=1.0
+MajorVer=1
+MinorVer=0
+
+[Mozilla/5.0 (Danger hiptop 3.*; U; rv:1.7.*) Gecko/*]
+Parent=MSN
+Browser="Danger"
+
+[MSMOBOT/1.1*]
+Parent=MSN
+Browser="msnbot-mobile"
+Version=1.1
+MajorVer=1
+MinorVer=1
+
+[MSNBot-Academic/1.0*]
+Parent=MSN
+Browser="MSNBot-Academic"
+Version=1.0
+MajorVer=1
+MinorVer=0
+
+[msnbot-media/1.0*]
+Parent=MSN
+Browser="msnbot-media"
+Version=1.0
+MajorVer=1
+MinorVer=0
+
+[msnbot-media/1.1*]
+Parent=MSN
+Browser="msnbot-media"
+Version=1.1
+MajorVer=1
+MinorVer=1
+
+[MSNBot-News/1.0*]
+Parent=MSN
+Browser="MSNBot-News"
+Version=1.0
+MajorVer=1
+MinorVer=0
+
+[MSNBot-NewsBlogs/1.0*]
+Parent=MSN
+Browser="MSNBot-NewsBlogs"
+Version=1
+MajorVer=1
+MinorVer=0
+
+[msnbot-products]
+Parent=MSN
+Browser="msnbot-products"
+
+[msnbot-webmaster/1.0 (*http://search.msn.com/msnbot.htm)]
+Parent=MSN
+Browser="msnbot-webmaster tools"
+
+[msnbot/1.0*]
+Parent=MSN
+Browser="msnbot"
+Version=1.0
+MajorVer=1
+MinorVer=0
+
+[msnbot/1.1*]
+Parent=MSN
+Browser="msnbot"
+Version=1.1
+MajorVer=1
+MinorVer=1
+
+[msnbot/2.0b*]
+Parent=MSN
+Version=2.0
+MajorVer=2
+MinorVer=0
+Beta=true
+
+[MSR-ISRCCrawler]
+Parent=MSN
+Browser="MSR-ISRCCrawler"
+
+[MSRBOT*]
+Parent=MSN
+Browser="MSRBOT"
+
+[renlifangbot/1.0 (?http://search.msn.com/msnbot.htm)]
+Parent=MSN
+Browser="renlifangbot"
+
+[T-Mobile Dash Mozilla/4.0 (*) MSNBOT-MOBILE/1.1 (*)]
+Parent=MSN
+Browser="msnbot-mobile"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Yahoo
+
+[Yahoo]
+Parent=DefaultProperties
+Browser="Yahoo"
+Frames=true
+Tables=true
+Crawler=true
+
+[Mozilla/4.0 (compatible; Y!J; for robot study*)]
+Parent=Yahoo
+Browser="Y!J"
+
+[Mozilla/5.0 (Yahoo-Test/4.0*)]
+Parent=Yahoo
+Browser="Yahoo-Test"
+Version=4.0
+MajorVer=4
+MinorVer=0
+
+[mp3Spider cn-search-devel at yahoo-inc dot com]
+Parent=Yahoo
+Browser="Yahoo! Media"
+isBanned=true
+
+[My Browser]
+Parent=Yahoo
+Browser="Yahoo! My Browser"
+
+[Y!OASIS/*]
+Parent=Yahoo
+Browser="Y!OASIS"
+isBanned=true
+
+[YahooYSMcm/2.0.0]
+Parent=Yahoo
+Browser="YahooYSMcm"
+Version=2.0
+MajorVer=2
+MinorVer=0
+isBanned=true
+
+[YRL_ODP_CRAWLER]
+Parent=Yahoo
+Browser="YRL_ODP_CRAWLER"
+isBanned=true
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Yandex
+
+[Yandex]
+Parent=DefaultProperties
+Browser="Yandex"
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+Crawler=true
+
+[Mozilla/4.0 (compatible; MSIE 5.0; YANDEX)]
+Parent=Yandex
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9) Gecko VisualParser/3.0]
+Parent=Yandex
+Browser="VisualParser"
+isBanned=true
+
+[YaDirectBot/*]
+Parent=Yandex
+Browser="YaDirectBot"
+
+[Yandex/*]
+Parent=Yandex
+
+[YandexBlog/*]
+Parent=Yandex
+Browser="YandexBlog"
+isSyndicationReader=true
+
+[YandexSomething/*]
+Parent=Yandex
+Browser="YandexSomething"
+isSyndicationReader=true
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Best of the Web
+
+[Best of the Web]
+Parent=DefaultProperties
+Browser="Best of the Web"
+Frames=true
+Tables=true
+
+[Mozilla/4.0 (compatible; BOTW Feed Grabber; *http://botw.org)]
+Parent=Best of the Web
+Browser="BOTW Feed Grabber"
+isSyndicationReader=true
+Crawler=false
+
+[Mozilla/4.0 (compatible; BOTW Spider; *http://botw.org)]
+Parent=Best of the Web
+Browser="BOTW Spider"
+isBanned=true
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Boitho
+
+[Boitho]
+Parent=DefaultProperties
+Browser="Boitho"
+Frames=true
+Tables=true
+Crawler=true
+
+[boitho.com-dc/*]
+Parent=Boitho
+Browser="boitho.com-dc"
+
+[boitho.com-robot/*]
+Parent=Boitho
+Browser="boitho.com-robot"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Convera
+
+[Convera]
+Parent=DefaultProperties
+Browser="Convera"
+Frames=true
+Tables=true
+Crawler=true
+
+[ConveraCrawler/*]
+Parent=Convera
+Browser="ConveraCrawler"
+
+[ConveraMultiMediaCrawler/0.1*]
+Parent=Convera
+Browser="ConveraMultiMediaCrawler"
+Version=0.1
+MajorVer=0
+MinorVer=1
+
+[CrawlConvera*]
+Parent=Convera
+Browser="CrawlConvera"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DotBot
+
+[DotBot]
+Parent=DefaultProperties
+Browser="DotBot"
+Frames=true
+Tables=true
+isBanned=true
+Crawler=true
+
+[DotBot/* (http://www.dotnetdotcom.org/*)]
+Parent=DotBot
+
+[Mozilla/5.0 (compatible; DotBot/*; http://www.dotnetdotcom.org/*)]
+Parent=DotBot
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Entireweb
+
+[Entireweb]
+Parent=DefaultProperties
+Browser="Entireweb"
+Frames=true
+IFrames=true
+Tables=true
+isBanned=true
+Crawler=true
+
+[Mozilla/4.0 (compatible; SpeedySpider; www.entireweb.com)]
+Parent=Entireweb
+
+[Speedy Spider (*Beta/*)]
+Parent=Entireweb
+
+[Speedy?Spider?(http://www.entireweb.com*)]
+Parent=Entireweb
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Envolk
+
+[Envolk]
+Parent=DefaultProperties
+Browser="Envolk"
+Frames=true
+IFrames=true
+Tables=true
+isBanned=true
+Crawler=true
+
+[envolk/* (?http://www.envolk.com/envolk*)]
+Parent=Envolk
+
+[envolk?ITS?spider/* (?http://www.envolk.com/envolk*)]
+Parent=Envolk
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Exalead
+
+[Exalead]
+Parent=DefaultProperties
+Browser="Exalead"
+Frames=true
+Tables=true
+isBanned=true
+Crawler=true
+
+[Exabot-Images/1.0]
+Parent=Exalead
+Browser="Exabot-Images"
+Version=1.0
+MajorVer=1
+MinorVer=0
+
+[Exabot-Test/*]
+Parent=Exalead
+Browser="Exabot-Test"
+
+[Exabot/2.0]
+Parent=Exalead
+Browser="Exabot"
+
+[Exabot/3.0]
+Parent=Exalead
+Browser="Exabot"
+Version=3.0
+MajorVer=3
+MinorVer=0
+Platform=Liberate
+
+[Exalead NG/*]
+Parent=Exalead
+Browser="Exalead NG"
+isBanned=true
+
+[Mozilla/5.0 (compatible; Exabot-Images/3.0;*)]
+Parent=Exalead
+Browser="Exabot-Images"
+
+[Mozilla/5.0 (compatible; Exabot/3.0 (BiggerBetter); *)]
+Parent=Exalead
+Browser="Exabot/BiggerBetter"
+
+[Mozilla/5.0 (compatible; Exabot/3.0;*)]
+Parent=Exalead
+Browser="Exabot"
+isBanned=false
+
+[Mozilla/5.0 (compatible; NGBot/*)]
+Parent=Exalead
+
+[ng/*]
+Parent=Exalead
+Browser="Exalead Previewer"
+Version=1.0
+MajorVer=1
+MinorVer=0
+isBanned=true
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Fast/AllTheWeb
+
+[Fast/AllTheWeb]
+Parent=DefaultProperties
+Browser="Fast/AllTheWeb"
+Alpha=true
+Beta=true
+Win16=true
+Win32=true
+Win64=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+CDF=true
+VBScript=true
+JavaApplets=true
+JavaScript=true
+ActiveXControls=true
+isBanned=true
+isMobileDevice=true
+isSyndicationReader=true
+Crawler=true
+
+[*FAST Enterprise Crawler*]
+Parent=Fast/AllTheWeb
+Browser="FAST Enterprise Crawler"
+
+[FAST Data Search Document Retriever/4.0*]
+Parent=Fast/AllTheWeb
+Browser="FAST Data Search Document Retriever"
+
+[FAST MetaWeb Crawler (helpdesk at fastsearch dot com)]
+Parent=Fast/AllTheWeb
+Browser="FAST MetaWeb Crawler"
+
+[Fast PartnerSite Crawler*]
+Parent=Fast/AllTheWeb
+Browser="FAST PartnerSite"
+
+[FAST-WebCrawler/*]
+Parent=Fast/AllTheWeb
+Browser="FAST-WebCrawler"
+
+[FAST-WebCrawler/*/FirstPage*]
+Parent=Fast/AllTheWeb
+Browser="FAST-WebCrawler/FirstPage"
+
+[FAST-WebCrawler/*/Fresh*]
+Parent=Fast/AllTheWeb
+Browser="FAST-WebCrawler/Fresh"
+
+[FAST-WebCrawler/*/PartnerSite*]
+Parent=Fast/AllTheWeb
+Browser="FAST PartnerSite"
+
+[FAST-WebCrawler/*?Multimedia*]
+Parent=Fast/AllTheWeb
+Browser="FAST-WebCrawler/Multimedia"
+
+[FastSearch Web Crawler for*]
+Parent=Fast/AllTheWeb
+Browser="FastSearch Web Crawler"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Gigabot
+
+[Gigabot]
+Parent=DefaultProperties
+Browser="Gigabot"
+Frames=true
+IFrames=true
+Tables=true
+Crawler=true
+
+[Gigabot*]
+Parent=Gigabot
+
+[GigabotSiteSearch/*]
+Parent=Gigabot
+Browser="GigabotSiteSearch"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Ilse
+
+[Ilse]
+Parent=DefaultProperties
+Browser="Ilse"
+Frames=true
+Tables=true
+Crawler=true
+
+[IlseBot/*]
+Parent=Ilse
+
+[INGRID/?.0*]
+Parent=Ilse
+Browser="Ilse"
+
+[Mozilla/3.0 (INGRID/*]
+Parent=Ilse
+Browser="Ilse"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; iVia Project
+
+[iVia Project]
+Parent=DefaultProperties
+Browser="iVia Project"
+Frames=true
+IFrames=true
+Tables=true
+Crawler=true
+
+[DataFountains/DMOZ Downloader*]
+Parent=iVia Project
+Browser="DataFountains/DMOZ Downloader"
+isBanned=true
+
+[DataFountains/DMOZ Feature Vector Corpus Creator*]
+Parent=iVia Project
+Browser="DataFountains/DMOZ Feature Vector Corpus"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Jayde Online
+
+[Jayde Online]
+Parent=DefaultProperties
+Browser="Jayde Online"
+Frames=true
+Tables=true
+Crawler=true
+
+[ExactSeek Crawler/*]
+Parent=Jayde Online
+Browser="ExactSeek Crawler"
+
+[exactseek-pagereaper-* (crawler@exactseek.com)]
+Parent=Jayde Online
+Browser="exactseek-pagereaper"
+isBanned=true
+
+[exactseek.com]
+Parent=Jayde Online
+Browser="exactseek.com"
+
+[Jayde Crawler*]
+Parent=Jayde Online
+Browser="Jayde Crawler"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Lycos
+
+[Lycos]
+Parent=DefaultProperties
+Browser="Lycos"
+Frames=true
+Tables=true
+Crawler=true
+
+[Lycos*]
+Parent=Lycos
+Browser="Lycos"
+
+[Lycos-Proxy]
+Parent=Lycos
+Browser="Lycos-Proxy"
+
+[Lycos-Spider_(modspider)]
+Parent=Lycos
+Browser="Lycos-Spider_(modspider)"
+
+[Lycos-Spider_(T-Rex)]
+Parent=Lycos
+Browser="Lycos-Spider_(T-Rex)"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Naver
+
+[Naver]
+Parent=DefaultProperties
+Browser="Naver"
+isBanned=true
+Crawler=true
+
+[Cowbot-* (NHN Corp*naver.com)]
+Parent=Naver
+Browser="Naver Cowbot"
+
+[Mozilla/4.0 (compatible; NaverBot/*; *)]
+Parent=Naver
+
+[Mozilla/4.0 (compatible; NaverBot/*; nhnbot@naver.com)]
+Parent=Naver
+Browser="Naver NaverBot"
+
+[NaverBot-* (NHN Corp*naver.com)]
+Parent=Naver
+Browser="Naver NHN Corp"
+
+[Yeti/*]
+Parent=Naver
+Browser="Yeti"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Snap
+
+[Snap]
+Parent=DefaultProperties
+Browser="Snap"
+isBanned=true
+Crawler=true
+
+[Mozilla/5.0 (SnapPreviewBot) Gecko/* Firefox/*]
+Parent=Snap
+
+[Snapbot/*]
+Parent=Snap
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Sogou
+
+[Sogou]
+Parent=DefaultProperties
+Browser="Sogou"
+Frames=true
+Tables=true
+isBanned=true
+Crawler=true
+
+[shaboyi spider]
+Parent=Sogou
+Browser="Sogou/Shaboyi Spider"
+
+[Sogou develop spider/*]
+Parent=Sogou
+Browser="Sogou Develop Spider"
+
+[Sogou head spider*]
+Parent=Sogou
+Browser="Sogou/HEAD Spider"
+
+[sogou js robot(*)]
+Parent=Sogou
+
+[Sogou Orion spider/*]
+Parent=Sogou
+Browser="Sogou Orion spider"
+
+[Sogou Pic Agent]
+Parent=Sogou
+Browser="Sogou/Image Crawler"
+
+[Sogou Pic Spider]
+Parent=Sogou
+Browser="Sogou Pic Spider"
+
+[Sogou Push Spider/*]
+Parent=Sogou
+Browser="Sogou Push Spider"
+
+[sogou spider]
+Parent=Sogou
+Browser="Sogou/Spider"
+
+[sogou web spider*]
+Parent=Sogou
+Browser="sogou web spider"
+
+[Sogou-Test-Spider/*]
+Parent=Sogou
+Browser="Sogou-Test-Spider"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; YodaoBot
+
+[YodaoBot]
+Parent=DefaultProperties
+Browser="YodaoBot"
+Frames=true
+IFrames=true
+Tables=true
+isBanned=true
+Crawler=true
+
+[Mozilla/5.0 (compatible; YodaoBot/1.*)]
+Parent=YodaoBot
+
+[Mozilla/5.0 (compatible;YodaoBot-Image/1.*)]
+Parent=YodaoBot
+Browser="YodaoBot-Image"
+
+[WAP_Browser/5.0 (compatible; YodaoBot/1.*)]
+Parent=YodaoBot
+
+[YodaoBot/1.* (*)]
+Parent=YodaoBot
+
+[Best Whois (http://www.bestwhois.net/)]
+Parent=DNS Tools
+Browser="Best Whois"
+
+[DNSGroup/*]
+Parent=DNS Tools
+Browser="DNS Group Crawler"
+
+[NG-Search/*]
+Parent=Exalead
+Browser="NG-SearchBot"
+
+[TouchStone]
+Parent=Feeds Syndicators
+Browser="TouchStone"
+isSyndicationReader=true
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; General Crawlers
+
+[General Crawlers]
+Parent=DefaultProperties
+Browser="General Crawlers"
+Crawler=true
+
+[A .NET Web Crawler]
+Parent=General Crawlers
+isBanned=true
+
+[BabalooSpider/1.*]
+Parent=General Crawlers
+Browser="BabalooSpider"
+
+[BilgiBot/*]
+Parent=General Crawlers
+Browser="BilgiBot"
+isBanned=true
+
+[bot/* (bot; *bot@bot.bot)]
+Parent=General Crawlers
+Browser="bot"
+isBanned=true
+
+[CyberPatrol*]
+Parent=General Crawlers
+Browser="CyberPatrol"
+isBanned=true
+
+[Cynthia 1.0]
+Parent=General Crawlers
+Browser="Cynthia"
+Version=1.0
+MajorVer=1
+MinorVer=0
+
+[cz32ts]
+Parent=General Crawlers
+Browser="cz32ts"
+isBanned=true
+
+[ddetailsbot (http://www.displaydetails.com)]
+Parent=General Crawlers
+Browser="ddetailsbot"
+
+[DomainCrawler/1.0 (info@domaincrawler.com; http://www.domaincrawler.com/domains/view/*)]
+Parent=General Crawlers
+Browser="DomainCrawler"
+
+[DomainsBotBot/1.*]
+Parent=General Crawlers
+Browser="DomainsBotBot"
+isBanned=true
+
+[DomainsDB.net MetaCrawler*]
+Parent=General Crawlers
+Browser="DomainsDB"
+
+[Drupal (*)]
+Parent=General Crawlers
+Browser="Drupal"
+
+[Dumbot (version *)*]
+Parent=General Crawlers
+Browser="Dumbfind"
+
+[EuripBot/*]
+Parent=General Crawlers
+Browser="Europe Internet Portal"
+
+[eventax/*]
+Parent=General Crawlers
+Browser="eventax"
+
+[FANGCrawl/*]
+Parent=General Crawlers
+Browser="Safe-t.net Web Filtering Service"
+isBanned=true
+
+[favorstarbot/*]
+Parent=General Crawlers
+Browser="favorstarbot"
+isBanned=true
+
+[FollowSite.com (*)]
+Parent=General Crawlers
+Browser="FollowSite"
+isBanned=true
+
+[Gaisbot*]
+Parent=General Crawlers
+Browser="Gaisbot"
+
+[Healthbot/Health_and_Longevity_Project_(HealthHaven.com) ]
+Parent=General Crawlers
+Browser="Healthbot"
+isBanned=true
+
+[hitcrawler_0.*]
+Parent=General Crawlers
+Browser="hitcrawler"
+isBanned=true
+
+[htdig/*]
+Parent=General Crawlers
+Browser="ht://Dig"
+
+[http://hilfe.acont.de/bot.html ACONTBOT]
+Parent=General Crawlers
+Browser="ACONTBOT"
+isBanned=true
+
+[JetBrains*]
+Parent=General Crawlers
+Browser="Omea Pro"
+
+[KakleBot - www.kakle.com/0.1]
+Parent=General Crawlers
+Browser="KakleBot"
+
+[KBeeBot/0.*]
+Parent=General Crawlers
+Browser="KBeeBot"
+isBanned=true
+
+[Keyword Density/*]
+Parent=General Crawlers
+Browser="Keyword Density"
+
+[LetsCrawl.com/1.0*]
+Parent=General Crawlers
+Browser="LetsCrawl.com"
+isBanned=true
+
+[Lincoln State Web Browser]
+Parent=General Crawlers
+Browser="Lincoln State Web Browser"
+isBanned=true
+
+[Links4US-Crawler,*]
+Parent=General Crawlers
+Browser="Links4US-Crawler"
+isBanned=true
+
+[Lorkyll *.* -- lorkyll@444.net]
+Parent=General Crawlers
+Browser="Lorkyll"
+isBanned=true
+
+[Lsearch/sondeur]
+Parent=General Crawlers
+Browser="Lsearch/sondeur"
+isBanned=true
+
+[LucidMedia ClickSense/4.?]
+Parent=General Crawlers
+Browser="LucidMedia-ClickSense"
+isBanned=true
+
+[Made by ZmEu @ WhiteHat v0.* (www.WhiteHat.ro)]
+Parent=General Crawlers
+Browser="ZmEu"
+isBanned=true
+
+[Mahalobot/1.0 (?http://www.mahalo.com/)]
+Parent=General Crawlers
+Browser="Mahalobot"
+
+[MapoftheInternet.com?(?http://MapoftheInternet.com)]
+Parent=General Crawlers
+Browser="MapoftheInternet"
+isBanned=true
+
+[Marvin v0.3]
+Parent=General Crawlers
+Browser="MedHunt"
+Version=0.3
+MajorVer=0
+MinorVer=3
+
+[masidani_bot_v0.6*]
+Parent=General Crawlers
+Browser="masidani_bot"
+
+[Metaspinner/0.01 (Metaspinner; http://www.meta-spinner.de/; support@meta-spinner.de/)]
+Parent=General Crawlers
+Browser="Metaspinner/0.01"
+Version=0.01
+MajorVer=0
+MinorVer=01
+
+[metatagsdir/*]
+Parent=General Crawlers
+Browser="metatagsdir"
+isBanned=true
+
+[Microsoft Windows Network Diagnostics]
+Parent=General Crawlers
+Browser="Microsoft Windows Network Diagnostics"
+isBanned=true
+
+[Miva (AlgoFeedback@miva.com)]
+Parent=General Crawlers
+Browser="Miva"
+
+[moget/*]
+Parent=General Crawlers
+Browser="Goo"
+
+[Mozdex/0.7.2*]
+Parent=General Crawlers
+Browser="Mozdex"
+
+[Mozilla Compatible (MS IE 3.01 WinNT)]
+Parent=General Crawlers
+isBanned=true
+
+[Mozilla/* (compatible; WebCapture*)]
+Parent=General Crawlers
+Browser="WebCapture"
+
+[Mozilla/4.0 (compatible; DepSpid/*)]
+Parent=General Crawlers
+Browser="DepSpid"
+
+[Mozilla/4.0 (compatible; MSIE 4.01; Vonna.com b o t)]
+Parent=General Crawlers
+Browser="Vonna.com"
+isBanned=true
+
+[Mozilla/4.0 (compatible; MSIE 4.01; Windows95)]
+Parent=General Crawlers
+Win32=true
+
+[Mozilla/4.0 (compatible; MSIE 4.5; Windows 98; )]
+Parent=General Crawlers
+Win32=true
+
+[Mozilla/4.0 (compatible; MyFamilyBot/*)]
+Parent=General Crawlers
+Browser="MyFamilyBot"
+
+[Mozilla/4.0 (compatible; N-Stealth)]
+Parent=General Crawlers
+Browser="N-Stealth"
+
+[Mozilla/4.0 (compatible; Scumbot/*; Linux/*)]
+Parent=General Crawlers
+isBanned=true
+
+[Mozilla/4.0 (compatible; Spider; Linux)]
+Parent=General Crawlers
+isBanned=true
+
+[Mozilla/4.0 (compatible; Win32)]
+Parent=General Crawlers
+Browser="Unknown Crawler"
+isBanned=true
+
+[Mozilla/4.1]
+Parent=General Crawlers
+isBanned=true
+
+[Mozilla/4.5]
+Parent=General Crawlers
+isBanned=true
+
+[Mozilla/5.0 (*http://gnomit.com/) Gecko/* Gnomit/1.0]
+Parent=General Crawlers
+Browser="Gnomit"
+isBanned=true
+
+[Mozilla/5.0 (compatible; *; http://www.80legs.com/spider.html;) Gecko/*]
+Parent=General Crawlers
+Browser="80Legs"
+
+[Mozilla/5.0 (compatible; AboutUsBot/*)]
+Parent=General Crawlers
+Browser="AboutUsBot"
+isBanned=true
+
+[Mozilla/5.0 (compatible; BuzzRankingBot/*)]
+Parent=General Crawlers
+Browser="BuzzRankingBot"
+isBanned=true
+
+[Mozilla/5.0 (compatible; Diffbot/0.1; http://www.diffbot.com)]
+Parent=General Crawlers
+Browser="Diffbot"
+
+[Mozilla/5.0 (compatible; FirstSearchBot/1.0; *)]
+Parent=General Crawlers
+Browser="FirstSearchBot"
+
+[mozilla/5.0 (compatible; genevabot http://www.healthdash.com)]
+Parent=General Crawlers
+Browser="Healthdash"
+
+[Mozilla/5.0 (compatible; JadynAveBot; *http://www.jadynave.com/robot*]
+Parent=General Crawlers
+Browser="JadynAveBot"
+isBanned=true
+
+[Mozilla/5.0 (compatible; Kyluka crawl; http://www.kyluka.com/crawl.html; crawl@kyluka.com)]
+Parent=General Crawlers
+Browser="Kyluka"
+
+[Mozilla/5.0 (compatible; MJ12bot/v1.*)]
+Parent=General Crawlers
+Browser="MJ12bot"
+isBanned=true
+
+[Mozilla/5.0 (compatible; MSIE 7.0 ?http://www.europarchive.org)]
+Parent=General Crawlers
+Browser="Europe Web Archive"
+
+[Mozilla/5.0 (compatible; Plukkie/1.?; http://www.botje.com/plukkie.htm)]
+Parent=General Crawlers
+Browser="Plukkie"
+
+[Mozilla/5.0 (compatible; Seznam screenshot-generator 2.0;*)]
+Parent=General Crawlers
+Browser="Seznam screenshot-generator"
+isBanned=true
+
+[Mozilla/5.0 (compatible; Twingly Recon; http://www.twingly.com/)]
+Parent=General Crawlers
+Browser="Twingly Recon"
+
+[Mozilla/5.0 (compatible; unwrapbot/2.*; http://www.unwrap.jp*)]
+Parent=General Crawlers
+Browser="UnWrap"
+
+[Mozilla/5.0 (compatible; Vermut*)]
+Parent=General Crawlers
+Browser="Vermut"
+
+[Mozilla/5.0 (compatible; Viralheat Bot/*) ]
+Parent=General Crawlers
+Browser="Viralheat"
+isBanned=true
+
+[Mozilla/5.0 (compatible; Webbot/*)]
+Parent=General Crawlers
+Browser="Webbot.ru"
+isBanned=true
+
+[n4p_bot*]
+Parent=General Crawlers
+Browser="n4p_bot"
+
+[nabot*]
+Parent=General Crawlers
+Browser="Nabot"
+
+[NetCarta_WebMapper/*]
+Parent=General Crawlers
+Browser="NetCarta_WebMapper"
+isBanned=true
+
+[Netchart Adv Crawler*]
+Parent=General Crawlers
+Browser="Netchart Adv Crawler"
+isBanned=true
+
+[NetID.com Bot*]
+Parent=General Crawlers
+Browser="NetID.com Bot"
+isBanned=true
+
+[neTVision AG andreas.heidoetting@thomson-webcast.net]
+Parent=General Crawlers
+Browser="neTVision"
+
+[NextopiaBOT*]
+Parent=General Crawlers
+Browser="NextopiaBOT"
+
+[nicebot]
+Parent=General Crawlers
+Browser="nicebot"
+isBanned=true
+
+[niXXieBot?Foster*]
+Parent=General Crawlers
+Browser="niXXiebot-Foster"
+
+[Nozilla/P.N (Just for IDS woring)]
+Parent=General Crawlers
+Browser="Nozilla/P.N"
+isBanned=true
+
+[Nudelsalat/*]
+Parent=General Crawlers
+Browser="Nudelsalat"
+isBanned=true
+
+[NV32ts]
+Parent=General Crawlers
+Browser="NV32ts"
+isBanned=true
+
+[Ocelli/*]
+Parent=General Crawlers
+Browser="Ocelli"
+
+[OpenTaggerBot (http://www.opentagger.com/opentaggerbot.htm)]
+Parent=General Crawlers
+Browser="OpenTaggerBot"
+
+[Oracle Enterprise Search]
+Parent=General Crawlers
+Browser="Oracle Enterprise Search"
+isBanned=true
+
+[Oracle Ultra Search]
+Parent=General Crawlers
+Browser="Oracle Ultra Search"
+
+[Pajaczek/*]
+Parent=General Crawlers
+Browser="Pajaczek"
+isBanned=true
+
+[panscient.com]
+Parent=General Crawlers
+Browser="panscient.com"
+isBanned=true
+
+[Patwebbot (http://www.herz-power.de/technik.html)]
+Parent=General Crawlers
+Browser="Patwebbot"
+
+[PDFBot (crawler@pdfind.com)]
+Parent=General Crawlers
+Browser="PDFBot"
+
+[Pete-Spider/1.*]
+Parent=General Crawlers
+Browser="Pete-Spider"
+isBanned=true
+
+[PhpDig/*]
+Parent=General Crawlers
+Browser="PhpDig"
+
+[PlantyNet_WebRobot*]
+Parent=General Crawlers
+Browser="PlantyNet"
+isBanned=true
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; PluckIt
+
+[PluckItCrawler/1.0 (*)]
+Parent=General Crawlers
+isMobileDevice=true
+
+[PMAFind]
+Parent=General Crawlers
+Browser="PMAFind"
+isBanned=true
+
+[Poodle_predictor_1.0]
+Parent=General Crawlers
+Browser="Poodle Predictor"
+
+[QuickFinder Crawler]
+Parent=General Crawlers
+Browser="QuickFinder"
+isBanned=true
+
+[Radiation Retriever*]
+Parent=General Crawlers
+Browser="Radiation Retriever"
+isBanned=true
+
+[RedCarpet/*]
+Parent=General Crawlers
+Browser="RedCarpet"
+isBanned=true
+
+[RixBot (http://babelserver.org/rix)]
+Parent=General Crawlers
+Browser="RixBot"
+
+[Rome Client (http://tinyurl.com/64t5n) Ver: 0.*]
+Parent=General Crawlers
+Browser="TinyURL"
+
+[SBIder/*]
+Parent=General Crawlers
+Browser="SiteSell"
+
+[ScollSpider/2.*]
+Parent=General Crawlers
+Browser="ScollSpider"
+isBanned=true
+
+[Search Fst]
+Parent=General Crawlers
+Browser="Search Fst"
+
+[searchbot admin@google.com]
+Parent=General Crawlers
+Browser="searchbot"
+isBanned=true
+
+[Seeker.lookseek.com]
+Parent=General Crawlers
+Browser="LookSeek"
+isBanned=true
+
+[semanticdiscovery/*]
+Parent=General Crawlers
+Browser="Semantic Discovery"
+
+[SeznamBot/*]
+Parent=General Crawlers
+Browser="SeznamBot"
+isBanned=true
+
+[Shelob (shelob@gmx.net)]
+Parent=General Crawlers
+Browser="Shelob"
+isBanned=true
+
+[shelob v1.*]
+Parent=General Crawlers
+Browser="shelob"
+isBanned=true
+
+[ShopWiki/1.0*]
+Parent=General Crawlers
+Browser="ShopWiki"
+Version=1.0
+MajorVer=1
+MinorVer=0
+
+[ShowXML/1.0 libwww/5.4.0]
+Parent=General Crawlers
+Browser="ShowXML"
+isBanned=true
+
+[sitecheck.internetseer.com*]
+Parent=General Crawlers
+Browser="Internetseer"
+
+[SMBot/*]
+Parent=General Crawlers
+Browser="SMBot"
+
+[sohu*]
+Parent=General Crawlers
+Browser="sohu-search"
+isBanned=true
+
+[SpankBot*]
+Parent=General Crawlers
+Browser="SpankBot"
+isBanned=true
+
+[spider (tspyyp@tom.com)]
+Parent=General Crawlers
+Browser="spider (tspyyp@tom.com)"
+isBanned=true
+
+[Sunrise/0.*]
+Parent=General Crawlers
+Browser="Sunrise"
+isBanned=true
+
+[Superpages URL Verification Engine]
+Parent=General Crawlers
+Browser="Superpages"
+
+[Surf Knight]
+Parent=General Crawlers
+Browser="Surf Knight"
+isBanned=true
+
+[SurveyBot/*]
+Parent=General Crawlers
+Browser="SurveyBot"
+isBanned=true
+
+[SynapticSearch/AI Crawler 1.?]
+Parent=General Crawlers
+Browser="SynapticSearch"
+isBanned=true
+
+[SyncMgr]
+Parent=General Crawlers
+Browser="SyncMgr"
+
+[Tagyu Agent/1.0]
+Parent=General Crawlers
+Browser="Tagyu"
+
+[Talkro Web-Shot/*]
+Parent=General Crawlers
+Browser="Talkro Web-Shot"
+isBanned=true
+
+[Tasap-image-robot/0.* (http://www.tasap.com)]
+Parent=General Crawlers
+Browser="Tasap-image-robot"
+isBanned=true
+
+[Tecomi Bot (http://www.tecomi.com/bot.htm)]
+Parent=General Crawlers
+Browser="Tecomi"
+
+[TencentTraveler*]
+Parent=General Crawlers
+Browser="TencentTraveler"
+
+[TheInformant*]
+Parent=General Crawlers
+Browser="TheInformant"
+isBanned=true
+
+[Toata dragostea*]
+Parent=General Crawlers
+Browser="Toata dragostea"
+isBanned=true
+
+[Tutorial Crawler*]
+Parent=General Crawlers
+isBanned=true
+
+[UbiCrawler/*]
+Parent=General Crawlers
+Browser="UbiCrawler"
+
+[UCmore]
+Parent=General Crawlers
+Browser="UCmore"
+
+[User*Agent:*]
+Parent=General Crawlers
+isBanned=true
+
+[USER_AGENT]
+Parent=General Crawlers
+Browser="USER_AGENT"
+isBanned=true
+
+[VadixBot]
+Parent=General Crawlers
+Browser="VadixBot"
+
+[VengaBot/*]
+Parent=General Crawlers
+Browser="VengaBot"
+isBanned=true
+
+[Visicom Toolbar]
+Parent=General Crawlers
+Browser="Visicom Toolbar"
+
+[Visited by http://tools.geek-tools.org]
+Parent=General Crawlers
+Browser="geek-tools.org"
+
+[W3C-WebCon/*]
+Parent=General Crawlers
+Browser="W3C-WebCon"
+
+[Webclipping.com]
+Parent=General Crawlers
+Browser="Webclipping.com"
+isBanned=true
+
+[webcollage/*]
+Parent=General Crawlers
+Browser="WebCollage"
+isBanned=true
+
+[WebCrawler_1.*]
+Parent=General Crawlers
+Browser="WebCrawler"
+
+[WebFilter Robot*]
+Parent=General Crawlers
+Browser="WebFilter Robot"
+
+[WeBoX/*]
+Parent=General Crawlers
+Browser="WeBoX"
+
+[WebTrends/*]
+Parent=General Crawlers
+Browser="WebTrends"
+
+[West Wind Internet Protocols*]
+Parent=General Crawlers
+Browser="Versatel"
+isBanned=true
+
+[WhizBang]
+Parent=General Crawlers
+Browser="WhizBang"
+
+[Willow Internet Crawler by Twotrees V*]
+Parent=General Crawlers
+Browser="Willow Internet Crawler"
+
+[WIRE/* (Linux*; i686; Bot,Robot,Spider,Crawler)]
+Parent=General Crawlers
+Browser="WIRE"
+isBanned=true
+
+[www.fi crawler, contact crawler@www.fi]
+Parent=General Crawlers
+Browser="www.fi crawler"
+
+[Xerka WebBot v1.*]
+Parent=General Crawlers
+Browser="Xerka"
+isBanned=true
+
+[XML Sitemaps Generator*]
+Parent=General Crawlers
+Browser="XML Sitemaps Generator"
+
+[XSpider*]
+Parent=General Crawlers
+Browser="XSpider"
+isBanned=true
+
+[YooW!/* (?http://www.yoow.eu)]
+Parent=General Crawlers
+Browser="YooW!"
+isBanned=true
+
+[HiddenMarket-*]
+Parent=General RSS
+Browser="HiddenMarket"
+isBanned=true
+
+[FOTOCHECKER]
+Parent=Image Crawlers
+Browser="FOTOCHECKER"
+isBanned=true
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Search Engines
+
+[Search Engines]
+Parent=DefaultProperties
+Browser="Search Engines"
+Crawler=true
+
+[*FDSE robot*]
+Parent=Search Engines
+Browser="FDSE Robot"
+
+[*Fluffy the spider*]
+Parent=Search Engines
+Browser="SearchHippo"
+
+[Abacho*]
+Parent=Search Engines
+Browser="Abacho"
+
+[ah-ha.com crawler (crawler@ah-ha.com)]
+Parent=Search Engines
+Browser="Ah-Ha"
+
+[AIBOT/*]
+Parent=Search Engines
+Browser="21Seek.Com"
+
+[ALeadSoftbot/*]
+Parent=Search Engines
+Browser="ALeadSoftbot"
+
+[Amfibibot/*]
+Parent=Search Engines
+Browser="Amfibi"
+
+[AnswerBus (http://www.answerbus.com/)]
+Parent=Search Engines
+
+[antibot-V*]
+Parent=Search Engines
+Browser="antibot"
+
+[appie*(www.walhello.com)]
+Parent=Search Engines
+Browser="Walhello"
+
+[ASPSeek/*]
+Parent=Search Engines
+Browser="ASPSeek"
+
+[BigCliqueBOT/*]
+Parent=Search Engines
+Browser="BigClique.com/BigClic.com"
+
+[Blaiz-Bee/*]
+Parent=Search Engines
+Browser="RawGrunt"
+
+[btbot/*]
+Parent=Search Engines
+Browser="Bit Torrent Search Engine"
+
+[Busiversebot/v1.0 (http://www.busiverse.com/bot.php)]
+Parent=Search Engines
+Browser="Busiversebot"
+isBanned=true
+
+[CatchBot/*; http://www.catchbot.com]
+Parent=Search Engines
+Browser="CatchBot"
+Version=1.0
+MajorVer=1
+MinorVer=0
+
+[CipinetBot (http://www.cipinet.com/bot.html)]
+Parent=Search Engines
+Browser="CipinetBot"
+
+[Cogentbot/1.?*]
+Parent=Search Engines
+Browser="Cogentbot"
+
+[compatible; Mozilla 4.0; MSIE 5.5; (SqwidgeBot v1.01 - http://www.sqwidge.com/bot/)]
+Parent=Search Engines
+Browser="SqwidgeBot"
+
+[cosmos*]
+Parent=Search Engines
+Browser="Xyleme"
+
+[Deepindex]
+Parent=Search Engines
+Browser="Deepindex"
+
+[DiamondBot]
+Parent=Search Engines
+Browser="DiamondBot"
+
+[DuckDuckBot/*; (?http://duckduckgo.com/duckduckbot.html)]
+Parent=Search Engines
+Browser="DuckDuckBot"
+
+[Dumbot*]
+Parent=Search Engines
+Browser="Dumbot"
+Version=0.2
+MajorVer=0
+MinorVer=2
+Beta=true
+
+[Eule?Robot*]
+Parent=Search Engines
+Browser="Eule-Robot"
+
+[Faxobot/*]
+Parent=Search Engines
+Browser="Faxo"
+
+[Filangy/*]
+Parent=Search Engines
+Browser="Filangy"
+
+[flatlandbot/*]
+Parent=Search Engines
+Browser="Flatland"
+
+[Fooky.com/ScorpionBot/ScoutOut;*]
+Parent=Search Engines
+Browser="ScorpionBot"
+isBanned=true
+
+[FyberSpider*]
+Parent=Search Engines
+Browser="FyberSpider"
+isBanned=true
+
+[Gaisbot/*]
+Parent=Search Engines
+Browser="Gaisbot"
+
+[gazz/*(gazz@nttr.co.jp)]
+Parent=Search Engines
+Browser="gazz"
+
+[geniebot*]
+Parent=Search Engines
+Browser="GenieKnows"
+
+[GOFORITBOT (?http://www.goforit.com/about/?)]
+Parent=Search Engines
+Browser="GoForIt"
+
+[GoGuidesBot/*]
+Parent=Search Engines
+Browser="GoGuidesBot"
+
+[GroschoBot/*]
+Parent=Search Engines
+Browser="GroschoBot"
+
+[GurujiBot/1.*]
+Parent=Search Engines
+Browser="GurujiBot"
+isBanned=true
+
+[HenryTheMiragoRobot*]
+Parent=Search Engines
+Browser="Mirago"
+
+[HolmesBot (http://holmes.ge)]
+Parent=Search Engines
+Browser="HolmesBot"
+
+[Hotzonu/*]
+Parent=Search Engines
+Browser="Hotzonu"
+
+[HyperEstraier/*]
+Parent=Search Engines
+Browser="HyperEstraier"
+isBanned=true
+
+[i1searchbot/*]
+Parent=Search Engines
+Browser="i1searchbot"
+
+[IIITBOT/1.*]
+Parent=Search Engines
+Browser="Indian Language Web Search Engine"
+
+[Iltrovatore-?etaccio/*]
+Parent=Search Engines
+Browser="Iltrovatore-Setaccio"
+
+[InfociousBot (?http://corp.infocious.com/tech_crawler.php)]
+Parent=Search Engines
+Browser="InfociousBot"
+isBanned=true
+
+[Infoseek SideWinder/*]
+Parent=Search Engines
+Browser="Infoseek"
+
+[iSEEKbot/*]
+Parent=Search Engines
+Browser="iSEEKbot"
+
+[Knight/0.? (Zook Knight; http://knight.zook.in/; knight@zook.in)]
+Parent=Search Engines
+Browser="Knight"
+
+[Kolinka Forum Search (www.kolinka.com)]
+Parent=Search Engines
+Browser="Kolinka Forum Search"
+isBanned=true
+
+[KRetrieve/]
+Parent=Search Engines
+Browser="KRetrieve"
+isBanned=true
+
+[LapozzBot/*]
+Parent=Search Engines
+Browser="LapozzBot"
+
+[Linknzbot*]
+Parent=Search Engines
+Browser="Linknzbot"
+
+[LocalcomBot/*]
+Parent=Search Engines
+Browser="LocalcomBot"
+
+[Mail.Ru/1.0]
+Parent=Search Engines
+Browser="Mail.Ru"
+
+[MaSagool/*]
+Parent=Search Engines
+Browser="Sagoo"
+Version=1.0
+MajorVer=1
+MinorVer=0
+
+[miniRank/*]
+Parent=Search Engines
+Browser="miniRank"
+
+[Mnogosearch*]
+Parent=Search Engines
+Browser="Mnogosearch"
+
+[Mozilla/0.9* no dos :) (Linux*)]
+Parent=Search Engines
+Browser="goliat"
+isBanned=true
+
+[Mozilla/4.0 (compatible; *Vagabondo/*; webcrawler at wise-guys dot nl; *)]
+Parent=Search Engines
+Browser="Vagabondo"
+
+[Mozilla/4.0 (compatible; Arachmo)]
+Parent=Search Engines
+Browser="Arachmo"
+
+[Mozilla/4.0 (compatible; http://search.thunderstone.com/texis/websearch/about.html)]
+Parent=Search Engines
+Browser="ThunderStone"
+isBanned=true
+
+[Mozilla/4.0 (compatible; MSIE *; Windows NT; Girafabot; girafabot at girafa dot com; http://www.girafa.com)]
+Parent=Search Engines
+Browser="Girafabot"
+Win32=true
+
+[Mozilla/4.0(?compatible; MSIE 6.0; Qihoo *)]
+Parent=Search Engines
+Browser="Qihoo"
+
+[Mozilla/4.7 (compatible; WhizBang; http://www.whizbang.com/crawler)]
+Parent=Search Engines
+Browser="Inxight Software"
+
+[Mozilla/5.0 (*) VoilaBot*]
+Parent=Search Engines
+Browser="VoilaBot"
+isBanned=true
+
+[Mozilla/5.0 (compatible; ActiveTouristBot*; http://www.activetourist.com)]
+Parent=Search Engines
+Browser="ActiveTouristBot"
+
+[Mozilla/5.0 (compatible; ayna-crawler http://www.ayna.com)]
+Parent=Search Engines
+Browser="ayna-crawler"
+
+[Mozilla/5.0 (compatible; Butterfly/1.0; *)*]
+Parent=Search Engines
+Browser="Butterfly"
+
+[Mozilla/5.0 (compatible; Charlotte/*; *)]
+Parent=Search Engines
+Browser="Charlotte"
+Beta=true
+isBanned=true
+
+[Mozilla/5.0 (compatible; CXL-FatAssANT*)]
+Parent=Search Engines
+Browser="FatAssANT"
+
+[Mozilla/5.0 (compatible; DBLBot/1.0; ?http://www.dontbuylists.com/)]
+Parent=Search Engines
+Browser="DBLBot"
+Version=1.0
+MajorVer=1
+MinorVer=0
+
+[Mozilla/5.0 (compatible; EARTHCOM.info/*)]
+Parent=Search Engines
+Browser="EARTHCOM"
+
+[Mozilla/5.0 (compatible; Lipperhey Spider; http://www.lipperhey.com/)]
+Parent=Search Engines
+Browser="Lipperhey Spider"
+
+[Mozilla/5.0 (compatible; MojeekBot/*; http://www.mojeek.com/bot.html)]
+Parent=Search Engines
+Browser="MojeekBot"
+
+[Mozilla/5.0 (compatible; NLCrawler/*]
+Parent=Search Engines
+Browser="Northern Light Web Search"
+
+[Mozilla/5.0 (compatible; OsO;*]
+Parent=Search Engines
+Browser="Octopodus"
+isBanned=true
+
+[Mozilla/5.0 (compatible; ParchBot/1.0;*)]
+Parent=Search Engines
+Browser="ParchBot"
+
+[Mozilla/5.0 (compatible; Pogodak.*)]
+Parent=Search Engines
+Browser="Pogodak"
+
+[Mozilla/5.0 (compatible; Quantcastbot/1.*)]
+Parent=Search Engines
+Browser="Quantcastbot"
+
+[Mozilla/5.0 (compatible; ScoutJet; *http://www.scoutjet.com/)]
+Parent=Search Engines
+Browser="ScoutJet"
+isBanned=true
+
+[Mozilla/5.0 (compatible; Scrubby/*; http://www.scrubtheweb.com/abs/meta-check.html)]
+Parent=Search Engines
+Browser="Scrubby"
+isBanned=true
+
+[Mozilla/5.0 (compatible; YoudaoBot/1.*; http://www.youdao.com/help/webmaster/spider/*)]
+Parent=Search Engines
+Browser="YoudaoBot"
+Version=1.0
+MajorVer=1
+MinorVer=0
+
+[Mozilla/5.0 (Twiceler*)]
+Parent=Search Engines
+Browser="Twiceler"
+isBanned=true
+
+[Mozilla/5.0 CostaCider Search*]
+Parent=Search Engines
+Browser="CostaCider Search"
+
+[Mozilla/5.0 GurujiBot/1.0 (*)]
+Parent=Search Engines
+Browser="GurujiBot"
+
+[NavissoBot]
+Parent=Search Engines
+Browser="NavissoBot"
+
+[NextGenSearchBot*(for information visit *)]
+Parent=Search Engines
+Browser="ZoomInfo"
+isBanned=true
+
+[Norbert the Spider(Burf.com)]
+Parent=Search Engines
+Browser="Norbert the Spider"
+
+[NuSearch Spider*]
+Parent=Search Engines
+Browser="nuSearch"
+
+[ObjectsSearch/*]
+Parent=Search Engines
+Browser="ObjectsSearch"
+
+[OpenISearch/1.*]
+Parent=Search Engines
+Browser="OpenISearch (Amazon)"
+
+[Pagebull http://www.pagebull.com/]
+Parent=Search Engines
+Browser="Pagebull"
+
+[PEERbot*]
+Parent=Search Engines
+Browser="PEERbot"
+
+[Pompos/*]
+Parent=Search Engines
+Browser="Pompos"
+
+[Popdexter/*]
+Parent=Search Engines
+Browser="Popdex"
+
+[Qweery*]
+Parent=Search Engines
+Browser="QweeryBot"
+
+[RedCell/* (*)]
+Parent=Search Engines
+Browser="RedCell"
+
+[SaladSpoon/ShopSalad 1.* (Search Engine crawler for ShopSalad.com; *; crawler@shopsalad.com)]
+Parent=Search Engines
+Browser="ShopSalad"
+
+[Scrubby/*]
+Parent=Search Engines
+Browser="Scrub The Web"
+
+[Search-10/*]
+Parent=Search Engines
+Browser="Search-10"
+
+[search.ch*]
+Parent=Search Engines
+Browser="Swiss Search Engine"
+
+[Searchmee! Spider*]
+Parent=Search Engines
+Browser="Searchmee!"
+
+[Seekbot/*]
+Parent=Search Engines
+Browser="Seekbot"
+
+[SiteSpider (http://www.SiteSpider.com/)]
+Parent=Search Engines
+Browser="SiteSpider"
+
+[Spinne/*]
+Parent=Search Engines
+Browser="Spinne"
+
+[sproose/*]
+Parent=Search Engines
+Browser="Sproose"
+
+[Sqeobot/0.*]
+Parent=Search Engines
+Browser="Branzel"
+isBanned=true
+
+[SquigglebotBot/*]
+Parent=Search Engines
+Browser="SquigglebotBot"
+isBanned=true
+
+[StackRambler/*]
+Parent=Search Engines
+Browser="StackRambler"
+
+[SygolBot*]
+Parent=Search Engines
+Browser="SygolBot"
+
+[SynoBot]
+Parent=Search Engines
+Browser="SynoBot"
+
+[Szukacz/*]
+Parent=Search Engines
+Browser="Szukacz"
+
+[Tarantula/*]
+Parent=Search Engines
+Browser="Tarantula"
+isBanned=true
+
+[TerrawizBot/*]
+Parent=Search Engines
+Browser="TerrawizBot"
+isBanned=true
+
+[Tkensaku/*]
+Parent=Search Engines
+Browser="Tkensaku"
+
+[TMCrawler]
+Parent=Search Engines
+Browser="TMCrawler"
+isBanned=true
+
+[Twingly Recon]
+Parent=Search Engines
+Browser="Twingly Recon"
+isBanned=true
+
+[updated/*]
+Parent=Search Engines
+Browser="Updated!"
+
+[URL Spider Pro/*]
+Parent=Search Engines
+Browser="URL Spider Pro"
+
+[URL Spider SQL*]
+Parent=Search Engines
+Browser="Innerprise Enterprise Search"
+
+[VMBot/*]
+Parent=Search Engines
+Browser="VMBot"
+
+[voyager/2.0 (http://www.kosmix.com/html/crawler.html)]
+Parent=Search Engines
+Browser="Voyager"
+
+[wadaino.jp-crawler*]
+Parent=Search Engines
+Browser="wadaino.jp"
+isBanned=true
+
+[WebAlta Crawler/*]
+Parent=Search Engines
+Browser="WebAlta Crawler"
+isBanned=true
+
+[WebCorp/*]
+Parent=Search Engines
+Browser="WebCorp"
+isBanned=true
+
+[webcrawl.net]
+Parent=Search Engines
+Browser="webcrawl.net"
+
+[WISEbot/*]
+Parent=Search Engines
+Browser="WISEbot"
+isBanned=true
+
+[Wotbox/*]
+Parent=Search Engines
+Browser="Wotbox"
+
+[www.zatka.com]
+Parent=Search Engines
+Browser="Zatka"
+
+[WWWeasel Robot v*]
+Parent=Search Engines
+Browser="World Wide Weasel"
+
+[YadowsCrawler*]
+Parent=Search Engines
+Browser="YadowsCrawler"
+
+[YodaoBot/*]
+Parent=Search Engines
+Browser="YodaoBot"
+isBanned=true
+
+[ZeBot_www.ze.bz*]
+Parent=Search Engines
+Browser="ZE.bz"
+
+[zibber-v*]
+Parent=Search Engines
+Browser="Zibb"
+
+[ZipppBot/*]
+Parent=Search Engines
+Browser="ZipppBot"
+
+[ATA-Translation-Service]
+Parent=Translators
+Browser="ATA-Translation-Service"
+
+[GJK_Browser_Check]
+Parent=Version Checkers
+Browser="GJK_Browser_Check"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Hatena
+
+[Hatena]
+Parent=DefaultProperties
+Browser="Hatena"
+isBanned=true
+Crawler=true
+
+[Feed::Find/*]
+Parent=Hatena
+Browser="Feed Find"
+isSyndicationReader=true
+
+[Hatena Antenna/*]
+Parent=Hatena
+Browser="Hatena Antenna"
+
+[Hatena Bookmark/*]
+Parent=Hatena
+Browser="Hatena Bookmark"
+
+[Hatena RSS/*]
+Parent=Hatena
+Browser="Hatena RSS"
+isSyndicationReader=true
+
+[Hatena::Crawler/*]
+Parent=Hatena
+Browser="Hatena Crawler"
+
+[HatenaScreenshot*]
+Parent=Hatena
+Browser="HatenaScreenshot"
+
+[URI::Fetch/*]
+Parent=Hatena
+Browser="URI::Fetch"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Internet Archive
+
+[Internet Archive]
+Parent=DefaultProperties
+Browser="Internet Archive"
+Frames=true
+IFrames=true
+Tables=true
+isBanned=true
+Crawler=true
+
+[*heritrix*]
+Parent=Internet Archive
+Browser="Heritrix"
+isBanned=true
+
+[ia_archiver*]
+Parent=Internet Archive
+Browser="Internet Archive"
+
+[InternetArchive/*]
+Parent=Internet Archive
+Browser="InternetArchive"
+
+[Mozilla/5.0 (compatible; archive.org_bot/1.*)]
+Parent=Internet Archive
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Nutch
+
+[Nutch]
+Parent=DefaultProperties
+Browser="Nutch"
+isBanned=true
+Crawler=true
+
+[*Nutch*]
+Parent=Nutch
+isBanned=true
+
+[CazoodleBot/*]
+Parent=Nutch
+Browser="CazoodleBot"
+
+[LOOQ/0.1*]
+Parent=Nutch
+Browser="LOOQ"
+
+[Nutch/0.? (OpenX Spider)]
+Parent=Nutch
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Webaroo
+
+[Webaroo]
+Parent=DefaultProperties
+Browser="Webaroo"
+
+[Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Webaroo/*)]
+Parent=Webaroo
+Browser="Webaroo"
+
+[Mozilla/5.0 (Windows; U; Windows *; *; rv:*) Gecko/* Firefox/* webaroo/*]
+Parent=Webaroo
+Browser="Webaroo"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Word Press
+
+[Word Press]
+Parent=DefaultProperties
+Browser="Word Press"
+Alpha=true
+Beta=true
+Win16=true
+Win32=true
+Win64=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+CDF=true
+VBScript=true
+JavaApplets=true
+JavaScript=true
+ActiveXControls=true
+isBanned=true
+isMobileDevice=true
+isSyndicationReader=true
+Crawler=true
+
+[WordPress-B-/2.*]
+Parent=Word Press
+Browser="WordPress-B"
+
+[WordPress-Do-P-/2.*]
+Parent=Word Press
+Browser="WordPress-Do-P"
+
+[BlueCoat ProxySG]
+Parent=Blue Coat Systems
+Browser="BlueCoat ProxySG"
+
+[CerberianDrtrs/*]
+Parent=Blue Coat Systems
+Browser="Cerberian"
+
+[Inne: Mozilla/4.0 (compatible; Cerberian Drtrs*)]
+Parent=Blue Coat Systems
+Browser="Cerberian"
+
+[Mozilla/4.0 (compatible; Cerberian Drtrs*)]
+Parent=Blue Coat Systems
+Browser="Cerberian"
+
+[Mozilla/4.0 (compatible; MSIE 6.0; Bluecoat DRTR)]
+Parent=Blue Coat Systems
+Browser="Bluecoat"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Copyright/Plagiarism
+
+[Copyright/Plagiarism]
+Parent=DefaultProperties
+Browser="Copyright/Plagiarism"
+isBanned=true
+Crawler=true
+
+[BDFetch]
+Parent=Copyright/Plagiarism
+Browser="BDFetch"
+
+[copyright sheriff (*)]
+Parent=Copyright/Plagiarism
+Browser="copyright sheriff"
+
+[CopyRightCheck*]
+Parent=Copyright/Plagiarism
+Browser="CopyRightCheck"
+
+[FairAd Client*]
+Parent=Copyright/Plagiarism
+Browser="FairAd Client"
+
+[iCopyright Conductor*]
+Parent=Copyright/Plagiarism
+Browser="iCopyright Conductor"
+
+[IPiumBot laurion(dot)com]
+Parent=Copyright/Plagiarism
+Browser="IPiumBot"
+
+[IWAgent/*]
+Parent=Copyright/Plagiarism
+Browser="Brand Protect"
+
+[Mozilla/5.0 (compatible; DKIMRepBot/*)]
+Parent=Copyright/Plagiarism
+Browser="DKIMRepBot"
+
+[oBot]
+Parent=Copyright/Plagiarism
+Browser="oBot"
+
+[SlySearch/*]
+Parent=Copyright/Plagiarism
+Browser="SlySearch"
+
+[TurnitinBot/*]
+Parent=Copyright/Plagiarism
+Browser="TurnitinBot"
+
+[TutorGigBot/*]
+Parent=Copyright/Plagiarism
+Browser="TutorGig"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DNS Tools
+
+[DNS Tools]
+Parent=DefaultProperties
+Browser="DNS Tools"
+Crawler=true
+
+[Domain Dossier utility*]
+Parent=DNS Tools
+Browser="Domain Dossier"
+
+[Mozilla/5.0 (compatible; DNS-Digger/*)]
+Parent=DNS Tools
+Browser="DNS-Digger"
+
+[OpenDNS Domain Crawler noc@opendns.com]
+Parent=DNS Tools
+Browser="OpenDNS Domain Crawler"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Download Managers
+
+[Download Managers]
+Parent=DefaultProperties
+Browser="Download Managers"
+Frames=true
+IFrames=true
+Tables=true
+isBanned=true
+Crawler=true
+
+[A1 Website Download/1.* (*) miggibot]
+Parent=Download Managers
+Browser="A1 Website Download"
+
+[AndroidDownloadManager]
+Parent=Download Managers
+Browser="Android Download Manager"
+
+[AutoMate5]
+Parent=Download Managers
+Browser="AutoMate5"
+
+[Beamer*]
+Parent=Download Managers
+Browser="Beamer"
+
+[BitBeamer/*]
+Parent=Download Managers
+Browser="BitBeamer"
+
+[BitTorrent/*]
+Parent=Download Managers
+Browser="BitTorrent"
+
+[DA *]
+Parent=Download Managers
+Browser="Download Accelerator"
+
+[Download Demon*]
+Parent=Download Managers
+Browser="Download Demon"
+
+[Download Express*]
+Parent=Download Managers
+Browser="Download Express"
+
+[Download Master*]
+Parent=Download Managers
+Browser="Download Master"
+
+[Download Ninja*]
+Parent=Download Managers
+Browser="Download Ninja"
+
+[Download Wonder*]
+Parent=Download Managers
+Browser="Download Wonder"
+
+[DownloadSession*]
+Parent=Download Managers
+Browser="DownloadSession"
+
+[EasyDL/*]
+Parent=Download Managers
+Browser="EasyDL"
+
+[FDM 1.x]
+Parent=Download Managers
+Browser="Free Download Manager"
+
+[FlashGet]
+Parent=Download Managers
+Browser="FlashGet"
+
+[FreshDownload/*]
+Parent=Download Managers
+Browser="FreshDownload"
+
+[GetRight/*]
+Parent=Download Managers
+Browser="GetRight"
+
+[GetRightPro/*]
+Parent=Download Managers
+Browser="GetRightPro"
+
+[GetSmart/*]
+Parent=Download Managers
+Browser="GetSmart"
+
+[Go!Zilla*]
+Parent=Download Managers
+Browser="GoZilla"
+
+[Gozilla/*]
+Parent=Download Managers
+Browser="Gozilla"
+
+[Internet Ninja*]
+Parent=Download Managers
+Browser="Internet Ninja"
+
+[Kontiki Client*]
+Parent=Download Managers
+Browser="Kontiki Client"
+
+[lftp/3.2.1]
+Parent=Download Managers
+Browser="lftp"
+
+[LightningDownload/*]
+Parent=Download Managers
+Browser="LightningDownload"
+
+[LMQueueBot/*]
+Parent=Download Managers
+Browser="LMQueueBot"
+
+[MetaProducts Download Express/*]
+Parent=Download Managers
+Browser="Download Express"
+
+[Mozilla/4.0 (compatible; Getleft*)]
+Parent=Download Managers
+Browser="Getleft"
+
+[Myzilla]
+Parent=Download Managers
+Browser="Myzilla"
+
+[Net Vampire/*]
+Parent=Download Managers
+Browser="Net Vampire"
+
+[Net_Vampire*]
+Parent=Download Managers
+Browser="Net_Vampire"
+
+[NetAnts*]
+Parent=Download Managers
+Browser="NetAnts"
+
+[NetPumper*]
+Parent=Download Managers
+Browser="NetPumper"
+
+[NetSucker*]
+Parent=Download Managers
+Browser="NetSucker"
+
+[NetZip Downloader*]
+Parent=Download Managers
+Browser="NetZip Downloader"
+
+[NexTools WebAgent*]
+Parent=Download Managers
+Browser="NexTools WebAgent"
+
+[Offline Downloader*]
+Parent=Download Managers
+Browser="Offline Downloader"
+
+[P3P Client]
+Parent=Download Managers
+Browser="P3P Client"
+
+[PageDown*]
+Parent=Download Managers
+Browser="PageDown"
+
+[PicaLoader*]
+Parent=Download Managers
+Browser="PicaLoader"
+
+[Prozilla*]
+Parent=Download Managers
+Browser="Prozilla"
+
+[RealDownload/*]
+Parent=Download Managers
+Browser="RealDownload"
+
+[sEasyDL/*]
+Parent=Download Managers
+Browser="EasyDL"
+
+[shareaza*]
+Parent=Download Managers
+Browser="shareaza"
+
+[SmartDownload/*]
+Parent=Download Managers
+Browser="SmartDownload"
+
+[SpeedDownload/*]
+Parent=Download Managers
+Browser="Speed Download"
+
+[Star*Downloader/*]
+Parent=Download Managers
+Browser="StarDownloader"
+
+[STEROID Download]
+Parent=Download Managers
+Browser="STEROID Download"
+
+[SuperBot/*]
+Parent=Download Managers
+Browser="SuperBot"
+
+[Vegas95/*]
+Parent=Download Managers
+Browser="Vegas95"
+
+[WebZIP*]
+Parent=Download Managers
+Browser="WebZIP"
+
+[Wget*]
+Parent=Download Managers
+Browser="Wget"
+
+[WinTools]
+Parent=Download Managers
+Browser="WinTools"
+
+[Xaldon WebSpider*]
+Parent=Download Managers
+Browser="Xaldon WebSpider"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; E-Mail Harvesters
+
+[E-Mail Harvesters]
+Parent=DefaultProperties
+Browser="E-Mail Harvesters"
+Frames=true
+IFrames=true
+Tables=true
+isBanned=true
+Crawler=true
+
+[*E-Mail Address Extractor*]
+Parent=E-Mail Harvesters
+Browser="E-Mail Address Extractor"
+
+[*Larbin*]
+Parent=E-Mail Harvesters
+Browser="Larbin"
+
+[*www4mail/*]
+Parent=E-Mail Harvesters
+Browser="www4mail"
+
+[8484 Boston Project*]
+Parent=E-Mail Harvesters
+Browser="8484 Boston Project"
+
+[Atomic_Email]
+Parent=E-Mail Harvesters
+Browser="Atomic_Email"
+
+[Atomic_Email_Hunter/*]
+Parent=E-Mail Harvesters
+Browser="Atomic Email Hunter"
+
+[CherryPicker*/*]
+Parent=E-Mail Harvesters
+Browser="CherryPickerElite"
+
+[Chilkat/*]
+Parent=E-Mail Harvesters
+Browser="Chilkat"
+
+[ContactBot/*]
+Parent=E-Mail Harvesters
+Browser="ContactBot"
+
+[eCatch*]
+Parent=E-Mail Harvesters
+Browser="eCatch"
+
+[EmailCollector*]
+Parent=E-Mail Harvesters
+Browser="E-Mail Collector"
+
+[EMAILsearcher]
+Parent=E-Mail Harvesters
+Browser="EMAILsearcher"
+
+[EmailSiphon*]
+Parent=E-Mail Harvesters
+Browser="E-Mail Siphon"
+
+[EmailWolf*]
+Parent=E-Mail Harvesters
+Browser="EMailWolf"
+
+[Epsilon SoftWorks' MailMunky]
+Parent=E-Mail Harvesters
+Browser="MailMunky"
+
+[ExtractorPro*]
+Parent=E-Mail Harvesters
+Browser="ExtractorPro"
+
+[Franklin Locator*]
+Parent=E-Mail Harvesters
+Browser="Franklin Locator"
+
+[Missigua Locator*]
+Parent=E-Mail Harvesters
+Browser="Missigua Locator"
+
+[Mozilla/4.0 (compatible; Advanced Email Extractor*)]
+Parent=E-Mail Harvesters
+Browser="Advanced Email Extractor"
+
+[Netprospector*]
+Parent=E-Mail Harvesters
+Browser="Netprospector"
+
+[ProWebWalker*]
+Parent=E-Mail Harvesters
+Browser="ProWebWalker"
+
+[sna-0.0.*]
+Parent=E-Mail Harvesters
+Browser="Mike Elliott's E-Mail Harvester"
+
+[WebEnhancer*]
+Parent=E-Mail Harvesters
+Browser="WebEnhancer"
+
+[WebMiner*]
+Parent=E-Mail Harvesters
+Browser="WebMiner"
+
+[ZIBB Crawler (email address / WWW address)]
+Parent=E-Mail Harvesters
+Browser="ZIBB Crawler"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Feeds Blogs
+
+[Feeds Blogs]
+Parent=DefaultProperties
+Browser="Feeds Blogs"
+isSyndicationReader=true
+Crawler=true
+
+[Bloglines Title Fetch/*]
+Parent=Feeds Blogs
+Browser="Bloglines Title Fetch"
+
+[Bloglines/* (http://www.bloglines.com*)]
+Parent=Feeds Blogs
+Browser="BlogLines Web"
+
+[BlogPulse (ISSpider-3.*)]
+Parent=Feeds Blogs
+Browser="BlogPulse"
+
+[BlogPulseLive (support@blogpulse.com)]
+Parent=Feeds Blogs
+Browser="BlogPulseLive"
+
+[blogsearchbot-pumpkin-2]
+Parent=Feeds Blogs
+Browser="blogsearchbot-pumpkin"
+isSyndicationReader=false
+
+[Irish Blogs Aggregator/*1.0*]
+Parent=Feeds Blogs
+Browser="Irish Blogs Aggregator"
+Version=1.0
+MajorVer=1
+MinorVer=0
+
+[kinjabot (http://www.kinja.com; *)]
+Parent=Feeds Blogs
+Browser="kinjabot"
+
+[Net::Trackback/*]
+Parent=Feeds Blogs
+Browser="Net::Trackback"
+
+[Reblog*]
+Parent=Feeds Blogs
+Browser="Reblog"
+
+[WordPress/*]
+Parent=Feeds Blogs
+Browser="WordPress"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Feeds Syndicators
+
+[Feeds Syndicators]
+Parent=DefaultProperties
+Browser="Feeds Syndicators"
+isSyndicationReader=true
+
+[*LinkLint*]
+Parent=Feeds Syndicators
+Browser="LinkLint"
+
+[*NetNewsWire/*]
+Parent=Feeds Syndicators
+
+[*NetVisualize*]
+Parent=Feeds Syndicators
+Browser="NetVisualize"
+
+[AideRSS 2.* (postrank.com)]
+Parent=Feeds Syndicators
+Browser="AideRSS"
+
+[AideRSS/2.0 (aiderss.com)]
+Parent=Feeds Syndicators
+Browser="AideRSS"
+isBanned=true
+
+[Akregator/*]
+Parent=Feeds Syndicators
+Browser="Akregator"
+
+[AppleSyndication/*]
+Parent=Feeds Syndicators
+Browser="Safari RSS"
+Platform=MacOSX
+
+[Cocoal.icio.us/* (*)*]
+Parent=Feeds Syndicators
+Browser="Cocoal.icio.us"
+isBanned=true
+
+[Feed43 Proxy/* (*)]
+Parent=Feeds Syndicators
+Browser="Feed For Free"
+
+[FeedBurner/*]
+Parent=Feeds Syndicators
+Browser="FeedBurner"
+
+[FeedDemon/* (*)]
+Parent=Feeds Syndicators
+Browser="FeedDemon"
+Platform=Win32
+
+[FeedDigest/* (*)]
+Parent=Feeds Syndicators
+Browser="FeedDigest"
+
+[FeedGhost/1.*]
+Parent=Feeds Syndicators
+Browser="FeedGhost"
+Version=1.0
+MajorVer=1
+MinorVer=0
+
+[FeedOnFeeds/0.1.* ( http://minutillo.com/steve/feedonfeeds/)]
+Parent=Feeds Syndicators
+Browser="FeedOnFeeds"
+Version=0.1
+MajorVer=0
+MinorVer=1
+
+[Feedreader * (Powered by Newsbrain)]
+Parent=Feeds Syndicators
+Browser="Newsbrain"
+
+[Feedshow/* (*)]
+Parent=Feeds Syndicators
+Browser="Feedshow"
+
+[Feedster Crawler/?.0; Feedster, Inc.]
+Parent=Feeds Syndicators
+Browser="Feedster"
+
+[GreatNews/1.0]
+Parent=Feeds Syndicators
+Browser="GreatNews"
+Version=1.0
+MajorVer=1
+MinorVer=0
+
+[Gregarius/*]
+Parent=Feeds Syndicators
+Browser="Gregarius"
+
+[intraVnews/*]
+Parent=Feeds Syndicators
+Browser="intraVnews"
+
+[JetBrains Omea Reader*]
+Parent=Feeds Syndicators
+Browser="Omea Reader"
+isBanned=true
+
+[Liferea/1.5* (Linux; *; http://liferea.sf.net/)]
+Parent=Feeds Syndicators
+Browser="Liferea"
+isBanned=true
+
+[livedoor FeedFetcher/0.0* (http://reader.livedoor.com/;*)]
+Parent=Feeds Syndicators
+Browser="FeedFetcher"
+Version=0.0
+MajorVer=0
+MinorVer=0
+
+[MagpieRSS/* (*)]
+Parent=Feeds Syndicators
+Browser="MagpieRSS"
+
+[Mobitype * (compatible; Mozilla/*; MSIE *.*; Windows *)]
+Parent=Feeds Syndicators
+Browser="Mobitype"
+Platform=Win32
+
+[Mozilla/5.0 (*; Rojo *; http://www.rojo.com/corporate/help/agg; *)*]
+Parent=Feeds Syndicators
+Browser="Rojo"
+
+[Mozilla/5.0 (*aggregator:TailRank; http://tailrank.com/robot)*]
+Parent=Feeds Syndicators
+Browser="TailRank"
+
+[Mozilla/5.0 (compatible; MSIE 6.0; Podtech Network; crawler_admin@podtech.net)]
+Parent=Feeds Syndicators
+Browser="Podtech Network"
+
+[Mozilla/5.0 (compatible; Newz Crawler *; http://www.newzcrawler.com/?)]
+Parent=Feeds Syndicators
+Browser="Newz Crawler"
+
+[Mozilla/5.0 (compatible; RSSMicro.com RSS/Atom Feed Robot)]
+Parent=Feeds Syndicators
+Browser="RSSMicro"
+
+[Mozilla/5.0 (compatible;*newstin.com;*)]
+Parent=Feeds Syndicators
+Browser="NewsTin"
+
+[Mozilla/5.0 (RSS Reader Panel)]
+Parent=Feeds Syndicators
+Browser="RSS Reader Panel"
+
+[Mozilla/5.0 (X11; U; Linux*; *; rv:1.*; aggregator:FeedParser; *) Gecko/*]
+Parent=Feeds Syndicators
+Browser="FeedParser"
+
+[Mozilla/5.0 (X11; U; Linux*; *; rv:1.*; aggregator:NewsMonster; *) Gecko/*]
+Parent=Feeds Syndicators
+Browser="NewsMonster"
+
+[Mozilla/5.0 (X11; U; Linux*; *; rv:1.*; aggregator:Rojo; *) Gecko/*]
+Parent=Feeds Syndicators
+Browser="Rojo"
+
+[Mozilla/5.0 NewsFox/*]
+Parent=Feeds Syndicators
+Browser="NewsFox"
+
+[Netvibes (*)]
+Parent=Feeds Syndicators
+Browser="Netvibes"
+
+[NewsAlloy/* (*)]
+Parent=Feeds Syndicators
+Browser="NewsAlloy"
+
+[Omnipelagos*]
+Parent=Feeds Syndicators
+Browser="Omnipelagos"
+
+[Particls]
+Parent=Feeds Syndicators
+Browser="Particls"
+
+[Protopage/* (*)]
+Parent=Feeds Syndicators
+Browser="Protopage"
+
+[PubSub-RSS-Reader/* (*)]
+Parent=Feeds Syndicators
+Browser="PubSub-RSS-Reader"
+
+[RSS Menu/*]
+Parent=Feeds Syndicators
+Browser="RSS Menu"
+
+[RssBandit/*]
+Parent=Feeds Syndicators
+Browser="RssBandit"
+
+[RssBar/1.2*]
+Parent=Feeds Syndicators
+Browser="RssBar"
+Version=1.2
+MajorVer=1
+MinorVer=2
+
+[SharpReader/*]
+Parent=Feeds Syndicators
+Browser="SharpReader"
+
+[SimplePie/*]
+Parent=Feeds Syndicators
+Browser="SimplePie"
+
+[Strategic Board Bot (?http://www.strategicboard.com)]
+Parent=Feeds Syndicators
+Browser="Strategic Board Bot"
+isBanned=true
+
+[TargetYourNews.com bot]
+Parent=Feeds Syndicators
+Browser="TargetYourNews"
+
+[Technoratibot/*]
+Parent=Feeds Syndicators
+Browser="Technoratibot"
+
+[Tumblr/* RSS syndication ( http://www.tumblr.com/) (support@tumblr.com)]
+Parent=Feeds Syndicators
+Browser="Tumblr RSS syndication"
+
+[Windows-RSS-Platform/1.0*]
+Parent=Feeds Syndicators
+Browser="Windows-RSS-Platform"
+Version=1.0
+MajorVer=1
+MinorVer=0
+Win32=true
+
+[Wizz RSS News Reader]
+Parent=Feeds Syndicators
+Browser="Wizz"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; General RSS
+
+[General RSS]
+Parent=DefaultProperties
+Browser="General RSS"
+isSyndicationReader=true
+
+[AideRSS/1.0 (aiderss.com); * subscribers]
+Parent=General RSS
+Browser="AideRSS"
+Version=1.0
+MajorVer=1
+MinorVer=0
+
+[CC Metadata Scaper http://wiki.creativecommons.org/Metadata_Scraper]
+Parent=General RSS
+Browser="CC Metadata Scaper"
+
+[Mozilla/5.0 (compatible) GM RSS Panel]
+Parent=General RSS
+Browser="RSS Panel"
+
+[Mozilla/5.0 http://www.inclue.com; graeme@inclue.com]
+Parent=General RSS
+Browser="Inclue"
+
+[Runnk online rss reader : http://www.runnk.com/ : RSS favorites : RSS ranking : RSS aggregator*]
+Parent=General RSS
+Browser="Ruunk"
+
+[Windows-RSS-Platform/2.0 (MSIE 8.0; Windows NT 6.0)]
+Parent=General RSS
+Browser="Windows-RSS-Platform"
+Platform=WinVista
+
+[Mozilla/5.0 (X11; ?; Linux; *) AppleWebKit/* (KHTML, like Gecko, Safari/*) Arora/0.4]
+Parent=Google Code
+Browser="Arora"
+Version=0.4
+MajorVer=0
+MinorVer=4
+Platform=Linux
+CssVersion=2
+supportsCSS=true
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Validation Checkers
+
+[HTML Validators]
+Parent=DefaultProperties
+Browser="HTML Validators"
+Frames=true
+IFrames=true
+Tables=true
+Crawler=true
+
+[(HTML Validator http://www.searchengineworld.com/validator/)]
+Parent=HTML Validators
+Browser="Search Engine World HTML Validator"
+
+[FeedValidator/1.3]
+Parent=HTML Validators
+Browser="FeedValidator"
+Version=1.3
+MajorVer=1
+MinorVer=3
+
+[Jigsaw/* W3C_CSS_Validator_JFouffa/*]
+Parent=HTML Validators
+Browser="Jigsaw CSS Validator"
+
+[Search Engine World Robots.txt Validator*]
+Parent=HTML Validators
+Browser="Search Engine World Robots.txt Validator"
+
+[W3C_Validator/*]
+Parent=HTML Validators
+Browser="W3C Validator"
+
+[W3CLineMode/*]
+Parent=HTML Validators
+Browser="W3C Line Mode"
+
+[Weblide/2.? beta*]
+Parent=HTML Validators
+Browser="Weblide"
+Version=2.0
+MajorVer=2
+MinorVer=0
+Beta=true
+
+[WebmasterWorld StickyMail Server Header Checker*]
+Parent=HTML Validators
+Browser="WebmasterWorld Server Header Checker"
+
+[WWWC/*]
+Parent=HTML Validators
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Image Crawlers
+
+[Image Crawlers]
+Parent=DefaultProperties
+Browser="Image Crawlers"
+Frames=true
+IFrames=true
+Tables=true
+isBanned=true
+Crawler=true
+
+[*CFNetwork*]
+Parent=Image Crawlers
+Browser="CFNetwork"
+
+[*PhotoStickies/*]
+Parent=Image Crawlers
+Browser="PhotoStickies"
+
+[Camcrawler*]
+Parent=Image Crawlers
+Browser="Camcrawler"
+
+[CydralSpider/*]
+Parent=Image Crawlers
+Browser="Cydral Web Image Search"
+isBanned=true
+
+[Der gro\xdfe BilderSauger*]
+Parent=Image Crawlers
+Browser="Gallery Grabber"
+
+[Extreme Picture Finder]
+Parent=Image Crawlers
+Browser="Extreme Picture Finder"
+
+[FLATARTS_FAVICO]
+Parent=Image Crawlers
+Browser="FlatArts Favorites Icon Tool"
+
+[HTML2JPG Blackbox, http://www.html2jpg.com]
+Parent=Image Crawlers
+Browser="HTML2JPG"
+
+[IconSurf/2.*]
+Parent=Image Crawlers
+Browser="IconSurf"
+
+[kalooga/KaloogaBot*]
+Parent=Image Crawlers
+Browser="KaloogaBot"
+
+[Mister PIX*]
+Parent=Image Crawlers
+Browser="Mister PIX"
+
+[Mozilla/5.0 (Macintosh; U; *Mac OS X; *) AppleWebKit/* (*) Pandora/2.*]
+Parent=Image Crawlers
+Browser="Pandora"
+
+[naoFavicon4IE*]
+Parent=Image Crawlers
+Browser="naoFavicon4IE"
+
+[pixfinder/*]
+Parent=Image Crawlers
+Browser="pixfinder"
+
+[rssImagesBot/0.1 (*http://herbert.groot.jebbink.nl/?app=rssImages)]
+Parent=Image Crawlers
+Browser="rssImagesBot"
+
+[Web Image Collector*]
+Parent=Image Crawlers
+Browser="Web Image Collector"
+
+[WebImages * (?http://herbert.groot.jebbink.nl/?app=WebImages?)]
+Parent=Image Crawlers
+Browser="WebImages"
+
+[WebPix*]
+Parent=Image Crawlers
+Browser="Custo"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Link Checkers
+
+[Link Checkers]
+Parent=DefaultProperties
+Browser="Link Checkers"
+Frames=true
+IFrames=true
+Tables=true
+Crawler=true
+
+[!Susie (http://www.sync2it.com/susie)]
+Parent=Link Checkers
+Browser="!Susie"
+
+[*AgentName/*]
+Parent=Link Checkers
+Browser="AgentName"
+
+[*Linkman*]
+Parent=Link Checkers
+Browser="Linkman"
+
+[*LinksManager.com*]
+Parent=Link Checkers
+Browser="LinksManager"
+
+[*Powermarks/*]
+Parent=Link Checkers
+Browser="Powermarks"
+
+[*W3C-checklink/*]
+Parent=Link Checkers
+Browser="W3C Link Checker"
+
+[*Web Link Validator*]
+Parent=Link Checkers
+Browser="Web Link Validator"
+
+[*Zeus*]
+Parent=Link Checkers
+Browser="Zeus"
+isBanned=true
+
+[ActiveBookmark *]
+Parent=Link Checkers
+Browser="ActiveBookmark"
+
+[Bookdog/*]
+Parent=Link Checkers
+Browser="Bookdog"
+
+[Bookmark Buddy*]
+Parent=Link Checkers
+Browser="Bookmark Buddy"
+
+[Bookmark Renewal Check Agent*]
+Parent=Link Checkers
+Browser="Bookmark Renewal Check Agent"
+
+[Bookmark search tool*]
+Parent=Link Checkers
+Browser="Bookmark search tool"
+
+[Bookmark-Manager]
+Parent=Link Checkers
+Browser="Bookmark-Manager"
+
+[Checkbot*]
+Parent=Link Checkers
+Browser="Checkbot"
+
+[CheckLinks/*]
+Parent=Link Checkers
+Browser="CheckLinks"
+
+[CyberSpyder Link Test/*]
+Parent=Link Checkers
+Browser="CyberSpyder Link Test"
+
+[DLC/*]
+Parent=Link Checkers
+Browser="DLC"
+
+[DocWeb Link Crawler (http://doc.php.net)]
+Parent=Link Checkers
+Browser="DocWeb Link Crawler"
+
+[FavOrg]
+Parent=Link Checkers
+Browser="FavOrg"
+
+[Favorites Sweeper v.3.*]
+Parent=Link Checkers
+Browser="Favorites Sweeper"
+
+[FindLinks/*]
+Parent=Link Checkers
+Browser="FindLinks"
+
+[Funnel Web Profiler*]
+Parent=Link Checkers
+Browser="Funnel Web Profiler"
+
+[Html Link Validator (www.lithopssoft.com)]
+Parent=Link Checkers
+Browser="HTML Link Validator"
+
+[IECheck]
+Parent=Link Checkers
+Browser="IECheck"
+
+[JCheckLinks/*]
+Parent=Link Checkers
+Browser="JCheckLinks"
+
+[JRTwine Software Check Favorites Utility]
+Parent=Link Checkers
+Browser="JRTwine"
+
+[Link Valet Online*]
+Parent=Link Checkers
+Browser="Link Valet"
+isBanned=true
+
+[LinkAlarm/*]
+Parent=Link Checkers
+Browser="LinkAlarm"
+
+[Linkbot*]
+Parent=Link Checkers
+Browser="Linkbot"
+
+[LinkChecker/*]
+Parent=Link Checkers
+Browser="LinkChecker"
+
+[LinkextractorPro*]
+Parent=Link Checkers
+Browser="LinkextractorPro"
+isBanned=true
+
+[LinkLint-checkonly/*]
+Parent=Link Checkers
+Browser="LinkLint"
+
+[LinkScan/*]
+Parent=Link Checkers
+Browser="LinkScan"
+
+[LinkSweeper/*]
+Parent=Link Checkers
+Browser="LinkSweeper"
+
+[LinkWalker*]
+Parent=Link Checkers
+Browser="LinkWalker"
+
+[MetaGer-LinkChecker]
+Parent=Link Checkers
+Browser="MetaGer-LinkChecker"
+
+[Mozilla/* (compatible; linktiger/*; *http://www.linktiger.com*)]
+Parent=Link Checkers
+Browser="LinkTiger"
+isBanned=true
+
+[Mozilla/4.0 (Compatible); URLBase*]
+Parent=Link Checkers
+Browser="URLBase"
+
+[Mozilla/4.0 (compatible; Link Utility; http://net-promoter.com)]
+Parent=Link Checkers
+Browser="NetPromoter Link Utility"
+
+[Mozilla/4.0 (compatible; MSIE 6.0; Windows 98) Web Link Validator*]
+Parent=Link Checkers
+Browser="Web Link Validator"
+Win32=true
+
+[Mozilla/4.0 (compatible; MSIE 7.0; Win32) Link Commander 3.0]
+Parent=Link Checkers
+Browser="Link Commander"
+Version=3.0
+MajorVer=3
+MinorVer=0
+Platform=Win32
+
+[Mozilla/4.0 (compatible; smartBot/1.*; checking links; *)]
+Parent=Link Checkers
+Browser="smartBot"
+
+[Mozilla/4.0 (compatible; SuperCleaner*;*)]
+Parent=Link Checkers
+Browser="SuperCleaner"
+
+[Mozilla/5.0 gURLChecker/*]
+Parent=Link Checkers
+Browser="gURLChecker"
+isBanned=true
+
+[Newsgroupreporter LinkCheck]
+Parent=Link Checkers
+Browser="Newsgroupreporter LinkCheck"
+
+[onCHECK Linkchecker von www.scientec.de fuer www.onsinn.de]
+Parent=Link Checkers
+Browser="onCHECK Linkchecker"
+
+[online link validator (http://www.dead-links.com/)]
+Parent=Link Checkers
+Browser="Dead-Links.com"
+isBanned=true
+
+[REL Link Checker*]
+Parent=Link Checkers
+Browser="REL Link Checker"
+
+[RLinkCheker*]
+Parent=Link Checkers
+Browser="RLinkCheker"
+
+[Robozilla/*]
+Parent=Link Checkers
+Browser="Robozilla"
+
+[RPT-HTTPClient/*]
+Parent=Link Checkers
+Browser="RPT-HTTPClient"
+isBanned=true
+
+[SafariBookmarkChecker*(?http://www.coriolis.ch/)]
+Parent=Link Checkers
+Browser="SafariBookmarkChecker"
+Platform=MacOSX
+CssVersion=2
+supportsCSS=true
+
+[Simpy/* (Simpy; http://www.simpy.com/?ref=bot; feedback at simpy dot com)]
+Parent=Link Checkers
+Browser="Simpy"
+
+[SiteBar/*]
+Parent=Link Checkers
+Browser="SiteBar"
+
+[Susie (http://www.sync2it.com/bms/susie.php]
+Parent=Link Checkers
+Browser="Susie"
+
+[URLBase/6.*]
+Parent=Link Checkers
+
+[VSE/*]
+Parent=Link Checkers
+Browser="VSE Link Tester"
+
+[WebTrends Link Analyzer]
+Parent=Link Checkers
+Browser="WebTrends Link Analyzer"
+
+[WorQmada/*]
+Parent=Link Checkers
+Browser="WorQmada"
+
+[Xenu* Link Sleuth*]
+Parent=Link Checkers
+Browser="Xenu's Link Sleuth"
+isBanned=true
+
+[Z-Add Link Checker*]
+Parent=Link Checkers
+Browser="Z-Add Link Checker"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Microsoft
+
+[Microsoft]
+Parent=DefaultProperties
+Browser="Microsoft"
+isBanned=true
+
+[Live (http://www.live.com/)]
+Parent=Microsoft
+Browser="Microsoft Live"
+isBanned=false
+isSyndicationReader=true
+
+[MFC Foundation Class Library*]
+Parent=Microsoft
+Browser="MFC Foundation Class Library"
+
+[MFHttpScan]
+Parent=Microsoft
+Browser="MFHttpScan"
+
+[Microsoft BITS/*]
+Parent=Microsoft
+Browser="BITS"
+
+[Microsoft Data Access Internet Publishing Provider Cache Manager]
+Parent=Microsoft
+Browser="MS IPP"
+
+[Microsoft Data Access Internet Publishing Provider DAV*]
+Parent=Microsoft
+Browser="MS IPP DAV"
+
+[Microsoft Data Access Internet Publishing Provider Protocol Discovery]
+Parent=Microsoft
+Browser="MS IPPPD"
+
+[Microsoft Internet Explorer]
+Parent=Microsoft
+Browser="Fake IE"
+
+[Microsoft Office Existence Discovery]
+Parent=Microsoft
+Browser="Microsoft Office Existence Discovery"
+
+[Microsoft Office Protocol Discovery]
+Parent=Microsoft
+Browser="MS OPD"
+
+[Microsoft Office/* (*Picture Manager*)]
+Parent=Microsoft
+Browser="Microsoft Office Picture Manager"
+
+[Microsoft URL Control*]
+Parent=Microsoft
+Browser="Microsoft URL Control"
+
+[Microsoft Visio MSIE]
+Parent=Microsoft
+Browser="Microsoft Visio"
+
+[Microsoft-WebDAV-MiniRedir/*]
+Parent=Microsoft
+Browser="Microsoft-WebDAV"
+
+[Mozilla/5.0 (Macintosh; Intel Mac OS X) Excel/12.*]
+Parent=Microsoft
+Browser="Microsoft Excel"
+Version=12.0
+MajorVer=12
+MinorVer=0
+Platform=MacOSX
+
+[MSN Feed Manager]
+Parent=Microsoft
+Browser="MSN Feed Manager"
+isBanned=false
+isSyndicationReader=true
+
+[MSProxy/*]
+Parent=Microsoft
+Browser="MS Proxy"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Miscellaneous Browsers
+
+[Miscellaneous Browsers]
+Parent=DefaultProperties
+Browser="Miscellaneous Browsers"
+Frames=true
+Tables=true
+Cookies=true
+
+[*Amiga*]
+Parent=Miscellaneous Browsers
+Browser="Amiga"
+Platform=Amiga
+
+[*avantbrowser*]
+Parent=Miscellaneous Browsers
+Browser="Avant Browser"
+
+[12345]
+Parent=Miscellaneous Browsers
+Browser="12345"
+isBanned=true
+
+[1st ZipCommander (Net) - http://www.zipcommander.com/]
+Parent=Miscellaneous Browsers
+Browser="1st ZipCommander"
+
+[Ace Explorer]
+Parent=Miscellaneous Browsers
+Browser="Ace Explorer"
+
+[Enigma Browser*]
+Parent=Miscellaneous Browsers
+Browser="Enigma Browser"
+
+[EVE-minibrowser/*]
+Parent=Miscellaneous Browsers
+Browser="EVE-minibrowser"
+IFrames=false
+Tables=false
+BackgroundSounds=false
+VBScript=false
+JavaApplets=false
+JavaScript=false
+ActiveXControls=false
+isBanned=false
+Crawler=false
+
+[Godzilla/* (Basic*; *; Commodore C=64; *; rv:1.*)*]
+Parent=Miscellaneous Browsers
+Browser="Godzilla"
+
+[GreenBrowser]
+Parent=Miscellaneous Browsers
+Browser="GreenBrowser"
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+VBScript=true
+JavaApplets=true
+JavaScript=true
+ActiveXControls=true
+CssVersion=2
+supportsCSS=true
+
+[Kopiczek/* (WyderOS*; *)]
+Parent=Miscellaneous Browsers
+Browser="Kopiczek"
+Platform=WyderOS
+IFrames=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/* (*) - BrowseX (*)]
+Parent=Miscellaneous Browsers
+Browser="BrowseX"
+
+[Mozilla/* (Win32;*Escape?*; ?)]
+Parent=Miscellaneous Browsers
+Browser="Escape"
+Platform=Win32
+
+[Mozilla/4.0 (compatible; ibisBrowser)]
+Parent=Miscellaneous Browsers
+Browser="ibisBrowser"
+
+[Mozilla/5.0 (Macintosh; ?; PPC Mac OS X;*) AppleWebKit/* (*) HistoryHound/*]
+Parent=Miscellaneous Browsers
+Browser="HistoryHound"
+
+[NetRecorder*]
+Parent=Miscellaneous Browsers
+Browser="NetRecorder"
+
+[NetSurf*]
+Parent=Miscellaneous Browsers
+Browser="NetSurf"
+
+[ogeb browser , Version 1.1.0]
+Parent=Miscellaneous Browsers
+Browser="ogeb browser"
+Version=1.1
+MajorVer=1
+MinorVer=1
+
+[SCEJ PSP BROWSER 0102pspNavigator]
+Parent=Miscellaneous Browsers
+Browser="Wipeout Pure"
+
+[SlimBrowser]
+Parent=Miscellaneous Browsers
+Browser="SlimBrowser"
+
+[WWW_Browser/*]
+Parent=Miscellaneous Browsers
+Browser="WWW Browser"
+Version=1.69
+MajorVer=1
+MinorVer=69
+Platform=Win16
+CssVersion=3
+supportsCSS=true
+
+[*Netcraft Webserver Survey*]
+Parent=Netcraft
+Browser="Netcraft Webserver Survey"
+isBanned=true
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Offline Browsers
+
+[Offline Browsers]
+Parent=DefaultProperties
+Browser="Offline Browsers"
+Frames=true
+Tables=true
+Cookies=true
+isBanned=true
+Crawler=true
+
+[*Check&Get*]
+Parent=Offline Browsers
+Browser="Check&Get"
+
+[*HTTrack*]
+Parent=Offline Browsers
+Browser="HTTrack"
+
+[*MSIECrawler*]
+Parent=Offline Browsers
+Browser="IE Offline Browser"
+
+[*TweakMASTER*]
+Parent=Offline Browsers
+Browser="TweakMASTER"
+
+[BackStreet Browser *]
+Parent=Offline Browsers
+Browser="BackStreet Browser"
+
+[Go-Ahead-Got-It*]
+Parent=Offline Browsers
+Browser="Go Ahead Got-It"
+
+[iGetter/*]
+Parent=Offline Browsers
+Browser="iGetter"
+
+[Teleport*]
+Parent=Offline Browsers
+Browser="Teleport"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Online Scanners
+
+[Online Scanners]
+Parent=DefaultProperties
+Browser="Online Scanners"
+isBanned=true
+
+[JoeDog/* (X11; I; Siege *)]
+Parent=Online Scanners
+Browser="JoeDog"
+isBanned=false
+
+[Morfeus Fucking Scanner]
+Parent=Online Scanners
+Browser="Morfeus Fucking Scanner"
+
+[Mozilla/4.0 (compatible; Trend Micro tmdr 1.*]
+Parent=Online Scanners
+Browser="Trend Micro"
+
+[Titanium 2005 (4.02.01)]
+Parent=Online Scanners
+Browser="Panda Antivirus Titanium"
+
+[virus_detector*]
+Parent=Online Scanners
+Browser="Secure Computing Corporation"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Proxy Servers
+
+[Proxy Servers]
+Parent=DefaultProperties
+Browser="Proxy Servers"
+isBanned=true
+
+[*squid*]
+Parent=Proxy Servers
+Browser="Squid"
+
+[Anonymisiert*]
+Parent=Proxy Servers
+Browser="Anonymizied"
+
+[Anonymizer/*]
+Parent=Proxy Servers
+Browser="Anonymizer"
+
+[Anonymizied*]
+Parent=Proxy Servers
+Browser="Anonymizied"
+
+[Anonymous*]
+Parent=Proxy Servers
+Browser="Anonymous"
+
+[Anonymous/*]
+Parent=Proxy Servers
+Browser="Anonymous"
+
+[CE-Preload]
+Parent=Proxy Servers
+Browser="CE-Preload"
+
+[http://Anonymouse.org/*]
+Parent=Proxy Servers
+Browser="Anonymouse"
+
+[IE/6.01 (CP/M; 8-bit*)]
+Parent=Proxy Servers
+Browser="Squid"
+
+[Mozilla/* (TuringOS; Turing Machine; 0.0)]
+Parent=Proxy Servers
+Browser="Anonymizer"
+
+[Mozilla/4.0 (compatible; MSIE ?.0; SaferSurf*)]
+Parent=Proxy Servers
+Browser="SaferSurf"
+
+[Mozilla/5.0 (compatible; del.icio.us-thumbnails/*; *) KHTML/* (like Gecko)]
+Parent=Proxy Servers
+Browser="Yahoo!"
+isBanned=true
+Crawler=true
+
+[Nutscrape]
+Parent=Proxy Servers
+Browser="Squid"
+
+[Nutscrape/* (CP/M; 8-bit*)]
+Parent=Proxy Servers
+Browser="Squid"
+
+[Privoxy/*]
+Parent=Proxy Servers
+Browser="Privoxy"
+
+[ProxyTester*]
+Parent=Proxy Servers
+Browser="ProxyTester"
+isBanned=true
+Crawler=true
+
+[SilentSurf*]
+Parent=Proxy Servers
+Browser="SilentSurf"
+
+[SmallProxy*]
+Parent=Proxy Servers
+Browser="SmallProxy"
+
+[Space*Bison/*]
+Parent=Proxy Servers
+Browser="Proxomitron"
+
+[Sqworm/*]
+Parent=Proxy Servers
+Browser="Websense"
+
+[SurfControl]
+Parent=Proxy Servers
+Browser="SurfControl"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Research Projects
+
+[Research Projects]
+Parent=DefaultProperties
+Browser="Research Projects"
+isBanned=true
+Crawler=true
+
+[*research*]
+Parent=Research Projects
+
+[AcadiaUniversityWebCensusClient]
+Parent=Research Projects
+Browser="AcadiaUniversityWebCensusClient"
+
+[Amico Alpha * (*) Gecko/* AmicoAlpha/*]
+Parent=Research Projects
+Browser="Amico Alpha"
+
+[annotate_google; http://ponderer.org/*]
+Parent=Research Projects
+Browser="Annotate Google"
+
+[CMS crawler (?http://buytaert.net/crawler/)]
+Parent=Research Projects
+
+[e-SocietyRobot(http://www.yama.info.waseda.ac.jp/~yamana/es/)]
+Parent=Research Projects
+Browser="e-SocietyRobot"
+
+[Forschungsportal/*]
+Parent=Research Projects
+Browser="Forschungsportal"
+
+[Gulper Web *]
+Parent=Research Projects
+Browser="Gulper Web Bot"
+
+[HooWWWer/*]
+Parent=Research Projects
+Browser="HooWWWer"
+
+[http://buytaert.net/crawler]
+Parent=Research Projects
+
+[inetbot/* (?http://www.inetbot.com/bot.html)]
+Parent=Research Projects
+Browser="inetbot"
+
+[IRLbot/*]
+Parent=Research Projects
+Browser="IRLbot"
+
+[JUST-CRAWLER(*)]
+Parent=Research Projects
+Browser="JUST-CRAWLER"
+
+[Lachesis]
+Parent=Research Projects
+Browser="Lachesis"
+
+[Mozilla/5.0 (compatible; nextthing.org/*)]
+Parent=Research Projects
+Browser="nextthing.org"
+Version=1.0
+MajorVer=1
+MinorVer=0
+
+[Mozilla/5.0 (compatible; Theophrastus/*)]
+Parent=Research Projects
+Browser="Theophrastus"
+
+[Mozilla/5.0 (compatible; Webscan v0.*; http://otc.dyndns.org/webscan/)]
+Parent=Research Projects
+Browser="Webscan"
+
+[MQbot*]
+Parent=Research Projects
+Browser="MQbot"
+
+[OutfoxBot/*]
+Parent=Research Projects
+Browser="OutfoxBot"
+
+[polybot?*]
+Parent=Research Projects
+Browser="Polybot"
+
+[Shim?Crawler*]
+Parent=Research Projects
+Browser="Shim Crawler"
+
+[Steeler/*]
+Parent=Research Projects
+Browser="Steeler"
+
+[Taiga web spider]
+Parent=Research Projects
+Browser="Taiga"
+
+[Theme Spider*]
+Parent=Research Projects
+Browser="Theme Spider"
+
+[UofTDB_experiment* (leehyun@cs.toronto.edu)]
+Parent=Research Projects
+Browser="UofTDB Experiment"
+
+[USyd-NLP-Spider*]
+Parent=Research Projects
+Browser="USyd-NLP-Spider"
+
+[woriobot*]
+Parent=Research Projects
+Browser="woriobot"
+
+[wwwster/* (Beta, mailto:gue@cis.uni-muenchen.de)]
+Parent=Research Projects
+Browser="wwwster"
+Beta=true
+
+[Zao-Crawler]
+Parent=Research Projects
+Browser="Zao-Crawler"
+
+[Zao/*]
+Parent=Research Projects
+Browser="Zao"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Rippers
+
+[Rippers]
+Parent=DefaultProperties
+Browser="Rippers"
+Frames=true
+IFrames=true
+Tables=true
+isBanned=true
+Crawler=true
+
+[*grub*]
+Parent=Rippers
+Browser="grub"
+
+[*ickHTTP*]
+Parent=Rippers
+Browser="IP*Works"
+
+[*java*]
+Parent=Rippers
+
+[*libwww-perl*]
+Parent=Rippers
+Browser="libwww-perl"
+
+[*WebGrabber*]
+Parent=Rippers
+
+[*WinHttpRequest*]
+Parent=Rippers
+Browser="WinHttp"
+
+[3D-FTP/*]
+Parent=Rippers
+Browser="3D-FTP"
+
+[3wGet/*]
+Parent=Rippers
+Browser="3wGet"
+
+[ActiveRefresh*]
+Parent=Rippers
+Browser="ActiveRefresh"
+
+[Ad Muncher*]
+Parent=Rippers
+Browser="Ad Muncher"
+
+[Artera (Version *)]
+Parent=Rippers
+Browser="Artera"
+
+[AutoHotkey]
+Parent=Rippers
+Browser="AutoHotkey"
+
+[b2w/*]
+Parent=Rippers
+Browser="b2w"
+
+[BasicHTTP/*]
+Parent=Rippers
+Browser="BasicHTTP"
+
+[BlockNote.Net]
+Parent=Rippers
+Browser="BlockNote.Net"
+
+[CAST]
+Parent=Rippers
+Browser="CAST"
+
+[CFNetwork/*]
+Parent=Rippers
+Browser="CFNetwork"
+
+[CFSCHEDULE*]
+Parent=Rippers
+Browser="ColdFusion Task Scheduler"
+
+[CobWeb/*]
+Parent=Rippers
+Browser="CobWeb"
+
+[ColdFusion*]
+Parent=Rippers
+Browser="ColdFusion"
+
+[Crawl_Application]
+Parent=Rippers
+Browser="Crawl_Application"
+
+[CTerm/*]
+Parent=Rippers
+Browser="CTerm"
+
+[curl*]
+Parent=Rippers
+Browser="cURL"
+
+[Custo*]
+Parent=Rippers
+Browser="Custo"
+
+[DataCha0s/*]
+Parent=Rippers
+Browser="DataCha0s"
+
+[DeepIndexer*]
+Parent=Rippers
+Browser="DeepIndexer"
+
+[DISCo Pump *]
+Parent=Rippers
+Browser="DISCo Pump"
+
+[eStyleSearch * (compatible; MSIE 6.0; Windows NT 5.0)]
+Parent=Rippers
+Browser="eStyleSearch"
+Win32=true
+
+[ezic.com http agent *]
+Parent=Rippers
+Browser="Ezic.com"
+
+[fetch libfetch/*]
+Parent=Rippers
+
+[FGet*]
+Parent=Rippers
+Browser="FGet"
+
+[Flaming AttackBot*]
+Parent=Rippers
+Browser="Flaming AttackBot"
+
+[Foobot*]
+Parent=Rippers
+Browser="Foobot"
+
+[GameSpyHTTP/*]
+Parent=Rippers
+Browser="GameSpyHTTP"
+
+[gnome-vfs/*]
+Parent=Rippers
+Browser="gnome-vfs"
+
+[Harvest/*]
+Parent=Rippers
+Browser="Harvest"
+
+[hcat/*]
+Parent=Rippers
+Browser="hcat"
+
+[HLoader]
+Parent=Rippers
+Browser="HLoader"
+
+[Holmes/*]
+Parent=Rippers
+Browser="Holmes"
+
+[HTMLParser/*]
+Parent=Rippers
+Browser="HTMLParser"
+
+[http generic]
+Parent=Rippers
+Browser="http generic"
+
+[http://arachnode.net*]
+Parent=Rippers
+Browser="arachnode"
+
+[httpclient*]
+Parent=Rippers
+
+[httperf/*]
+Parent=Rippers
+Browser="httperf"
+
+[HTTPFetch/*]
+Parent=Rippers
+Browser="HTTPFetch"
+
+[HTTPGrab]
+Parent=Rippers
+Browser="HTTPGrab"
+
+[HttpSession]
+Parent=Rippers
+Browser="HttpSession"
+
+[httpunit/*]
+Parent=Rippers
+Browser="HttpUnit"
+
+[ICE_GetFile]
+Parent=Rippers
+Browser="ICE_GetFile"
+
+[iexplore.exe]
+Parent=Rippers
+
+[Inet - Eureka App]
+Parent=Rippers
+Browser="Inet - Eureka App"
+
+[INetURL/*]
+Parent=Rippers
+Browser="INetURL"
+
+[InetURL:/*]
+Parent=Rippers
+Browser="InetURL"
+
+[Internet Exploiter/*]
+Parent=Rippers
+
+[Internet Explore *]
+Parent=Rippers
+Browser="Fake IE"
+
+[Internet Explorer *]
+Parent=Rippers
+Browser="Fake IE"
+
+[IP*Works!*/*]
+Parent=Rippers
+Browser="IP*Works!"
+
+[IrssiUrlLog/*]
+Parent=Rippers
+Browser="IrssiUrlLog"
+
+[JPluck/*]
+Parent=Rippers
+Browser="JPluck"
+
+[Kapere (http://www.kapere.com)]
+Parent=Rippers
+Browser="Kapere"
+
+[LeechFTP]
+Parent=Rippers
+Browser="LeechFTP"
+
+[LeechGet*]
+Parent=Rippers
+Browser="LeechGet"
+
+[libcurl-agent/*]
+Parent=Rippers
+Browser="libcurl"
+
+[libWeb/clsHTTP*]
+Parent=Rippers
+Browser="libWeb/clsHTTP"
+
+[lwp*]
+Parent=Rippers
+
+[MFC_Tear_Sample]
+Parent=Rippers
+Browser="MFC_Tear_Sample"
+
+[Moozilla]
+Parent=Rippers
+Browser="Moozilla"
+
+[MovableType/*]
+Parent=Rippers
+Browser="MovableType Web Log"
+
+[Mozilla/2.0 (compatible; NEWT ActiveX; Win32)]
+Parent=Rippers
+Browser="NEWT ActiveX"
+Platform=Win32
+
+[Mozilla/3.0 (compatible)]
+Parent=Rippers
+
+[Mozilla/3.0 (compatible; Indy Library)]
+Parent=Rippers
+Cookies=true
+
+[Mozilla/3.01 (compatible;)]
+Parent=Rippers
+
+[Mozilla/4.0 (compatible; BorderManager*)]
+Parent=Rippers
+Browser="Novell BorderManager"
+
+[Mozilla/4.0 (compatible;)]
+Parent=Rippers
+
+[Mozilla/5.0 (compatible; IPCheck Server Monitor*)]
+Parent=Rippers
+Browser="IPCheck Server Monitor"
+
+[OCN-SOC/*]
+Parent=Rippers
+Browser="OCN-SOC"
+
+[Offline Explorer*]
+Parent=Rippers
+Browser="Offline Explorer"
+
+[Open Web Analytics Bot*]
+Parent=Rippers
+Browser="Open Web Analytics Bot"
+
+[OSSProxy*]
+Parent=Rippers
+Browser="OSSProxy"
+
+[Pageload*]
+Parent=Rippers
+Browser="PageLoad"
+
+[PageNest/*]
+Parent=Rippers
+Browser="PageNest"
+
+[pavuk/*]
+Parent=Rippers
+Browser="Pavuk"
+
+[PEAR HTTP_Request*]
+Parent=Rippers
+Browser="PEAR-PHP"
+
+[PHP*]
+Parent=Rippers
+Browser="PHP"
+
+[PigBlock (Windows NT 5.1; U)*]
+Parent=Rippers
+Browser="PigBlock"
+Win32=true
+
+[Pockey*]
+Parent=Rippers
+Browser="Pockey-GetHTML"
+
+[POE-Component-Client-HTTP/*]
+Parent=Rippers
+Browser="POE-Component-Client-HTTP"
+
+[PycURL/*]
+Parent=Rippers
+Browser="PycURL"
+
+[Python*]
+Parent=Rippers
+Browser="Python"
+
+[RepoMonkey*]
+Parent=Rippers
+Browser="RepoMonkey"
+
+[SBL-BOT*]
+Parent=Rippers
+Browser="BlackWidow"
+
+[ScoutAbout*]
+Parent=Rippers
+Browser="ScoutAbout"
+
+[sherlock/*]
+Parent=Rippers
+Browser="Sherlock"
+
+[SiteParser/*]
+Parent=Rippers
+Browser="SiteParser"
+
+[SiteSnagger*]
+Parent=Rippers
+Browser="SiteSnagger"
+
+[SiteSucker/*]
+Parent=Rippers
+Browser="SiteSucker"
+
+[SiteWinder*]
+Parent=Rippers
+Browser="SiteWinder"
+
+[Snoopy*]
+Parent=Rippers
+Browser="Snoopy"
+
+[SOFTWING_TEAR_AGENT*]
+Parent=Rippers
+Browser="AspTear"
+
+[SuperHTTP/*]
+Parent=Rippers
+Browser="SuperHTTP"
+
+[Tcl http client package*]
+Parent=Rippers
+Browser="Tcl http client package"
+
+[Twisted PageGetter]
+Parent=Rippers
+Browser="Twisted PageGetter"
+
+[URL2File/*]
+Parent=Rippers
+Browser="URL2File"
+
+[UtilMind HTTPGet]
+Parent=Rippers
+Browser="UtilMind HTTPGet"
+
+[VCI WebViewer*]
+Parent=Rippers
+Browser="VCI WebViewer"
+
+[W3CRobot/*]
+Parent=Rippers
+Browser="W3CRobot"
+
+[Web Downloader*]
+Parent=Rippers
+Browser="Web Downloader"
+
+[Web Downloader/*]
+Parent=Rippers
+Browser="Web Downloader"
+
+[Web Magnet*]
+Parent=Rippers
+Browser="Web Magnet"
+
+[WebAuto/*]
+Parent=Rippers
+
+[webbandit/*]
+Parent=Rippers
+Browser="webbandit"
+
+[WebCopier*]
+Parent=Rippers
+Browser="WebCopier"
+
+[WebDownloader*]
+Parent=Rippers
+Browser="WebDownloader"
+
+[WebFetch]
+Parent=Rippers
+Browser="WebFetch"
+
+[webfetch/*]
+Parent=Rippers
+Browser="WebFetch"
+
+[WebGatherer*]
+Parent=Rippers
+Browser="WebGatherer"
+
+[WebGet]
+Parent=Rippers
+Browser="WebGet"
+
+[WebReaper*]
+Parent=Rippers
+Browser="WebReaper"
+
+[WebRipper]
+Parent=Rippers
+Browser="WebRipper"
+
+[WebSauger*]
+Parent=Rippers
+Browser="WebSauger"
+
+[Website Downloader*]
+Parent=Rippers
+Browser="Website Downloader"
+
+[Website eXtractor*]
+Parent=Rippers
+Browser="Website eXtractor"
+
+[Website Quester]
+Parent=Rippers
+Browser="Website Quester"
+
+[WebsiteExtractor*]
+Parent=Rippers
+Browser="Website eXtractor"
+
+[WebSnatcher*]
+Parent=Rippers
+Browser="WebSnatcher"
+
+[Webster Pro*]
+Parent=Rippers
+Browser="Webster Pro"
+
+[WebStripper*]
+Parent=Rippers
+Browser="WebStripper"
+
+[WebWhacker*]
+Parent=Rippers
+Browser="WebWhacker"
+
+[WinHttp*]
+Parent=Rippers
+
+[WinScripter iNet Tools]
+Parent=Rippers
+Browser="WinScripter iNet Tools"
+
+[WWW-Mechanize/*]
+Parent=Rippers
+Browser="WWW-Mechanize"
+
+[Zend_Http_Client]
+Parent=Rippers
+Browser="Zend_Http_Client"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Site Monitors
+
+[Site Monitors]
+Parent=DefaultProperties
+Browser="Site Monitors"
+Cookies=true
+isBanned=true
+Crawler=true
+
+[*EasyRider*]
+Parent=Site Monitors
+Browser="EasyRider"
+
+[*maxamine.com--robot*]
+Parent=Site Monitors
+Browser="maxamine.com--robot"
+isBanned=true
+
+[*WebMon ?.*]
+Parent=Site Monitors
+Browser="WebMon"
+
+[Kenjin Spider*]
+Parent=Site Monitors
+Browser="Kenjin Spider"
+
+[Kevin http://*]
+Parent=Site Monitors
+Browser="Kevin"
+isBanned=true
+
+[Mozilla/4.0 (compatible; ChangeDetection/*]
+Parent=Site Monitors
+Browser="ChangeDetection"
+
+[Myst Monitor Service v*]
+Parent=Site Monitors
+Browser="Myst Monitor Service"
+
+[Net Probe]
+Parent=Site Monitors
+Browser="Net Probe"
+
+[NetMechanic*]
+Parent=Site Monitors
+Browser="NetMechanic"
+
+[NetReality*]
+Parent=Site Monitors
+Browser="NetReality"
+
+[Pingdom GIGRIB*]
+Parent=Site Monitors
+Browser="Pingdom"
+
+[Site Valet Online*]
+Parent=Site Monitors
+Browser="Site Valet"
+isBanned=true
+
+[SITECHECKER]
+Parent=Site Monitors
+Browser="SITECHECKER"
+
+[sitemonitor@dnsvr.com/*]
+Parent=Site Monitors
+Browser="ZoneEdit Failover Monitor"
+isBanned=false
+
+[UpTime Checker*]
+Parent=Site Monitors
+Browser="UpTime Checker"
+
+[URL Control*]
+Parent=Site Monitors
+Browser="URL Control"
+
+[URL_Access/*]
+Parent=Site Monitors
+
+[URLCHECK]
+Parent=Site Monitors
+Browser="URLCHECK"
+
+[URLy Warning*]
+Parent=Site Monitors
+Browser="URLy Warning"
+
+[Webcheck *]
+Parent=Site Monitors
+Browser="Webcheck"
+Version=1.0
+MajorVer=1
+MinorVer=0
+
+[WebPatrol/*]
+Parent=Site Monitors
+Browser="WebPatrol"
+
+[websitepulse checker/*]
+Parent=Site Monitors
+Browser="websitepulse checker"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Social Bookmarkers
+
+[Social Networking]
+Parent=DefaultProperties
+Browser="Social Bookmarkers"
+Frames=true
+Tables=true
+Cookies=true
+JavaScript=true
+
+[BookmarkBase(2/;http://bookmarkbase.com)]
+Parent=Social Networking
+Browser="BookmarkBase"
+
+[Cocoal.icio.us/1.0 (v43) (Mac OS X; http://www.scifihifi.com/cocoalicious)]
+Parent=Social Networking
+Browser="Cocoalicious"
+
+[Mozilla/5.0 (*) Gecko/* Firefox/2.0 OneRiot/1.0 (http://www.oneriot.com) ]
+Parent=Social Networking
+Browser="OneRiot"
+isBanned=true
+
+[Mozilla/5.0 (compatible; FriendFeedBot/0.*; Http://friendfeed.com/about/bot)]
+Parent=Social Networking
+Browser="FriendFeedBot"
+
+[Mozilla/5.0 (compatible; Twitturls; http://twitturls.com)]
+Parent=Social Networking
+Browser="Twitturls"
+isBanned=true
+
+[SocialSpider-Finder/0.*]
+Parent=Social Networking
+Browser="SocialSpider-Finder"
+
+[Twitturly*]
+Parent=Social Networking
+Browser="Twitturly"
+isBanned=true
+
+[WinkBot/*]
+Parent=Social Networking
+Browser="WinkBot"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Translators
+
+[Translators]
+Parent=DefaultProperties
+Browser="Translators"
+Frames=true
+Tables=true
+Cookies=true
+
+[Seram Server]
+Parent=Translators
+Browser="Seram Server"
+
+[TeragramWebcrawler/*]
+Parent=Translators
+Browser="TeragramWebcrawler"
+Version=1.0
+MajorVer=1
+MinorVer=0
+
+[WebIndexer/* (Web Indexer; *)]
+Parent=Translators
+Browser="WorldLingo"
+
+[WebTrans]
+Parent=Translators
+Browser="WebTrans"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Version Checkers
+
+[Version Checkers]
+Parent=DefaultProperties
+Browser="Version Checkers"
+Crawler=true
+
+[Automated Browscap.ini Updater. To report issues contact us at http://www.skycomp.ca]
+Parent=Version Checkers
+Browser="Automated Browscap.ini Updater"
+
+[BMC Link Validator (http://www.briansmodelcars.com/links/)]
+Parent=Version Checkers
+Browser="BMC Link Validator"
+MajorVer=1
+MinorVer=0
+Platform=Win2000
+
+[Browscap Mirror System/1.* (browscap.giantrealm.com)]
+Parent=Version Checkers
+Browser="Browscap Mirror"
+
+[Browscap Mirror v1.30]
+Parent=Version Checkers
+Browser="Browscap Mirror"
+
+[Browscap updater]
+Parent=Version Checkers
+Browser="Browscap updater"
+
+[BrowscapUpdater1.0]
+Parent=Version Checkers
+
+[Browser Capabilities Project (http://browsers.garykeith.com; http://browsers.garykeith.com/sitemail/contact-me.asp)]
+Parent=Version Checkers
+Browser="Gary Keith's Version Checker"
+
+[Browser Capabilities Project AutoDownloader; created by Tom Kelleher Consulting, Inc. (tkelleher.com); used with special permission from Gary Joel Keith; uses Microsoft's WinHTTP component]
+Parent=Version Checkers
+Browser="TKC AutoDownloader"
+
+[browsers.garykeith.com browscap.ini bot BETA]
+Parent=Version Checkers
+
+[Code Sample Web Client]
+Parent=Version Checkers
+Browser="Code Sample Web Client"
+
+[Desktop Sidebar*]
+Parent=Version Checkers
+Browser="Desktop Sidebar"
+isBanned=true
+
+[Mono Browser Capabilities Updater*]
+Parent=Version Checkers
+Browser="Mono Browser Capabilities Updater"
+isBanned=true
+
+[PHP Browser Capabilities Project/0.7 socket]
+Parent=Version Checkers
+Browser="PHP Browser Capabilities Project"
+
+[Rewmi/*]
+Parent=Version Checkers
+isBanned=true
+
+[Subtext Version 1.9* - http://subtextproject.com/ (Microsoft Windows NT 5.2.*)]
+Parent=Version Checkers
+Browser="Subtext"
+
+[TherapeuticResearch]
+Parent=Version Checkers
+Browser="TherapeuticResearch"
+
+[UpdateBrowscap*]
+Parent=Version Checkers
+Browser="UpdateBrowscap"
+
+[www.garykeith.com browscap.ini bot*]
+Parent=Version Checkers
+Browser="clarkson.edu "
+
+[www.substancia.com AutoHTTPAgent (ver *)]
+Parent=Version Checkers
+Browser="Substância"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; W3C
+
+[W3C]
+Parent=DefaultProperties
+Browser="W3C"
+Crawler=true
+
+[Jigsaw/* W3C_CSS_Validator*/*]
+Parent=W3C
+Browser="W3C CSS Validator"
+
+[W3C-checklink/*]
+Parent=W3C
+Browser="W3C Link Checker"
+
+[W3C-mobileOK/DDC-*]
+Parent=W3C
+Browser="W3C Mobile Validator"
+isMobileDevice=true
+
+[W3C-WebCon/*]
+Parent=W3C
+Browser="W3C WebCon"
+
+[W3C_Validator/*]
+Parent=W3C
+Browser="W3C Validator"
+
+[W3CLineMode/*]
+Parent=W3C
+Browser="W3C LineMode"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Become
+
+[Become]
+Parent=DefaultProperties
+Browser="Become"
+Frames=true
+Tables=true
+isSyndicationReader=true
+Crawler=true
+
+[*BecomeBot/*]
+Parent=Become
+Browser="BecomeBot"
+
+[*BecomeBot@exava.com*]
+Parent=Become
+Browser="BecomeBot"
+
+[*Exabot@exava.com*]
+Parent=Become
+Browser="Exabot"
+
+[MonkeyCrawl/*]
+Parent=Become
+Browser="MonkeyCrawl"
+
+[Mozilla/5.0 (compatible; BecomeJPBot/2.3; *)]
+Parent=Become
+Browser="BecomeJPBot"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Blue Coat Systems
+
+[Blue Coat Systems]
+Parent=DefaultProperties
+Browser="Blue Coat Systems"
+isBanned=true
+Crawler=true
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Browscap Abusers
+
+[Browscap Abusers]
+Parent=DefaultProperties
+Browser="Browscap Abusers"
+isBanned=true
+
+[Apple-PubSub/*]
+Parent=Browscap Abusers
+Browser="Apple-PubSub"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; FeedHub
+
+[FeedHub]
+Parent=DefaultProperties
+Browser="FeedHub"
+isSyndicationReader=true
+
+[FeedHub FeedDiscovery/1.0 (http://www.feedhub.com)]
+Parent=FeedHub
+Browser="FeedHub FeedDiscovery"
+Version=1.0
+MajorVer=1
+MinorVer=0
+
+[FeedHub FeedFetcher/1.0 (http://www.feedhub.com)]
+Parent=FeedHub
+Browser="FeedHub FeedFetcher"
+Version=1.0
+MajorVer=1
+MinorVer=0
+
+[FeedHub MetaDataFetcher/1.0 (http://www.feedhub.com)]
+Parent=FeedHub
+Browser="FeedHub MetaDataFetcher"
+Version=1.0
+MajorVer=1
+MinorVer=0
+
+[Internet Content Rating Association]
+Parent=DefaultProperties
+Browser=""
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+Crawler=true
+
+[ICRA_label_generator/1.?]
+Parent=Internet Content Rating Association
+Browser="ICRA_label_generator"
+
+[ICRA_Semantic_spider/0.?]
+Parent=Internet Content Rating Association
+Browser="ICRA_Semantic_spider"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; NameProtect
+
+[NameProtect]
+Parent=DefaultProperties
+Browser="NameProtect"
+isBanned=true
+Crawler=true
+
+[abot/*]
+Parent=NameProtect
+Browser="NameProtect"
+
+[NP/*]
+Parent=NameProtect
+Browser="NameProtect"
+
+[NPBot*]
+Parent=NameProtect
+Browser="NameProtect"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netcraft
+
+[Netcraft]
+Parent=DefaultProperties
+Browser="Netcraft"
+isBanned=true
+Crawler=true
+
+[*Netcraft Web Server Survey*]
+Parent=Netcraft
+Browser="Netcraft Webserver Survey"
+isBanned=true
+
+[Mozilla/5.0 (compatible; NetcraftSurveyAgent/1.0; *info@netcraft.com)]
+Parent=Netcraft
+Browser="NetcraftSurveyAgent"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; NewsGator
+
+[NewsGator]
+Parent=DefaultProperties
+Browser="NewsGator"
+isSyndicationReader=true
+
+[MarsEdit*]
+Parent=NewsGator
+Browser="MarsEdit"
+
+[NetNewsWire*/*]
+Parent=NewsGator
+Browser="NetNewsWire"
+Platform=MacOSX
+
+[NewsFire/*]
+Parent=NewsGator
+Browser="NewsFire"
+
+[NewsGator FetchLinks extension/*]
+Parent=NewsGator
+Browser="NewsGator FetchLinks"
+
+[NewsGator/*]
+Parent=NewsGator
+Browser="NewsGator"
+isBanned=true
+
+[NewsGatorOnline/*]
+Parent=NewsGator
+Browser="NewsGatorOnline"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 0.2
+
+[Chrome 0.2]
+Parent=DefaultProperties
+Browser="Chrome"
+Version=0.2
+MinorVer=2
+Beta=true
+Win32=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=3
+supportsCSS=true
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.2.* Safari/*]
+Parent=Chrome 0.2
+Platform=WinXP
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.2.* Safari/*]
+Parent=Chrome 0.2
+Platform=Win2003
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.2.* Safari/*]
+Parent=Chrome 0.2
+Platform=WinVista
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 0.3
+
+[Chrome 0.3]
+Parent=DefaultProperties
+Browser="Chrome"
+Version=0.3
+MinorVer=3
+Beta=true
+Win32=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=3
+supportsCSS=true
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.3.* Safari/*]
+Parent=Chrome 0.3
+Platform=WinXP
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.3.* Safari/*]
+Parent=Chrome 0.3
+Platform=Win2003
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.3.* Safari/*]
+Parent=Chrome 0.3
+Platform=WinVista
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 0.4
+
+[Chrome 0.4]
+Parent=DefaultProperties
+Browser="Chrome"
+Version=0.4
+MinorVer=4
+Win32=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=3
+supportsCSS=true
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.4.* Safari/*]
+Parent=Chrome 0.4
+Platform=WinXP
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.4.* Safari/*]
+Parent=Chrome 0.4
+Platform=Win2003
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.4.* Safari/*]
+Parent=Chrome 0.4
+Platform=WinVista
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 0.5
+
+[Chrome 0.5]
+Parent=DefaultProperties
+Browser="Chrome"
+Version=0.5
+MinorVer=5
+Beta=true
+Win32=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=3
+supportsCSS=true
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.5.* Safari/*]
+Parent=Chrome 0.5
+Platform=WinXP
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.5.* Safari/*]
+Parent=Chrome 0.5
+Platform=Win2003
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.5.* Safari/*]
+Parent=Chrome 0.5
+Platform=WinVista
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 1.0
+
+[Chrome 1.0]
+Parent=DefaultProperties
+Browser="Chrome"
+Version=1.0
+MajorVer=1
+Win32=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=3
+supportsCSS=true
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/1.0.* Safari/*]
+Parent=Chrome 1.0
+Platform=WinXP
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Chrome/1.0.* Safari/*]
+Parent=Chrome 1.0
+Platform=Win2003
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/1.0.* Safari/*]
+Parent=Chrome 1.0
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/1.0.* Safari/*]
+Parent=Chrome 1.0
+Platform=Win7
+
+[Mozilla/5.0 (Windows; U; Windows NT 7.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/1.0.* Safari/*]
+Parent=Chrome 1.0
+Platform=Win7
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 2.0
+
+[Chrome 2.0]
+Parent=DefaultProperties
+Browser="Chrome"
+Version=2.0
+MajorVer=2
+Win32=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=3
+supportsCSS=true
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/2.0.* Safari/*]
+Parent=Chrome 2.0
+Platform=WinXP
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Chrome/2.0.* Safari/*]
+Parent=Chrome 2.0
+Platform=Win2003
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/2.0.* Safari/*]
+Parent=Chrome 2.0
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/2.0.* Safari/*]
+Parent=Chrome 2.0
+Platform=Win7
+
+[Mozilla/5.0 (Windows; U; Windows NT 7.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/2.0.* Safari/*]
+Parent=Chrome 2.0
+Platform=Win7
+
+[Mozilla/5.0 (X11; U; Linux i686*; *) AppleWebKit/* (KHTML, like Gecko) Chrome/2.0.* Safari/*]
+Parent=Chrome 2.0
+Platform=Linux
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 3.0
+
+[Chrome 3.0]
+Parent=DefaultProperties
+Browser="Chrome"
+Version=3.0
+MajorVer=3
+Win32=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=3
+supportsCSS=true
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/3.0.* Safari/*]
+Parent=Chrome 3.0
+Platform=WinXP
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Chrome/3.0.* Safari/*]
+Parent=Chrome 3.0
+Platform=Win2003
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/3.0.* Safari/*]
+Parent=Chrome 3.0
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/3.0.* Safari/*]
+Parent=Chrome 3.0
+Platform=Win7
+
+[Mozilla/5.0 (Windows; U; Windows NT 7.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/3.0.* Safari/*]
+Parent=Chrome 3.0
+Platform=Win7
+
+[Mozilla/5.0 (X11; U; Linux i686*; *) AppleWebKit/* (KHTML, like Gecko) Chrome/3.0.* Safari/*]
+Parent=Chrome 3.0
+Platform=Linux
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 4.0
+
+[Chrome 4.0]
+Parent=DefaultProperties
+Browser="Chrome"
+Version=4.0
+MajorVer=4
+Beta=true
+Win32=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=3
+supportsCSS=true
+
+[Mozilla/5.0 (Macintosh; U; Intel Mac OS X*; *) AppleWebKit/* (KHTML, like Gecko) Chrome/4.0.* Safari/*]
+Parent=Chrome 4.0
+Platform=MacOSX
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/4.0.* Safari/*]
+Parent=Chrome 4.0
+Platform=WinXP
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Chrome/4.0.* Safari/*]
+Parent=Chrome 4.0
+Platform=Win2003
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/4.0.* Safari/*]
+Parent=Chrome 4.0
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/4.0.* Safari/*]
+Parent=Chrome 4.0
+Platform=Win7
+
+[Mozilla/5.0 (Windows; U; Windows NT 7.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/4.0.* Safari/*]
+Parent=Chrome 4.0
+Platform=Win7
+
+[Mozilla/5.0 (X11; U; Linux i686*; *) AppleWebKit/* (KHTML, like Gecko) Chrome/4.0.* Safari/*]
+Parent=Chrome 4.0
+Platform=Linux
+
+[Mozilla/5.0 (X11; U; Linux x86_64; *) AppleWebKit/* (KHTML, like Gecko) Chrome/4.0.* Safari/*]
+Parent=Chrome 4.0
+Win32=false
+Win64=true
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Google Code
+
+[Google Code]
+Parent=DefaultProperties
+Browser="Google Code"
+Tables=true
+Cookies=true
+JavaApplets=true
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Iron 0.2
+
+[Iron 0.2]
+Parent=DefaultProperties
+Browser="Iron"
+Version=0.2
+MinorVer=2
+Win32=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=3
+supportsCSS=true
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.2.* Safari/*]
+Parent=Iron 0.2
+Platform=WinXP
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.2.* Safari/*]
+Parent=Iron 0.2
+Platform=Win2003
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.2.* Safari/*]
+Parent=Iron 0.2
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.1; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.2.* Safari/*]
+Parent=Iron 0.2
+Platform=Win7
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Iron 0.3
+
+[Iron 0.3]
+Parent=DefaultProperties
+Browser="Iron"
+Version=0.3
+MinorVer=3
+Win32=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=3
+supportsCSS=true
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.3.* Safari/*]
+Parent=Iron 0.3
+Platform=WinXP
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.3.* Safari/*]
+Parent=Iron 0.3
+Platform=Win2003
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.3.* Safari/*]
+Parent=Iron 0.3
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.1; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.3.* Safari/*]
+Parent=Iron 0.3
+Platform=Win7
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Iron 0.4
+
+[Iron 0.4]
+Parent=DefaultProperties
+Browser="Iron"
+Version=0.4
+MinorVer=4
+Win32=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=3
+supportsCSS=true
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.4.* Safari/*]
+Parent=Iron 0.4
+Platform=WinXP
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.4.* Safari/*]
+Parent=Iron 0.4
+Platform=Win2003
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.4.* Safari/*]
+Parent=Iron 0.4
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.1; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.4.* Safari/*]
+Parent=Iron 0.4
+Platform=Win7
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Iron 1.0
+
+[Iron 1.0]
+Parent=DefaultProperties
+Browser="Iron"
+Version=1.0
+MajorVer=1
+Win32=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=3
+supportsCSS=true
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Iron/1.0.* Safari/*]
+Parent=Iron 1.0
+Platform=WinXP
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Iron/1.0.* Safari/*]
+Parent=Iron 1.0
+Platform=Win2003
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Iron/1.0.* Safari/*]
+Parent=Iron 1.0
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.1; *) AppleWebKit/* (KHTML, like Gecko) Iron/1.0.* Safari/*]
+Parent=Iron 1.0
+Platform=Win7
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Iron 2.0
+
+[Iron 2.0]
+Parent=DefaultProperties
+Browser="Iron"
+Version=2.0
+MajorVer=2
+Win32=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=3
+supportsCSS=true
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Iron/2.0.* Safari/*]
+Parent=Iron 2.0
+Platform=WinXP
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Iron/2.0.* Safari/*]
+Parent=Iron 2.0
+Platform=Win2003
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Iron/2.0.* Safari/*]
+Parent=Iron 2.0
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.1; *) AppleWebKit/* (KHTML, like Gecko) Iron/2.0.* Safari/*]
+Parent=Iron 2.0
+Platform=Win7
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Media Players
+
+[Media Players]
+Parent=DefaultProperties
+Browser="Media Players"
+Cookies=true
+
+[Microsoft NetShow(TM) Player with RealVideo(R)]
+Parent=Media Players
+Browser="Microsoft NetShow"
+
+[Mozilla/5.0 (Macintosh; U; PPC Mac OS X; *) AppleWebKit/* RealPlayer]
+Parent=Media Players
+Browser="RealPlayer"
+Platform=MacOSX
+
+[MPlayer 0.9*]
+Parent=Media Players
+Browser="MPlayer"
+Version=0.9
+MajorVer=0
+MinorVer=9
+
+[MPlayer 1.*]
+Parent=Media Players
+Browser="MPlayer"
+Version=1.0
+MajorVer=1
+MinorVer=0
+
+[MPlayer HEAD CVS]
+Parent=Media Players
+Browser="MPlayer"
+
+[RealPlayer*]
+Parent=Media Players
+Browser="RealPlayer"
+
+[RMA/*]
+Parent=Media Players
+Browser="RMA"
+
+[VLC media player*]
+Parent=Media Players
+Browser="VLC"
+
+[vobsub]
+Parent=Media Players
+Browser="vobsub"
+isBanned=true
+
+[WinampMPEG/*]
+Parent=Media Players
+Browser="WinAmp"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Microsoft Zune
+
+[Microsoft Zune]
+Parent=DefaultProperties
+Browser=""
+Cookies=true
+
+[Mozilla/4.0 (compatible; MSIE ?.0; Microsoft ZuneHD 4.*)]
+Parent=Microsoft Zune
+Version=4.0
+MajorVer=4
+MinorVer=0
+
+[Mozilla/4.0 (compatible; ZuneHD 4.*)]
+Parent=Microsoft Zune
+Browser="ZuneHD"
+Version=4
+MajorVer=4
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Nintendo
+
+[Nintendo Wii]
+Parent=DefaultProperties
+Browser=""
+isMobileDevice=true
+
+[Opera/* (Nintendo DSi; Opera/*; *; *)]
+Parent=Nintendo Wii
+Browser="DSi"
+
+[Opera/* (Nintendo Wii; U; *)]
+Parent=Nintendo Wii
+Browser="Wii"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Windows Media Player
+
+[Windows Media Player]
+Parent=DefaultProperties
+Browser="Windows Media Player"
+Cookies=true
+
+[NSPlayer/10.*]
+Parent=Windows Media Player
+Version=10.0
+MajorVer=10
+MinorVer=0
+
+[NSPlayer/11.*]
+Parent=Windows Media Player
+Browser="Windows Media Player"
+Version=11.0
+MajorVer=11
+MinorVer=0
+
+[NSPlayer/4.*]
+Parent=Windows Media Player
+Browser="Windows Media Player"
+Version=4.0
+MajorVer=4
+MinorVer=0
+
+[NSPlayer/7.*]
+Parent=Windows Media Player
+Browser="Windows Media Player"
+Version=7.0
+MajorVer=7
+MinorVer=0
+
+[NSPlayer/8.*]
+Parent=Windows Media Player
+Browser="Windows Media Player"
+Version=8.0
+MajorVer=8
+MinorVer=0
+
+[NSPlayer/9.*]
+Parent=Windows Media Player
+Browser="Windows Media Player"
+Version=9.0
+MajorVer=9
+MinorVer=0
+
+[Windows-Media-Player/10.*]
+Parent=Windows Media Player
+Browser="Windows-Media-Player"
+Version=10.0
+MajorVer=10
+MinorVer=0
+Win32=true
+
+[Windows-Media-Player/11.*]
+Parent=Windows Media Player
+Version=11.0
+MajorVer=11
+MinorVer=0
+Win32=true
+
+[Windows-Media-Player/7.*]
+Parent=Windows Media Player
+Browser="Windows Media Player"
+Version=7.0
+MajorVer=7
+MinorVer=0
+Win32=true
+
+[Windows-Media-Player/8.*]
+Parent=Windows Media Player
+Browser="Windows Media Player"
+Version=8.0
+MajorVer=8
+MinorVer=0
+Win32=true
+
+[Windows-Media-Player/9.*]
+Parent=Windows Media Player
+Version=9.0
+MajorVer=9
+MinorVer=0
+Win32=true
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; QuickTime 7.0
+
+[QuickTime 7.0]
+Parent=DefaultProperties
+Browser="QuickTime"
+Version=7.0
+MajorVer=7
+Cookies=true
+
+[QuickTime (qtver=7.0*;cpu=PPC;os=Mac 10.*)]
+Parent=QuickTime 7.0
+Platform=MacOSX
+
+[QuickTime (qtver=7.0*;cpu=PPC;os=Mac 9.*)]
+Parent=QuickTime 7.0
+Platform=MacPPC
+
+[QuickTime (qtver=7.0*;os=Windows 95*)]
+Parent=QuickTime 7.0
+Platform=Win95
+Win32=true
+
+[QuickTime (qtver=7.0*;os=Windows 98*)]
+Parent=QuickTime 7.0
+Platform=Win98
+Win32=true
+
+[QuickTime (qtver=7.0*;os=Windows Me*)]
+Parent=QuickTime 7.0
+Platform=WinME
+Win32=true
+
+[QuickTime (qtver=7.0*;os=Windows NT 4.0*)]
+Parent=QuickTime 7.0
+Platform=WinNT
+Win32=true
+
+[QuickTime (qtver=7.0*;os=Windows NT 5.0*)]
+Parent=QuickTime 7.0
+Platform=Win2000
+Win32=true
+
+[QuickTime (qtver=7.0*;os=Windows NT 5.1*)]
+Parent=QuickTime 7.0
+Platform=WinXP
+Win32=true
+
+[QuickTime (qtver=7.0*;os=Windows NT 5.2*)]
+Parent=QuickTime 7.0
+Platform=Win2003
+Win32=true
+
+[QuickTime/7.0.* (qtver=7.0.*;*;os=Mac 10.*)*]
+Parent=QuickTime 7.0
+Platform=MacOSX
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; QuickTime 7.1
+
+[QuickTime 7.1]
+Parent=DefaultProperties
+Browser="QuickTime"
+Version=7.1
+MajorVer=7
+MinorVer=1
+Cookies=true
+
+[QuickTime (qtver=7.1*;cpu=PPC;os=Mac 10.*)]
+Parent=QuickTime 7.1
+Platform=MacOSX
+
+[QuickTime (qtver=7.1*;cpu=PPC;os=Mac 9.*)]
+Parent=QuickTime 7.1
+Platform=MacPPC
+
+[QuickTime (qtver=7.1*;os=Windows 98*)]
+Parent=QuickTime 7.1
+Platform=Win98
+Win32=true
+
+[QuickTime (qtver=7.1*;os=Windows NT 4.0*)]
+Parent=QuickTime 7.1
+Platform=WinNT
+Win32=true
+
+[QuickTime (qtver=7.1*;os=Windows NT 5.0*)]
+Parent=QuickTime 7.1
+Platform=Win2000
+Win32=true
+
+[QuickTime (qtver=7.1*;os=Windows NT 5.1*)]
+Parent=QuickTime 7.1
+Platform=WinXP
+Win32=true
+
+[QuickTime (qtver=7.1*;os=Windows NT 5.2*)]
+Parent=QuickTime 7.1
+Platform=Win2003
+Win32=true
+
+[QuickTime/7.1.* (qtver=7.1.*;*;os=Mac 10.*)*]
+Parent=QuickTime 7.1
+Platform=MacOSX
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; QuickTime 7.2
+
+[QuickTime 7.2]
+Parent=DefaultProperties
+Browser="QuickTime"
+Version=7.2
+MajorVer=7
+MinorVer=2
+Platform=MacOSX
+Cookies=true
+
+[QuickTime (qtver=7.2*;cpu=PPC;os=Mac 10.*)]
+Parent=QuickTime 7.2
+Platform=MacOSX
+
+[QuickTime (qtver=7.2*;cpu=PPC;os=Mac 9.*)]
+Parent=QuickTime 7.2
+Platform=MacPPC
+
+[QuickTime (qtver=7.2*;os=Windows 98*)]
+Parent=QuickTime 7.2
+Platform=Win98
+Win32=true
+
+[QuickTime (qtver=7.2*;os=Windows NT 4.0*)]
+Parent=QuickTime 7.2
+Platform=WinNT
+Win32=true
+
+[QuickTime (qtver=7.2*;os=Windows NT 5.0*)]
+Parent=QuickTime 7.2
+Platform=Win2000
+Win32=true
+
+[QuickTime (qtver=7.2*;os=Windows NT 5.1*)]
+Parent=QuickTime 7.2
+Platform=WinXP
+Win32=true
+
+[QuickTime (qtver=7.2*;os=Windows NT 5.2*)]
+Parent=QuickTime 7.2
+Platform=Win2003
+Win32=true
+
+[QuickTime/7.2.* (qtver=7.2.*;*;os=Mac 10.*)*]
+Parent=QuickTime 7.2
+Platform=MacOSX
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; QuickTime 7.3
+
+[QuickTime 7.3]
+Parent=DefaultProperties
+Browser="QuickTime"
+Version=7.3
+MajorVer=7
+MinorVer=3
+Platform=MacOSX
+Cookies=true
+
+[QuickTime (qtver=7.3*;cpu=PPC;os=Mac 10.*)]
+Parent=QuickTime 7.3
+Platform=MacOSX
+
+[QuickTime (qtver=7.3*;cpu=PPC;os=Mac 9.*)]
+Parent=QuickTime 7.3
+Platform=MacPPC
+
+[QuickTime (qtver=7.3*;os=Windows 98*)]
+Parent=QuickTime 7.3
+Platform=Win98
+Win32=true
+
+[QuickTime (qtver=7.3*;os=Windows NT 4.0*)]
+Parent=QuickTime 7.3
+Platform=WinNT
+Win32=true
+
+[QuickTime (qtver=7.3*;os=Windows NT 5.0*)]
+Parent=QuickTime 7.3
+Platform=Win2000
+Win32=true
+
+[QuickTime (qtver=7.3*;os=Windows NT 5.1*)]
+Parent=QuickTime 7.3
+Platform=WinXP
+Win32=true
+
+[QuickTime (qtver=7.3*;os=Windows NT 5.2*)]
+Parent=QuickTime 7.3
+Platform=Win2003
+Win32=true
+
+[QuickTime/7.3.* (qtver=7.3.*;*;os=Mac 10.*)*]
+Parent=QuickTime 7.3
+Platform=MacOSX
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; QuickTime 7.4
+
+[QuickTime 7.4]
+Parent=DefaultProperties
+Browser="QuickTime"
+Version=7.4
+MajorVer=7
+MinorVer=4
+Platform=MacOSX
+Cookies=true
+
+[QuickTime (qtver=7.4*;cpu=PPC;os=Mac 10.*)]
+Parent=QuickTime 7.4
+Platform=MacOSX
+
+[QuickTime (qtver=7.4*;cpu=PPC;os=Mac 9.*)]
+Parent=QuickTime 7.4
+Platform=MacPPC
+
+[QuickTime (qtver=7.4*;os=Windows 98*)]
+Parent=QuickTime 7.4
+Platform=Win98
+Win32=true
+
+[QuickTime (qtver=7.4*;os=Windows NT 4.0*)]
+Parent=QuickTime 7.4
+Platform=WinNT
+Win32=true
+
+[QuickTime (qtver=7.4*;os=Windows NT 5.0*)]
+Parent=QuickTime 7.4
+Platform=Win2000
+Win32=true
+
+[QuickTime (qtver=7.4*;os=Windows NT 5.1*)]
+Parent=QuickTime 7.4
+Platform=WinXP
+Win32=true
+
+[QuickTime (qtver=7.4*;os=Windows NT 5.2*)]
+Parent=QuickTime 7.4
+Platform=Win2003
+Win32=true
+
+[QuickTime/7.4.* (qtver=7.4.*;*;os=Mac 10.*)*]
+Parent=QuickTime 7.4
+Platform=MacOSX
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Google Android
+
+[Android]
+Parent=DefaultProperties
+Browser="Android"
+Platform=Android
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+isMobileDevice=true
+
+[Mozilla/5.0 (Linux; U; Android *; *) AppleWebKit/* (KHTML, like Gecko) Safari/*]
+Parent=Android
+Browser="Android"
+isMobileDevice=true
+
+[Mozilla/5.0 (Linux; U; Android *; *) AppleWebKit/* (KHTML, like Gecko) Version/3.0.* Mobile Safari/*]
+Parent=Android
+Browser="Android"
+Version=3.0
+MajorVer=3
+MinorVer=0
+isMobileDevice=true
+
+[Mozilla/5.0 (Linux; U; Android *; *) AppleWebKit/* (KHTML, like Gecko) Version/3.1.* Mobile Safari/*]
+Parent=Android
+Version=3.0
+MajorVer=3
+MinorVer=0
+
+[Mozilla/5.0 (Linux; U; Android 2.0*; *; Droid Build/*) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17]
+Parent=Android
+Browser="Mobile Safari"
+Version=2.0
+MajorVer=2
+MinorVer=0
+CssVersion=3
+supportsCSS=true
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; BlackBerry
+
+[BlackBerry]
+Parent=DefaultProperties
+Browser="BlackBerry"
+Frames=true
+Tables=true
+Cookies=true
+JavaScript=true
+isMobileDevice=true
+
+[*BlackBerry*]
+Parent=BlackBerry
+
+[*BlackBerrySimulator/*]
+Parent=BlackBerry
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Handspring Blazer
+
+[Blazer]
+Parent=DefaultProperties
+Browser="Handspring Blazer"
+Platform=Palm
+Frames=true
+Tables=true
+Cookies=true
+isMobileDevice=true
+
+[Mozilla/4.0 (compatible; MSIE 6.0; Windows 95; PalmSource; Blazer 3.0) 16;160x160]
+Parent=Blazer
+Version=3.0
+MajorVer=3
+MinorVer=0
+
+[Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; PalmSource/*; Blazer/4.0) 16;320x448]
+Parent=Blazer
+Version=4.0
+MajorVer=4
+MinorVer=0
+
+[Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; PalmSource/*; Blazer/4.1) 16;320x320]
+Parent=Blazer
+Version=4.1
+MajorVer=4
+MinorVer=1
+
+[Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; PalmSource/*; Blazer/4.2) 16;320x320]
+Parent=Blazer
+Version=4.2
+MajorVer=4
+MinorVer=2
+
+[Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; PalmSource/*; Blazer/4.4) 16;320x320]
+Parent=Blazer
+Version=4.4
+MajorVer=4
+MinorVer=4
+
+[Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; PalmSource/*; Blazer/4.5) 16;320x320]
+Parent=Blazer
+Version=4.5
+MajorVer=4
+MinorVer=5
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DoCoMo
+
+[DoCoMo]
+Parent=DefaultProperties
+Browser="DoCoMo"
+Frames=true
+Tables=true
+Cookies=true
+JavaScript=true
+isMobileDevice=true
+
+[DoCoMo/1.0*]
+Parent=DoCoMo
+Version=1.0
+MajorVer=1
+MinorVer=0
+Platform=WAP
+
+[DoCoMo/2.0*]
+Parent=DoCoMo
+Version=2.0
+MajorVer=2
+MinorVer=0
+Platform=WAP
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IEMobile
+
+[IEMobile]
+Parent=DefaultProperties
+Browser="IEMobile"
+Platform=WinCE
+Win32=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+VBScript=true
+JavaScript=true
+ActiveXControls=true
+isMobileDevice=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 6.*)*]
+Parent=IEMobile
+Version=6.0
+MajorVer=6
+MinorVer=0
+
+[Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 7.*)*]
+Parent=IEMobile
+Version=7.0
+MajorVer=7
+MinorVer=0
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; iPhone
+
+[iPhone]
+Parent=DefaultProperties
+Browser="iPhone"
+Platform=iPhone OSX
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+JavaApplets=true
+JavaScript=true
+isMobileDevice=true
+CssVersion=3
+supportsCSS=true
+
+[Mozilla/5.0 (iPhone Simulator; U; CPU iPhone OS 2_* like Mac OS X; *) AppleWebKit/* (KHTML, like Gecko)*]
+Parent=iPhone
+Browser="iPhone Simulator"
+Version=2.0
+MajorVer=2
+MinorVer=0
+
+[Mozilla/5.0 (iPhone Simulator; U; CPU iPhone OS 3* like Mac OS X; *) AppleWebKit/* (KHTML, like Gecko)*]
+Parent=iPhone
+Version=3.0
+MajorVer=3
+MinorVer=0
+
+[Mozilla/5.0 (iPhone Simulator; U; CPU iPhone OS 3_1* like Mac OS X; *) AppleWebKit/* (KHTML, like Gecko)*]
+Parent=iPhone
+Version=3.1
+MajorVer=3
+MinorVer=1
+
+[Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_* like Mac OS X; *) AppleWebKit/* (KHTML, like Gecko)*]
+Parent=iPhone
+Version=2.0
+MajorVer=2
+MinorVer=0
+
+[Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_* like Mac OS X; *)*]
+Parent=iPhone
+Version=2.0
+MajorVer=2
+MinorVer=0
+
+[Mozilla/5.0 (iPhone; U; CPU iPhone OS 3* like Mac OS X; *) AppleWebKit/* (KHTML, like Gecko)*]
+Parent=iPhone
+Version=3.0
+MajorVer=3
+MinorVer=0
+
+[Mozilla/5.0 (iPhone; U; CPU iPhone OS 3* like Mac OS X; *)*]
+Parent=iPhone
+Version=3.0
+MajorVer=3
+MinorVer=0
+
+[Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1* like Mac OS X; *) AppleWebKit/* (KHTML, like Gecko)*]
+Parent=iPhone
+Version=3.1
+MajorVer=3
+MinorVer=1
+
+[Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1* like Mac OS X; *)*]
+Parent=iPhone
+Version=3.1
+MajorVer=3
+MinorVer=1
+
+[Mozilla/5.0 (iPod; U; CPU iPhone OS 2_* like Mac OS X; *)*]
+Parent=iPhone
+Browser="iPod Touch"
+Version=2.0
+MajorVer=2
+MinorVer=0
+
+[Mozilla/5.0 (iPod; U; CPU iPhone OS 3* like Mac OS X; *)*]
+Parent=iPhone
+Browser="iPod Touch"
+Version=3.0
+MajorVer=3
+MinorVer=0
+
+[Mozilla/5.0 (iPod; U; CPU iPhone OS 3_1* like Mac OS X; *)*]
+Parent=iPhone
+Version=3.1
+MajorVer=3
+MinorVer=1
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; KDDI
+
+[KDDI]
+Parent=DefaultProperties
+Browser="KDDI"
+Frames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+VBScript=true
+JavaScript=true
+ActiveXControls=true
+isMobileDevice=true
+CssVersion=1
+supportsCSS=true
+
+[KDDI-* UP.Browser/* (GUI) MMP/*]
+Parent=KDDI
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Miscellaneous Mobile
+
+[Miscellaneous Mobile]
+Parent=DefaultProperties
+Browser=""
+IFrames=true
+Tables=true
+Cookies=true
+JavaScript=true
+isMobileDevice=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (X11; *; CentOS; *) AppleWebKit/* (KHTML, like Gecko) Bolt/0.* Version/3.0 Safari/*]
+Parent=Miscellaneous Mobile
+Browser="Bolt"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Motorola Internet Browser
+
+[Motorola Internet Browser]
+Parent=DefaultProperties
+Browser="Motorola Internet Browser"
+Frames=true
+Tables=true
+Cookies=true
+isMobileDevice=true
+
+[MOT-*/*]
+Parent=Motorola Internet Browser
+
+[MOT-1*/* UP.Browser/*]
+Parent=Motorola Internet Browser
+
+[MOT-8700_/* UP.Browser/*]
+Parent=Motorola Internet Browser
+
+[MOT-A-0A/* UP.Browser/*]
+Parent=Motorola Internet Browser
+
+[MOT-A-2B/* UP.Browser/*]
+Parent=Motorola Internet Browser
+
+[MOT-A-88/* UP.Browser/*]
+Parent=Motorola Internet Browser
+
+[MOT-C???/* MIB/*]
+Parent=Motorola Internet Browser
+
+[MOT-GATW_/* UP.Browser/*]
+Parent=Motorola Internet Browser
+
+[MOT-L6/* MIB/*]
+Parent=Motorola Internet Browser
+
+[MOT-L7/* MIB/*]
+Parent=Motorola Internet Browser
+
+[MOT-M*/* UP.Browser/*]
+Parent=Motorola Internet Browser
+
+[MOT-MP*/* Mozilla/* (compatible; MSIE *; Windows CE; *)]
+Parent=Motorola Internet Browser
+Win32=true
+
+[MOT-MP*/* Mozilla/4.0 (compatible; MSIE *; Windows CE; *)]
+Parent=Motorola Internet Browser
+Win32=true
+
+[MOT-SAP4_/* UP.Browser/*]
+Parent=Motorola Internet Browser
+
+[MOT-T*/*]
+Parent=Motorola Internet Browser
+
+[MOT-T7*/* MIB/*]
+Parent=Motorola Internet Browser
+
+[MOT-T721*]
+Parent=Motorola Internet Browser
+
+[MOT-TA02/* MIB/*]
+Parent=Motorola Internet Browser
+
+[MOT-V*/*]
+Parent=Motorola Internet Browser
+
+[MOT-V*/* MIB/*]
+Parent=Motorola Internet Browser
+
+[MOT-V*/* UP.Browser/*]
+Parent=Motorola Internet Browser
+
+[MOT-V3/* MIB/*]
+Parent=Motorola Internet Browser
+
+[MOT-V4*/* MIB/*]
+Parent=Motorola Internet Browser
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; MSN Mobile Proxy
+
+[MSN Mobile Proxy]
+Parent=DefaultProperties
+Browser="MSN Mobile Proxy"
+Win32=true
+Frames=true
+Tables=true
+Cookies=true
+JavaScript=true
+ActiveXControls=true
+isMobileDevice=true
+
+[Mozilla/* (compatible; MSIE *; Windows*; MSN Mobile Proxy)]
+Parent=MSN Mobile Proxy
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; NetFront
+
+[NetFront]
+Parent=DefaultProperties
+Browser="NetFront"
+Frames=true
+Tables=true
+Cookies=true
+JavaScript=true
+isMobileDevice=true
+
+[*NetFront/*]
+Parent=NetFront
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Nokia
+
+[Nokia]
+Parent=DefaultProperties
+Browser="Nokia"
+Tables=true
+Cookies=true
+isMobileDevice=true
+
+[*Nokia*/*]
+Parent=Nokia
+
+[Mozilla/* (SymbianOS/*; ?; *) AppleWebKit/* (KHTML, like Gecko) Safari/*]
+Parent=Nokia
+Platform=SymbianOS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Openwave Mobile Browser
+
+[Openwave Mobile Browser]
+Parent=DefaultProperties
+Browser="Openwave Mobile Browser"
+Alpha=true
+Win32=true
+Win64=true
+Frames=true
+Tables=true
+Cookies=true
+isMobileDevice=true
+
+[*UP.Browser/*]
+Parent=Openwave Mobile Browser
+
+[*UP.Link/*]
+Parent=Openwave Mobile Browser
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera Mini
+
+[Opera Mini]
+Parent=DefaultProperties
+Browser="Opera Mini"
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaScript=true
+isMobileDevice=true
+
+[Opera/* (J2ME/MIDP; Opera Mini/1.0*)*]
+Parent=Opera Mini
+Version=1.0
+MajorVer=1
+MinorVer=0
+
+[Opera/* (J2ME/MIDP; Opera Mini/1.1*)*]
+Parent=Opera Mini
+Version=1.1
+MajorVer=1
+MinorVer=1
+
+[Opera/* (J2ME/MIDP; Opera Mini/1.2*)*]
+Parent=Opera Mini
+Version=1.2
+MajorVer=1
+MinorVer=2
+
+[Opera/* (J2ME/MIDP; Opera Mini/2.0*)*]
+Parent=Opera Mini
+Version=2.0
+MajorVer=2
+MinorVer=0
+
+[Opera/* (J2ME/MIDP; Opera Mini/3.0*)*]
+Parent=Opera Mini
+Version=3.0
+MajorVer=3
+MinorVer=0
+
+[Opera/* (J2ME/MIDP; Opera Mini/3.1*)*]
+Parent=Opera Mini
+Version=3.1
+MajorVer=3
+MinorVer=1
+
+[Opera/* (J2ME/MIDP; Opera Mini/4.0*)*]
+Parent=Opera Mini
+Version=4.0
+MajorVer=4
+MinorVer=0
+
+[Opera/* (J2ME/MIDP; Opera Mini/4.1*)*]
+Parent=Opera Mini
+Version=4.1
+MajorVer=4
+MinorVer=1
+
+[Opera/* (J2ME/MIDP; Opera Mini/4.2*)*]
+Parent=Opera Mini
+Version=4.2
+MajorVer=4
+MinorVer=2
+
+[Opera/* (J2ME/MIDP; Opera Mini/5.0*)*]
+Parent=Opera Mini
+Version=5.0
+MajorVer=5
+MinorVer=0
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera Mobile
+
+[Opera Mobile]
+Parent=DefaultProperties
+Browser="Opera Mobi"
+Frames=true
+Tables=true
+Cookies=true
+isMobileDevice=true
+
+[Opera/9.* (*SymbOS; Opera Mobi/*; U; *) Presto/2.* Version/10.*]
+Parent=Opera Mobile
+Version=10.0
+MajorVer=10
+MinorVer=0
+Platform=SymbianOS
+
+[Opera/9.* (Microsoft Windows; PPC; Opera Mobi/*; U; *)]
+Parent=Opera Mobile
+Version=9.0
+MajorVer=9
+MinorVer=0
+Platform=Win
+
+[Opera/9.* (Windows Mobile; *; Opera Mobi/*; U; *) Presto/2.*]
+Parent=Opera Mobile
+Version=9.0
+MajorVer=9
+MinorVer=0
+Platform=Win
+
+[Opera/9.5 (Microsoft Windows; PPC; *Opera Mobile/*)]
+Parent=Opera Mobile
+Version=9.5
+MajorVer=9
+MinorVer=5
+
+[Opera/9.5 (Microsoft Windows; PPC; Opera Mobi/*)]
+Parent=Opera Mobile
+Version=9.5
+MajorVer=9
+MinorVer=5
+
+[Opera/9.51 Beta (Microsoft Windows; PPC; Opera Mobi/*)*]
+Parent=Opera Mobile
+Version=9.51
+MajorVer=9
+MinorVer=51
+Beta=true
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Palm
+
+[Palm]
+Parent=DefaultProperties
+Browser=""
+Platform=webOS
+Win32=true
+Frames=true
+Tables=true
+Cookies=true
+JavaScript=true
+ActiveXControls=true
+isMobileDevice=true
+
+[Mozilla/5.0 (webOS/1.0*; U; *) AppleWebKit/525.* (KHTML, like Gecko) Version/1.0 Safari/525.* Pre/1.0]
+Parent=Palm
+Browser="Palm Pre"
+Version=1.0
+MajorVer=1
+MinorVer=0
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (webOS/1.1*; U; *) AppleWebKit/525.* (KHTML, like Gecko) Version/1.0 Safari/525.* Pre/1.0]
+Parent=Palm
+Browser="Palm Pre"
+Version=1.1
+MajorVer=1
+MinorVer=1
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (webOS/1.2*; U; *) AppleWebKit/525.* (KHTML, like Gecko) Version/1.0 Safari/525.* Pre/1.0]
+Parent=Palm
+Browser="Palm Pre"
+Version=1.2
+MajorVer=1
+MinorVer=2
+
+[Mozilla/5.0 (webOS/1.3*; U; *) AppleWebKit/525.* (KHTML, like Gecko) Version/1.0 Safari/525.* Pre/1.0]
+Parent=Palm
+Version=1.3
+MajorVer=1
+MinorVer=3
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Playstation
+
+[Playstation]
+Parent=DefaultProperties
+Browser="Playstation"
+Platform=WAP
+Frames=true
+Tables=true
+Cookies=true
+isMobileDevice=true
+
+[Mozilla/* (PLAYSTATION *; *)]
+Parent=Playstation
+Browser="PlayStation 3"
+Frames=false
+
+[Mozilla/* (PSP (PlayStation Portable); *)]
+Parent=Playstation
+
+[Sony PS2 (Linux)]
+Parent=Playstation
+Browser="Sony PS2"
+Platform=Linux
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Pocket PC
+
+[Pocket PC]
+Parent=DefaultProperties
+Browser="Pocket PC"
+Platform=WinCE
+Win32=true
+Frames=true
+Tables=true
+Cookies=true
+JavaScript=true
+ActiveXControls=true
+isMobileDevice=true
+CssVersion=1
+supportsCSS=true
+
+[*(compatible; MSIE *.*; Windows CE; PPC; *)]
+Parent=Pocket PC
+
+[HTC-*/* Mozilla/* (compatible; MSIE *.*; Windows CE*)*]
+Parent=Pocket PC
+Win32=true
+
+[Mozilla/* (compatible; MSPIE *.*; *Windows CE*)*]
+Parent=Pocket PC
+Win32=true
+
+[T-Mobile* Mozilla/* (compatible; MSIE *.*; Windows CE; *)]
+Parent=Pocket PC
+
+[Vodafone* Mozilla/* (compatible; MSIE *.*; Windows CE; *)*]
+Parent=Pocket PC
+
+[Windows CE (Pocket PC) - Version *.*]
+Parent=Pocket PC
+Win32=true
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; SEMC Browser
+
+[SEMC Browser]
+Parent=DefaultProperties
+Browser="SEMC Browser"
+Platform=JAVA
+Tables=true
+isMobileDevice=true
+CssVersion=1
+supportsCSS=true
+
+[*SEMC-Browser/*]
+Parent=SEMC Browser
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; SonyEricsson
+
+[SonyEricsson]
+Parent=DefaultProperties
+Browser="SonyEricsson"
+Frames=true
+Tables=true
+Cookies=true
+JavaScript=true
+isMobileDevice=true
+CssVersion=1
+supportsCSS=true
+
+[*Ericsson*]
+Parent=SonyEricsson
+
+[*SonyEricsson*]
+Parent=SonyEricsson
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netbox
+
+[Netbox]
+Parent=DefaultProperties
+Browser="Netbox"
+Frames=true
+Tables=true
+Cookies=true
+JavaScript=true
+CssVersion=1
+supportsCSS=true
+
+[Mozilla/3.01 (compatible; Netbox/*; Linux*)]
+Parent=Netbox
+Browser="Netbox"
+Platform=Linux
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; PowerTV
+
+[PowerTV]
+Parent=DefaultProperties
+Browser="PowerTV"
+Platform=PowerTV
+Frames=true
+Tables=true
+Cookies=true
+JavaScript=true
+
+[Mozilla/4.0 PowerTV/1.5 (Compatible; Spyglass DM 3.2.1, EXPLORER)]
+Parent=PowerTV
+Version=1.5
+MajorVer=1
+MinorVer=5
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; WebTV/MSNTV
+
+[WebTV]
+Parent=DefaultProperties
+Browser="WebTV/MSNTV"
+Platform=WebTV
+Frames=true
+Tables=true
+Cookies=true
+JavaScript=true
+
+[Mozilla/3.0 WebTV/1.*(compatible; MSIE 2.0)]
+Parent=WebTV
+Version=1.0
+MajorVer=1
+MinorVer=0
+
+[Mozilla/4.0 WebTV/2.0*(compatible; MSIE 3.0)]
+Parent=WebTV
+Version=2.0
+MajorVer=2
+MinorVer=0
+
+[Mozilla/4.0 WebTV/2.1*(compatible; MSIE 3.0)]
+Parent=WebTV
+Version=2.1
+MajorVer=2
+MinorVer=1
+
+[Mozilla/4.0 WebTV/2.2*(compatible; MSIE 3.0)]
+Parent=WebTV
+Version=2.2
+MajorVer=2
+MinorVer=2
+
+[Mozilla/4.0 WebTV/2.3*(compatible; MSIE 3.0)]
+Parent=WebTV
+Version=2.3
+MajorVer=2
+MinorVer=3
+
+[Mozilla/4.0 WebTV/2.4*(compatible; MSIE 3.0)]
+Parent=WebTV
+Version=2.4
+MajorVer=2
+MinorVer=4
+
+[Mozilla/4.0 WebTV/2.5*(compatible; MSIE 4.0)]
+Parent=WebTV
+Version=2.5
+MajorVer=2
+MinorVer=5
+CssVersion=1
+supportsCSS=true
+
+[Mozilla/4.0 WebTV/2.6*(compatible; MSIE 4.0)]
+Parent=WebTV
+Version=2.6
+MajorVer=2
+MinorVer=6
+CssVersion=1
+supportsCSS=true
+
+[Mozilla/4.0 WebTV/2.7*(compatible; MSIE 4.0)]
+Parent=WebTV
+Version=2.7
+MajorVer=2
+MinorVer=7
+CssVersion=1
+supportsCSS=true
+
+[Mozilla/4.0 WebTV/2.8*(compatible; MSIE 4.0)]
+Parent=WebTV
+Version=2.8
+MajorVer=2
+MinorVer=8
+JavaApplets=true
+CssVersion=1
+supportsCSS=true
+
+[Mozilla/4.0 WebTV/2.9*(compatible; MSIE 4.0)]
+Parent=WebTV
+Version=2.9
+MajorVer=2
+MinorVer=9
+JavaApplets=true
+CssVersion=1
+supportsCSS=true
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Amaya
+
+[Amaya]
+Parent=DefaultProperties
+Browser="Amaya"
+Tables=true
+Cookies=true
+
+[amaya/10.*]
+Parent=Amaya
+Version=10.0
+MajorVer=10
+MinorVer=0
+
+[amaya/11.*]
+Parent=Amaya
+Version=11.0
+MajorVer=11
+MinorVer=0
+
+[amaya/7.*]
+Parent=Amaya
+Version=7.0
+MajorVer=7
+MinorVer=0
+
+[amaya/8.*]
+Parent=Amaya
+Version=8.0
+MajorVer=8
+MinorVer=0
+CssVersion=2
+supportsCSS=true
+
+[amaya/9.*]
+Parent=Amaya
+Version=9.0
+MajorVer=9
+MinorVer=0
+
+[Emacs-w3m/*]
+Parent=Emacs/W3
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Links
+
+[Links]
+Parent=DefaultProperties
+Browser="Links"
+Frames=true
+Tables=true
+
+[Links (0.9*; CYGWIN_NT-5.1*)]
+Parent=Links
+Browser="Links"
+Version=0.9
+MajorVer=0
+MinorVer=9
+Platform=WinXP
+
+[Links (0.9*; Darwin*)]
+Parent=Links
+Version=0.9
+MajorVer=0
+MinorVer=9
+Platform=MacPPC
+
+[Links (0.9*; FreeBSD*)]
+Parent=Links
+Browser="Links"
+Version=0.9
+MajorVer=0
+MinorVer=9
+Platform=FreeBSD
+
+[Links (0.9*; Linux*)]
+Parent=Links
+Browser="Links"
+Version=0.9
+MajorVer=0
+MinorVer=9
+Platform=Linux
+
+[Links (0.9*; OS/2*)]
+Parent=Links
+Browser="Links"
+Version=0.9
+MajorVer=0
+MinorVer=9
+Platform=OS/2
+
+[Links (0.9*; Unix*)]
+Parent=Links
+Browser="Links"
+Version=0.9
+MajorVer=0
+MinorVer=9
+Platform=Unix
+
+[Links (0.9*; Win32*)]
+Parent=Links
+Browser="Links"
+Version=0.9
+MajorVer=0
+MinorVer=9
+Platform=Win32
+Win32=true
+
+[Links (1.0*; CYGWIN_NT-5.1*)]
+Parent=Links
+Browser="Links"
+Version=1.0
+MajorVer=1
+MinorVer=0
+Platform=WinXP
+
+[Links (1.0*; FreeBSD*)]
+Parent=Links
+Browser="Links"
+Version=1.0
+MajorVer=1
+MinorVer=0
+Platform=FreeBSD
+
+[Links (1.0*; Linux*)]
+Parent=Links
+Browser="Links"
+Version=1.0
+MajorVer=1
+MinorVer=0
+Platform=Linux
+
+[Links (1.0*; OS/2*)]
+Parent=Links
+Browser="Links"
+Version=1.0
+MajorVer=1
+MinorVer=0
+Platform=OS/2
+
+[Links (1.0*; Unix*)]
+Parent=Links
+Browser="Links"
+Version=1.0
+MajorVer=1
+MinorVer=0
+Platform=Unix
+
+[Links (1.0*; Win32*)]
+Parent=Links
+Browser="Links"
+Version=1.0
+MajorVer=1
+MinorVer=0
+Platform=Win32
+Win32=true
+
+[Links (2.0*; Linux*)]
+Parent=Links
+Browser="Links"
+Version=2.0
+MajorVer=2
+MinorVer=0
+Platform=Linux
+
+[Links (2.1*; FreeBSD*)]
+Parent=Links
+Browser="Links"
+Version=2.1
+MajorVer=2
+MinorVer=1
+Platform=FreeBSD
+
+[Links (2.1*; Linux *)]
+Parent=Links
+Browser="Links"
+Version=2.1
+MajorVer=2
+MinorVer=1
+Platform=Linux
+
+[Links (2.1*; OpenBSD*)]
+Parent=Links
+Browser="Links"
+Version=2.1
+MajorVer=2
+MinorVer=1
+Platform=OpenBSD
+
+[Links (2.2*; FreeBSD*)]
+Parent=Links
+Version=2.2
+MajorVer=2
+MinorVer=2
+Platform=FreeBSD
+
+[Links (2.2*; Linux *)]
+Parent=Links
+Version=2.2
+MajorVer=2
+MinorVer=2
+Platform=Linux
+
+[Links (2.2*; OpenBSD*)]
+Parent=Links
+Version=2.2
+MajorVer=2
+MinorVer=2
+Platform=OpenBSD
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Lynx
+
+[Lynx]
+Parent=DefaultProperties
+Browser="Lynx"
+Frames=true
+Tables=true
+
+[Lynx *]
+Parent=Lynx
+Browser="Lynx"
+
+[Lynx/2.3*]
+Parent=Lynx
+Browser="Lynx"
+Version=2.3
+MajorVer=2
+MinorVer=3
+
+[Lynx/2.4*]
+Parent=Lynx
+Browser="Lynx"
+Version=2.4
+MajorVer=2
+MinorVer=4
+
+[Lynx/2.5*]
+Parent=Lynx
+Browser="Lynx"
+Version=2.5
+MajorVer=2
+MinorVer=5
+
+[Lynx/2.6*]
+Parent=Lynx
+Browser="Lynx"
+Version=2.6
+MajorVer=2
+MinorVer=6
+
+[Lynx/2.7*]
+Parent=Lynx
+Browser="Lynx"
+Version=2.7
+MajorVer=2
+MinorVer=7
+
+[Lynx/2.8*]
+Parent=Lynx
+Browser="Lynx"
+Version=2.8
+MajorVer=2
+MinorVer=8
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; NCSA Mosaic
+
+[Mosaic]
+Parent=DefaultProperties
+Browser="Mosaic"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; w3m
+
+[w3m]
+Parent=DefaultProperties
+Browser="w3m"
+Frames=true
+Tables=true
+
+[w3m/0.1*]
+Parent=w3m
+Browser="w3m"
+Version=0.1
+MajorVer=0
+MinorVer=1
+
+[w3m/0.2*]
+Parent=w3m
+Browser="w3m"
+Version=0.2
+MajorVer=0
+MinorVer=2
+
+[w3m/0.3*]
+Parent=w3m
+Browser="w3m"
+Version=0.3
+MajorVer=0
+MinorVer=3
+
+[w3m/0.4*]
+Parent=w3m
+Browser="w3m"
+Version=0.4
+MajorVer=0
+MinorVer=4
+Cookies=true
+
+[w3m/0.5*]
+Parent=w3m
+Browser="w3m"
+Version=0.5
+MajorVer=0
+MinorVer=5
+Cookies=true
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ELinks 0.10
+
+[ELinks 0.10]
+Parent=DefaultProperties
+Browser="ELinks"
+Version=0.10
+MinorVer=10
+Frames=true
+Tables=true
+
+[ELinks (0.10*; *AIX*)]
+Parent=ELinks 0.10
+Platform=AIX
+
+[ELinks (0.10*; *BeOS*)]
+Parent=ELinks 0.10
+Platform=BeOS
+
+[ELinks (0.10*; *CygWin*)]
+Parent=ELinks 0.10
+Platform=CygWin
+
+[ELinks (0.10*; *Darwin*)]
+Parent=ELinks 0.10
+Platform=Darwin
+
+[ELinks (0.10*; *Digital Unix*)]
+Parent=ELinks 0.10
+Platform=Digital Unix
+
+[ELinks (0.10*; *FreeBSD*)]
+Parent=ELinks 0.10
+Platform=FreeBSD
+
+[ELinks (0.10*; *HPUX*)]
+Parent=ELinks 0.10
+Platform=HP-UX
+
+[ELinks (0.10*; *IRIX*)]
+Parent=ELinks 0.10
+Platform=IRIX
+
+[ELinks (0.10*; *Linux*)]
+Parent=ELinks 0.10
+Platform=Linux
+
+[ELinks (0.10*; *NetBSD*)]
+Parent=ELinks 0.10
+Platform=NetBSD
+
+[ELinks (0.10*; *OpenBSD*)]
+Parent=ELinks 0.10
+Platform=OpenBSD
+
+[ELinks (0.10*; *OS/2*)]
+Parent=ELinks 0.10
+Platform=OS/2
+
+[ELinks (0.10*; *RISC*)]
+Parent=ELinks 0.10
+Platform=RISC OS
+
+[ELinks (0.10*; *Solaris*)]
+Parent=ELinks 0.10
+Platform=Solaris
+
+[ELinks (0.10*; *Unix*)]
+Parent=ELinks 0.10
+Platform=Unix
+
+[ELinks/0.10* (*AIX*)]
+Parent=ELinks 0.10
+Platform=AIX
+
+[ELinks/0.10* (*BeOS*)]
+Parent=ELinks 0.10
+Platform=BeOS
+
+[ELinks/0.10* (*CygWin*)]
+Parent=ELinks 0.10
+Platform=CygWin
+
+[ELinks/0.10* (*Darwin*)]
+Parent=ELinks 0.10
+Platform=Darwin
+
+[ELinks/0.10* (*Digital Unix*)]
+Parent=ELinks 0.10
+Platform=Digital Unix
+
+[ELinks/0.10* (*FreeBSD*)]
+Parent=ELinks 0.10
+Platform=FreeBSD
+
+[ELinks/0.10* (*HPUX*)]
+Parent=ELinks 0.10
+Platform=HP-UX
+
+[ELinks/0.10* (*IRIX*)]
+Parent=ELinks 0.10
+Platform=IRIX
+
+[ELinks/0.10* (*Linux*)]
+Parent=ELinks 0.10
+Platform=Linux
+
+[ELinks/0.10* (*NetBSD*)]
+Parent=ELinks 0.10
+Platform=NetBSD
+
+[ELinks/0.10* (*OpenBSD*)]
+Parent=ELinks 0.10
+Platform=OpenBSD
+
+[ELinks/0.10* (*OS/2*)]
+Parent=ELinks 0.10
+Platform=OS/2
+
+[ELinks/0.10* (*RISC*)]
+Parent=ELinks 0.10
+Platform=RISC OS
+
+[ELinks/0.10* (*Solaris*)]
+Parent=ELinks 0.10
+Platform=Solaris
+
+[ELinks/0.10* (*Unix*)]
+Parent=ELinks 0.10
+Platform=Unix
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ELinks 0.11
+
+[ELinks 0.11]
+Parent=DefaultProperties
+Browser="ELinks"
+Version=0.11
+MinorVer=11
+Frames=true
+Tables=true
+
+[ELinks (0.11*; *AIX*)]
+Parent=ELinks 0.11
+Platform=AIX
+
+[ELinks (0.11*; *BeOS*)]
+Parent=ELinks 0.11
+Platform=BeOS
+
+[ELinks (0.11*; *CygWin*)]
+Parent=ELinks 0.11
+Platform=CygWin
+
+[ELinks (0.11*; *Darwin*)]
+Parent=ELinks 0.11
+Platform=Darwin
+
+[ELinks (0.11*; *Digital Unix*)]
+Parent=ELinks 0.11
+Platform=Digital Unix
+
+[ELinks (0.11*; *FreeBSD*)]
+Parent=ELinks 0.11
+Platform=FreeBSD
+
+[ELinks (0.11*; *HPUX*)]
+Parent=ELinks 0.11
+Platform=HP-UX
+
+[ELinks (0.11*; *IRIX*)]
+Parent=ELinks 0.11
+Platform=IRIX
+
+[ELinks (0.11*; *Linux*)]
+Parent=ELinks 0.11
+Platform=Linux
+
+[ELinks (0.11*; *NetBSD*)]
+Parent=ELinks 0.11
+Platform=NetBSD
+
+[ELinks (0.11*; *OpenBSD*)]
+Parent=ELinks 0.11
+Platform=OpenBSD
+
+[ELinks (0.11*; *OS/2*)]
+Parent=ELinks 0.11
+Platform=OS/2
+
+[ELinks (0.11*; *RISC*)]
+Parent=ELinks 0.11
+Platform=RISC OS
+
+[ELinks (0.11*; *Solaris*)]
+Parent=ELinks 0.11
+Platform=Solaris
+
+[ELinks (0.11*; *Unix*)]
+Parent=ELinks 0.11
+Platform=Unix
+
+[ELinks/0.11* (*AIX*)]
+Parent=ELinks 0.11
+Platform=AIX
+
+[ELinks/0.11* (*BeOS*)]
+Parent=ELinks 0.11
+Platform=BeOS
+
+[ELinks/0.11* (*CygWin*)]
+Parent=ELinks 0.11
+Platform=CygWin
+
+[ELinks/0.11* (*Darwin*)]
+Parent=ELinks 0.11
+Platform=Darwin
+
+[ELinks/0.11* (*Digital Unix*)]
+Parent=ELinks 0.11
+Platform=Digital Unix
+
+[ELinks/0.11* (*FreeBSD*)]
+Parent=ELinks 0.11
+Platform=FreeBSD
+
+[ELinks/0.11* (*HPUX*)]
+Parent=ELinks 0.11
+Platform=HP-UX
+
+[ELinks/0.11* (*IRIX*)]
+Parent=ELinks 0.11
+Platform=IRIX
+
+[ELinks/0.11* (*Linux*)]
+Parent=ELinks 0.11
+Platform=Linux
+
+[ELinks/0.11* (*NetBSD*)]
+Parent=ELinks 0.11
+Platform=NetBSD
+
+[ELinks/0.11* (*OpenBSD*)]
+Parent=ELinks 0.11
+Platform=OpenBSD
+
+[ELinks/0.11* (*OS/2*)]
+Parent=ELinks 0.11
+Platform=OS/2
+
+[ELinks/0.11* (*RISC*)]
+Parent=ELinks 0.11
+Platform=RISC OS
+
+[ELinks/0.11* (*Solaris*)]
+Parent=ELinks 0.11
+Platform=Solaris
+
+[ELinks/0.11* (*Unix*)]
+Parent=ELinks 0.11
+Platform=Unix
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ELinks 0.12
+
+[ELinks 0.12]
+Parent=DefaultProperties
+Browser="ELinks"
+Version=0.12
+MinorVer=12
+Frames=true
+Tables=true
+
+[ELinks (0.12*; *AIX*)]
+Parent=ELinks 0.12
+Platform=AIX
+
+[ELinks (0.12*; *BeOS*)]
+Parent=ELinks 0.12
+Platform=BeOS
+
+[ELinks (0.12*; *CygWin*)]
+Parent=ELinks 0.12
+Platform=CygWin
+
+[ELinks (0.12*; *Darwin*)]
+Parent=ELinks 0.12
+Platform=Darwin
+
+[ELinks (0.12*; *Digital Unix*)]
+Parent=ELinks 0.12
+Platform=Digital Unix
+
+[ELinks (0.12*; *FreeBSD*)]
+Parent=ELinks 0.12
+Platform=FreeBSD
+
+[ELinks (0.12*; *HPUX*)]
+Parent=ELinks 0.12
+Platform=HP-UX
+
+[ELinks (0.12*; *IRIX*)]
+Parent=ELinks 0.12
+Platform=IRIX
+
+[ELinks (0.12*; *Linux*)]
+Parent=ELinks 0.12
+Platform=Linux
+
+[ELinks (0.12*; *NetBSD*)]
+Parent=ELinks 0.12
+Platform=NetBSD
+
+[ELinks (0.12*; *OpenBSD*)]
+Parent=ELinks 0.12
+Platform=OpenBSD
+
+[ELinks (0.12*; *OS/2*)]
+Parent=ELinks 0.12
+Platform=OS/2
+
+[ELinks (0.12*; *RISC*)]
+Parent=ELinks 0.12
+Platform=RISC OS
+
+[ELinks (0.12*; *Solaris*)]
+Parent=ELinks 0.12
+Platform=Solaris
+
+[ELinks (0.12*; *Unix*)]
+Parent=ELinks 0.12
+Platform=Unix
+
+[ELinks/0.12* (*AIX*)]
+Parent=ELinks 0.12
+Platform=AIX
+
+[ELinks/0.12* (*BeOS*)]
+Parent=ELinks 0.12
+Platform=BeOS
+
+[ELinks/0.12* (*CygWin*)]
+Parent=ELinks 0.12
+Platform=CygWin
+
+[ELinks/0.12* (*Darwin*)]
+Parent=ELinks 0.12
+Platform=Darwin
+
+[ELinks/0.12* (*Digital Unix*)]
+Parent=ELinks 0.12
+Platform=Digital Unix
+
+[ELinks/0.12* (*FreeBSD*)]
+Parent=ELinks 0.12
+Platform=FreeBSD
+
+[ELinks/0.12* (*HPUX*)]
+Parent=ELinks 0.12
+Platform=HP-UX
+
+[ELinks/0.12* (*IRIX*)]
+Parent=ELinks 0.12
+Platform=IRIX
+
+[ELinks/0.12* (*Linux*)]
+Parent=ELinks 0.12
+Platform=Linux
+
+[ELinks/0.12* (*NetBSD*)]
+Parent=ELinks 0.12
+Platform=NetBSD
+
+[ELinks/0.12* (*OpenBSD*)]
+Parent=ELinks 0.12
+Platform=OpenBSD
+
+[ELinks/0.12* (*OS/2*)]
+Parent=ELinks 0.12
+Platform=OS/2
+
+[ELinks/0.12* (*RISC*)]
+Parent=ELinks 0.12
+Platform=RISC OS
+
+[ELinks/0.12* (*Solaris*)]
+Parent=ELinks 0.12
+Platform=Solaris
+
+[ELinks/0.12* (*Unix*)]
+Parent=ELinks 0.12
+Platform=Unix
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ELinks 0.13
+
+[ELinks 0.13]
+Parent=DefaultProperties
+Browser="ELinks"
+Version=0.13
+MinorVer=13
+Frames=true
+Tables=true
+
+[ELinks (0.13*; *AIX*)]
+Parent=ELinks 0.13
+Platform=AIX
+
+[ELinks (0.13*; *BeOS*)]
+Parent=ELinks 0.13
+Platform=BeOS
+
+[ELinks (0.13*; *CygWin*)]
+Parent=ELinks 0.13
+Platform=CygWin
+
+[ELinks (0.13*; *Darwin*)]
+Parent=ELinks 0.13
+Platform=Darwin
+
+[ELinks (0.13*; *Digital Unix*)]
+Parent=ELinks 0.13
+Platform=Digital Unix
+
+[ELinks (0.13*; *FreeBSD*)]
+Parent=ELinks 0.13
+Platform=FreeBSD
+
+[ELinks (0.13*; *HPUX*)]
+Parent=ELinks 0.13
+Platform=HP-UX
+
+[ELinks (0.13*; *IRIX*)]
+Parent=ELinks 0.13
+Platform=IRIX
+
+[ELinks (0.13*; *Linux*)]
+Parent=ELinks 0.13
+Platform=Linux
+
+[ELinks (0.13*; *NetBSD*)]
+Parent=ELinks 0.13
+Platform=NetBSD
+
+[ELinks (0.13*; *OpenBSD*)]
+Parent=ELinks 0.13
+Platform=OpenBSD
+
+[ELinks (0.13*; *OS/2*)]
+Parent=ELinks 0.13
+Platform=OS/2
+
+[ELinks (0.13*; *RISC*)]
+Parent=ELinks 0.13
+Platform=RISC OS
+
+[ELinks (0.13*; *Solaris*)]
+Parent=ELinks 0.13
+Platform=Solaris
+
+[ELinks (0.13*; *Unix*)]
+Parent=ELinks 0.13
+Platform=Unix
+
+[ELinks/0.13* (*AIX*)]
+Parent=ELinks 0.13
+Platform=AIX
+
+[ELinks/0.13* (*BeOS*)]
+Parent=ELinks 0.13
+Platform=BeOS
+
+[ELinks/0.13* (*CygWin*)]
+Parent=ELinks 0.13
+Platform=CygWin
+
+[ELinks/0.13* (*Darwin*)]
+Parent=ELinks 0.13
+Platform=Darwin
+
+[ELinks/0.13* (*Digital Unix*)]
+Parent=ELinks 0.13
+Platform=Digital Unix
+
+[ELinks/0.13* (*FreeBSD*)]
+Parent=ELinks 0.13
+Platform=FreeBSD
+
+[ELinks/0.13* (*HPUX*)]
+Parent=ELinks 0.13
+Platform=HP-UX
+
+[ELinks/0.13* (*IRIX*)]
+Parent=ELinks 0.13
+Platform=IRIX
+
+[ELinks/0.13* (*Linux*)]
+Parent=ELinks 0.13
+Platform=Linux
+
+[ELinks/0.13* (*NetBSD*)]
+Parent=ELinks 0.13
+Platform=NetBSD
+
+[ELinks/0.13* (*OpenBSD*)]
+Parent=ELinks 0.13
+Platform=OpenBSD
+
+[ELinks/0.13* (*OS/2*)]
+Parent=ELinks 0.13
+Platform=OS/2
+
+[ELinks/0.13* (*RISC*)]
+Parent=ELinks 0.13
+Platform=RISC OS
+
+[ELinks/0.13* (*Solaris*)]
+Parent=ELinks 0.13
+Platform=Solaris
+
+[ELinks/0.13* (*Unix*)]
+Parent=ELinks 0.13
+Platform=Unix
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ELinks 0.9
+
+[ELinks 0.9]
+Parent=DefaultProperties
+Browser="ELinks"
+Version=0.9
+MinorVer=9
+Frames=true
+Tables=true
+
+[ELinks (0.9*; *AIX*)]
+Parent=ELinks 0.9
+Platform=AIX
+
+[ELinks (0.9*; *BeOS*)]
+Parent=ELinks 0.9
+Platform=BeOS
+
+[ELinks (0.9*; *CygWin*)]
+Parent=ELinks 0.9
+Platform=CygWin
+
+[ELinks (0.9*; *Darwin*)]
+Parent=ELinks 0.9
+Platform=Darwin
+
+[ELinks (0.9*; *Digital Unix*)]
+Parent=ELinks 0.9
+Platform=Digital Unix
+
+[ELinks (0.9*; *FreeBSD*)]
+Parent=ELinks 0.9
+Platform=FreeBSD
+
+[ELinks (0.9*; *HPUX*)]
+Parent=ELinks 0.9
+Platform=HP-UX
+
+[ELinks (0.9*; *IRIX*)]
+Parent=ELinks 0.9
+Platform=IRIX
+
+[ELinks (0.9*; *Linux*)]
+Parent=ELinks 0.9
+Platform=Linux
+
+[ELinks (0.9*; *NetBSD*)]
+Parent=ELinks 0.9
+Platform=NetBSD
+
+[ELinks (0.9*; *OpenBSD*)]
+Parent=ELinks 0.9
+Platform=OpenBSD
+
+[ELinks (0.9*; *OS/2*)]
+Parent=ELinks 0.9
+Platform=OS/2
+
+[ELinks (0.9*; *RISC*)]
+Parent=ELinks 0.9
+Platform=RISC OS
+
+[ELinks (0.9*; *Solaris*)]
+Parent=ELinks 0.9
+Platform=Solaris
+
+[ELinks (0.9*; *Unix*)]
+Parent=ELinks 0.9
+Platform=Unix
+
+[ELinks/0.9* (*AIX*)]
+Parent=ELinks 0.9
+Platform=AIX
+
+[ELinks/0.9* (*BeOS*)]
+Parent=ELinks 0.9
+Platform=BeOS
+
+[ELinks/0.9* (*CygWin*)]
+Parent=ELinks 0.9
+Platform=CygWin
+
+[ELinks/0.9* (*Darwin*)]
+Parent=ELinks 0.9
+Platform=Darwin
+
+[ELinks/0.9* (*Digital Unix*)]
+Parent=ELinks 0.9
+Platform=Digital Unix
+
+[ELinks/0.9* (*FreeBSD*)]
+Parent=ELinks 0.9
+Platform=FreeBSD
+
+[ELinks/0.9* (*HPUX*)]
+Parent=ELinks 0.9
+Platform=HP-UX
+
+[ELinks/0.9* (*IRIX*)]
+Parent=ELinks 0.9
+Platform=IRIX
+
+[ELinks/0.9* (*Linux*)]
+Parent=ELinks 0.9
+Platform=Linux
+
+[ELinks/0.9* (*NetBSD*)]
+Parent=ELinks 0.9
+Platform=NetBSD
+
+[ELinks/0.9* (*OpenBSD*)]
+Parent=ELinks 0.9
+Platform=OpenBSD
+
+[ELinks/0.9* (*OS/2*)]
+Parent=ELinks 0.9
+Platform=OS/2
+
+[ELinks/0.9* (*RISC*)]
+Parent=ELinks 0.9
+Platform=RISC OS
+
+[ELinks/0.9* (*Solaris*)]
+Parent=ELinks 0.9
+Platform=Solaris
+
+[ELinks/0.9* (*Unix*)]
+Parent=ELinks 0.9
+Platform=Unix
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; AppleWebKit
+
+[AppleWebKit]
+Parent=DefaultProperties
+Browser="AppleWebKit"
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (KHTML, like Gecko)]
+Parent=AppleWebKit
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Camino
+
+[Camino]
+Parent=DefaultProperties
+Browser="Camino"
+Platform=MacOSX
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/0.7*]
+Parent=Camino
+Version=0.7
+MajorVer=0
+MinorVer=7
+Beta=true
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/0.8*]
+Parent=Camino
+Version=0.8
+MajorVer=0
+MinorVer=8
+Beta=true
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/0.9*]
+Parent=Camino
+Version=0.9
+MajorVer=0
+MinorVer=9
+Beta=true
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/1.0*]
+Parent=Camino
+Version=1.0
+MajorVer=1
+MinorVer=0
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/1.2*]
+Parent=Camino
+Version=1.2
+MajorVer=1
+MinorVer=2
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/1.3*]
+Parent=Camino
+Version=1.3
+MajorVer=1
+MinorVer=3
+Platform=MacOSX
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/1.4*]
+Parent=Camino
+Version=1.4
+MajorVer=1
+MinorVer=4
+Platform=MacOSX
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/1.5*]
+Parent=Camino
+Version=1.5
+MajorVer=1
+MinorVer=5
+Platform=MacOSX
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/1.6*]
+Parent=Camino
+Version=1.6
+MajorVer=1
+MinorVer=6
+Platform=MacOSX
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chimera
+
+[Chimera]
+Parent=DefaultProperties
+Browser="Chimera"
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+
+[Mozilla/5.0 (Macintosh; U; *Mac OS X*; *; rv:1.*) Gecko/* Chimera/*]
+Parent=Chimera
+Platform=MacOSX
+
+[Mozilla/5.0 Gecko/* Chimera/*]
+Parent=Chimera
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Dillo
+
+[Dillo]
+Parent=DefaultProperties
+Browser="Dillo"
+Platform=Linux
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+CssVersion=2
+supportsCSS=true
+
+[Dillo/0.6*]
+Parent=Dillo
+Version=0.6
+MajorVer=0
+MinorVer=6
+
+[Dillo/0.7*]
+Parent=Dillo
+Version=0.7
+MajorVer=0
+MinorVer=7
+
+[Dillo/0.8*]
+Parent=Dillo
+Version=0.8
+MajorVer=0
+MinorVer=8
+
+[Dillo/2.0]
+Parent=Dillo
+Version=2.0
+MajorVer=2
+MinorVer=0
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Emacs/W3
+
+[Emacs/W3]
+Parent=DefaultProperties
+Browser="Emacs/W3"
+Frames=true
+Tables=true
+Cookies=true
+
+[Emacs/W3/2.* (Unix*]
+Parent=Emacs/W3
+Version=2.0
+MajorVer=2
+MinorVer=0
+Platform=Unix
+
+[Emacs/W3/2.* (X11*]
+Parent=Emacs/W3
+Version=2.0
+MajorVer=2
+MinorVer=0
+Platform=Linux
+
+[Emacs/W3/3.* (Unix*]
+Parent=Emacs/W3
+Version=3.0
+MajorVer=3
+MinorVer=0
+Platform=Unix
+
+[Emacs/W3/3.* (X11*]
+Parent=Emacs/W3
+Version=3.0
+MajorVer=3
+MinorVer=0
+Platform=Linux
+
+[Emacs/W3/4.* (Unix*]
+Parent=Emacs/W3
+Version=4.0
+MajorVer=4
+MinorVer=0
+Platform=Unix
+
+[Emacs/W3/4.* (X11*]
+Parent=Emacs/W3
+Version=4.0
+MajorVer=4
+MinorVer=0
+Platform=Linux
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; fantomas
+
+[fantomas]
+Parent=DefaultProperties
+Browser="fantomas"
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaScript=true
+
+[Mozilla/4.0 (cloakBrowser)]
+Parent=fantomas
+Browser="fantomas cloakBrowser"
+
+[Mozilla/4.0 (fantomas shadowMaker Browser)]
+Parent=fantomas
+Browser="fantomas shadowMaker Browser"
+
+[Mozilla/4.0 (fantomBrowser)]
+Parent=fantomas
+Browser="fantomas fantomBrowser"
+
+[Mozilla/4.0 (fantomCrew Browser)]
+Parent=fantomas
+Browser="fantomas fantomCrew Browser"
+
+[Mozilla/4.0 (stealthBrowser)]
+Parent=fantomas
+Browser="fantomas stealthBrowser"
+
+[multiBlocker browser*]
+Parent=fantomas
+Browser="fantomas multiBlocker browser"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; FrontPage
+
+[FrontPage]
+Parent=DefaultProperties
+Browser="FrontPage"
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaScript=true
+
+[Mozilla/?* (compatible; MS FrontPage*)]
+Parent=FrontPage
+
+[MSFrontPage/*]
+Parent=FrontPage
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Galeon
+
+[Galeon]
+Parent=DefaultProperties
+Browser="Galeon"
+Platform=Linux
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (X11; U; Linux*) Gecko/* Galeon/1.*]
+Parent=Galeon
+Version=1.0
+MajorVer=1
+MinorVer=0
+
+[Mozilla/5.0 (X11; U; Linux*) Gecko/* Galeon/2.*]
+Parent=Galeon
+Version=2.0
+MajorVer=2
+MinorVer=0
+
+[Mozilla/5.0 Galeon/1.* (X11; Linux*)*]
+Parent=Galeon
+Version=1.0
+MajorVer=1
+MinorVer=0
+
+[Mozilla/5.0 Galeon/2.* (X11; Linux*)*]
+Parent=Galeon
+Version=2.0
+MajorVer=2
+MinorVer=0
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; HP Secure Web Browser
+
+[HP Secure Web Browser]
+Parent=DefaultProperties
+Browser="HP Secure Web Browser"
+Platform=OpenVMS
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.0*) Gecko/*]
+Parent=HP Secure Web Browser
+Version=1.0
+MajorVer=1
+MinorVer=0
+
+[Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.1*) Gecko/*]
+Parent=HP Secure Web Browser
+Version=1.1
+MajorVer=1
+MinorVer=1
+
+[Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.2*) Gecko/*]
+Parent=HP Secure Web Browser
+Version=1.2
+MajorVer=1
+MinorVer=2
+
+[Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.3*) Gecko/*]
+Parent=HP Secure Web Browser
+Version=1.3
+MajorVer=1
+MinorVer=3
+
+[Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.4*) Gecko/*]
+Parent=HP Secure Web Browser
+Version=1.4
+MajorVer=1
+MinorVer=4
+
+[Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.5*) Gecko/*]
+Parent=HP Secure Web Browser
+Version=1.5
+MajorVer=1
+MinorVer=5
+
+[Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.6*) Gecko/*]
+Parent=HP Secure Web Browser
+Version=1.6
+MajorVer=1
+MinorVer=6
+
+[Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.7*) Gecko/*]
+Parent=HP Secure Web Browser
+Version=1.7
+MajorVer=1
+MinorVer=7
+
+[Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.8*) Gecko/*]
+Parent=HP Secure Web Browser
+Version=1.8
+MajorVer=1
+MinorVer=8
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IBrowse
+
+[IBrowse]
+Parent=DefaultProperties
+Browser="IBrowse"
+Platform=Amiga
+Frames=true
+Tables=true
+Cookies=true
+JavaScript=true
+
+[Arexx (compatible; MSIE 6.0; AmigaOS5.0) IBrowse 4.0]
+Parent=IBrowse
+Version=4.0
+MajorVer=4
+MinorVer=0
+
+[IBrowse/1.22 (AmigaOS *)]
+Parent=IBrowse
+Version=1.22
+MajorVer=1
+MinorVer=22
+
+[IBrowse/2.1 (AmigaOS *)]
+Parent=IBrowse
+Version=2.1
+MajorVer=2
+MinorVer=1
+
+[IBrowse/2.2 (AmigaOS *)]
+Parent=IBrowse
+Version=2.2
+MajorVer=2
+MinorVer=2
+
+[IBrowse/2.3 (AmigaOS *)]
+Parent=IBrowse
+Version=2.2
+MajorVer=2
+MinorVer=3
+
+[Mozilla/* (Win98; I) IBrowse/2.1 (AmigaOS 3.1)]
+Parent=IBrowse
+Version=2.1
+MajorVer=2
+MinorVer=1
+
+[Mozilla/* (Win98; I) IBrowse/2.2 (AmigaOS 3.1)]
+Parent=IBrowse
+Version=2.2
+MajorVer=2
+MinorVer=2
+
+[Mozilla/* (Win98; I) IBrowse/2.3 (AmigaOS 3.1)]
+Parent=IBrowse
+Version=2.3
+MajorVer=2
+MinorVer=3
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; iCab
+
+[iCab]
+Parent=DefaultProperties
+Browser="iCab"
+Frames=true
+Tables=true
+Cookies=true
+JavaScript=true
+CssVersion=1
+supportsCSS=true
+
+[iCab/2.7* (Macintosh; ?; 68K*)]
+Parent=iCab
+Version=2.7
+MajorVer=2
+MinorVer=7
+Platform=Mac68K
+
+[iCab/2.7* (Macintosh; ?; PPC*)]
+Parent=iCab
+Version=2.7
+MajorVer=2
+MinorVer=7
+Platform=MacPPC
+
+[iCab/2.8* (Macintosh; ?; *Mac OS X*)]
+Parent=iCab
+Version=2.8
+MajorVer=2
+MinorVer=8
+Platform=MacOSX
+
+[iCab/2.8* (Macintosh; ?; 68K*)]
+Parent=iCab
+Version=2.8
+MajorVer=2
+MinorVer=8
+Platform=Mac68K
+
+[iCab/2.8* (Macintosh; ?; PPC)]
+Parent=iCab
+Version=2.8
+MajorVer=2
+MinorVer=8
+Platform=MacPPC
+
+[iCab/2.9* (Macintosh; ?; *Mac OS X*)]
+Parent=iCab
+Version=2.9
+MajorVer=2
+MinorVer=9
+Platform=MacOSX
+
+[iCab/2.9* (Macintosh; ?; 68K*)]
+Parent=iCab
+Version=2.9
+MajorVer=2
+MinorVer=9
+Platform=Mac68K
+
+[iCab/2.9* (Macintosh; ?; PPC*)]
+Parent=iCab
+Version=2.9
+MajorVer=2
+MinorVer=9
+Platform=MacPPC
+
+[iCab/3.0* (Macintosh; ?; *Mac OS X*)]
+Parent=iCab
+Version=3.0
+MajorVer=3
+MinorVer=0
+Platform=MacOSX
+CssVersion=2
+supportsCSS=true
+
+[iCab/3.0* (Macintosh; ?; PPC*)]
+Parent=iCab
+Version=3.0
+MajorVer=3
+MinorVer=0
+Platform=MacPPC
+CssVersion=2
+supportsCSS=true
+
+[iCab/4.0 (Macintosh; U; *Mac OS X)]
+Parent=iCab
+Version=4.0
+MajorVer=4
+MinorVer=0
+Platform=MacOSX
+
+[Mozilla/* (compatible; iCab 3.0*; Macintosh; *Mac OS X*)]
+Parent=iCab
+Version=3.0
+MajorVer=3
+MinorVer=0
+Platform=MacOSX
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/* (compatible; iCab 3.0*; Macintosh; ?; PPC*)]
+Parent=iCab
+Version=3.0
+MajorVer=3
+MinorVer=0
+Platform=MacPPC
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/4.5 (compatible; iCab 2.7*; Macintosh; ?; 68K*)]
+Parent=iCab
+Version=2.7
+MajorVer=2
+MinorVer=7
+Platform=Mac68K
+
+[Mozilla/4.5 (compatible; iCab 2.7*; Macintosh; ?; PPC*)]
+Parent=iCab
+Version=2.7
+MajorVer=2
+MinorVer=7
+Platform=MacPPC
+
+[Mozilla/4.5 (compatible; iCab 2.8*; Macintosh; ?; *Mac OS X*)]
+Parent=iCab
+Version=2.8
+MajorVer=2
+MinorVer=8
+Platform=MacOSX
+
+[Mozilla/4.5 (compatible; iCab 2.8*; Macintosh; ?; PPC*)]
+Parent=iCab
+Version=2.8
+MajorVer=2
+MinorVer=8
+Platform=MacPPC
+
+[Mozilla/4.5 (compatible; iCab 2.9*; Macintosh; *Mac OS X*)]
+Parent=iCab
+Version=2.9
+MajorVer=2
+MinorVer=9
+Platform=MacOSX
+
+[Mozilla/4.5 (compatible; iCab 2.9*; Macintosh; ?; PPC*)]
+Parent=iCab
+Version=2.9
+MajorVer=2
+MinorVer=9
+Platform=MacPPC
+
+[Mozilla/4.5 (compatible; iCab 4.2*; Macintosh; *Mac OS X*)]
+Parent=iCab
+Version=4.2
+MajorVer=4
+MinorVer=2
+Platform=MacOSX
+
+[Mozilla/5.0 (Macintosh; U; Intel Mac OS X*; *) AppleWebKit/* (KHTML, like Gecko) iCab/4.7 Safari/*]
+Parent=iCab
+Version=4.7
+MajorVer=4
+MinorVer=7
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; iSiloX
+
+[iSiloX]
+Parent=DefaultProperties
+Browser="iSiloX"
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaScript=true
+Crawler=true
+CssVersion=2
+supportsCSS=true
+
+[iSiloX/4.0* MacOS]
+Parent=iSiloX
+Version=4.0
+MajorVer=4
+MinorVer=0
+Platform=MacPPC
+
+[iSiloX/4.0* Windows/32]
+Parent=iSiloX
+Version=4.0
+MajorVer=4
+MinorVer=0
+Platform=Win32
+Win32=true
+
+[iSiloX/4.1* MacOS]
+Parent=iSiloX
+Version=4.1
+MajorVer=4
+MinorVer=1
+Platform=MacPPC
+
+[iSiloX/4.1* Windows/32]
+Parent=iSiloX
+Version=4.1
+MajorVer=4
+MinorVer=1
+Platform=Win32
+Win32=true
+
+[iSiloX/4.2* MacOS]
+Parent=iSiloX
+Version=4.2
+MajorVer=4
+MinorVer=2
+Platform=MacPPC
+
+[iSiloX/4.2* Windows/32]
+Parent=iSiloX
+Version=4.2
+MajorVer=4
+MinorVer=2
+Platform=Win32
+Win32=true
+
+[iSiloX/4.3* MacOS]
+Parent=iSiloX
+Version=4.3
+MajorVer=4
+MinorVer=4
+Platform=MacOSX
+
+[iSiloX/4.3* Windows/32]
+Parent=iSiloX
+Version=4.3
+MajorVer=4
+MinorVer=3
+Platform=Win32
+Win32=true
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Lycoris Desktop/LX
+
+[Lycoris Desktop/LX]
+Parent=DefaultProperties
+Browser="Lycoris Desktop/LX"
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+Crawler=true
+
+[Mozilla/5.0 (X11; U; Linux i686*; en-US; rv:1.*: Desktop/LX Amethyst) Gecko/*]
+Parent=Lycoris Desktop/LX
+Version=1.1
+MajorVer=1
+MinorVer=1
+Platform=Linux
+
+[Mozilla/5.0 (X11; U; Linux i686*; en-US; rv:1.*; Desktop/LX Amethyst) Gecko/*]
+Parent=Lycoris Desktop/LX
+Version=1.0
+MajorVer=1
+MinorVer=0
+Platform=Linux
+
+[Mozilla/4.0 (VMS_Mosaic)]
+Parent=Mosaic
+Platform=OpenVMS
+
+[VMS_Mosaic/3.7*]
+Parent=Mosaic
+Version=3.7
+MajorVer=3
+MinorVer=7
+Platform=OpenVMS
+
+[VMS_Mosaic/3.8*]
+Parent=Mosaic
+Version=3.8
+MajorVer=3
+MinorVer=8
+Platform=OpenVMS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; NetPositive
+
+[NetPositive]
+Parent=DefaultProperties
+Browser="NetPositive"
+Platform=BeOS
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+
+[*NetPositive/2.2*]
+Parent=NetPositive
+Version=2.2
+MajorVer=2
+MinorVer=2
+
+[*NetPositive/2.2*BeOS*]
+Parent=NetPositive
+Version=2.2
+MajorVer=2
+MinorVer=2
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; OmniWeb
+
+[OmniWeb]
+Parent=DefaultProperties
+Browser="OmniWeb"
+Platform=MacOSX
+Frames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+isMobileDevice=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/* (Macintosh; ?; *Mac OS X; *) AppleWebKit/* (*) OmniWeb/v4*]
+Parent=OmniWeb
+Version=4.5
+MajorVer=4
+MinorVer=5
+Platform=MacOSX
+
+[Mozilla/* (Macintosh; ?; *Mac OS X; *) AppleWebKit/* (*) OmniWeb/v5*]
+Parent=OmniWeb
+Version=5.
+MajorVer=5
+MinorVer=0
+Platform=MacOSX
+
+[Mozilla/* (Macintosh; ?; *Mac OS X; *) AppleWebKit/* (*) OmniWeb/v6*]
+Parent=OmniWeb
+Version=6.0
+MajorVer=6
+MinorVer=0
+Platform=MacOSX
+
+[Mozilla/* (Macintosh; ?; PPC) OmniWeb/4*]
+Parent=OmniWeb
+Version=4.0
+MajorVer=4
+MinorVer=0
+Platform=MacPPC
+
+[Mozilla/* (Macintosh; ?; PPC) OmniWeb/5*]
+Parent=OmniWeb
+Version=5.0
+MajorVer=5
+MinorVer=0
+Platform=MacOSX
+
+[Mozilla/* (Macintosh; ?; PPC) OmniWeb/6*]
+Parent=OmniWeb
+Version=6.0
+MajorVer=6
+MinorVer=0
+Platform=MacPPC
+
+[Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/125.4 (KHTML, like Gecko, Safari) OmniWeb/v563.34]
+Parent=OmniWeb
+Version=5.1
+MajorVer=5
+MinorVer=1
+
+[Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/420+ (KHTML, like Gecko, Safari/420) OmniWeb/v607]
+Parent=OmniWeb
+Version=5.5
+MajorVer=5
+MinorVer=5
+
+[Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/522+ (KHTML, like Gecko, Safari/522) OmniWeb/v613]
+Parent=OmniWeb
+Version=5.6
+MajorVer=5
+MinorVer=6
+
+[Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/85 (KHTML, like Gecko) OmniWeb/v496]
+Parent=OmniWeb
+Version=4.5
+MajorVer=4
+MinorVer=5
+
+[Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/85 (KHTML, like Gecko) OmniWeb/v558.36 ]
+Parent=OmniWeb
+Version=5.0
+MajorVer=5
+MinorVer=0
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Shiira
+
+[Shiira]
+Parent=DefaultProperties
+Browser="Shiira"
+Platform=MacOSX
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Shiira/0.9*]
+Parent=Shiira
+Version=0.9
+MajorVer=0
+MinorVer=9
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Shiira/1.0*]
+Parent=Shiira
+Version=1.0
+MajorVer=1
+MinorVer=0
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Shiira/1.1*]
+Parent=Shiira
+Version=1.1
+MajorVer=1
+MinorVer=1
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Shiira/1.2*]
+Parent=Shiira
+Version=1.2
+MajorVer=1
+MinorVer=2
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Shiira/2.1*]
+Parent=Shiira
+Version=2.1
+MajorVer=2
+MinorVer=1
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Shiira/2.2*]
+Parent=Shiira
+Version=2.2
+MajorVer=2
+MinorVer=2
+
+[Windows Maker]
+Parent=DefaultProperties
+Browser="WMaker"
+Platform=Linux
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+VBScript=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[WMaker*]
+Parent=Windows Maker
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; K-Meleon 1.0
+
+[K-Meleon 1.0]
+Parent=DefaultProperties
+Browser="K-Meleon"
+Version=1.0
+MajorVer=1
+Win32=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (Windows; *; Win95; *; rv:1.*) Gecko/* K-Meleon/1.0*]
+Parent=K-Meleon 1.0
+Version=1.0
+MajorVer=1
+MinorVer=0
+Platform=Win95
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Win98; *; rv:1.*) Gecko/* K-Meleon/1.0*]
+Parent=K-Meleon 1.0
+Version=1.0
+MajorVer=1
+MinorVer=0
+Platform=Win98
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.*) Gecko/* K-Meleon?1.0*]
+Parent=K-Meleon 1.0
+Version=1.0
+MajorVer=1
+MinorVer=0
+Platform=Win2000
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.*) Gecko/* K-Meleon/1.0*]
+Parent=K-Meleon 1.0
+Version=1.0
+MajorVer=1
+MinorVer=0
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.*) Gecko/* K-Meleon/1.0*]
+Parent=K-Meleon 1.0
+Version=1.0
+MajorVer=1
+MinorVer=0
+Platform=Win2003
+Win32=true
+
+[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.*) Gecko/* K-Meleon/1.0*]
+Parent=K-Meleon 1.0
+Version=1.0
+MajorVer=1
+MinorVer=0
+Platform=WinNT
+Win32=true
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; K-Meleon 1.1
+
+[K-Meleon 1.1]
+Parent=DefaultProperties
+Browser="K-Meleon"
+Version=1.1
+MajorVer=1
+MinorVer=1
+Win32=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (Windows; *; Win95; *; rv:1.*) Gecko/* K-Meleon/1.1*]
+Parent=K-Meleon 1.1
+Version=1.0
+MajorVer=1
+MinorVer=0
+Platform=Win95
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Win98; *; rv:1.*) Gecko/* K-Meleon/1.1*]
+Parent=K-Meleon 1.1
+Version=1.0
+MajorVer=1
+MinorVer=0
+Platform=Win98
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.*) Gecko/* K-Meleon?1.1*]
+Parent=K-Meleon 1.1
+Version=1.0
+MajorVer=1
+MinorVer=0
+Platform=Win2000
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.*) Gecko/* K-Meleon/1.1*]
+Parent=K-Meleon 1.1
+Version=1.0
+MajorVer=1
+MinorVer=0
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.*) Gecko/* K-Meleon/1.1*]
+Parent=K-Meleon 1.1
+Version=1.0
+MajorVer=1
+MinorVer=0
+Platform=Win2003
+Win32=true
+
+[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.*) Gecko/* K-Meleon/1.1*]
+Parent=K-Meleon 1.1
+Version=1.0
+MajorVer=1
+MinorVer=0
+Platform=WinNT
+Win32=true
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; K-Meleon 1.5
+
+[K-Meleon 1.5]
+Parent=DefaultProperties
+Browser="K-Meleon"
+Version=1.5
+MajorVer=1
+MinorVer=5
+Win32=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (Windows; *; Win95; *; rv:1.*) Gecko/* K-Meleon/1.5*]
+Parent=K-Meleon 1.5
+Version=1.0
+MajorVer=1
+MinorVer=0
+Platform=Win95
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Win98; *; rv:1.*) Gecko/* K-Meleon/1.5*]
+Parent=K-Meleon 1.5
+Version=1.0
+MajorVer=1
+MinorVer=0
+Platform=Win98
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.*) Gecko/* K-Meleon?1.5*]
+Parent=K-Meleon 1.5
+Version=1.0
+MajorVer=1
+MinorVer=0
+Platform=Win2000
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.*) Gecko/* K-Meleon/1.5*]
+Parent=K-Meleon 1.5
+Version=1.0
+MajorVer=1
+MinorVer=0
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.*) Gecko/* K-Meleon/1.5*]
+Parent=K-Meleon 1.5
+Version=1.0
+MajorVer=1
+MinorVer=0
+Platform=Win2003
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 6.0; *; rv:1.*) Gecko/* K-Meleon/1.5*]
+Parent=K-Meleon 1.5
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; *; Windows NT 6.1; *; rv:1.*) Gecko/* K-Meleon/1.5*]
+Parent=K-Meleon 1.5
+Platform=Win7
+
+[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.*) Gecko/* K-Meleon/1.5*]
+Parent=K-Meleon 1.5
+Version=1.0
+MajorVer=1
+MinorVer=0
+Platform=WinNT
+Win32=true
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Konqueror 3.0
+
+[Konqueror 3.0]
+Parent=DefaultProperties
+Browser="Konqueror"
+Platform=Linux
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[*Konqueror/3.0*]
+Parent=Konqueror 3.0
+Version=3.0
+MajorVer=3
+MinorVer=0
+IFrames=false
+
+[*Konqueror/3.0*FreeBSD*]
+Parent=Konqueror 3.0
+Version=3.0
+MajorVer=3
+MinorVer=0
+Platform=FreeBSD
+IFrames=false
+
+[*Konqueror/3.0*Linux*]
+Parent=Konqueror 3.0
+Version=3.0
+MajorVer=3
+MinorVer=0
+Platform=Linux
+IFrames=false
+
+[*Konqueror/3.1*]
+Parent=Konqueror 3.0
+Version=3.1
+MajorVer=3
+MinorVer=1
+
+[*Konqueror/3.1*FreeBSD*]
+Parent=Konqueror 3.0
+Version=3.1
+MajorVer=3
+MinorVer=1
+Platform=FreeBSD
+
+[*Konqueror/3.1*Linux*]
+Parent=Konqueror 3.0
+Version=3.1
+MajorVer=3
+MinorVer=1
+
+[*Konqueror/3.2*]
+Parent=Konqueror 3.0
+Version=3.2
+MajorVer=3
+MinorVer=2
+
+[*Konqueror/3.2*FreeBSD*]
+Parent=Konqueror 3.0
+Version=3.2
+MajorVer=3
+MinorVer=2
+Platform=FreeBSD
+
+[*Konqueror/3.2*Linux*]
+Parent=Konqueror 3.0
+Version=3.2
+MajorVer=3
+MinorVer=2
+Platform=Linux
+
+[*Konqueror/3.3*]
+Parent=Konqueror 3.0
+Version=3.3
+MajorVer=3
+MinorVer=3
+
+[*Konqueror/3.3*FreeBSD*]
+Parent=Konqueror 3.0
+Version=3.3
+MajorVer=3
+MinorVer=3
+Platform=FreeBSD
+
+[*Konqueror/3.3*Linux*]
+Parent=Konqueror 3.0
+Version=3.3
+MajorVer=3
+MinorVer=3
+Platform=Linux
+
+[*Konqueror/3.3*OpenBSD*]
+Parent=Konqueror 3.0
+Version=3.3
+MajorVer=3
+MinorVer=3
+Platform=OpenBSD
+
+[*Konqueror/3.4*]
+Parent=Konqueror 3.0
+Version=3.4
+MajorVer=3
+MinorVer=4
+
+[*Konqueror/3.4*FreeBSD*]
+Parent=Konqueror 3.0
+Version=3.4
+MajorVer=3
+MinorVer=4
+Platform=FreeBSD
+
+[*Konqueror/3.4*Linux*]
+Parent=Konqueror 3.0
+Version=3.4
+MajorVer=3
+MinorVer=4
+Platform=Linux
+
+[*Konqueror/3.4*OpenBSD*]
+Parent=Konqueror 3.0
+Version=3.4
+MajorVer=3
+MinorVer=4
+Platform=OpenBSD
+
+[*Konqueror/3.5*]
+Parent=Konqueror 3.0
+Version=3.5
+MajorVer=3
+MinorVer=5
+
+[*Konqueror/3.5*FreeBSD*]
+Parent=Konqueror 3.0
+Version=3.5
+MajorVer=3
+MinorVer=5
+Platform=FreeBSD
+
+[*Konqueror/3.5*Linux*]
+Parent=Konqueror 3.0
+Version=3.5
+MajorVer=3
+MinorVer=5
+Platform=Linux
+
+[*Konqueror/3.5*OpenBSD*]
+Parent=Konqueror 3.0
+Version=3.5
+MajorVer=3
+MinorVer=5
+Platform=OpenBSD
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Konqueror 4.0
+
+[Konqueror 4.0]
+Parent=DefaultProperties
+Browser="Konqueror"
+Version=4.0
+MajorVer=4
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (compatible; Konqueror/4.0*) KHTML/4.0* (like Gecko)]
+Parent=Konqueror 4.0
+
+[Mozilla/5.0 (compatible; Konqueror/4.0*; Debian) KHTML/4.0* (like Gecko)]
+Parent=Konqueror 4.0
+Platform=Debian
+
+[Mozilla/5.0 (compatible; Konqueror/4.0.*; *Linux) KHTML/4.0* (like Gecko)]
+Parent=Konqueror 4.0
+Platform=Linux
+
+[Mozilla/5.0 (compatible; Konqueror/4.0.*; FreeBSD) KHTML/4.0* (like Gecko)]
+Parent=Konqueror 4.0
+Platform=FreeBSD
+
+[Mozilla/5.0 (compatible; Konqueror/4.0.*; NetBSD) KHTML/4.0* (like Gecko)]
+Parent=Konqueror 4.0
+Platform=NetBSD
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Konqueror 4.1
+
+[Konqueror 4.1]
+Parent=DefaultProperties
+Browser="Konqueror"
+Version=4.1
+MajorVer=4
+MinorVer=1
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (compatible; Konqueror/4.1*) KHTML/4.1* (like Gecko)*]
+Parent=Konqueror 4.1
+
+[Mozilla/5.0 (compatible; Konqueror/4.1*; *Linux*) KHTML/4.1* (like Gecko)*]
+Parent=Konqueror 4.1
+Platform=Linux
+
+[Mozilla/5.0 (compatible; Konqueror/4.1*; Debian) KHTML/4.1* (like Gecko)*]
+Parent=Konqueror 4.1
+Platform=Debian
+
+[Mozilla/5.0 (compatible; Konqueror/4.1*; FreeBSD) KHTML/4.1* (like Gecko)*]
+Parent=Konqueror 4.1
+Platform=FreeBSD
+
+[Mozilla/5.0 (compatible; Konqueror/4.1*; NetBSD) KHTML/4.1* (like Gecko)*]
+Parent=Konqueror 4.1
+Platform=NetBSD
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Konqueror 4.2
+
+[Konqueror 4.2]
+Parent=DefaultProperties
+Browser="Konqueror"
+Version=4.2
+MajorVer=4
+MinorVer=2
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (compatible; Konqueror/4.2*) KHTML/4.2* (like Gecko)*]
+Parent=Konqueror 4.2
+
+[Mozilla/5.0 (compatible; Konqueror/4.2*; *Linux*) KHTML/4.2* (like Gecko)*]
+Parent=Konqueror 4.2
+Platform=Linux
+
+[Mozilla/5.0 (compatible; Konqueror/4.2*; Debian) KHTML/4.2* (like Gecko)*]
+Parent=Konqueror 4.2
+Platform=Debian
+
+[Mozilla/5.0 (compatible; Konqueror/4.2*; FreeBSD) KHTML/4.2* (like Gecko)*]
+Parent=Konqueror 4.2
+Platform=FreeBSD
+
+[Mozilla/5.0 (compatible; Konqueror/4.2*; NetBSD) KHTML/4.2* (like Gecko)*]
+Parent=Konqueror 4.2
+Platform=NetBSD
+
+[Mozilla/5.0 (compatible; Konqueror/4.2*; Windows) KHTML/4.2* (like Gecko)]
+Parent=Konqueror 4.2
+Platform=Win
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Konqueror 4.3
+
+[Konqueror 4.3]
+Parent=DefaultProperties
+Browser="Konqueror"
+Version=4.3
+MajorVer=4
+MinorVer=3
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (compatible; Konqueror/4.3*) KHTML/4.3* (like Gecko)*]
+Parent=Konqueror 4.3
+
+[Mozilla/5.0 (compatible; Konqueror/4.3*; *Linux*) KHTML/4.3* (like Gecko)*]
+Parent=Konqueror 4.3
+Platform=Linux
+
+[Mozilla/5.0 (compatible; Konqueror/4.3*; Debian) KHTML/4.3* (like Gecko)*]
+Parent=Konqueror 4.3
+Platform=Debian
+
+[Mozilla/5.0 (compatible; Konqueror/4.3*; FreeBSD) KHTML/4.3* (like Gecko)*]
+Parent=Konqueror 4.3
+Platform=FreeBSD
+
+[Mozilla/5.0 (compatible; Konqueror/4.3*; NetBSD) KHTML/4.3* (like Gecko)*]
+Parent=Konqueror 4.3
+Platform=NetBSD
+
+[Mozilla/5.0 (compatible; Konqueror/4.3*; Windows) KHTML/4.3* (like Gecko)]
+Parent=Konqueror 4.3
+Platform=Win
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari
+
+[Safari]
+Parent=DefaultProperties
+Browser="Safari"
+Platform=MacOSX
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/100*]
+Parent=Safari
+Version=1.1
+MajorVer=1
+MinorVer=1
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/125*]
+Parent=Safari
+Version=1.2
+MajorVer=1
+MinorVer=2
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/312*]
+Parent=Safari
+Version=1.3
+MajorVer=1
+MinorVer=3
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/412*]
+Parent=Safari
+Version=2.0
+MajorVer=2
+MinorVer=0
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/416*]
+Parent=Safari
+Version=2.0
+MajorVer=2
+MinorVer=0
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/417*]
+Parent=Safari
+Version=2.0
+MajorVer=2
+MinorVer=0
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/418*]
+Parent=Safari
+Version=2.0
+MajorVer=2
+MinorVer=0
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/419*]
+Parent=Safari
+Version=2.0
+MajorVer=2
+MinorVer=0
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/52*]
+Parent=Safari
+Beta=true
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/85*]
+Parent=Safari
+Version=1.0
+MajorVer=1
+MinorVer=0
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari 3.0
+
+[Safari 3.0]
+Parent=DefaultProperties
+Browser="Safari"
+Version=3.0
+MajorVer=3
+Platform=MacOSX
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (Macintosh; ?; *Mac OS X*) AppleWebKit/* (*) Version/3.0* Safari/*]
+Parent=Safari 3.0
+Platform=MacOSX
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) AppleWebKit/* (*) Version/3.0* Safari/*]
+Parent=Safari 3.0
+Platform=WinXP
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) AppleWebKit/* (*) Version/3.0* Safari/*]
+Parent=Safari 3.0
+Platform=Win2003
+
+[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) AppleWebKit/* (*) Version/3.0* Safari/*]
+Parent=Safari 3.0
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) AppleWebKit/* (*) Version/3.0* Safari/*]
+Parent=Safari 3.0
+Platform=Win7
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari 3.1
+
+[Safari 3.1]
+Parent=DefaultProperties
+Browser="Safari"
+Version=3.1
+MajorVer=3
+MinorVer=1
+Platform=MacOSX
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (Macintosh; ?; *Mac OS X*) AppleWebKit/* (*) Version/3.1* Safari/*]
+Parent=Safari 3.1
+Platform=MacOSX
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) AppleWebKit/* (*) Version/3.1* Safari/*]
+Parent=Safari 3.1
+Platform=WinXP
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) AppleWebKit/* (*) Version/3.1* Safari/*]
+Parent=Safari 3.1
+Platform=Win2003
+
+[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) AppleWebKit/* (*) Version/3.1* Safari/*]
+Parent=Safari 3.1
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) AppleWebKit/* (*) Version/3.1* Safari/*]
+Parent=Safari 3.1
+Platform=Win7
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari 3.2
+
+[Safari 3.2]
+Parent=DefaultProperties
+Browser="Safari"
+Version=3.2
+MajorVer=3
+MinorVer=2
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+JavaApplets=true
+JavaScript=true
+CssVersion=3
+supportsCSS=true
+
+[Mozilla/5.0 (Macintosh; ?; *Mac OS X*) AppleWebKit/* (*) Version/3.2* Safari/*]
+Parent=Safari 3.2
+Platform=MacOSX
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) AppleWebKit/* (*) Version/3.2* Safari/*]
+Parent=Safari 3.2
+Platform=WinXP
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) AppleWebKit/* (*) Version/3.2* Safari/*]
+Parent=Safari 3.2
+Platform=Win2003
+
+[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) AppleWebKit/* (*) Version/3.2* Safari/*]
+Parent=Safari 3.2
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) AppleWebKit/* (*) Version/3.2* Safari/*]
+Parent=Safari 3.2
+Platform=Win7
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari 4.0
+
+[Safari 4.0]
+Parent=DefaultProperties
+Browser="Safari"
+Version=4.0
+MajorVer=4
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+JavaApplets=true
+JavaScript=true
+CssVersion=3
+supportsCSS=true
+
+[Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *) AppleWebKit/* (KHTML, like Gecko) Version/4.0* Safari/*]
+Parent=Safari 4.0
+Platform=MacOSX
+
+[Mozilla/5.0 (Macintosh; U; *Mac OS X*; *) AppleWebKit/* (KHTML, like Gecko) Version/4 Public Beta Safari/*]
+Parent=Safari 4.0
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) AppleWebKit/* (*) Version/4 Public Beta Safari/*]
+Parent=Safari 4.0
+Platform=WinXP
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) AppleWebKit/* (*) Version/4.0* Safari/*]
+Parent=Safari 4.0
+Platform=WinXP
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) AppleWebKit/* (*) Version/4 Public Beta Safari/*]
+Parent=Safari 4.0
+Platform=Win2003
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) AppleWebKit/* (*) Version/4.0* Safari/*]
+Parent=Safari 4.0
+Platform=Win2003
+
+[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) AppleWebKit/* (*) Version/4 Public Beta Safari/*]
+Parent=Safari 4.0
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) AppleWebKit/* (*) Version/4.0* Safari/*]
+Parent=Safari 4.0
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) AppleWebKit/* (*) Version/4 Public Beta Safari/*]
+Parent=Safari 4.0
+Platform=Win7
+
+[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) AppleWebKit/* (*) Version/4.0* Safari/*]
+Parent=Safari 4.0
+Platform=Win7
+
+[Mozilla/5.0 (Windows; ?; Windows NT 7.0; *) AppleWebKit/* (*) Version/4 Public Beta Safari/*]
+Parent=Safari 4.0
+Platform=Win7
+
+[Mozilla/5.0 (Windows; ?; Windows NT 7.0; *) AppleWebKit/* (*) Version/4.0* Safari/*]
+Parent=Safari 4.0
+Platform=Win7
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 10
+
+[Opera 10]
+Parent=DefaultProperties
+Browser="Opera"
+Version=10.0
+MajorVer=10
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/4.0 (compatible; MSIE ?.0; Windows NT 5.0; *) Opera 10.*]
+Parent=Opera 10
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE ?.0; Windows NT 5.1; *) Opera 10.*]
+Parent=Opera 10
+Platform=WinXP
+
+[Mozilla/4.0 (compatible; MSIE ?.0; Windows NT 5.2; *) Opera 10.*]
+Parent=Opera 10
+Platform=Win2003
+
+[Mozilla/4.0 (compatible; MSIE ?.0; Windows NT 6.0; *) Opera 10.*]
+Parent=Opera 10
+Platform=WinVista
+
+[Mozilla/4.0 (compatible; MSIE ?.0; Windows NT 6.1; *) Opera 10.*]
+Parent=Opera 10
+Platform=Win7
+
+[Mozilla/4.0 (compatible; MSIE ?.0; X11; FreeBSD*) Opera 10.*]
+Parent=Opera 10
+Platform=FreeBSD
+
+[Mozilla/4.0 (compatible; MSIE ?.0; X11; Linux*; *) Opera 10.*]
+Parent=Opera 10
+Platform=Linux
+
+[Mozilla/4.0 (compatible; MSIE ?.0; X11; SunOS*) Opera 10.*]
+Parent=Opera 10
+Platform=SunOS
+
+[Opera/10.* (Macintosh; *Mac OS X; U; *) Presto/2.2.*]
+Parent=Opera 10
+Platform=MacOSX
+
+[Opera/10.* (Windows NT 5.0; U; *) Presto/2.2.*]
+Parent=Opera 10
+Platform=Win2000
+
+[Opera/10.* (Windows NT 5.1; U; *) Presto/2.2.*]
+Parent=Opera 10
+Platform=WinXP
+
+[Opera/10.* (Windows NT 5.2; U; *) Presto/2.2.*]
+Parent=Opera 10
+Platform=Win2003
+
+[Opera/10.* (Windows NT 6.0; U; *) Presto/2.2.*]
+Parent=Opera 10
+Platform=WinVista
+
+[Opera/10.* (Windows NT 6.1; U; *) Presto/2.2.*]
+Parent=Opera 10
+Platform=Win7
+
+[Opera/10.* (X11; FreeBSD; U; *) Presto/2.2.*]
+Parent=Opera 10
+Platform=FreeBSD
+
+[Opera/10.* (X11; Linux*; U; *) Presto/2.2.*]
+Parent=Opera 10
+Platform=Linux
+
+[Opera/10.* (X11; SunOS; U; *) Presto/2.2.*]
+Parent=Opera 10
+Platform=SunOS
+
+[Opera/9.80 (Macintosh; *Mac OS X; U; *) Presto/2.2.* Version/10.*]
+Parent=Opera 10
+Platform=MacOSX
+
+[Opera/9.80 (Windows NT 5.0; U; *) Presto/2.2.* Version/10.*]
+Parent=Opera 10
+Platform=Win2000
+
+[Opera/9.80 (Windows NT 5.1; U; *) Presto/2.2.* Version/10.*]
+Parent=Opera 10
+Platform=WinXP
+
+[Opera/9.80 (Windows NT 5.2; U; *) Presto/2.2.* Version/10.*]
+Parent=Opera 10
+Platform=Win2003
+
+[Opera/9.80 (Windows NT 6.0; U; *) Presto/2.2.* Version/10.*]
+Parent=Opera 10
+Platform=WinVista
+
+[Opera/9.80 (Windows NT 6.1; U; *) Presto/2.2.* Version/10.*]
+Parent=Opera 10
+Platform=Win7
+
+[Opera/9.80 (X11; FreeBSD; U; *) Presto/2.2.* Version/10.*]
+Parent=Opera 10
+Platform=FreeBSD
+
+[Opera/9.80 (X11; Linux*; U; *) Presto/2.2.* Version/10.*]
+Parent=Opera 10
+Platform=Linux
+
+[Opera/9.80 (X11; SunOS; U; *) Presto/2.2.* Version/10.*]
+Parent=Opera 10
+Platform=SunOS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 7.0
+
+[Opera 7.0]
+Parent=DefaultProperties
+Browser="Opera"
+Version=7.0
+MajorVer=7
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/3.0 (Windows 2000; ?) Opera 7.0*]
+Parent=Opera 7.0
+Platform=Win2000
+Win32=true
+
+[Mozilla/3.0 (Windows 95; ?) Opera 7.0*]
+Parent=Opera 7.0
+Platform=Win95
+Win32=true
+
+[Mozilla/3.0 (Windows 98; ?) Opera 7.0*]
+Parent=Opera 7.0
+Platform=Win98
+Win32=true
+
+[Mozilla/3.0 (Windows ME; ?) Opera 7.0*]
+Parent=Opera 7.0
+Platform=WinME
+Win32=true
+
+[Mozilla/3.0 (Windows NT 4.0; ?) Opera 7.0*]
+Parent=Opera 7.0
+Platform=WinNT
+Win32=true
+
+[Mozilla/3.0 (Windows XP; ?) Opera 7.0*]
+Parent=Opera 7.0
+Platform=WinXP
+Win32=true
+
+[Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows 2000) Opera 7.0*]
+Parent=Opera 7.0
+Platform=Win2000
+Win32=true
+
+[Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows 95) Opera 7.0*]
+Parent=Opera 7.0
+Platform=Win95
+Win32=true
+
+[Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows 98) Opera 7.0*]
+Parent=Opera 7.0
+Platform=Win98
+Win32=true
+
+[Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows ME) Opera 7.0*]
+Parent=Opera 7.0
+Platform=WinME
+Win32=true
+
+[Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 4.0) Opera 7.0*]
+Parent=Opera 7.0
+Platform=WinNT
+Win32=true
+
+[Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.0) Opera 7.0*]
+Parent=Opera 7.0
+Platform=Win2000
+Win32=true
+
+[Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.1) Opera 7.0*]
+Parent=Opera 7.0
+Platform=WinXP
+Win32=true
+
+[Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows XP) Opera 7.0*]
+Parent=Opera 7.0
+Platform=WinXP
+Win32=true
+
+[Mozilla/4.78 (Windows 2000; ?) Opera 7.0*]
+Parent=Opera 7.0
+Platform=Win2000
+Win32=true
+
+[Mozilla/4.78 (Windows 95; ?) Opera 7.0*]
+Parent=Opera 7.0
+Platform=Win95
+Win32=true
+
+[Mozilla/4.78 (Windows 98; ?) Opera 7.0*]
+Parent=Opera 7.0
+Platform=Win98
+Win32=true
+
+[Mozilla/4.78 (Windows ME; ?) Opera 7.0*]
+Parent=Opera 7.0
+Platform=WinME
+Win32=true
+
+[Mozilla/4.78 (Windows NT 4.0; ?) Opera 7.0*]
+Parent=Opera 7.0
+Platform=WinNT
+Win32=true
+
+[Mozilla/4.78 (Windows NT 5.1; ?) Opera 7.0*]
+Parent=Opera 7.0
+Platform=WinXP
+Win32=true
+
+[Mozilla/4.78 (Windows Windows NT 5.0; ?) Opera 7.0*]
+Parent=Opera 7.0
+Platform=Win2000
+Win32=true
+
+[Mozilla/4.78 (Windows XP; ?) Opera 7.0*]
+Parent=Opera 7.0
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows 2000; ?) Opera 7.0*]
+Parent=Opera 7.0
+Platform=Win2000
+Win32=true
+
+[Mozilla/5.0 (Windows 95; ?) Opera 7.0*]
+Parent=Opera 7.0
+Platform=Win95
+Win32=true
+
+[Mozilla/5.0 (Windows 98; ?) Opera 7.0*]
+Parent=Opera 7.0
+Platform=Win98
+Win32=true
+
+[Mozilla/5.0 (Windows ME; ?) Opera 7.0*]
+Parent=Opera 7.0
+Platform=WinME
+Win32=true
+
+[Mozilla/5.0 (Windows NT 4.0; ?) Opera 7.0*]
+Parent=Opera 7.0
+Platform=WinNT
+Win32=true
+
+[Mozilla/5.0 (Windows NT 5.1; ?) Opera 7.0*]
+Parent=Opera 7.0
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows XP; ?) Opera 7.0*]
+Parent=Opera 7.0
+Platform=WinXP
+Win32=true
+
+[Opera/7.0* (Windows 2000; ?)*]
+Parent=Opera 7.0
+Platform=Win2000
+Win32=true
+
+[Opera/7.0* (Windows 95; ?)*]
+Parent=Opera 7.0
+Platform=Win95
+Win32=true
+
+[Opera/7.0* (Windows 98; ?)*]
+Parent=Opera 7.0
+Platform=Win98
+Win32=true
+
+[Opera/7.0* (Windows ME; ?)*]
+Parent=Opera 7.0
+Platform=WinME
+Win32=true
+
+[Opera/7.0* (Windows NT 4.0; ?)*]
+Parent=Opera 7.0
+Platform=WinNT
+Win32=true
+
+[Opera/7.0* (Windows NT 5.0; ?)*]
+Parent=Opera 7.0
+Platform=Win2000
+Win32=true
+
+[Opera/7.0* (Windows NT 5.1; ?)*]
+Parent=Opera 7.0
+Platform=WinXP
+Win32=true
+
+[Opera/7.0* (Windows XP; ?)*]
+Parent=Opera 7.0
+Platform=WinXP
+Win32=true
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 7.1
+
+[Opera 7.1]
+Parent=DefaultProperties
+Browser="Opera"
+Version=7.1
+MajorVer=7
+MinorVer=1
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows 2000) Opera 7.1*]
+Parent=Opera 7.1
+Platform=Win2000
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows 95) Opera 7.1*]
+Parent=Opera 7.1
+Platform=Win95
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows 98) Opera 7.1*]
+Parent=Opera 7.1
+Platform=Win98
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows ME) Opera 7.1*]
+Parent=Opera 7.1
+Platform=WinME
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 4.0) Opera 7.1*]
+Parent=Opera 7.1
+Platform=WinNT
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.0) Opera 7.1*]
+Parent=Opera 7.1
+Platform=Win2000
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.1) Opera 7.1*]
+Parent=Opera 7.1
+Platform=WinXP
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows XP) Opera 7.1*]
+Parent=Opera 7.1
+Platform=WinXP
+Win32=true
+
+[Mozilla/?.* (Windows 2000; ?) Opera 7.1*]
+Parent=Opera 7.1
+Platform=Win2000
+Win32=true
+
+[Mozilla/?.* (Windows 95; ?) Opera 7.1*]
+Parent=Opera 7.1
+Platform=Win95
+Win32=true
+
+[Mozilla/?.* (Windows 98; ?) Opera 7.1*]
+Parent=Opera 7.1
+Platform=Win98
+Win32=true
+
+[Mozilla/?.* (Windows ME; ?) Opera 7.1*]
+Parent=Opera 7.1
+Platform=WinME
+Win32=true
+
+[Mozilla/?.* (Windows NT 4.0; U) Opera 7.1*]
+Parent=Opera 7.1
+Platform=WinNT
+Win32=true
+
+[Mozilla/?.* (Windows NT 5.0; U) Opera 7.1*]
+Parent=Opera 7.1
+Platform=Win2000
+Win32=true
+
+[Mozilla/?.* (Windows NT 5.1; ?) Opera 7.1*]
+Parent=Opera 7.1
+Platform=WinXP
+Win32=true
+
+[Opera/7.1* (Linux*; ?)*]
+Parent=Opera 7.1
+Platform=Linux
+
+[Opera/7.1* (Windows 95; ?)*]
+Parent=Opera 7.1
+Platform=Win95
+Win32=true
+
+[Opera/7.1* (Windows 98; ?)*]
+Parent=Opera 7.1
+Platform=Win98
+Win32=true
+
+[Opera/7.1* (Windows ME; ?)*]
+Parent=Opera 7.1
+Platform=WinME
+Win32=true
+
+[Opera/7.1* (Windows NT 4.0; ?)*]
+Parent=Opera 7.1
+Platform=WinNT
+Win32=true
+
+[Opera/7.1* (Windows NT 5.0; ?)*]
+Parent=Opera 7.1
+Platform=Win2000
+Win32=true
+
+[Opera/7.1* (Windows NT 5.1; ?)*]
+Parent=Opera 7.1
+Platform=WinXP
+Win32=true
+
+[Opera/7.1* (Windows XP; ?)*]
+Parent=Opera 7.1
+Platform=WinXP
+Win32=true
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 7.2
+
+[Opera 7.2]
+Parent=DefaultProperties
+Browser="Opera"
+Version=7.2
+MajorVer=7
+MinorVer=2
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Linux*) Opera 7.2*]
+Parent=Opera 7.2
+Platform=Linux
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows 2000) Opera 7.2*]
+Parent=Opera 7.2
+Platform=Win2000
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows 95) Opera 7.2*]
+Parent=Opera 7.2
+Platform=Win95
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows 98) Opera 7.2*]
+Parent=Opera 7.2
+Platform=Win98
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows ME) Opera 7.2*]
+Parent=Opera 7.2
+Platform=WinME
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 4.0) Opera 7.2*]
+Parent=Opera 7.2
+Platform=WinNT
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.0) Opera 7.2*]
+Parent=Opera 7.2
+Platform=Win2000
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.1) Opera 7.2*]
+Parent=Opera 7.2
+Platform=WinXP
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.2) Opera 7.2*]
+Parent=Opera 7.2
+Platform=Win2003
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows XP) Opera 7.2*]
+Parent=Opera 7.2
+Platform=WinXP
+Win32=true
+
+[Mozilla/?.* (Windows 2000; ?) Opera 7.2*]
+Parent=Opera 7.2
+Platform=Win2000
+Win32=true
+
+[Mozilla/?.* (Windows 95; ?) Opera 7.2*]
+Parent=Opera 7.2
+Platform=Win95
+Win32=true
+
+[Mozilla/?.* (Windows 98; ?) Opera 7.2*]
+Parent=Opera 7.2
+Platform=Win98
+Win32=true
+
+[Mozilla/?.* (Windows ME; ?) Opera 7.2*]
+Parent=Opera 7.2
+Platform=WinME
+Win32=true
+
+[Mozilla/?.* (Windows NT 4.0; U) Opera 7.2*]
+Parent=Opera 7.2
+Platform=WinNT
+Win32=true
+
+[Mozilla/?.* (Windows NT 5.0; U) Opera 7.2*]
+Parent=Opera 7.2
+Platform=Win2000
+Win32=true
+
+[Mozilla/?.* (Windows NT 5.1; ?) Opera 7.2*]
+Parent=Opera 7.2
+Platform=WinXP
+Win32=true
+
+[Mozilla/?.* (Windows NT 5.2; ?) Opera 7.2*]
+Parent=Opera 7.2
+Platform=Win2003
+Win32=true
+
+[Opera/7.2* (Linux*; ?)*]
+Parent=Opera 7.2
+Platform=Linux
+
+[Opera/7.2* (Windows 95; ?)*]
+Parent=Opera 7.2
+Platform=Win95
+Win32=true
+
+[Opera/7.2* (Windows 98; ?)*]
+Parent=Opera 7.2
+Platform=Win98
+Win32=true
+
+[Opera/7.2* (Windows ME; ?)*]
+Parent=Opera 7.2
+Platform=WinME
+Win32=true
+
+[Opera/7.2* (Windows NT 4.0; ?)*]
+Parent=Opera 7.2
+Platform=WinNT
+Win32=true
+
+[Opera/7.2* (Windows NT 5.0; ?)*]
+Parent=Opera 7.2
+Platform=Win2000
+Win32=true
+
+[Opera/7.2* (Windows NT 5.1; ?)*]
+Parent=Opera 7.2
+Platform=WinXP
+Win32=true
+
+[Opera/7.2* (Windows NT 5.2; ?)*]
+Parent=Opera 7.2
+Platform=Win2003
+Win32=true
+
+[Opera/7.2* (Windows XP; ?)*]
+Parent=Opera 7.2
+Platform=WinXP
+Win32=true
+
+[Opera/7.2* (X11; FreeBSD*; ?)*]
+Parent=Opera 7.2
+Platform=FreeBSD
+
+[Opera/7.2* (X11; Linux*; ?)*]
+Parent=Opera 7.2
+Platform=Linux
+
+[Opera/7.2* (X11; SunOS*)*]
+Parent=Opera 7.2
+Platform=SunOS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 7.5
+
+[Opera 7.5]
+Parent=DefaultProperties
+Browser="Opera"
+Version=7.5
+MajorVer=7
+MinorVer=5
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Linux*) Opera 7.5*]
+Parent=Opera 7.5
+Platform=Linux
+
+[Mozilla/?.* (compatible; MSIE ?.*; Mac_PowerPC) Opera 7.5*]
+Parent=Opera 7.5
+Platform=MacPPC
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows 2000) Opera 7.5*]
+Parent=Opera 7.5
+Platform=Win2000
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows 95) Opera 7.5*]
+Parent=Opera 7.5
+Platform=Win95
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows 98) Opera 7.5*]
+Parent=Opera 7.5
+Platform=Win98
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows ME) Opera 7.5*]
+Parent=Opera 7.5
+Platform=WinME
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 4.0) Opera 7.5*]
+Parent=Opera 7.5
+Platform=WinNT
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.0) Opera 7.5*]
+Parent=Opera 7.5
+Platform=Win2000
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.1) Opera 7.5*]
+Parent=Opera 7.5
+Platform=WinXP
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.2) Opera 7.5*]
+Parent=Opera 7.5
+Platform=Win2003
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows XP) Opera 7.5*]
+Parent=Opera 7.5
+Platform=WinXP
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; X11; Linux*) Opera 7.5*]
+Parent=Opera 7.5
+Platform=Linux
+
+[Mozilla/?.* (Macintosh; *Mac OS X; ?) Opera 7.5*]
+Parent=Opera 7.5
+Platform=MacOSX
+
+[Mozilla/?.* (Windows 2000; ?) Opera 7.5*]
+Parent=Opera 7.5
+Platform=Win2000
+Win32=true
+
+[Mozilla/?.* (Windows 95; ?) Opera 7.5*]
+Parent=Opera 7.5
+Platform=Win95
+Win32=true
+
+[Mozilla/?.* (Windows 98; ?) Opera 7.5*]
+Parent=Opera 7.5
+Platform=Win98
+Win32=true
+
+[Mozilla/?.* (Windows ME; ?) Opera 7.5*]
+Parent=Opera 7.5
+Platform=WinME
+Win32=true
+
+[Mozilla/?.* (Windows NT 4.0; U) Opera 7.5*]
+Parent=Opera 7.5
+Platform=WinNT
+Win32=true
+
+[Mozilla/?.* (Windows NT 5.0; U) Opera 7.5*]
+Parent=Opera 7.5
+Platform=Win2000
+Win32=true
+
+[Mozilla/?.* (Windows NT 5.1; ?) Opera 7.5*]
+Parent=Opera 7.5
+Platform=WinXP
+Win32=true
+
+[Mozilla/?.* (Windows NT 5.2; ?) Opera 7.5*]
+Parent=Opera 7.5
+Platform=Win2003
+Win32=true
+
+[Mozilla/?.* (X11; Linux*; ?) Opera 7.5*]
+Parent=Opera 7.5
+Platform=Linux
+
+[Opera/7.5* (Linux*; ?)*]
+Parent=Opera 7.5
+Platform=Linux
+
+[Opera/7.5* (Macintosh; *Mac OS X; ?)*]
+Parent=Opera 7.5
+Platform=MacOSX
+
+[Opera/7.5* (Windows 95; ?)*]
+Parent=Opera 7.5
+Platform=Win95
+Win32=true
+
+[Opera/7.5* (Windows 98; ?)*]
+Parent=Opera 7.5
+Platform=Win98
+Win32=true
+
+[Opera/7.5* (Windows ME; ?)*]
+Parent=Opera 7.5
+Platform=WinME
+Win32=true
+
+[Opera/7.5* (Windows NT 4.0; ?)*]
+Parent=Opera 7.5
+Platform=WinNT
+Win32=true
+
+[Opera/7.5* (Windows NT 5.0; ?)*]
+Parent=Opera 7.5
+Platform=Win2000
+Win32=true
+
+[Opera/7.5* (Windows NT 5.1; ?)*]
+Parent=Opera 7.5
+Platform=WinXP
+Win32=true
+
+[Opera/7.5* (Windows NT 5.2; ?)*]
+Parent=Opera 7.5
+Platform=Win2003
+Win32=true
+
+[Opera/7.5* (Windows XP; ?)*]
+Parent=Opera 7.5
+Platform=WinXP
+Win32=true
+
+[Opera/7.5* (X11; FreeBSD*; ?)*]
+Parent=Opera 7.5
+Platform=FreeBSD
+
+[Opera/7.5* (X11; Linux*; ?)*]
+Parent=Opera 7.5
+Platform=Linux
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 7.6
+
+[Opera 7.6]
+Parent=DefaultProperties
+Browser="Opera"
+Version=7.6
+MajorVer=7
+MinorVer=6
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Linux*) Opera 7.6*]
+Parent=Opera 7.6
+Platform=Linux
+
+[Mozilla/?.* (compatible; MSIE ?.*; Mac_PowerPC) Opera 7.6*]
+Parent=Opera 7.6
+Platform=MacPPC
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows 2000) Opera 7.6*]
+Parent=Opera 7.6
+Platform=Win2000
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows 95) Opera 7.6*]
+Parent=Opera 7.6
+Platform=Win95
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows 98) Opera 7.6*]
+Parent=Opera 7.6
+Platform=Win98
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows ME) Opera 7.6*]
+Parent=Opera 7.6
+Platform=WinME
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 4.0) Opera 7.6*]
+Parent=Opera 7.6
+Platform=WinNT
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.0) Opera 7.6*]
+Parent=Opera 7.6
+Platform=Win2000
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.1) Opera 7.6*]
+Parent=Opera 7.6
+Platform=WinXP
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.2) Opera 7.6*]
+Parent=Opera 7.6
+Platform=Win2003
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows XP) Opera 7.6*]
+Parent=Opera 7.6
+Platform=WinXP
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; X11; Linux*) Opera 7.6*]
+Parent=Opera 7.6
+Platform=Linux
+
+[Mozilla/?.* (Macintosh; *Mac OS X; ?) Opera 7.6*]
+Parent=Opera 7.6
+Platform=MacOSX
+
+[Mozilla/?.* (Windows 2000; ?) Opera 7.6*]
+Parent=Opera 7.6
+Platform=Win2000
+Win32=true
+
+[Mozilla/?.* (Windows 95; ?) Opera 7.6*]
+Parent=Opera 7.6
+Platform=Win95
+Win32=true
+
+[Mozilla/?.* (Windows 98; ?) Opera 7.6*]
+Parent=Opera 7.6
+Platform=Win98
+Win32=true
+
+[Mozilla/?.* (Windows ME; ?) Opera 7.6*]
+Parent=Opera 7.6
+Platform=WinME
+Win32=true
+
+[Mozilla/?.* (Windows NT 4.0; U) Opera 7.6*]
+Parent=Opera 7.6
+Platform=WinNT
+Win32=true
+
+[Mozilla/?.* (Windows NT 5.0; U) Opera 7.6*]
+Parent=Opera 7.6
+Platform=Win2000
+Win32=true
+
+[Mozilla/?.* (Windows NT 5.1; ?) Opera 7.6*]
+Parent=Opera 7.6
+Platform=WinXP
+Win32=true
+
+[Mozilla/?.* (Windows NT 5.2; ?) Opera 7.6*]
+Parent=Opera 7.6
+Platform=Win2003
+Win32=true
+
+[Mozilla/?.* (X11; Linux*; ?) Opera 7.6*]
+Parent=Opera 7.6
+Platform=Linux
+
+[Opera/7.6* (Linux*)*]
+Parent=Opera 7.6
+Platform=Linux
+
+[Opera/7.6* (Macintosh; *Mac OS X; ?)*]
+Parent=Opera 7.6
+Platform=MacOSX
+
+[Opera/7.6* (Windows 95*)*]
+Parent=Opera 7.6
+Platform=Win95
+Win32=true
+
+[Opera/7.6* (Windows 98*)*]
+Parent=Opera 7.6
+Platform=Win98
+Win32=true
+
+[Opera/7.6* (Windows ME*)*]
+Parent=Opera 7.6
+Platform=WinME
+Win32=true
+
+[Opera/7.6* (Windows NT 4.0*)*]
+Parent=Opera 7.6
+Platform=WinNT
+Win32=true
+
+[Opera/7.6* (Windows NT 5.0*)*]
+Parent=Opera 7.6
+Platform=Win2000
+Win32=true
+
+[Opera/7.6* (Windows NT 5.1*)*]
+Parent=Opera 7.6
+Platform=WinXP
+Win32=true
+
+[Opera/7.6* (Windows NT 5.2*)*]
+Parent=Opera 7.6
+Platform=Win2003
+Win32=true
+
+[Opera/7.6* (Windows XP*)*]
+Parent=Opera 7.6
+Platform=WinXP
+Win32=true
+
+[Opera/7.6* (X11; FreeBSD*)*]
+Parent=Opera 7.6
+Platform=FreeBSD
+
+[Opera/7.6* (X11; Linux*)*]
+Parent=Opera 7.6
+Platform=Linux
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 8.0
+
+[Opera 8.0]
+Parent=DefaultProperties
+Browser="Opera"
+Version=8.0
+MajorVer=8
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Linux*) Opera 8.0*]
+Parent=Opera 8.0
+Platform=Linux
+
+[Mozilla/?.* (compatible; MSIE ?.*; Mac_PowerPC Mac OS X; *) Opera 8.0*]
+Parent=Opera 8.0
+Platform=MacOSX
+
+[Mozilla/?.* (compatible; MSIE ?.*; Mac_PowerPC) Opera 8.0*]
+Parent=Opera 8.0
+Platform=MacPPC
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows 2000*) Opera 8.0*]
+Parent=Opera 8.0
+Platform=Win2000
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows 95*) Opera 8.0*]
+Parent=Opera 8.0
+Platform=Win95
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows 98*) Opera 8.0*]
+Parent=Opera 8.0
+Platform=Win98
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows CE) Opera 8.0*]
+Parent=Opera 8.0
+Platform=WinCE
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows ME*) Opera 8.0*]
+Parent=Opera 8.0
+Platform=WinME
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 4.0*) Opera 8.0*]
+Parent=Opera 8.0
+Platform=WinNT
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.0*) Opera 8.0*]
+Parent=Opera 8.0
+Platform=Win2000
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.1*) Opera 8.0*]
+Parent=Opera 8.0
+Platform=WinXP
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.2*) Opera 8.0*]
+Parent=Opera 8.0
+Platform=Win2003
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows XP*) Opera 8.0*]
+Parent=Opera 8.0
+Platform=WinXP
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; X11; FreeBSD*) Opera 8.0*]
+Parent=Opera 8.0
+Platform=FreeBSD
+
+[Mozilla/?.* (compatible; MSIE ?.*; X11; Linux*) Opera 8.0*]
+Parent=Opera 8.0
+Platform=Linux
+
+[Mozilla/?.* (Macintosh; *Mac OS X; ?) Opera 8.0*]
+Parent=Opera 8.0
+Platform=MacOSX
+
+[Mozilla/?.* (Windows 2000; *) Opera 8.0*]
+Parent=Opera 8.0
+Platform=Win2000
+Win32=true
+
+[Mozilla/?.* (Windows 95; *) Opera 8.0*]
+Parent=Opera 8.0
+Platform=Win95
+Win32=true
+
+[Mozilla/?.* (Windows 98; *) Opera 8.0*]
+Parent=Opera 8.0
+Platform=Win98
+Win32=true
+
+[Mozilla/?.* (Windows ME; *) Opera 8.0*]
+Parent=Opera 8.0
+Platform=WinME
+Win32=true
+
+[Mozilla/?.* (Windows NT 4.0; *) Opera 8.0*]
+Parent=Opera 8.0
+Platform=WinNT
+Win32=true
+
+[Mozilla/?.* (Windows NT 5.0; *) Opera 8.0*]
+Parent=Opera 8.0
+Platform=Win2000
+Win32=true
+
+[Mozilla/?.* (Windows NT 5.1; *) Opera 8.0*]
+Parent=Opera 8.0
+Platform=WinXP
+Win32=true
+
+[Mozilla/?.* (Windows NT 5.2; *) Opera 8.0*]
+Parent=Opera 8.0
+Platform=Win2003
+Win32=true
+
+[Mozilla/?.* (X11; Linux*; *) Opera 8.0*]
+Parent=Opera 8.0
+Platform=Linux
+
+[Opera/8.0* (Linux*)*]
+Parent=Opera 8.0
+Platform=Linux
+
+[Opera/8.0* (Macintosh; *Mac OS X; *)*]
+Parent=Opera 8.0
+Platform=MacOSX
+
+[Opera/8.0* (Windows 95*)*]
+Parent=Opera 8.0
+Platform=Win95
+Win32=true
+
+[Opera/8.0* (Windows 98*)*]
+Parent=Opera 8.0
+Platform=Win98
+Win32=true
+
+[Opera/8.0* (Windows CE*)*]
+Parent=Opera 8.0
+Platform=WinCE
+Win32=true
+
+[Opera/8.0* (Windows ME*)*]
+Parent=Opera 8.0
+Platform=WinME
+Win32=true
+
+[Opera/8.0* (Windows NT 4.0*)*]
+Parent=Opera 8.0
+Platform=WinNT
+Win32=true
+
+[Opera/8.0* (Windows NT 5.0*)*]
+Parent=Opera 8.0
+Platform=Win2000
+Win32=true
+
+[Opera/8.0* (Windows NT 5.1*)*]
+Parent=Opera 8.0
+Platform=WinXP
+Win32=true
+
+[Opera/8.0* (Windows NT 5.2*)*]
+Parent=Opera 8.0
+Platform=Win2003
+Win32=true
+
+[Opera/8.0* (Windows XP*)*]
+Parent=Opera 8.0
+Platform=WinXP
+Win32=true
+
+[Opera/8.0* (X11; FreeBSD*)*]
+Parent=Opera 8.0
+Platform=FreeBSD
+
+[Opera/8.0* (X11; Linux*)*]
+Parent=Opera 8.0
+Platform=Linux
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 8.1
+
+[Opera 8.1]
+Parent=DefaultProperties
+Browser="Opera"
+Version=8.1
+MajorVer=8
+MinorVer=1
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Linux*) Opera 8.1*]
+Parent=Opera 8.1
+Platform=Linux
+
+[Mozilla/?.* (compatible; MSIE ?.*; Mac_PowerPC) Opera 8.1*]
+Parent=Opera 8.1
+Platform=MacPPC
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows 2000*) Opera 8.1*]
+Parent=Opera 8.1
+Platform=Win2000
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows 95*) Opera 8.1*]
+Parent=Opera 8.1
+Platform=Win95
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows 98*) Opera 8.1*]
+Parent=Opera 8.1
+Platform=Win98
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows CE) Opera 8.1*]
+Parent=Opera 8.1
+Platform=WinCE
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows ME*) Opera 8.1*]
+Parent=Opera 8.1
+Platform=WinME
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 4.0*) Opera 8.1*]
+Parent=Opera 8.1
+Platform=WinNT
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.0*) Opera 8.1*]
+Parent=Opera 8.1
+Platform=Win2000
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.1*) Opera 8.1*]
+Parent=Opera 8.1
+Platform=WinXP
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.2*) Opera 8.1*]
+Parent=Opera 8.1
+Platform=Win2003
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows XP*) Opera 8.1*]
+Parent=Opera 8.1
+Platform=WinXP
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; X11; FreeBSD*) Opera 8.1*]
+Parent=Opera 8.1
+Platform=FreeBSD
+
+[Mozilla/?.* (compatible; MSIE ?.*; X11; Linux*) Opera 8.1*]
+Parent=Opera 8.1
+Platform=Linux
+
+[Mozilla/?.* (Macintosh; *Mac OS X; ?) Opera 8.1*]
+Parent=Opera 8.1
+Platform=MacOSX
+
+[Mozilla/?.* (Windows 2000; *) Opera 8.1*]
+Parent=Opera 8.1
+Platform=Win2000
+Win32=true
+
+[Mozilla/?.* (Windows 95; *) Opera 8.1*]
+Parent=Opera 8.1
+Platform=Win95
+Win32=true
+
+[Mozilla/?.* (Windows 98; *) Opera 8.1*]
+Parent=Opera 8.1
+Platform=Win98
+Win32=true
+
+[Mozilla/?.* (Windows ME; *) Opera 8.1*]
+Parent=Opera 8.1
+Platform=WinME
+Win32=true
+
+[Mozilla/?.* (Windows NT 4.0; *) Opera 8.1*]
+Parent=Opera 8.1
+Platform=WinNT
+Win32=true
+
+[Mozilla/?.* (Windows NT 5.0; *) Opera 8.1*]
+Parent=Opera 8.1
+Platform=Win2000
+Win32=true
+
+[Mozilla/?.* (Windows NT 5.1; *) Opera 8.1*]
+Parent=Opera 8.1
+Platform=WinXP
+Win32=true
+
+[Mozilla/?.* (Windows NT 5.2; *) Opera 8.1*]
+Parent=Opera 8.1
+Platform=Win2003
+Win32=true
+
+[Mozilla/?.* (X11; Linux*; *) Opera 8.1*]
+Parent=Opera 8.1
+Platform=Linux
+
+[Opera/8.1* (Linux*)*]
+Parent=Opera 8.1
+Platform=Linux
+
+[Opera/8.1* (Macintosh; *Mac OS X; *)*]
+Parent=Opera 8.1
+Platform=MacOSX
+
+[Opera/8.1* (Windows 95*)*]
+Parent=Opera 8.1
+Platform=Win95
+Win32=true
+
+[Opera/8.1* (Windows 98*)*]
+Parent=Opera 8.1
+Platform=Win98
+Win32=true
+
+[Opera/8.1* (Windows CE*)*]
+Parent=Opera 8.1
+Platform=WinCE
+Win32=true
+
+[Opera/8.1* (Windows ME*)*]
+Parent=Opera 8.1
+Platform=WinME
+Win32=true
+
+[Opera/8.1* (Windows NT 4.0*)*]
+Parent=Opera 8.1
+Platform=WinNT
+Win32=true
+
+[Opera/8.1* (Windows NT 5.0*)*]
+Parent=Opera 8.1
+Platform=Win2000
+Win32=true
+
+[Opera/8.1* (Windows NT 5.1*)*]
+Parent=Opera 8.1
+Platform=WinXP
+Win32=true
+
+[Opera/8.1* (Windows NT 5.2*)*]
+Parent=Opera 8.1
+Platform=Win2003
+Win32=true
+
+[Opera/8.1* (Windows XP*)*]
+Parent=Opera 8.1
+Platform=WinXP
+Win32=true
+
+[Opera/8.1* (X11; FreeBSD*)*]
+Parent=Opera 8.1
+Platform=FreeBSD
+
+[Opera/8.1* (X11; Linux*)*]
+Parent=Opera 8.1
+Platform=Linux
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 8.5
+
+[Opera 8.5]
+Parent=DefaultProperties
+Browser="Opera"
+Version=8.5
+MajorVer=8
+MinorVer=5
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Linux*) Opera 8.5*]
+Parent=Opera 8.5
+Platform=Linux
+
+[Mozilla/?.* (compatible; MSIE ?.*; Mac_PowerPC Mac OS X;*) Opera 8.5*]
+Parent=Opera 8.5
+Platform=MacOSX
+
+[Mozilla/?.* (compatible; MSIE ?.*; Mac_PowerPC) Opera 8.5*]
+Parent=Opera 8.5
+Platform=MacPPC
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows 2000*) Opera 8.5*]
+Parent=Opera 8.5
+Platform=Win2000
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows 95*) Opera 8.5*]
+Parent=Opera 8.5
+Platform=Win95
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows 98*) Opera 8.5*]
+Parent=Opera 8.5
+Platform=Win98
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows CE) Opera 8.5*]
+Parent=Opera 8.5
+Platform=WinCE
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows ME*) Opera 8.5*]
+Parent=Opera 8.5
+Platform=WinME
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 4.0*) Opera 8.5*]
+Parent=Opera 8.5
+Platform=WinNT
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.0*) Opera 8.5*]
+Parent=Opera 8.5
+Platform=Win2000
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.1*) Opera 8.5*]
+Parent=Opera 8.5
+Platform=WinXP
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.2*) Opera 8.5*]
+Parent=Opera 8.5
+Platform=Win2003
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; Windows XP*) Opera 8.5*]
+Parent=Opera 8.5
+Platform=WinXP
+Win32=true
+
+[Mozilla/?.* (compatible; MSIE ?.*; X11; FreeBSD*) Opera 8.5*]
+Parent=Opera 8.5
+Platform=FreeBSD
+
+[Mozilla/?.* (compatible; MSIE ?.*; X11; Linux*) Opera 8.5*]
+Parent=Opera 8.5
+Platform=Linux
+
+[Mozilla/?.* (Macintosh; *Mac OS X; ?) Opera 8.5*]
+Parent=Opera 8.5
+Platform=MacOSX
+
+[Mozilla/?.* (Macintosh; PPC Mac OS X;*) Opera 8.5*]
+Parent=Opera 8.5
+Platform=MacOSX
+
+[Mozilla/?.* (Windows 2000; *) Opera 8.5*]
+Parent=Opera 8.5
+Platform=Win2000
+Win32=true
+
+[Mozilla/?.* (Windows 95; *) Opera 8.5*]
+Parent=Opera 8.5
+Platform=Win95
+Win32=true
+
+[Mozilla/?.* (Windows 98; *) Opera 8.5*]
+Parent=Opera 8.5
+Platform=Win98
+Win32=true
+
+[Mozilla/?.* (Windows ME; *) Opera 8.5*]
+Parent=Opera 8.5
+Platform=WinME
+Win32=true
+
+[Mozilla/?.* (Windows NT 4.0; *) Opera 8.5*]
+Parent=Opera 8.5
+Platform=WinNT
+Win32=true
+
+[Mozilla/?.* (Windows NT 5.0; *) Opera 8.5*]
+Parent=Opera 8.5
+Platform=Win2000
+Win32=true
+
+[Mozilla/?.* (Windows NT 5.1; *) Opera 8.5*]
+Parent=Opera 8.5
+Platform=WinXP
+Win32=true
+
+[Mozilla/?.* (Windows NT 5.2; *) Opera 8.5*]
+Parent=Opera 8.5
+Platform=Win2003
+Win32=true
+
+[Mozilla/?.* (X11; Linux*; *) Opera 8.5*]
+Parent=Opera 8.5
+Platform=Linux
+
+[Opera/8.5* (Linux*)*]
+Parent=Opera 8.5
+Platform=Linux
+
+[Opera/8.5* (Macintosh; *Mac OS X; *)*]
+Parent=Opera 8.5
+Platform=MacOSX
+
+[Opera/8.5* (Windows 95*)*]
+Parent=Opera 8.5
+Platform=Win95
+Win32=true
+
+[Opera/8.5* (Windows 98*)*]
+Parent=Opera 8.5
+Platform=Win98
+Win32=true
+
+[Opera/8.5* (Windows CE*)*]
+Parent=Opera 8.5
+Platform=WinCE
+Win32=true
+
+[Opera/8.5* (Windows ME*)*]
+Parent=Opera 8.5
+Platform=WinME
+Win32=true
+
+[Opera/8.5* (Windows NT 4.0*)*]
+Parent=Opera 8.5
+Platform=WinNT
+Win32=true
+
+[Opera/8.5* (Windows NT 5.0*)*]
+Parent=Opera 8.5
+Platform=Win2000
+Win32=true
+
+[Opera/8.5* (Windows NT 5.1*)*]
+Parent=Opera 8.5
+Platform=WinXP
+Win32=true
+
+[Opera/8.5* (Windows NT 5.2*)*]
+Parent=Opera 8.5
+Platform=Win2003
+Win32=true
+
+[Opera/8.5* (Windows XP*)*]
+Parent=Opera 8.5
+Platform=WinXP
+Win32=true
+
+[Opera/8.5* (X11; FreeBSD*)*]
+Parent=Opera 8.5
+Platform=FreeBSD
+
+[Opera/8.5* (X11; Linux*)*]
+Parent=Opera 8.5
+Platform=Linux
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 9.0
+
+[Opera 9.0]
+Parent=DefaultProperties
+Browser="Opera"
+Version=9.0
+MajorVer=9
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/* (compatible; MSIE*; Linux*) Opera 9.0*]
+Parent=Opera 9.0
+Platform=Linux
+
+[Mozilla/* (compatible; MSIE*; Mac_PowerPC Mac OS X;*) Opera 9.0*]
+Parent=Opera 9.0
+Platform=MacOSX
+
+[Mozilla/* (compatible; MSIE*; Mac_PowerPC) Opera 9.0*]
+Parent=Opera 9.0
+Platform=MacPPC
+
+[Mozilla/* (compatible; MSIE*; Windows 2000*) Opera 9.0*]
+Parent=Opera 9.0
+Platform=Win2000
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows 95*) Opera 9.0*]
+Parent=Opera 9.0
+Platform=Win95
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows 98*) Opera 9.0*]
+Parent=Opera 9.0
+Platform=Win98
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows CE*) Opera 9.0*]
+Parent=Opera 9.0
+Platform=WinCE
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows ME*) Opera 9.0*]
+Parent=Opera 9.0
+Platform=WinME
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 4.0*) Opera 9.0*]
+Parent=Opera 9.0
+Platform=WinNT
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 5.0*) Opera 9.0*]
+Parent=Opera 9.0
+Platform=Win2000
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 5.1*) Opera 9.0*]
+Parent=Opera 9.0
+Platform=WinXP
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 5.2*) Opera 9.0*]
+Parent=Opera 9.0
+Platform=Win2003
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 6.0*) Opera 9.0*]
+Parent=Opera 9.0
+Platform=WinVista
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows XP*) Opera 9.0*]
+Parent=Opera 9.0
+Platform=WinXP
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; X11; FreeBSD*) Opera 9.0*]
+Parent=Opera 9.0
+Platform=FreeBSD
+
+[Mozilla/* (compatible; MSIE*; X11; Linux*) Opera 9.0*]
+Parent=Opera 9.0
+Platform=Linux
+
+[Mozilla/* (compatible; MSIE*; X11; SunOS*) Opera 9.0*]
+Parent=Opera 9.0
+Platform=SunOS
+
+[Mozilla/* (Macintosh; *Mac OS X; ?) Opera 9.0*]
+Parent=Opera 9.0
+Platform=MacOSX
+
+[Mozilla/* (Windows 2000;*) Opera 9.0*]
+Parent=Opera 9.0
+Platform=Win2000
+Win32=true
+
+[Mozilla/* (Windows 95;*) Opera 9.0*]
+Parent=Opera 9.0
+Platform=Win95
+Win32=true
+
+[Mozilla/* (Windows 98;*) Opera 9.0*]
+Parent=Opera 9.0
+Platform=Win98
+Win32=true
+
+[Mozilla/* (Windows ME;*) Opera 9.0*]
+Parent=Opera 9.0
+Platform=WinME
+Win32=true
+
+[Mozilla/* (Windows NT 4.0;*) Opera 9.0*]
+Parent=Opera 9.0
+Platform=WinNT
+Win32=true
+
+[Mozilla/* (Windows NT 5.0;*) Opera 9.0*]
+Parent=Opera 9.0
+Platform=Win2000
+Win32=true
+
+[Mozilla/* (Windows NT 5.1;*) Opera 9.0*]
+Parent=Opera 9.0
+Platform=WinXP
+Win32=true
+
+[Mozilla/* (Windows NT 5.2;*) Opera 9.0*]
+Parent=Opera 9.0
+Platform=Win2003
+Win32=true
+
+[Mozilla/* (X11; Linux*) Opera 9.0*]
+Parent=Opera 9.0
+Platform=Linux
+
+[Opera/9.0* (Linux*)*]
+Parent=Opera 9.0
+Platform=Linux
+
+[Opera/9.0* (Macintosh; *Mac OS X;*)*]
+Parent=Opera 9.0
+Platform=MacOSX
+
+[Opera/9.0* (Windows 95*)*]
+Parent=Opera 9.0
+Platform=Win95
+Win32=true
+
+[Opera/9.0* (Windows 98*)*]
+Parent=Opera 9.0
+Platform=Win98
+Win32=true
+
+[Opera/9.0* (Windows CE*)*]
+Parent=Opera 9.0
+Platform=WinCE
+Win32=true
+
+[Opera/9.0* (Windows ME*)*]
+Parent=Opera 9.0
+Platform=WinME
+Win32=true
+
+[Opera/9.0* (Windows NT 4.0*)*]
+Parent=Opera 9.0
+Platform=WinNT
+Win32=true
+
+[Opera/9.0* (Windows NT 5.0*)*]
+Parent=Opera 9.0
+Platform=Win2000
+Win32=true
+
+[Opera/9.0* (Windows NT 5.1*)*]
+Parent=Opera 9.0
+Platform=WinXP
+Win32=true
+
+[Opera/9.0* (Windows NT 5.2*)*]
+Parent=Opera 9.0
+Platform=Win2003
+Win32=true
+
+[Opera/9.0* (Windows NT 6.0*)*]
+Parent=Opera 9.0
+Platform=WinVista
+Win32=true
+
+[Opera/9.0* (Windows XP*)*]
+Parent=Opera 9.0
+Platform=WinXP
+Win32=true
+
+[Opera/9.0* (X11; FreeBSD*)*]
+Parent=Opera 9.0
+Platform=FreeBSD
+
+[Opera/9.0* (X11; Linux*)*]
+Parent=Opera 9.0
+Platform=Linux
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 9.1
+
+[Opera 9.1]
+Parent=DefaultProperties
+Browser="Opera"
+Version=9.1
+MajorVer=9
+MinorVer=1
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/* (compatible; MSIE*; Linux*) Opera 9.1*]
+Parent=Opera 9.1
+Platform=Linux
+
+[Mozilla/* (compatible; MSIE*; Mac_PowerPC Mac OS X;*) Opera 9.1*]
+Parent=Opera 9.1
+Platform=MacOSX
+
+[Mozilla/* (compatible; MSIE*; Mac_PowerPC;*) Opera 9.1*]
+Parent=Opera 9.1
+Platform=MacPPC
+
+[Mozilla/* (compatible; MSIE*; Windows 2000*) Opera 9.1*]
+Parent=Opera 9.1
+Platform=Win2000
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows 95*) Opera 9.1*]
+Parent=Opera 9.1
+Platform=Win95
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows 98*) Opera 9.1*]
+Parent=Opera 9.1
+Platform=Win98
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows CE*) Opera 9.1*]
+Parent=Opera 9.1
+Platform=WinCE
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows ME*) Opera 9.1*]
+Parent=Opera 9.1
+Platform=WinME
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 4.0*) Opera 9.1*]
+Parent=Opera 9.1
+Platform=WinNT
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 5.0*) Opera 9.1*]
+Parent=Opera 9.1
+Platform=Win2000
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 5.1*) Opera 9.1*]
+Parent=Opera 9.1
+Platform=WinXP
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 5.2*) Opera 9.1*]
+Parent=Opera 9.1
+Platform=Win2003
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 6.0*) Opera 9.1*]
+Parent=Opera 9.1
+Platform=WinVista
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows XP*) Opera 9.1*]
+Parent=Opera 9.1
+Platform=WinXP
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; X11; FreeBSD*) Opera 9.1*]
+Parent=Opera 9.1
+Platform=FreeBSD
+
+[Mozilla/* (compatible; MSIE*; X11; Linux*) Opera 9.1*]
+Parent=Opera 9.1
+Platform=Linux
+
+[Mozilla/* (compatible; MSIE*; X11; SunOS*) Opera 9.1*]
+Parent=Opera 9.1
+Platform=SunOS
+
+[Mozilla/* (Macintosh; *Mac OS X; ?) Opera 9.1*]
+Parent=Opera 9.1
+Platform=MacOSX
+
+[Mozilla/* (Windows 2000;*) Opera 9.1*]
+Parent=Opera 9.1
+Platform=Win2000
+Win32=true
+
+[Mozilla/* (Windows 95;*) Opera 9.1*]
+Parent=Opera 9.1
+Platform=Win95
+Win32=true
+
+[Mozilla/* (Windows 98;*) Opera 9.1*]
+Parent=Opera 9.1
+Platform=Win98
+Win32=true
+
+[Mozilla/* (Windows ME;*) Opera 9.1*]
+Parent=Opera 9.1
+Platform=WinME
+Win32=true
+
+[Mozilla/* (Windows NT 4.0;*) Opera 9.1*]
+Parent=Opera 9.1
+Platform=WinNT
+Win32=true
+
+[Mozilla/* (Windows NT 5.0;*) Opera 9.1*]
+Parent=Opera 9.1
+Platform=Win2000
+Win32=true
+
+[Mozilla/* (Windows NT 5.1;*) Opera 9.1*]
+Parent=Opera 9.1
+Platform=WinXP
+Win32=true
+
+[Mozilla/* (Windows NT 5.2;*) Opera 9.1*]
+Parent=Opera 9.1
+Platform=Win2003
+Win32=true
+
+[Mozilla/* (X11; Linux*) Opera 9.1*]
+Parent=Opera 9.1
+Platform=Linux
+
+[Opera/9.1* (Linux*)*]
+Parent=Opera 9.1
+Platform=Linux
+
+[Opera/9.1* (Macintosh; *Mac OS X;*)*]
+Parent=Opera 9.1
+Platform=MacOSX
+
+[Opera/9.1* (Windows 95*)*]
+Parent=Opera 9.1
+Platform=Win95
+Win32=true
+
+[Opera/9.1* (Windows 98*)*]
+Parent=Opera 9.1
+Platform=Win98
+Win32=true
+
+[Opera/9.1* (Windows CE*)*]
+Parent=Opera 9.1
+Platform=WinCE
+Win32=true
+
+[Opera/9.1* (Windows ME*)*]
+Parent=Opera 9.1
+Platform=WinME
+Win32=true
+
+[Opera/9.1* (Windows NT 4.0*)*]
+Parent=Opera 9.1
+Platform=WinNT
+Win32=true
+
+[Opera/9.1* (Windows NT 5.0*)*]
+Parent=Opera 9.1
+Platform=Win2000
+Win32=true
+
+[Opera/9.1* (Windows NT 5.1*)*]
+Parent=Opera 9.1
+Platform=WinXP
+Win32=true
+
+[Opera/9.1* (Windows NT 5.2*)*]
+Parent=Opera 9.1
+Platform=Win2003
+Win32=true
+
+[Opera/9.1* (Windows NT 6.0*)*]
+Parent=Opera 9.1
+Platform=WinVista
+Win32=true
+
+[Opera/9.1* (Windows XP*)*]
+Parent=Opera 9.1
+Platform=WinXP
+Win32=true
+
+[Opera/9.1* (X11; FreeBSD*)*]
+Parent=Opera 9.1
+Platform=FreeBSD
+
+[Opera/9.1* (X11; Linux*)*]
+Parent=Opera 9.1
+Platform=Linux
+
+[Opera/9.1* (X11; SunOS*)*]
+Parent=Opera 9.1
+Platform=SunOS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 9.2
+
+[Opera 9.2]
+Parent=DefaultProperties
+Browser="Opera"
+Version=9.2
+MajorVer=9
+MinorVer=2
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/* (compatible; MSIE*; Linux*) Opera 9.2*]
+Parent=Opera 9.2
+Platform=Linux
+
+[Mozilla/* (compatible; MSIE*; Mac_PowerPC Mac OS X;*) Opera 9.2*]
+Parent=Opera 9.2
+Platform=MacOSX
+
+[Mozilla/* (compatible; MSIE*; Mac_PowerPC) Opera 9.2*]
+Parent=Opera 9.2
+Platform=MacPPC
+
+[Mozilla/* (compatible; MSIE*; Windows 2000*) Opera 9.2*]
+Parent=Opera 9.2
+Platform=Win2000
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows 95*) Opera 9.2*]
+Parent=Opera 9.2
+Platform=Win95
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows 98*) Opera 9.2*]
+Parent=Opera 9.2
+Platform=Win98
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows CE*) Opera 9.2*]
+Parent=Opera 9.2
+Platform=WinCE
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows ME*) Opera 9.2*]
+Parent=Opera 9.2
+Platform=WinME
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 4.0*) Opera 9.2*]
+Parent=Opera 9.2
+Platform=WinNT
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 5.0*) Opera 9.2*]
+Parent=Opera 9.2
+Platform=Win2000
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 5.1*) Opera 9.2*]
+Parent=Opera 9.2
+Platform=WinXP
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 5.2*) Opera 9.2*]
+Parent=Opera 9.2
+Platform=Win2003
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 6.0*) Opera 9.2*]
+Parent=Opera 9.2
+Platform=WinVista
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 6.1*) Opera 9.2*]
+Parent=Opera 9.2
+Platform=Win7
+
+[Mozilla/* (compatible; MSIE*; Windows XP*) Opera 9.2*]
+Parent=Opera 9.2
+Platform=WinXP
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; X11; FreeBSD*) Opera 9.2*]
+Parent=Opera 9.2
+Platform=FreeBSD
+
+[Mozilla/* (compatible; MSIE*; X11; Linux*) Opera 9.2*]
+Parent=Opera 9.2
+Platform=Linux
+
+[Mozilla/* (compatible; MSIE*; X11; SunOS*) Opera 9.2*]
+Parent=Opera 9.2
+Platform=SunOS
+
+[Mozilla/* (Macintosh; *Mac OS X; ?) Opera 9.2*]
+Parent=Opera 9.2
+Platform=MacOSX
+
+[Mozilla/* (Windows 2000;*) Opera 9.2*]
+Parent=Opera 9.2
+Platform=Win2000
+Win32=true
+
+[Mozilla/* (Windows 95;*) Opera 9.2*]
+Parent=Opera 9.2
+Platform=Win95
+Win32=true
+
+[Mozilla/* (Windows 98;*) Opera 9.2*]
+Parent=Opera 9.2
+Platform=Win98
+Win32=true
+
+[Mozilla/* (Windows ME;*) Opera 9.2*]
+Parent=Opera 9.2
+Platform=WinME
+Win32=true
+
+[Mozilla/* (Windows NT 4.0;*) Opera 9.2*]
+Parent=Opera 9.2
+Platform=WinNT
+Win32=true
+
+[Mozilla/* (Windows NT 5.0;*) Opera 9.2*]
+Parent=Opera 9.2
+Platform=Win2000
+Win32=true
+
+[Mozilla/* (Windows NT 5.1;*) Opera 9.2*]
+Parent=Opera 9.2
+Platform=WinXP
+Win32=true
+
+[Mozilla/* (Windows NT 5.2;*) Opera 9.2*]
+Parent=Opera 9.2
+Platform=Win2003
+Win32=true
+
+[Mozilla/* (Windows NT 6.0;*) Opera 9.2*]
+Parent=Opera 9.2
+Platform=WinVista
+
+[Mozilla/* (Windows NT 6.1;*) Opera 9.2*]
+Parent=Opera 9.2
+Platform=Win7
+
+[Mozilla/* (X11; Linux*) Opera 9.2*]
+Parent=Opera 9.2
+Platform=Linux
+
+[Opera/9.2* (Linux*)*]
+Parent=Opera 9.2
+Platform=Linux
+
+[Opera/9.2* (Macintosh; *Mac OS X;*)*]
+Parent=Opera 9.2
+Platform=MacOSX
+
+[Opera/9.2* (Windows 95*)*]
+Parent=Opera 9.2
+Platform=Win95
+Win32=true
+
+[Opera/9.2* (Windows 98*)*]
+Parent=Opera 9.2
+Platform=Win98
+Win32=true
+
+[Opera/9.2* (Windows CE*)*]
+Parent=Opera 9.2
+Platform=WinCE
+Win32=true
+
+[Opera/9.2* (Windows ME*)*]
+Parent=Opera 9.2
+Platform=WinME
+Win32=true
+
+[Opera/9.2* (Windows NT 4.0*)*]
+Parent=Opera 9.2
+Platform=WinNT
+Win32=true
+
+[Opera/9.2* (Windows NT 5.0*)*]
+Parent=Opera 9.2
+Platform=Win2000
+Win32=true
+
+[Opera/9.2* (Windows NT 5.1*)*]
+Parent=Opera 9.2
+Platform=WinXP
+Win32=true
+
+[Opera/9.2* (Windows NT 5.2*)*]
+Parent=Opera 9.2
+Platform=Win2003
+Win32=true
+
+[Opera/9.2* (Windows NT 6.0*)*]
+Parent=Opera 9.2
+Platform=WinVista
+Win32=true
+
+[Opera/9.2* (Windows NT 6.1*)*]
+Parent=Opera 9.2
+Platform=Win7
+
+[Opera/9.2* (Windows XP*)*]
+Parent=Opera 9.2
+Platform=WinXP
+Win32=true
+
+[Opera/9.2* (X11; FreeBSD*)*]
+Parent=Opera 9.2
+Platform=FreeBSD
+
+[Opera/9.2* (X11; Linux*)*]
+Parent=Opera 9.2
+Platform=Linux
+
+[Opera/9.2* (X11; SunOS*)*]
+Parent=Opera 9.2
+Platform=SunOS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 9.3
+
+[Opera 9.3]
+Parent=DefaultProperties
+Browser="Opera"
+Version=9.3
+MajorVer=9
+MinorVer=3
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/* (compatible; MSIE*; Linux*) Opera 9.3*]
+Parent=Opera 9.3
+Platform=Linux
+
+[Mozilla/* (compatible; MSIE*; Mac_PowerPC Mac OS X;*) Opera 9.3*]
+Parent=Opera 9.3
+Platform=MacOSX
+
+[Mozilla/* (compatible; MSIE*; Mac_PowerPC) Opera 9.3*]
+Parent=Opera 9.3
+Platform=MacPPC
+
+[Mozilla/* (compatible; MSIE*; Windows 2000*) Opera 9.3*]
+Parent=Opera 9.3
+Platform=Win2000
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows 95*) Opera 9.3*]
+Parent=Opera 9.3
+Platform=Win95
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows 98*) Opera 9.3*]
+Parent=Opera 9.3
+Platform=Win98
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows CE*) Opera 9.3*]
+Parent=Opera 9.3
+Platform=WinCE
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows ME*) Opera 9.3*]
+Parent=Opera 9.3
+Platform=WinME
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 4.0*) Opera 9.3*]
+Parent=Opera 9.3
+Platform=WinNT
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 5.0*) Opera 9.3*]
+Parent=Opera 9.3
+Platform=Win2000
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 5.1*) Opera 9.3*]
+Parent=Opera 9.3
+Platform=WinXP
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 5.2*) Opera 9.3*]
+Parent=Opera 9.3
+Platform=Win2003
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 6.0*) Opera 9.3*]
+Parent=Opera 9.3
+Platform=WinVista
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 6.1*) Opera 9.3*]
+Parent=Opera 9.3
+Platform=Win7
+
+[Mozilla/* (compatible; MSIE*; Windows XP*) Opera 9.3*]
+Parent=Opera 9.3
+Platform=WinXP
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; X11; FreeBSD*) Opera 9.3*]
+Parent=Opera 9.3
+Platform=FreeBSD
+
+[Mozilla/* (compatible; MSIE*; X11; Linux*) Opera 9.3*]
+Parent=Opera 9.3
+Platform=Linux
+
+[Mozilla/* (compatible; MSIE*; X11; SunOS*) Opera 9.3*]
+Parent=Opera 9.3
+Platform=SunOS
+
+[Mozilla/* (Macintosh; *Mac OS X; ?) Opera 9.3*]
+Parent=Opera 9.3
+Platform=MacOSX
+
+[Mozilla/* (Windows 2000;*) Opera 9.3*]
+Parent=Opera 9.3
+Platform=Win2000
+Win32=true
+
+[Mozilla/* (Windows 95;*) Opera 9.3*]
+Parent=Opera 9.3
+Platform=Win95
+Win32=true
+
+[Mozilla/* (Windows 98;*) Opera 9.3*]
+Parent=Opera 9.3
+Platform=Win98
+Win32=true
+
+[Mozilla/* (Windows ME;*) Opera 9.3*]
+Parent=Opera 9.3
+Platform=WinME
+Win32=true
+
+[Mozilla/* (Windows NT 4.0;*) Opera 9.3*]
+Parent=Opera 9.3
+Platform=WinNT
+Win32=true
+
+[Mozilla/* (Windows NT 5.0;*) Opera 9.3*]
+Parent=Opera 9.3
+Platform=Win2000
+Win32=true
+
+[Mozilla/* (Windows NT 5.1;*) Opera 9.3*]
+Parent=Opera 9.3
+Platform=WinXP
+Win32=true
+
+[Mozilla/* (Windows NT 5.2;*) Opera 9.3*]
+Parent=Opera 9.3
+Platform=Win2003
+Win32=true
+
+[Mozilla/* (Windows NT 6.0;*) Opera 9.3*]
+Parent=Opera 9.3
+Platform=WinVista
+
+[Mozilla/* (Windows NT 6.1;*) Opera 9.3*]
+Parent=Opera 9.3
+Platform=Win7
+
+[Mozilla/* (X11; Linux*) Opera 9.3*]
+Parent=Opera 9.3
+Platform=Linux
+
+[Opera/9.3* (Linux*)*]
+Parent=Opera 9.3
+Platform=Linux
+
+[Opera/9.3* (Macintosh; *Mac OS X;*)*]
+Parent=Opera 9.3
+Platform=MacOSX
+
+[Opera/9.3* (Windows 95*)*]
+Parent=Opera 9.3
+Platform=Win95
+Win32=true
+
+[Opera/9.3* (Windows 98*)*]
+Parent=Opera 9.3
+Platform=Win98
+Win32=true
+
+[Opera/9.3* (Windows CE*)*]
+Parent=Opera 9.3
+Platform=WinCE
+Win32=true
+
+[Opera/9.3* (Windows ME*)*]
+Parent=Opera 9.3
+Platform=WinME
+Win32=true
+
+[Opera/9.3* (Windows NT 4.0*)*]
+Parent=Opera 9.3
+Platform=WinNT
+Win32=true
+
+[Opera/9.3* (Windows NT 5.0*)*]
+Parent=Opera 9.3
+Platform=Win2000
+Win32=true
+
+[Opera/9.3* (Windows NT 5.1*)*]
+Parent=Opera 9.3
+Platform=WinXP
+Win32=true
+
+[Opera/9.3* (Windows NT 5.2*)*]
+Parent=Opera 9.3
+Platform=Win2003
+Win32=true
+
+[Opera/9.3* (Windows NT 6.0*)*]
+Parent=Opera 9.3
+Platform=WinVista
+Win32=true
+
+[Opera/9.3* (Windows NT 6.1*)*]
+Parent=Opera 9.3
+Platform=Win7
+
+[Opera/9.3* (Windows XP*)*]
+Parent=Opera 9.3
+Platform=WinXP
+Win32=true
+
+[Opera/9.3* (X11; FreeBSD*)*]
+Parent=Opera 9.3
+Platform=FreeBSD
+
+[Opera/9.3* (X11; Linux*)*]
+Parent=Opera 9.3
+Platform=Linux
+
+[Opera/9.3* (X11; SunOS*)*]
+Parent=Opera 9.3
+Platform=SunOS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 9.4
+
+[Opera 9.4]
+Parent=DefaultProperties
+Browser="Opera"
+Version=9.4
+MajorVer=9
+MinorVer=4
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/* (compatible; MSIE*; Linux*) Opera 9.4*]
+Parent=Opera 9.4
+Platform=Linux
+
+[Mozilla/* (compatible; MSIE*; Mac_PowerPC Mac OS X;*) Opera 9.4*]
+Parent=Opera 9.4
+Platform=MacOSX
+
+[Mozilla/* (compatible; MSIE*; Mac_PowerPC) Opera 9.4*]
+Parent=Opera 9.4
+Platform=MacPPC
+
+[Mozilla/* (compatible; MSIE*; Windows 2000*) Opera 9.4*]
+Parent=Opera 9.4
+Platform=Win2000
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows 95*) Opera 9.4*]
+Parent=Opera 9.4
+Platform=Win95
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows 98*) Opera 9.4*]
+Parent=Opera 9.4
+Platform=Win98
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows CE*) Opera 9.4*]
+Parent=Opera 9.4
+Platform=WinCE
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows ME*) Opera 9.4*]
+Parent=Opera 9.4
+Platform=WinME
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 4.0*) Opera 9.4*]
+Parent=Opera 9.4
+Platform=WinNT
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 5.0*) Opera 9.4*]
+Parent=Opera 9.4
+Platform=Win2000
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 5.1*) Opera 9.4*]
+Parent=Opera 9.4
+Platform=WinXP
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 5.2*) Opera 9.4*]
+Parent=Opera 9.4
+Platform=Win2003
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 6.0*) Opera 9.4*]
+Parent=Opera 9.4
+Platform=WinVista
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 6.1*) Opera 9.4*]
+Parent=Opera 9.4
+Platform=Win7
+
+[Mozilla/* (compatible; MSIE*; Windows XP*) Opera 9.4*]
+Parent=Opera 9.4
+Platform=WinXP
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; X11; FreeBSD*) Opera 9.4*]
+Parent=Opera 9.4
+Platform=FreeBSD
+
+[Mozilla/* (compatible; MSIE*; X11; Linux*) Opera 9.4*]
+Parent=Opera 9.4
+Platform=Linux
+
+[Mozilla/* (compatible; MSIE*; X11; SunOS*) Opera 9.4*]
+Parent=Opera 9.4
+Platform=SunOS
+
+[Mozilla/* (Macintosh; *Mac OS X; ?) Opera 9.4*]
+Parent=Opera 9.4
+Platform=MacOSX
+
+[Mozilla/* (Windows 2000;*) Opera 9.4*]
+Parent=Opera 9.4
+Platform=Win2000
+Win32=true
+
+[Mozilla/* (Windows 95;*) Opera 9.4*]
+Parent=Opera 9.4
+Platform=Win95
+Win32=true
+
+[Mozilla/* (Windows 98;*) Opera 9.4*]
+Parent=Opera 9.4
+Platform=Win98
+Win32=true
+
+[Mozilla/* (Windows ME;*) Opera 9.4*]
+Parent=Opera 9.4
+Platform=WinME
+Win32=true
+
+[Mozilla/* (Windows NT 4.0;*) Opera 9.4*]
+Parent=Opera 9.4
+Platform=WinNT
+Win32=true
+
+[Mozilla/* (Windows NT 5.0;*) Opera 9.4*]
+Parent=Opera 9.4
+Platform=Win2000
+Win32=true
+
+[Mozilla/* (Windows NT 5.1;*) Opera 9.4*]
+Parent=Opera 9.4
+Platform=WinXP
+Win32=true
+
+[Mozilla/* (Windows NT 5.2;*) Opera 9.4*]
+Parent=Opera 9.4
+Platform=Win2003
+Win32=true
+
+[Mozilla/* (Windows NT 6.0;*) Opera 9.4*]
+Parent=Opera 9.4
+Platform=WinVista
+
+[Mozilla/* (Windows NT 6.1;*) Opera 9.4*]
+Parent=Opera 9.4
+Platform=Win7
+
+[Mozilla/* (X11; Linux*) Opera 9.4*]
+Parent=Opera 9.4
+Platform=Linux
+
+[Opera/9.4* (Linux*)*]
+Parent=Opera 9.4
+Platform=Linux
+
+[Opera/9.4* (Macintosh; *Mac OS X;*)*]
+Parent=Opera 9.4
+Platform=MacOSX
+
+[Opera/9.4* (Windows 95*)*]
+Parent=Opera 9.4
+Platform=Win95
+Win32=true
+
+[Opera/9.4* (Windows 98*)*]
+Parent=Opera 9.4
+Platform=Win98
+Win32=true
+
+[Opera/9.4* (Windows CE*)*]
+Parent=Opera 9.4
+Platform=WinCE
+Win32=true
+
+[Opera/9.4* (Windows ME*)*]
+Parent=Opera 9.4
+Platform=WinME
+Win32=true
+
+[Opera/9.4* (Windows NT 4.0*)*]
+Parent=Opera 9.4
+Platform=WinNT
+Win32=true
+
+[Opera/9.4* (Windows NT 5.0*)*]
+Parent=Opera 9.4
+Platform=Win2000
+Win32=true
+
+[Opera/9.4* (Windows NT 5.1*)*]
+Parent=Opera 9.4
+Platform=WinXP
+Win32=true
+
+[Opera/9.4* (Windows NT 5.2*)*]
+Parent=Opera 9.4
+Platform=Win2003
+Win32=true
+
+[Opera/9.4* (Windows NT 6.0*)*]
+Parent=Opera 9.4
+Platform=WinVista
+Win32=true
+
+[Opera/9.4* (Windows NT 6.1*)*]
+Parent=Opera 9.4
+Platform=Win7
+
+[Opera/9.4* (Windows XP*)*]
+Parent=Opera 9.4
+Platform=WinXP
+Win32=true
+
+[Opera/9.4* (X11; FreeBSD*)*]
+Parent=Opera 9.4
+Platform=FreeBSD
+
+[Opera/9.4* (X11; Linux*)*]
+Parent=Opera 9.4
+Platform=Linux
+
+[Opera/9.4* (X11; SunOS*)*]
+Parent=Opera 9.4
+Platform=SunOS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 9.5
+
+[Opera 9.5]
+Parent=DefaultProperties
+Browser="Opera"
+Version=9.5
+MajorVer=9
+MinorVer=5
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/* (compatible; MSIE*; Linux*) Opera 9.5*]
+Parent=Opera 9.5
+Platform=Linux
+
+[Mozilla/* (compatible; MSIE*; Mac_PowerPC Mac OS X;*) Opera 9.5*]
+Parent=Opera 9.5
+Platform=MacOSX
+
+[Mozilla/* (compatible; MSIE*; Mac_PowerPC) Opera 9.5*]
+Parent=Opera 9.5
+Platform=MacPPC
+
+[Mozilla/* (compatible; MSIE*; Windows 2000*) Opera 9.5*]
+Parent=Opera 9.5
+Platform=Win2000
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows 95*) Opera 9.5*]
+Parent=Opera 9.5
+Platform=Win95
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows 98*) Opera 9.5*]
+Parent=Opera 9.5
+Platform=Win98
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows CE*) Opera 9.5*]
+Parent=Opera 9.5
+Platform=WinCE
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows ME*) Opera 9.5*]
+Parent=Opera 9.5
+Platform=WinME
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 4.0*) Opera 9.5*]
+Parent=Opera 9.5
+Platform=WinNT
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 5.0*) Opera 9.5*]
+Parent=Opera 9.5
+Platform=Win2000
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 5.1*) Opera 9.5*]
+Parent=Opera 9.5
+Platform=WinXP
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 5.2*) Opera 9.5*]
+Parent=Opera 9.5
+Platform=Win2003
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 6.0*) Opera 9.5*]
+Parent=Opera 9.5
+Platform=WinVista
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 6.1*) Opera 9.5*]
+Parent=Opera 9.5
+Platform=Win7
+
+[Mozilla/* (compatible; MSIE*; Windows XP*) Opera 9.5*]
+Parent=Opera 9.5
+Platform=WinXP
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; X11; FreeBSD*) Opera 9.5*]
+Parent=Opera 9.5
+Platform=FreeBSD
+
+[Mozilla/* (compatible; MSIE*; X11; Linux*) Opera 9.5*]
+Parent=Opera 9.5
+Platform=Linux
+
+[Mozilla/* (compatible; MSIE*; X11; SunOS*) Opera 9.5*]
+Parent=Opera 9.5
+Platform=SunOS
+
+[Mozilla/* (Macintosh; *Mac OS X; ?) Opera 9.5*]
+Parent=Opera 9.5
+Platform=MacOSX
+
+[Mozilla/* (Windows 2000;*) Opera 9.5*]
+Parent=Opera 9.5
+Platform=Win2000
+Win32=true
+
+[Mozilla/* (Windows 95;*) Opera 9.5*]
+Parent=Opera 9.5
+Platform=Win95
+Win32=true
+
+[Mozilla/* (Windows 98;*) Opera 9.5*]
+Parent=Opera 9.5
+Platform=Win98
+Win32=true
+
+[Mozilla/* (Windows ME;*) Opera 9.5*]
+Parent=Opera 9.5
+Platform=WinME
+Win32=true
+
+[Mozilla/* (Windows NT 4.0;*) Opera 9.5*]
+Parent=Opera 9.5
+Platform=WinNT
+Win32=true
+
+[Mozilla/* (Windows NT 5.0;*) Opera 9.5*]
+Parent=Opera 9.5
+Platform=Win2000
+Win32=true
+
+[Mozilla/* (Windows NT 5.1;*) Opera 9.5*]
+Parent=Opera 9.5
+Platform=WinXP
+Win32=true
+
+[Mozilla/* (Windows NT 5.2;*) Opera 9.5*]
+Parent=Opera 9.5
+Platform=Win2003
+Win32=true
+
+[Mozilla/* (Windows NT 6.0;*) Opera 9.5*]
+Parent=Opera 9.5
+Platform=WinVista
+
+[Mozilla/* (Windows NT 6.1;*) Opera 9.5*]
+Parent=Opera 9.5
+Platform=Win7
+
+[Mozilla/* (X11; Linux*) Opera 9.5*]
+Parent=Opera 9.5
+Platform=Linux
+
+[Opera/9.5* (Linux*)*]
+Parent=Opera 9.5
+Platform=Linux
+
+[Opera/9.5* (Macintosh; *Mac OS X;*)*]
+Parent=Opera 9.5
+Platform=MacOSX
+
+[Opera/9.5* (Windows 95*)*]
+Parent=Opera 9.5
+Platform=Win95
+Win32=true
+
+[Opera/9.5* (Windows 98*)*]
+Parent=Opera 9.5
+Platform=Win98
+Win32=true
+
+[Opera/9.5* (Windows CE*)*]
+Parent=Opera 9.5
+Platform=WinCE
+Win32=true
+
+[Opera/9.5* (Windows ME*)*]
+Parent=Opera 9.5
+Platform=WinME
+Win32=true
+
+[Opera/9.5* (Windows NT 4.0*)*]
+Parent=Opera 9.5
+Platform=WinNT
+Win32=true
+
+[Opera/9.5* (Windows NT 5.0*)*]
+Parent=Opera 9.5
+Platform=Win2000
+Win32=true
+
+[Opera/9.5* (Windows NT 5.1*)*]
+Parent=Opera 9.5
+Platform=WinXP
+Win32=true
+
+[Opera/9.5* (Windows NT 5.2*)*]
+Parent=Opera 9.5
+Platform=Win2003
+Win32=true
+
+[Opera/9.5* (Windows NT 6.0*)*]
+Parent=Opera 9.5
+Platform=WinVista
+Win32=true
+
+[Opera/9.5* (Windows NT 6.1*)*]
+Parent=Opera 9.5
+Platform=Win7
+
+[Opera/9.5* (Windows XP*)*]
+Parent=Opera 9.5
+Platform=WinXP
+Win32=true
+
+[Opera/9.5* (X11; FreeBSD*)*]
+Parent=Opera 9.5
+Platform=FreeBSD
+
+[Opera/9.5* (X11; Linux*)*]
+Parent=Opera 9.5
+Platform=Linux
+
+[Opera/9.5* (X11; SunOS*)*]
+Parent=Opera 9.5
+Platform=SunOS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 9.6
+
+[Opera 9.6]
+Parent=DefaultProperties
+Browser="Opera"
+Version=9.6
+MajorVer=9
+MinorVer=6
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/* (compatible; MSIE*; Linux*) Opera 9.6*]
+Parent=Opera 9.6
+Platform=Linux
+
+[Mozilla/* (compatible; MSIE*; Mac_PowerPC Mac OS X;*) Opera 9.6*]
+Parent=Opera 9.6
+Platform=MacOSX
+
+[Mozilla/* (compatible; MSIE*; Mac_PowerPC) Opera 9.6*]
+Parent=Opera 9.6
+Platform=MacPPC
+
+[Mozilla/* (compatible; MSIE*; Windows 2000*) Opera 9.6*]
+Parent=Opera 9.6
+Platform=Win2000
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows 95*) Opera 9.6*]
+Parent=Opera 9.6
+Platform=Win95
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows 98*) Opera 9.6*]
+Parent=Opera 9.6
+Platform=Win98
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows CE*) Opera 9.6*]
+Parent=Opera 9.6
+Platform=WinCE
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows ME*) Opera 9.6*]
+Parent=Opera 9.6
+Platform=WinME
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 4.0*) Opera 9.6*]
+Parent=Opera 9.6
+Platform=WinNT
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 5.0*) Opera 9.6*]
+Parent=Opera 9.6
+Platform=Win2000
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 5.1*) Opera 9.6*]
+Parent=Opera 9.6
+Platform=WinXP
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 5.2*) Opera 9.6*]
+Parent=Opera 9.6
+Platform=Win2003
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 6.0*) Opera 9.6*]
+Parent=Opera 9.6
+Platform=WinVista
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; Windows NT 6.1*) Opera 9.6*]
+Parent=Opera 9.6
+Platform=Win7
+
+[Mozilla/* (compatible; MSIE*; Windows XP*) Opera 9.6*]
+Parent=Opera 9.6
+Platform=WinXP
+Win32=true
+
+[Mozilla/* (compatible; MSIE*; X11; FreeBSD*) Opera 9.6*]
+Parent=Opera 9.6
+Platform=FreeBSD
+
+[Mozilla/* (compatible; MSIE*; X11; Linux*) Opera 9.6*]
+Parent=Opera 9.6
+Platform=Linux
+
+[Mozilla/* (compatible; MSIE*; X11; SunOS*) Opera 9.6*]
+Parent=Opera 9.6
+Platform=SunOS
+
+[Mozilla/* (Macintosh; *Mac OS X; ?) Opera 9.6*]
+Parent=Opera 9.6
+Platform=MacOSX
+
+[Mozilla/* (Windows 2000;*) Opera 9.6*]
+Parent=Opera 9.6
+Platform=Win2000
+Win32=true
+
+[Mozilla/* (Windows 95;*) Opera 9.6*]
+Parent=Opera 9.6
+Platform=Win95
+Win32=true
+
+[Mozilla/* (Windows 98;*) Opera 9.6*]
+Parent=Opera 9.6
+Platform=Win98
+Win32=true
+
+[Mozilla/* (Windows ME;*) Opera 9.6*]
+Parent=Opera 9.6
+Platform=WinME
+Win32=true
+
+[Mozilla/* (Windows NT 4.0;*) Opera 9.6*]
+Parent=Opera 9.6
+Platform=WinNT
+Win32=true
+
+[Mozilla/* (Windows NT 5.0;*) Opera 9.6*]
+Parent=Opera 9.6
+Platform=Win2000
+Win32=true
+
+[Mozilla/* (Windows NT 5.1;*) Opera 9.6*]
+Parent=Opera 9.6
+Platform=WinXP
+Win32=true
+
+[Mozilla/* (Windows NT 5.2;*) Opera 9.6*]
+Parent=Opera 9.6
+Platform=Win2003
+Win32=true
+
+[Mozilla/* (Windows NT 6.0;*) Opera 9.6*]
+Parent=Opera 9.6
+Platform=WinVista
+
+[Mozilla/* (Windows NT 6.1;*) Opera 9.6*]
+Parent=Opera 9.6
+Platform=Win7
+
+[Mozilla/* (X11; Linux*) Opera 9.6*]
+Parent=Opera 9.6
+Platform=Linux
+
+[Opera/9.6* (Linux*)*]
+Parent=Opera 9.6
+Platform=Linux
+
+[Opera/9.6* (Macintosh; *Mac OS X;*)*]
+Parent=Opera 9.6
+Platform=MacOSX
+
+[Opera/9.6* (Windows 95*)*]
+Parent=Opera 9.6
+Platform=Win95
+Win32=true
+
+[Opera/9.6* (Windows 98*)*]
+Parent=Opera 9.6
+Platform=Win98
+Win32=true
+
+[Opera/9.6* (Windows CE*)*]
+Parent=Opera 9.6
+Platform=WinCE
+Win32=true
+
+[Opera/9.6* (Windows ME*)*]
+Parent=Opera 9.6
+Platform=WinME
+Win32=true
+
+[Opera/9.6* (Windows NT 4.0*)*]
+Parent=Opera 9.6
+Platform=WinNT
+Win32=true
+
+[Opera/9.6* (Windows NT 5.0*)*]
+Parent=Opera 9.6
+Platform=Win2000
+Win32=true
+
+[Opera/9.6* (Windows NT 5.1*)*]
+Parent=Opera 9.6
+Platform=WinXP
+Win32=true
+
+[Opera/9.6* (Windows NT 5.2*)*]
+Parent=Opera 9.6
+Platform=Win2003
+Win32=true
+
+[Opera/9.6* (Windows NT 6.0*)*]
+Parent=Opera 9.6
+Platform=WinVista
+Win32=true
+
+[Opera/9.6* (Windows NT 6.1*)*]
+Parent=Opera 9.6
+Platform=Win7
+
+[Opera/9.6* (Windows XP*)*]
+Parent=Opera 9.6
+Platform=WinXP
+Win32=true
+
+[Opera/9.6* (X11; FreeBSD*)*]
+Parent=Opera 9.6
+Platform=FreeBSD
+
+[Opera/9.6* (X11; Linux*)*]
+Parent=Opera 9.6
+Platform=Linux
+
+[Opera/9.6* (X11; SunOS*)*]
+Parent=Opera 9.6
+Platform=SunOS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 4.0
+
+[Netscape 4.0]
+Parent=DefaultProperties
+Browser="Netscape"
+Version=4.0
+MajorVer=4
+Frames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=1
+supportsCSS=true
+
+[Mozilla/4.0*(Macintosh*]
+Parent=Netscape 4.0
+Version=4.03
+MinorVer=03
+Platform=MacPPC
+
+[Mozilla/4.0*(Win95;*]
+Parent=Netscape 4.0
+Platform=Win95
+
+[Mozilla/4.0*(Win98;*]
+Parent=Netscape 4.0
+Version=4.03
+MinorVer=03
+Platform=Win98
+
+[Mozilla/4.0*(WinNT*]
+Parent=Netscape 4.0
+Version=4.03
+MinorVer=03
+Platform=WinNT
+
+[Mozilla/4.0*(X11;*)]
+Parent=Netscape 4.0
+Platform=Linux
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 4.5
+
+[Netscape 4.5]
+Parent=DefaultProperties
+Browser="Netscape"
+Version=4.5
+MajorVer=4
+MinorVer=5
+Frames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=1
+supportsCSS=true
+
+[Mozilla/4.5*(Macintosh; ?; PPC)]
+Parent=Netscape 4.5
+Platform=MacPPC
+
+[Mozilla/4.5*(Win2000; ?)]
+Parent=Netscape 4.5
+Platform=Win2000
+
+[Mozilla/4.5*(Win95; ?)]
+Parent=Netscape 4.5
+Platform=Win95
+
+[Mozilla/4.5*(Win98; ?)]
+Parent=Netscape 4.5
+Platform=Win98
+
+[Mozilla/4.5*(WinME; ?)]
+Parent=Netscape 4.5
+Platform=WinME
+
+[Mozilla/4.5*(WinNT; ?)]
+Parent=Netscape 4.5
+Platform=WinNT
+
+[Mozilla/4.5*(WinXP; ?)]
+Parent=Netscape 4.5
+Platform=WinXP
+
+[Mozilla/4.5*(X11*)]
+Parent=Netscape 4.5
+Platform=Linux
+
+[Mozilla/4.51*(Macintosh; ?; PPC)]
+Parent=Netscape 4.5
+Version=4.51
+MinorVer=51
+
+[Mozilla/4.51*(Win2000; ?)]
+Parent=Netscape 4.5
+Version=4.51
+MinorVer=51
+Platform=Win2000
+
+[Mozilla/4.51*(Win95; ?)]
+Parent=Netscape 4.5
+Version=4.51
+MinorVer=51
+Platform=Win95
+
+[Mozilla/4.51*(Win98; ?)]
+Parent=Netscape 4.5
+Version=4.51
+MinorVer=51
+Platform=Win98
+
+[Mozilla/4.51*(WinME; ?)]
+Parent=Netscape 4.5
+Version=4.51
+MinorVer=51
+Platform=WinME
+
+[Mozilla/4.51*(WinNT; ?)]
+Parent=Netscape 4.5
+Version=4.51
+MinorVer=51
+Platform=WinNT
+
+[Mozilla/4.51*(WinXP; ?)]
+Parent=Netscape 4.5
+Version=4.51
+MinorVer=51
+Platform=WinXP
+
+[Mozilla/4.51*(X11*)]
+Parent=Netscape 4.5
+Version=4.51
+MinorVer=51
+Platform=Linux
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 4.6
+
+[Netscape 4.6]
+Parent=DefaultProperties
+Browser="Netscape"
+Version=4.6
+MajorVer=4
+MinorVer=6
+Frames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=1
+supportsCSS=true
+
+[Mozilla/4.6 * (OS/2; ?)]
+Parent=Netscape 4.6
+Platform=OS/2
+
+[Mozilla/4.6*(Macintosh; ?; PPC)]
+Parent=Netscape 4.6
+Platform=MacPPC
+
+[Mozilla/4.6*(Win95; ?)]
+Parent=Netscape 4.6
+Platform=Win95
+
+[Mozilla/4.6*(Win98; ?)]
+Parent=Netscape 4.6
+Platform=Win98
+
+[Mozilla/4.6*(WinNT; ?)]
+Parent=Netscape 4.6
+Platform=WinNT
+
+[Mozilla/4.61*(Macintosh; ?; PPC)]
+Parent=Netscape 4.6
+Version=4.61
+MajorVer=4
+MinorVer=61
+Platform=MacPPC
+
+[Mozilla/4.61*(OS/2; ?)]
+Parent=Netscape 4.6
+Version=4.61
+MajorVer=4
+MinorVer=61
+Platform=OS/2
+
+[Mozilla/4.61*(Win95; ?)]
+Parent=Netscape 4.6
+Version=4.61
+MajorVer=4
+MinorVer=61
+Platform=Win95
+
+[Mozilla/4.61*(Win98; ?)]
+Parent=Netscape 4.6
+Version=4.61
+Platform=Win98
+
+[Mozilla/4.61*(WinNT; ?)]
+Parent=Netscape 4.6
+Version=4.61
+MajorVer=4
+MinorVer=61
+Platform=WinNT
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 4.7
+
+[Netscape 4.7]
+Parent=DefaultProperties
+Browser="Netscape"
+Version=4.7
+MajorVer=4
+MinorVer=7
+Frames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=1
+supportsCSS=true
+
+[Mozilla/4.7 * (Win2000; ?)]
+Parent=Netscape 4.7
+Platform=Win2000
+
+[Mozilla/4.7*(Macintosh; ?; PPC)*]
+Parent=Netscape 4.7
+MinorVer=7
+Platform=MacPPC
+
+[Mozilla/4.7*(Win95; ?)*]
+Parent=Netscape 4.7
+MinorVer=7
+Platform=Win95
+
+[Mozilla/4.7*(Win98; ?)*]
+Parent=Netscape 4.7
+MinorVer=7
+Platform=Win98
+
+[Mozilla/4.7*(Windows NT 4.0; ?)*]
+Parent=Netscape 4.7
+MinorVer=7
+Platform=WinNT
+Win32=true
+
+[Mozilla/4.7*(Windows NT 5.0; ?)*]
+Parent=Netscape 4.7
+MinorVer=7
+Platform=Win2000
+Win32=true
+
+[Mozilla/4.7*(Windows NT 5.1; ?)*]
+Parent=Netscape 4.7
+MinorVer=7
+Platform=WinXP
+Win32=true
+
+[Mozilla/4.7*(WinNT; ?)*]
+Parent=Netscape 4.7
+Platform=WinNT
+
+[Mozilla/4.7*(X11*)*]
+Parent=Netscape 4.7
+Platform=Linux
+
+[Mozilla/4.7*(X11; ?; SunOS*)*]
+Parent=Netscape 4.7
+Platform=SunOS
+
+[Mozilla/4.71*(Macintosh; ?; PPC)*]
+Parent=Netscape 4.7
+Version=4.71
+MinorVer=71
+Platform=MacPPC
+
+[Mozilla/4.71*(Win95; ?)*]
+Parent=Netscape 4.7
+Version=4.71
+MinorVer=71
+Platform=Win95
+
+[Mozilla/4.71*(Win98; ?)*]
+Parent=Netscape 4.7
+Version=4.71
+MinorVer=71
+Platform=Win98
+
+[Mozilla/4.71*(Windows NT 4.0; ?)*]
+Parent=Netscape 4.7
+Version=4.71
+MinorVer=71
+Platform=WinNT
+Win32=true
+
+[Mozilla/4.71*(Windows NT 5.0; ?)*]
+Parent=Netscape 4.7
+Version=4.71
+MinorVer=71
+Platform=Win2000
+Win32=true
+
+[Mozilla/4.71*(Windows NT 5.1; ?)*]
+Parent=Netscape 4.7
+Version=4.71
+MinorVer=71
+Platform=WinXP
+Win32=true
+
+[Mozilla/4.71*(WinNT; ?)*]
+Parent=Netscape 4.7
+Version=4.71
+MinorVer=71
+Platform=WinNT
+
+[Mozilla/4.71*(X11*)*]
+Parent=Netscape 4.7
+Version=4.71
+MinorVer=71
+Platform=Linux
+
+[Mozilla/4.71*(X11; ?; SunOS*)*]
+Parent=Netscape 4.7
+Version=4.71
+MinorVer=71
+Platform=SunOS
+
+[Mozilla/4.72*(Macintosh; ?; PPC)*]
+Parent=Netscape 4.7
+MinorVer=72
+Platform=MacPPC
+
+[Mozilla/4.72*(Win95; ?)*]
+Parent=Netscape 4.7
+MinorVer=72
+Platform=Win95
+
+[Mozilla/4.72*(Win98; ?)*]
+Parent=Netscape 4.7
+MinorVer=72
+Platform=Win98
+
+[Mozilla/4.72*(Windows NT 4.0; ?)*]
+Parent=Netscape 4.7
+MinorVer=72
+Platform=WinNT
+Win32=true
+
+[Mozilla/4.72*(Windows NT 5.0; ?)*]
+Parent=Netscape 4.7
+MinorVer=72
+Platform=Win2000
+Win32=true
+
+[Mozilla/4.72*(Windows NT 5.1; ?)*]
+Parent=Netscape 4.7
+MinorVer=72
+Platform=WinXP
+Win32=true
+
+[Mozilla/4.72*(WinNT; ?)*]
+Parent=Netscape 4.7
+MinorVer=72
+Platform=WinNT
+
+[Mozilla/4.72*(X11*)*]
+Parent=Netscape 4.7
+MinorVer=72
+Platform=Linux
+
+[Mozilla/4.72*(X11; ?; SunOS*)*]
+Parent=Netscape 4.7
+MinorVer=72
+Platform=SunOS
+
+[Mozilla/4.73*(Macintosh; ?; PPC)*]
+Parent=Netscape 4.7
+MinorVer=73
+Platform=MacPPC
+
+[Mozilla/4.73*(Win95; ?)*]
+Parent=Netscape 4.7
+MinorVer=73
+Platform=Win95
+
+[Mozilla/4.73*(Win98; ?)*]
+Parent=Netscape 4.7
+MinorVer=73
+Platform=Win98
+
+[Mozilla/4.73*(Windows NT 4.0; ?)*]
+Parent=Netscape 4.7
+MinorVer=73
+Platform=WinNT
+Win32=true
+
+[Mozilla/4.73*(Windows NT 5.0; ?)*]
+Parent=Netscape 4.7
+MinorVer=73
+Platform=Win2000
+Win32=true
+
+[Mozilla/4.73*(Windows NT 5.1; ?)*]
+Parent=Netscape 4.7
+MinorVer=73
+Platform=WinXP
+Win32=true
+
+[Mozilla/4.73*(WinNT; ?)*]
+Parent=Netscape 4.7
+MinorVer=73
+Platform=WinNT
+
+[Mozilla/4.73*(X11*)*]
+Parent=Netscape 4.7
+MinorVer=73
+Platform=Linux
+
+[Mozilla/4.73*(X11; ?; SunOS*)*]
+Parent=Netscape 4.7
+MinorVer=73
+Platform=SunOS
+
+[Mozilla/4.74*(Macintosh; ?; PPC)*]
+Parent=Netscape 4.7
+MinorVer=74
+Platform=MacPPC
+
+[Mozilla/4.74*(Win95; ?)*]
+Parent=Netscape 4.7
+MinorVer=74
+Platform=Win95
+
+[Mozilla/4.74*(Win98; ?)*]
+Parent=Netscape 4.7
+MinorVer=74
+Platform=Win98
+
+[Mozilla/4.74*(Windows NT 4.0; ?)*]
+Parent=Netscape 4.7
+MinorVer=74
+Platform=WinNT
+Win32=true
+
+[Mozilla/4.74*(Windows NT 5.0; ?)*]
+Parent=Netscape 4.7
+MinorVer=74
+Platform=Win2000
+Win32=true
+
+[Mozilla/4.74*(Windows NT 5.1; ?)*]
+Parent=Netscape 4.7
+MinorVer=74
+Platform=WinXP
+Win32=true
+
+[Mozilla/4.74*(WinNT; ?)*]
+Parent=Netscape 4.7
+MinorVer=74
+Platform=WinNT
+
+[Mozilla/4.74*(X11*)*]
+Parent=Netscape 4.7
+MinorVer=74
+Platform=Linux
+
+[Mozilla/4.74*(X11; ?; SunOS*)*]
+Parent=Netscape 4.7
+MinorVer=74
+Platform=SunOS
+
+[Mozilla/4.75*(Macintosh; ?; PPC)*]
+Parent=Netscape 4.7
+MinorVer=75
+Platform=MacPPC
+
+[Mozilla/4.75*(Win95; ?)*]
+Parent=Netscape 4.7
+MinorVer=75
+Platform=Win95
+
+[Mozilla/4.75*(Win98; ?)*]
+Parent=Netscape 4.7
+MinorVer=75
+Platform=Win98
+
+[Mozilla/4.75*(Windows NT 4.0; ?)*]
+Parent=Netscape 4.7
+MinorVer=75
+Platform=WinNT
+Win32=true
+
+[Mozilla/4.75*(Windows NT 5.0; ?)*]
+Parent=Netscape 4.7
+MinorVer=75
+Platform=Win2000
+Win32=true
+
+[Mozilla/4.75*(Windows NT 5.1; ?)*]
+Parent=Netscape 4.7
+MinorVer=75
+Platform=WinXP
+Win32=true
+
+[Mozilla/4.75*(WinNT; ?)*]
+Parent=Netscape 4.7
+MinorVer=75
+Platform=WinNT
+
+[Mozilla/4.75*(X11*)*]
+Parent=Netscape 4.7
+MinorVer=75
+Platform=Linux
+
+[Mozilla/4.75*(X11; ?; SunOS*)*]
+Parent=Netscape 4.7
+MinorVer=75
+Platform=SunOS
+
+[Mozilla/4.76*(Macintosh; ?; PPC)*]
+Parent=Netscape 4.7
+MinorVer=76
+Platform=MacPPC
+
+[Mozilla/4.76*(Win95; ?)*]
+Parent=Netscape 4.7
+MinorVer=76
+Platform=Win95
+
+[Mozilla/4.76*(Win98; ?)*]
+Parent=Netscape 4.7
+MinorVer=76
+Platform=Win98
+
+[Mozilla/4.76*(Windows NT 4.0; ?)*]
+Parent=Netscape 4.7
+MinorVer=76
+Platform=WinNT
+Win32=true
+
+[Mozilla/4.76*(Windows NT 5.0; ?)*]
+Parent=Netscape 4.7
+MinorVer=76
+Platform=Win2000
+Win32=true
+
+[Mozilla/4.76*(Windows NT 5.1; ?)*]
+Parent=Netscape 4.7
+MinorVer=76
+Platform=WinXP
+Win32=true
+
+[Mozilla/4.76*(WinNT; ?)*]
+Parent=Netscape 4.7
+MinorVer=76
+Platform=WinNT
+
+[Mozilla/4.76*(X11*)*]
+Parent=Netscape 4.7
+MinorVer=76
+Platform=Linux
+
+[Mozilla/4.76*(X11; ?; SunOS*)*]
+Parent=Netscape 4.7
+MinorVer=76
+Platform=SunOS
+
+[Mozilla/4.77*(Macintosh; ?; PPC)*]
+Parent=Netscape 4.7
+MinorVer=77
+Platform=MacPPC
+
+[Mozilla/4.77*(Win95; ?)*]
+Parent=Netscape 4.7
+MinorVer=77
+Platform=Win95
+
+[Mozilla/4.77*(Win98; ?)*]
+Parent=Netscape 4.7
+MinorVer=77
+Platform=Win98
+
+[Mozilla/4.77*(Windows NT 4.0; ?)*]
+Parent=Netscape 4.7
+MinorVer=77
+Platform=WinNT
+Win32=true
+
+[Mozilla/4.77*(Windows NT 5.0; ?)*]
+Parent=Netscape 4.7
+MinorVer=77
+Platform=Win2000
+Win32=true
+
+[Mozilla/4.77*(Windows NT 5.1; ?)*]
+Parent=Netscape 4.7
+MinorVer=77
+Platform=WinXP
+Win32=true
+
+[Mozilla/4.77*(WinNT; ?)*]
+Parent=Netscape 4.7
+MinorVer=77
+Platform=WinNT
+
+[Mozilla/4.77*(X11*)*]
+Parent=Netscape 4.7
+MinorVer=77
+Platform=Linux
+
+[Mozilla/4.77*(X11; ?; SunOS*)*]
+Parent=Netscape 4.7
+MinorVer=77
+Platform=SunOS
+
+[Mozilla/4.78*(Macintosh; ?; PPC)*]
+Parent=Netscape 4.7
+MinorVer=78
+Platform=MacPPC
+
+[Mozilla/4.78*(Win95; ?)*]
+Parent=Netscape 4.7
+MinorVer=78
+Platform=Win95
+
+[Mozilla/4.78*(Win98; ?)*]
+Parent=Netscape 4.7
+MinorVer=78
+Platform=Win98
+
+[Mozilla/4.78*(Windows NT 4.0; ?)*]
+Parent=Netscape 4.7
+MinorVer=78
+Platform=WinNT
+Win32=true
+
+[Mozilla/4.78*(Windows NT 5.0; ?)*]
+Parent=Netscape 4.7
+MinorVer=78
+Platform=Win2000
+Win32=true
+
+[Mozilla/4.78*(Windows NT 5.1; ?)*]
+Parent=Netscape 4.7
+MinorVer=78
+Platform=WinXP
+Win32=true
+
+[Mozilla/4.78*(WinNT; ?)*]
+Parent=Netscape 4.7
+MinorVer=78
+Platform=WinNT
+
+[Mozilla/4.78*(X11*)*]
+Parent=Netscape 4.7
+MinorVer=78
+Platform=Linux
+
+[Mozilla/4.78*(X11; ?; SunOS*)*]
+Parent=Netscape 4.7
+MinorVer=78
+Platform=SunOS
+
+[Mozilla/4.79*(Macintosh; ?; PPC)*]
+Parent=Netscape 4.7
+Version=4.79
+MinorVer=79
+Platform=MacPPC
+
+[Mozilla/4.79*(Win95; ?)*]
+Parent=Netscape 4.7
+Version=4.79
+MinorVer=79
+Platform=Win95
+
+[Mozilla/4.79*(Win98; ?)*]
+Parent=Netscape 4.7
+Version=4.79
+MinorVer=79
+Platform=Win98
+
+[Mozilla/4.79*(Windows NT 4.0; ?)*]
+Parent=Netscape 4.7
+Version=4.79
+MinorVer=79
+Platform=WinNT
+Win32=true
+
+[Mozilla/4.79*(Windows NT 5.0; ?)*]
+Parent=Netscape 4.7
+Version=4.79
+MinorVer=79
+Platform=Win2000
+Win32=true
+
+[Mozilla/4.79*(Windows NT 5.1; ?)*]
+Parent=Netscape 4.7
+Version=4.79
+MinorVer=79
+Platform=WinXP
+Win32=true
+
+[Mozilla/4.79*(WinNT; ?)*]
+Parent=Netscape 4.7
+Version=4.79
+MinorVer=79
+Platform=WinNT
+
+[Mozilla/4.79*(X11*)*]
+Parent=Netscape 4.7
+Version=4.79
+MinorVer=79
+Platform=Linux
+
+[Mozilla/4.79*(X11; ?; SunOS*)*]
+Parent=Netscape 4.7
+Version=4.79
+MinorVer=79
+Platform=SunOS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 4.8
+
+[Netscape 4.8]
+Parent=DefaultProperties
+Browser="Netscape"
+Version=4.8
+MajorVer=4
+MinorVer=8
+Frames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=1
+supportsCSS=true
+
+[Mozilla/4.8*(Macintosh; ?; MacPPC)*]
+Parent=Netscape 4.8
+Platform=MacPPC
+
+[Mozilla/4.8*(Macintosh; ?; PPC Mac OS X*]
+Parent=Netscape 4.8
+Platform=MacOSX
+
+[Mozilla/4.8*(Macintosh; ?; PPC)*]
+Parent=Netscape 4.8
+Platform=MacPPC
+
+[Mozilla/4.8*(Win95; *)*]
+Parent=Netscape 4.8
+
+[Mozilla/4.8*(Win98; *)*]
+Parent=Netscape 4.8
+Platform=Win98
+
+[Mozilla/4.8*(Windows NT 4.0; *)*]
+Parent=Netscape 4.8
+Platform=WinNT
+Win32=true
+
+[Mozilla/4.8*(Windows NT 5.0; *)*]
+Parent=Netscape 4.8
+Platform=Win2000
+Win32=true
+
+[Mozilla/4.8*(Windows NT 5.1; *)*]
+Parent=Netscape 4.8
+Platform=WinXP
+Win32=true
+
+[Mozilla/4.8*(WinNT; *)*]
+Parent=Netscape 4.8
+Platform=WinNT
+
+[Mozilla/4.8*(X11; *)*]
+Parent=Netscape 4.8
+Platform=Linux
+
+[Mozilla/4.8*(X11; *SunOS*)*]
+Parent=Netscape 4.8
+Platform=SunOS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 6.0
+
+[Netscape 6.0]
+Parent=DefaultProperties
+Browser="Netscape"
+Version=6.0
+MajorVer=6
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (Macintosh; ?; PPC;*) Gecko/* Netscape6/6.0*]
+Parent=Netscape 6.0
+Platform=MacPPC
+
+[Mozilla/5.0 (Windows; ?; Win95;*) Gecko/* Netscape6/6.0*]
+Parent=Netscape 6.0
+Platform=Win95
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win98; *) Gecko/* Netscape6/6.0*]
+Parent=Netscape 6.0
+Platform=Win98
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win9x 4.90; *) Gecko/* Netscape6/6.0*]
+Parent=Netscape 6.0
+Platform=WinME
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 4.0; *) Gecko/* Netscape6/6.0*]
+Parent=Netscape 6.0
+Platform=WinNT
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *) Gecko/* Netscape6/6.0*]
+Parent=Netscape 6.0
+Platform=Win2000
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) Gecko/* Netscape6/6.0*]
+Parent=Netscape 6.0
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) Gecko/* Netscape6/6.0*]
+Parent=Netscape 6.0
+Platform=WinXP
+
+[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) Gecko/* Netscape6/6.0*]
+Parent=Netscape 6.0
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) Gecko/* Netscape6/6.0*]
+Parent=Netscape 6.0
+Platform=Win7
+
+[Mozilla/5.0 (Windows; ?; WinNT4.0; *) Gecko/* Netscape6/6.0*]
+Parent=Netscape 6.0
+Platform=WinNT
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT5.0; *) Gecko/* Netscape6/6.0*]
+Parent=Netscape 6.0
+Platform=Win2000
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT5.1; *) Gecko/* Netscape6/6.0*]
+Parent=Netscape 6.0
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT5.2; *) Gecko/* Netscape6/6.0*]
+Parent=Netscape 6.0
+Platform=WinXP
+
+[Mozilla/5.0 (Windows; ?; WinNT6.0; *) Gecko/* Netscape6/6.0*]
+Parent=Netscape 6.0
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; ?; WinNT6.1; *) Gecko/* Netscape6/6.0*]
+Parent=Netscape 6.0
+Platform=Win7
+
+[Mozilla/5.0 (X11; ?; *) Gecko/* Netscape6/6.0*]
+Parent=Netscape 6.0
+Platform=Linux
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 6.1
+
+[Netscape 6.1]
+Parent=DefaultProperties
+Browser="Netscape"
+Version=6.1
+MajorVer=6
+MinorVer=1
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (Macintosh; ?; PPC;*) Gecko/* Netscape6/6.1*]
+Parent=Netscape 6.1
+Platform=MacPPC
+
+[Mozilla/5.0 (Windows; ?; Win95;*) Gecko/* Netscape6/6.1*]
+Parent=Netscape 6.1
+Platform=Win95
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win98; *) Gecko/* Netscape6/6.1*]
+Parent=Netscape 6.1
+Platform=Win98
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win9x 4.90; *) Gecko/* Netscape6/6.1*]
+Parent=Netscape 6.1
+Platform=WinME
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 4.0; *) Gecko/* Netscape6/6.1*]
+Parent=Netscape 6.1
+Platform=WinNT
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *) Gecko/* Netscape6/6.1*]
+Parent=Netscape 6.1
+Platform=Win2000
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) Gecko/* Netscape6/6.1*]
+Parent=Netscape 6.1
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) Gecko/* Netscape6/6.1*]
+Parent=Netscape 6.1
+Platform=WinXP
+
+[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) Gecko/* Netscape6/6.1*]
+Parent=Netscape 6.1
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) Gecko/* Netscape6/6.1*]
+Parent=Netscape 6.1
+Platform=Win7
+
+[Mozilla/5.0 (Windows; ?; WinNT4.0; *) Gecko/* Netscape6/6.1*]
+Parent=Netscape 6.1
+Platform=WinNT
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT5.0; *) Gecko/* Netscape6/6.1*]
+Parent=Netscape 6.1
+Platform=Win2000
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT5.1; *) Gecko/* Netscape6/6.1*]
+Parent=Netscape 6.1
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT5.2; *) Gecko/* Netscape6/6.1*]
+Parent=Netscape 6.1
+Platform=WinXP
+
+[Mozilla/5.0 (Windows; ?; WinNT6.0; *) Gecko/* Netscape6/6.1*]
+Parent=Netscape 6.1
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; ?; WinNT6.1; *) Gecko/* Netscape6/6.1*]
+Parent=Netscape 6.1
+Platform=Win7
+
+[Mozilla/5.0 (X11; ?; *) Gecko/* Netscape6/6.1*]
+Parent=Netscape 6.1
+Platform=Linux
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 6.2
+
+[Netscape 6.2]
+Parent=DefaultProperties
+Browser="Netscape"
+Version=6.2
+MajorVer=6
+MinorVer=2
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (Macintosh; ?; PPC Mac OS X*) Gecko/* Netscape6/6.2*]
+Parent=Netscape 6.2
+Platform=MacOSX
+
+[Mozilla/5.0 (Macintosh; ?; PPC;*) Gecko/* Netscape6/6.2*]
+Parent=Netscape 6.2
+Platform=MacPPC
+
+[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *) Gecko/* Netscape6/6.2*]
+Parent=Netscape 6.2
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win95;*) Gecko/* Netscape6/6.2*]
+Parent=Netscape 6.2
+Platform=Win95
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win98; *) Gecko/* Netscape6/6.2*]
+Parent=Netscape 6.2
+Platform=Win98
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win9x 4.90; *) Gecko/* Netscape6/6.2*]
+Parent=Netscape 6.2
+Platform=WinME
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 4.0; *) Gecko/* Netscape6/6.2*]
+Parent=Netscape 6.2
+Platform=WinNT
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *) Gecko/* Netscape6/6.2*]
+Parent=Netscape 6.2
+Platform=Win2000
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) Gecko/* Netscape6/6.2*]
+Parent=Netscape 6.2
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) Gecko/* Netscape6/6.2*]
+Parent=Netscape 6.2
+Platform=Win2003
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) Gecko/* Netscape6/6.2*]
+Parent=Netscape 6.2
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) Gecko/* Netscape6/6.2*]
+Parent=Netscape 6.2
+Platform=Win7
+
+[Mozilla/5.0 (Windows; ?; WinNT4.0; *) Gecko/* Netscape6/6.2*]
+Parent=Netscape 6.2
+Platform=WinNT
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT5.0; *) Gecko/* Netscape6/6.2*]
+Parent=Netscape 6.2
+Platform=Win2000
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT5.1; *) Gecko/* Netscape6/6.2*]
+Parent=Netscape 6.2
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT5.2; *) Gecko/* Netscape6/6.2*]
+Parent=Netscape 6.2
+Platform=Win2003
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT6.0; *) Gecko/* Netscape6/6.2*]
+Parent=Netscape 6.2
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; ?; WinNT6.1; *) Gecko/* Netscape6/6.2*]
+Parent=Netscape 6.2
+Platform=Win7
+
+[Mozilla/5.0 (X11; ?; *) Gecko/* Netscape6/6.2*]
+Parent=Netscape 6.2
+Platform=Linux
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 7.0
+
+[Netscape 7.0]
+Parent=DefaultProperties
+Browser="Netscape"
+Version=7.0
+MajorVer=7
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (Macintosh; ?; PPC Mac OS X;*) Gecko/* Netscape*/7.0*]
+Parent=Netscape 7.0
+Platform=MacOSX
+
+[Mozilla/5.0 (Macintosh; ?; PPC;*) Gecko/* Netscape*/7.0*]
+Parent=Netscape 7.0
+Platform=MacPPC
+
+[Mozilla/5.0 (Windows; ?; Win*9x 4.90; *) Gecko/* Netscape*/7.0*]
+Parent=Netscape 7.0
+Platform=WinME
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win95;*) Gecko/* Netscape*/7.0*]
+Parent=Netscape 7.0
+Platform=Win95
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win98; *) Gecko/* Netscape*/7.0*]
+Parent=Netscape 7.0
+Platform=Win98
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 4.0; *) Gecko/* Netscape*/7.0*]
+Parent=Netscape 7.0
+Platform=WinNT
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *) Gecko/* Netscape*/7.0*]
+Parent=Netscape 7.0
+Platform=Win2000
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) Gecko/* Netscape*/7.0*]
+Parent=Netscape 7.0
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) Gecko/* Netscape*/7.0*]
+Parent=Netscape 7.0
+Platform=Win2003
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) Gecko/* Netscape*/7.0*]
+Parent=Netscape 7.0
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) Gecko/* Netscape*/7.0*]
+Parent=Netscape 7.0
+Platform=Win7
+
+[Mozilla/5.0 (Windows; ?; WinNT4.0; *) Gecko/* Netscape*/7.0*]
+Parent=Netscape 7.0
+Platform=WinNT
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT5.0; *) Gecko/* Netscape*/7.0*]
+Parent=Netscape 7.0
+Platform=Win2000
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT5.1; *) Gecko/* Netscape*/7.0*]
+Parent=Netscape 7.0
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT5.2; *) Gecko/* Netscape*/7.0*]
+Parent=Netscape 7.0
+Platform=Win2003
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT6.0; *) Gecko/* Netscape*/7.0*]
+Parent=Netscape 7.0
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; ?; WinNT6.1; *) Gecko/* Netscape*/7.0*]
+Parent=Netscape 7.0
+Platform=Win7
+
+[Mozilla/5.0 (X11; ?; *) Gecko/* Netscape*/7.0*]
+Parent=Netscape 7.0
+Platform=Linux
+
+[Mozilla/5.0 (X11; ?; SunOS*) Gecko/* Netscape*/7.0*]
+Parent=Netscape 7.0
+Platform=SunOS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 7.1
+
+[Netscape 7.1]
+Parent=DefaultProperties
+Browser="Netscape"
+Version=7.1
+MajorVer=7
+MinorVer=1
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (Macintosh; ?; PPC Mac OS X Mach-O; *; rv:*) Gecko/* Netscape*/7.1]
+Parent=Netscape 7.1
+Platform=MacOSX
+
+[Mozilla/5.0 (Macintosh; ?; PPC Mac OS X;*) Gecko/* Netscape*/7.1*]
+Parent=Netscape 7.1
+Platform=MacOSX
+
+[Mozilla/5.0 (Macintosh; ?; PPC;*) Gecko/* Netscape*/7.1*]
+Parent=Netscape 7.1
+Platform=MacPPC
+
+[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *) Gecko/* Netscape*/7.1*]
+Parent=Netscape 7.1
+Platform=WinME
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win95;*) Gecko/* Netscape*/7.1*]
+Parent=Netscape 7.1
+Platform=Win95
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win98; *) Gecko/* Netscape*/7.1*]
+Parent=Netscape 7.1
+Platform=Win98
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win9x 4.90; *) Gecko/* Netscape*/7.1*]
+Parent=Netscape 7.1
+Platform=WinME
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 4.0; *) Gecko/* Netscape*/7.1*]
+Parent=Netscape 7.1
+Platform=WinNT
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *) Gecko/* Netscape*/7.1*]
+Parent=Netscape 7.1
+Platform=Win2000
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) Gecko/* Netscape*/7.1*]
+Parent=Netscape 7.1
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) Gecko/* Netscape*/7.1*]
+Parent=Netscape 7.1
+Platform=Win2003
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) Gecko/* Netscape*/7.1*]
+Parent=Netscape 7.1
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) Gecko/* Netscape*/7.1*]
+Parent=Netscape 7.1
+Platform=Win7
+
+[Mozilla/5.0 (Windows; ?; WinNT4.0; *) Gecko/* Netscape*/7.1*]
+Parent=Netscape 7.1
+Platform=WinNT
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT5.0; *) Gecko/* Netscape*/7.1*]
+Parent=Netscape 7.1
+Platform=Win2000
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT5.1; *) Gecko/* Netscape*/7.1*]
+Parent=Netscape 7.1
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT5.2; *) Gecko/* Netscape*/7.1*]
+Parent=Netscape 7.1
+Platform=Win2003
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT6.0; *) Gecko/* Netscape*/7.1*]
+Parent=Netscape 7.1
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; ?; WinNT6.1; *) Gecko/* Netscape*/7.1*]
+Parent=Netscape 7.1
+Platform=Win7
+
+[Mozilla/5.0 (X11; ?; *) Gecko/* Netscape*/7.1*]
+Parent=Netscape 7.1
+Platform=Linux
+
+[Mozilla/5.0 (X11; ?; SunOS*) Gecko/* Netscape*/7.1*]
+Parent=Netscape 7.1
+Platform=SunOS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 7.2
+
+[Netscape 7.2]
+Parent=DefaultProperties
+Browser="Netscape"
+Version=7.2
+MajorVer=7
+MinorVer=2
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (Macintosh; ?; PPC Mac OS X Mach-O; *; rv:*) Gecko/* Netscape*/7.2*]
+Parent=Netscape 7.2
+Platform=MacOSX
+
+[Mozilla/5.0 (Macintosh; ?; PPC Mac OS X;*) Gecko/* Netscape*/7.2*]
+Parent=Netscape 7.2
+Platform=MacOSX
+
+[Mozilla/5.0 (Macintosh; ?; PPC;*) Gecko/* Netscape*/7.2*]
+Parent=Netscape 7.2
+Platform=MacPPC
+
+[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *) Gecko/* Netscape*/7.2*]
+Parent=Netscape 7.2
+Platform=WinME
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win95;*) Gecko/* Netscape*/7.2*]
+Parent=Netscape 7.2
+Platform=Win95
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win98; *) Gecko/* Netscape*/7.2*]
+Parent=Netscape 7.2
+Platform=Win98
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win9x 4.90; *) Gecko/* Netscape*/7.2*]
+Parent=Netscape 7.2
+Platform=WinME
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 4.0; *) Gecko/* Netscape*/7.2*]
+Parent=Netscape 7.2
+Platform=WinNT
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *) Gecko/* Netscape*/7.2*]
+Parent=Netscape 7.2
+Platform=Win2000
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) Gecko/* Netscape*/7.2*]
+Parent=Netscape 7.2
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) Gecko/* Netscape*/7.2*]
+Parent=Netscape 7.2
+Platform=Win2003
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) Gecko/* Netscape*/7.2*]
+Parent=Netscape 7.2
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) Gecko/* Netscape*/7.2*]
+Parent=Netscape 7.2
+Platform=Win7
+
+[Mozilla/5.0 (Windows; ?; WinNT4.0; *) Gecko/* Netscape*/7.2*]
+Parent=Netscape 7.2
+Platform=WinNT
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT5.0; *) Gecko/* Netscape*/7.2*]
+Parent=Netscape 7.2
+Platform=Win2000
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT5.1; *) Gecko/* Netscape*/7.2*]
+Parent=Netscape 7.2
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT5.2; *) Gecko/* Netscape*/7.2*]
+Parent=Netscape 7.2
+Platform=Win2003
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT6.0; *) Gecko/* Netscape*/7.2*]
+Parent=Netscape 7.2
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; ?; WinNT6.1; *) Gecko/* Netscape*/7.2*]
+Parent=Netscape 7.2
+Platform=Win7
+
+[Mozilla/5.0 (X11; ?; *) Gecko/* Netscape*/7.2*]
+Parent=Netscape 7.2
+Platform=Linux
+
+[Mozilla/5.0 (X11; ?; SunOS*) Gecko/* Netscape*/7.2*]
+Parent=Netscape 7.2
+Platform=SunOS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 8.0
+
+[Netscape 8.0]
+Parent=DefaultProperties
+Browser="Netscape"
+Version=8.0
+MajorVer=8
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (Macintosh; ?; PPC Mac OS X Mach-O; *; rv:*) Gecko/* Netscape*/8.0*]
+Parent=Netscape 8.0
+Platform=MacOSX
+
+[Mozilla/5.0 (Macintosh; ?; PPC Mac OS X;*) Gecko/* Netscape*/8.0*]
+Parent=Netscape 8.0
+Platform=MacOSX
+
+[Mozilla/5.0 (Macintosh; ?; PPC;*) Gecko/* Netscape*/8.0*]
+Parent=Netscape 8.0
+Platform=MacPPC
+
+[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *) Gecko/* Netscape*/8.0*]
+Parent=Netscape 8.0
+Platform=WinME
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win95;*) Gecko/* Netscape*/8.0*]
+Parent=Netscape 8.0
+Platform=Win95
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win98; *) Gecko/* Netscape*/8.0*]
+Parent=Netscape 8.0
+Platform=Win98
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win9x 4.90; *) Gecko/* Netscape*/8.0*]
+Parent=Netscape 8.0
+Platform=WinME
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 4.0; *) Gecko/* Netscape*/8.0*]
+Parent=Netscape 8.0
+Platform=WinNT
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *) Gecko/* Netscape*/8.0*]
+Parent=Netscape 8.0
+Platform=Win2000
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) Gecko/* Netscape*/8.0*]
+Parent=Netscape 8.0
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) Gecko/* Netscape*/8.0*]
+Parent=Netscape 8.0
+Platform=Win2003
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) Gecko/* Netscape*/8.0*]
+Parent=Netscape 8.0
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) Gecko/* Netscape*/8.0*]
+Parent=Netscape 8.0
+Platform=Win7
+
+[Mozilla/5.0 (Windows; ?; WinNT4.0; *) Gecko/* Netscape*/8.0*]
+Parent=Netscape 8.0
+Platform=WinNT
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT5.0; *) Gecko/* Netscape*/8.0*]
+Parent=Netscape 8.0
+Platform=Win2000
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT5.1; *) Gecko/* Netscape*/8.0*]
+Parent=Netscape 8.0
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT5.2; *) Gecko/* Netscape*/8.0*]
+Parent=Netscape 8.0
+Platform=Win2003
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT6.0; *) Gecko/* Netscape*/8.0*]
+Parent=Netscape 8.0
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; ?; WinNT6.1; *) Gecko/* Netscape*/8.0*]
+Parent=Netscape 8.0
+Platform=Win7
+
+[Mozilla/5.0 (X11; ?; *) Gecko/* Netscape*/8.0*]
+Parent=Netscape 8.0
+Platform=Linux
+
+[Mozilla/5.0 (X11; ?; SunOS*) Gecko/* Netscape*/8.0*]
+Parent=Netscape 8.0
+Platform=SunOS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 8.1
+
+[Netscape 8.1]
+Parent=DefaultProperties
+Browser="Netscape"
+Version=8.1
+MajorVer=8
+MinorVer=1
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (Macintosh; ?; *Mac OS X*) Gecko/* Netscape*/8.1*]
+Parent=Netscape 8.1
+Platform=MacOSX
+
+[Mozilla/5.0 (Macintosh; ?; PPC;*) Gecko/* Netscape*/8.1*]
+Parent=Netscape 8.1
+Platform=MacPPC
+
+[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *) Gecko/* Netscape*/8.1*]
+Parent=Netscape 8.1
+Platform=WinME
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win95;*) Gecko/* Netscape*/8.1*]
+Parent=Netscape 8.1
+Platform=Win95
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win98; *) Gecko/* Netscape*/8.1*]
+Parent=Netscape 8.1
+Platform=Win98
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win9x 4.90; *) Gecko/* Netscape*/8.1*]
+Parent=Netscape 8.1
+Platform=WinME
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 4.0; *) Gecko/* Netscape*/8.1*]
+Parent=Netscape 8.1
+Platform=WinNT
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *) Gecko/* Netscape*/8.1*]
+Parent=Netscape 8.1
+Platform=Win2000
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) Gecko/* Netscape*/8.1*]
+Parent=Netscape 8.1
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) Gecko/* Netscape*/8.1*]
+Parent=Netscape 8.1
+Platform=Win2003
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) Gecko/* Netscape*/8.1*]
+Parent=Netscape 8.1
+Platform=WinVista
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) Gecko/* Netscape*/8.1*]
+Parent=Netscape 8.1
+Platform=Win7
+
+[Mozilla/5.0 (Windows; ?; WinNT4.0; *) Gecko/* Netscape*/8.1*]
+Parent=Netscape 8.1
+Platform=WinNT
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT5.0; *) Gecko/* Netscape*/8.1*]
+Parent=Netscape 8.1
+Platform=Win2000
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT5.1; *) Gecko/* Netscape*/8.1*]
+Parent=Netscape 8.1
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT5.2; *) Gecko/* Netscape*/8.1*]
+Parent=Netscape 8.1
+Platform=Win2003
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT6.0; *) Gecko/* Netscape*/8.1*]
+Parent=Netscape 8.1
+Platform=WinVista
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT6.1; *) Gecko/* Netscape*/8.1*]
+Parent=Netscape 8.1
+Platform=Win7
+
+[Mozilla/5.0 (X11; ?; *) Gecko/* Netscape*/8.1*]
+Parent=Netscape 8.1
+Platform=Linux
+
+[Mozilla/5.0 (X11; ?; SunOS*) Gecko/* Netscape*/8.1*]
+Parent=Netscape 8.1
+Platform=SunOS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; SeaMonkey 1.0
+
+[SeaMonkey 1.0]
+Parent=DefaultProperties
+Browser="SeaMonkey"
+Version=1.0
+MajorVer=1
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *; rv:1.8*) Gecko/* SeaMonkey/1.0*]
+Parent=SeaMonkey 1.0
+Platform=MacOSX
+
+[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *; rv:1.8*) Gecko/* SeaMonkey/1.0*]
+Parent=SeaMonkey 1.0
+Platform=WinME
+
+[Mozilla/5.0 (Windows; ?; Win98; *; rv:1.8*) Gecko/* SeaMonkey/1.0*]
+Parent=SeaMonkey 1.0
+Platform=Win98
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *; rv:1.8*) Gecko/* SeaMonkey/1.0*]
+Parent=SeaMonkey 1.0
+Platform=Win2000
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *; rv:1.8*) Gecko/* SeaMonkey/1.0*]
+Parent=SeaMonkey 1.0
+Platform=WinXP
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *; rv:1.8*) Gecko/* SeaMonkey/1.0*]
+Parent=SeaMonkey 1.0
+Platform=Win2003
+
+[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *; rv:1.8*) Gecko/* SeaMonkey/1.0*]
+Parent=SeaMonkey 1.0
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *; rv:1.8*) Gecko/* SeaMonkey/1.0*]
+Parent=SeaMonkey 1.0
+Platform=Win7
+
+[Mozilla/5.0 (X11; ?; FreeBSD*; *; rv:1.8*) Gecko/* SeaMonkey/1.0*]
+Parent=SeaMonkey 1.0
+Platform=FreeBSD
+
+[Mozilla/5.0 (X11; ?; Linux*; *; rv:1.8*) Gecko/20060221 SeaMonkey/1.0*]
+Parent=SeaMonkey 1.0
+Platform=Linux
+
+[Mozilla/5.0 (X11; ?; SunOS*; *; rv:1.8*) Gecko/* SeaMonkey/1.0*]
+Parent=SeaMonkey 1.0
+Platform=SunOS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; SeaMonkey 1.1
+
+[SeaMonkey 1.1]
+Parent=DefaultProperties
+Browser="SeaMonkey"
+Version=1.1
+MajorVer=1
+MinorVer=1
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *; rv:1.8*) Gecko/* SeaMonkey/1.1*]
+Parent=SeaMonkey 1.1
+Platform=MacOSX
+
+[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *; rv:1.8*) Gecko/* SeaMonkey/1.1*]
+Parent=SeaMonkey 1.1
+Platform=WinME
+
+[Mozilla/5.0 (Windows; ?; Win98; *; rv:1.8*) Gecko/* SeaMonkey/1.1*]
+Parent=SeaMonkey 1.1
+Platform=Win98
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *; rv:1.8*) Gecko/* SeaMonkey/1.1*]
+Parent=SeaMonkey 1.1
+Platform=Win2000
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *; rv:1.8*) Gecko/* SeaMonkey/1.1*]
+Parent=SeaMonkey 1.1
+Platform=WinXP
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *; rv:1.8*) Gecko/* SeaMonkey/1.1*]
+Parent=SeaMonkey 1.1
+Platform=Win2003
+
+[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *; rv:1.8*) Gecko/* SeaMonkey/1.1*]
+Parent=SeaMonkey 1.1
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *; rv:1.8*) Gecko/* SeaMonkey/1.1*]
+Parent=SeaMonkey 1.1
+Platform=Win7
+
+[Mozilla/5.0 (X11; ?; FreeBSD*; *; rv:1.8*) Gecko/* SeaMonkey/1.1*]
+Parent=SeaMonkey 1.1
+Platform=FreeBSD
+
+[Mozilla/5.0 (X11; ?; Linux*; *; rv:1.8*) Gecko/* SeaMonkey/1.1*]
+Parent=SeaMonkey 1.1
+Platform=Linux
+
+[Mozilla/5.0 (X11; ?; SunOS*; *; rv:1.8*) Gecko/* SeaMonkey/1.1*]
+Parent=SeaMonkey 1.1
+Platform=SunOS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; SeaMonkey 2.0
+
+[SeaMonkey 2.0]
+Parent=DefaultProperties
+Browser="SeaMonkey"
+Version=2.0
+MajorVer=2
+Alpha=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *; rv:1.9*) Gecko/* SeaMonkey/2.0*]
+Parent=SeaMonkey 2.0
+Platform=MacOSX
+
+[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *; rv:1.9*) Gecko/* SeaMonkey/2.0*]
+Parent=SeaMonkey 2.0
+Platform=WinME
+
+[Mozilla/5.0 (Windows; ?; Win98; *; rv:1.9*) Gecko/* SeaMonkey/2.0*]
+Parent=SeaMonkey 2.0
+Platform=Win98
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *; rv:1.9*) Gecko/* SeaMonkey/2.0*]
+Parent=SeaMonkey 2.0
+Platform=Win2000
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *; rv:1.9*) Gecko/* SeaMonkey/2.0*]
+Parent=SeaMonkey 2.0
+Platform=WinXP
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *; rv:1.9*) Gecko/* SeaMonkey/2.0*]
+Parent=SeaMonkey 2.0
+Platform=Win2003
+
+[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *; rv:1.9*) Gecko/* SeaMonkey/2.0*]
+Parent=SeaMonkey 2.0
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *; rv:1.9*) Gecko/* SeaMonkey/2.0*]
+Parent=SeaMonkey 2.0
+Platform=Win7
+
+[Mozilla/5.0 (X11; ?; FreeBSD*; *; rv:1.9*) Gecko/* SeaMonkey/2.0*]
+Parent=SeaMonkey 2.0
+Platform=FreeBSD
+
+[Mozilla/5.0 (X11; ?; Linux*; *; rv:1.9*) Gecko/20060221 SeaMonkey/2.0*]
+Parent=SeaMonkey 2.0
+Platform=Linux
+
+[Mozilla/5.0 (X11; ?; SunOS*; *; rv:1.9*) Gecko/* SeaMonkey/2.0*]
+Parent=SeaMonkey 2.0
+Platform=SunOS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Flock 1.0
+
+[Flock 1.0]
+Parent=DefaultProperties
+Browser="Flock"
+Version=1.0
+MajorVer=1
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (Macintosh; U; *Mac OS X*; *; rv:1.*) Gecko/* Firefox/2.* Flock/1.*]
+Parent=Flock 1.0
+Platform=MacOSX
+
+[Mozilla/5.0 (Windows; U; Win 9x 4.90; *; rv:1.*) Gecko/* Firefox/2.* Flock/1.*]
+Parent=Flock 1.0
+Platform=WinME
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.0*; *; rv:1.*) Gecko/* Firefox/2.* Flock/1.*]
+Parent=Flock 1.0
+Platform=Win2000
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.1*; *; rv:1.*) Gecko/* Firefox/2.* Flock/1.*]
+Parent=Flock 1.0
+Platform=WinXP
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.2*; *; rv:1.*) Gecko/* Firefox/2.* Flock/1.*]
+Parent=Flock 1.0
+Platform=Win2003
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.0*; *; rv:1.*) Gecko/* Firefox/2.* Flock/1.*]
+Parent=Flock 1.0
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.1*; *; rv:1.*) Gecko/* Firefox/2.* Flock/1.*]
+Parent=Flock 1.0
+Platform=Win7
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Flock 2.0
+
+[Flock 2.0]
+Parent=DefaultProperties
+Browser="Flock"
+Version=2.0
+MajorVer=2
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (Macintosh; U; *Mac OS X*; *; rv:1.*) Gecko/* Firefox/3.* Flock/2.*]
+Parent=Flock 2.0
+Platform=MacOSX
+
+[Mozilla/5.0 (Windows; U; Win 9x 4.90; *; rv:1.*) Gecko/* Firefox/3.* Flock/2.*]
+Parent=Flock 2.0
+Platform=WinME
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.0*; *; rv:1.*) Gecko/* Firefox/3.* Flock/2.*]
+Parent=Flock 2.0
+Platform=Win2000
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.1*; *; rv:1.*) Gecko/* Firefox/3.* Flock/2.*]
+Parent=Flock 2.0
+Platform=WinXP
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.2*; *; rv:1.*) Gecko/* Firefox/3.* Flock/2.*]
+Parent=Flock 2.0
+Platform=Win2003
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.0*; *; rv:1.*) Gecko/* Firefox/3.* Flock/2.*]
+Parent=Flock 2.0
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.1*; *; rv:1.*) Gecko/* Firefox/3.* Flock/2.*]
+Parent=Flock 2.0
+Platform=Win7
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Sleipnir 2.0
+
+[Sleipnir]
+Parent=DefaultProperties
+Browser="Sleipnir"
+Version=2.0
+MajorVer=2
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/4.0 (compatible; MSIE ?.0; Windows NT 5.0*) Sleipnir/2.*]
+Parent=Sleipnir
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE ?.0; Windows NT 5.1*) Sleipnir/2.*]
+Parent=Sleipnir
+Platform=WinXP
+
+[Mozilla/4.0 (compatible; MSIE ?.0; Windows NT 5.2*) Sleipnir/2.*]
+Parent=Sleipnir
+Platform=Win2003
+
+[Mozilla/4.0 (compatible; MSIE ?.0; Windows NT 6.0*) Sleipnir/2.*]
+Parent=Sleipnir
+Platform=WinVista
+
+[Mozilla/4.0 (compatible; MSIE ?.0; Windows NT 6.1*) Sleipnir/2.*]
+Parent=Sleipnir
+Platform=Win7
+
+[Sleipnir*]
+Parent=Sleipnir
+
+[Sleipnir/2.*]
+Parent=Sleipnir
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Fennec 1.0
+
+[Fennec 1.0]
+Parent=DefaultProperties
+Browser="Firefox Mobile"
+Version=1.0
+MajorVer=1
+Alpha=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=3
+supportsCSS=true
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.1; *; rv:1.9*) Gecko/* Fennec/1.0*]
+Parent=Fennec 1.0
+Platform=WinXP
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.0; *; rv:1.9*) Gecko/* Fennec/1.0*]
+Parent=Fennec 1.0
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.1; *; rv:1.9*) Gecko/* Fennec/1.0*]
+Parent=Fennec 1.0
+Platform=Win7
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 1.0
+
+[Firefox 1.0]
+Parent=DefaultProperties
+Browser="Firefox"
+Version=1.0
+MajorVer=1
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (Linux; *; PPC*; *; rv:1.*) Gecko/* Firefox/1.0*]
+Parent=Firefox 1.0
+Platform=MacPPC
+
+[Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.*) Gecko/* Firefox/1.0*]
+Parent=Firefox 1.0
+Platform=MacOSX
+
+[Mozilla/5.0 (OS/2; *; Warp*; *; rv:1.*) Gecko/* Firefox/1.0*]
+Parent=Firefox 1.0
+Platform=OS/2
+
+[Mozilla/5.0 (Windows; *; Win 9x 4.90*; *; rv:1.*) Gecko/* Firefox/1.0*]
+Parent=Firefox 1.0
+Platform=WinME
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Win95; *; rv:1.*) Gecko/* Firefox/1.0*]
+Parent=Firefox 1.0
+Platform=Win95
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Win98; *; rv:1.*) Gecko/* Firefox/1.0*]
+Parent=Firefox 1.0
+Platform=Win98
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.*) Gecko/* Firefox/1.0*]
+Parent=Firefox 1.0
+Platform=Win2000
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.*) Gecko/* Firefox/1.0*]
+Parent=Firefox 1.0
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.1; rv:1.*) Gecko/* Firefox/1.0*]
+Parent=Firefox 1.0
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.*) Gecko/* Firefox/1.0*]
+Parent=Firefox 1.0
+Platform=Win2003
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 6.0*; *; rv:1.*) Gecko/* Firefox/1.0*]
+Parent=Firefox 1.0
+Platform=WinVista
+Win32=true
+
+[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.*) Gecko/* Firefox/1.0*]
+Parent=Firefox 1.0
+Platform=WinNT
+Win32=true
+
+[Mozilla/5.0 (X11; *; *Linux*; *; rv:1.*) Gecko/* Firefox/1.0*]
+Parent=Firefox 1.0
+Platform=Linux
+
+[Mozilla/5.0 (X11; *; *Linux*; rv:1.*) Gecko/* Firefox/1.0*]
+Parent=Firefox 1.0
+Platform=Linux
+
+[Mozilla/5.0 (X11; *; DragonFly*; *; rv:1.*) Gecko/* Firefox/1.0*]
+Parent=Firefox 1.0
+
+[Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.*) Gecko/* Firefox/1.0*]
+Parent=Firefox 1.0
+Platform=FreeBSD
+
+[Mozilla/5.0 (X11; *; HP-UX*; *; rv:1.*) Gecko/* Firefox/1.0*]
+Parent=Firefox 1.0
+Platform=HP-UX
+
+[Mozilla/5.0 (X11; *; IRIX64*; *; rv:1.*) Gecko/* Firefox/1.0*]
+Parent=Firefox 1.0
+Platform=IRIX64
+
+[Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.*) Gecko/* Firefox/1.0*]
+Parent=Firefox 1.0
+Platform=OpenBSD
+
+[Mozilla/5.0 (X11; *; SunOS*; *; rv:1.*) Gecko/* Firefox/1.0*]
+Parent=Firefox 1.0
+Platform=SunOS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 1.4
+
+[Firefox 1.4]
+Parent=DefaultProperties
+Browser="Firefox"
+Version=1.4
+MajorVer=1
+MinorVer=4
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (Linux; *; PPC*; *; rv:1.*) Gecko/* Firefox/1.4*]
+Parent=Firefox 1.4
+Platform=Linux
+
+[Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.*) Gecko/* Firefox/1.4*]
+Parent=Firefox 1.4
+Platform=MacOSX
+
+[Mozilla/5.0 (OS/2; *; Warp*; *; rv:1.*) Gecko/* Firefox/1.4*]
+Parent=Firefox 1.4
+Platform=OS/2
+
+[Mozilla/5.0 (Windows; *; Win 9x 4.90; *; rv:1.*) Gecko/* Firefox/1.4*]
+Parent=Firefox 1.4
+Platform=WinME
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Win95*; *; rv:1.*) Gecko/* Firefox/1.4*]
+Parent=Firefox 1.4
+Platform=Win95
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Win98; *; rv:1.*) Gecko/* Firefox/1.4*]
+Parent=Firefox 1.4
+Platform=Win98
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.*) Gecko/* Firefox/1.4*]
+Parent=Firefox 1.4
+Platform=Win2000
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.*) Gecko/* Firefox/1.4*]
+Parent=Firefox 1.4
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.*) Gecko/* Firefox/1.4*]
+Parent=Firefox 1.4
+Platform=Win2003
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 6.0; *; rv:1.*) Gecko/* Firefox/1.4*]
+Parent=Firefox 1.4
+Platform=WinVista
+Win32=true
+
+[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.*) Gecko/* Firefox/1.4*]
+Parent=Firefox 1.4
+Platform=WinNT
+Win32=true
+
+[Mozilla/5.0 (X11; *; *Linux*; *; rv:1.*) Gecko/* Firefox/1.4*]
+Parent=Firefox 1.4
+Platform=Linux
+
+[Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.*) Gecko/* Firefox/1.4*]
+Parent=Firefox 1.4
+Platform=FreeBSD
+
+[Mozilla/5.0 (X11; *; HP-UX*; *; rv:1.*) Gecko/* Firefox/1.4*]
+Parent=Firefox 1.4
+Platform=HP-UX
+
+[Mozilla/5.0 (X11; *; IRIX64*; *; rv:1.*) Gecko/* Firefox/1.4*]
+Parent=Firefox 1.4
+Platform=IRIX64
+
+[Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.*) Gecko/* Firefox/1.4*]
+Parent=Firefox 1.4
+Platform=OpenBSD
+
+[Mozilla/5.0 (X11; *; SunOS*; *; rv:1.*) Gecko/* Firefox/1.4*]
+Parent=Firefox 1.4
+Platform=SunOS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 1.5
+
+[Firefox 1.5]
+Parent=DefaultProperties
+Browser="Firefox"
+Version=1.5
+MajorVer=1
+MinorVer=5
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (Linux; *; PPC*; *; rv:1.*) Gecko/* Firefox/1.5*]
+Parent=Firefox 1.5
+Platform=Linux
+
+[Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.*) Gecko/* Firefox/1.5*]
+Parent=Firefox 1.5
+Platform=MacOSX
+
+[Mozilla/5.0 (OS/2; *; Warp*; *; rv:1.*) Gecko/* Firefox/1.5*]
+Parent=Firefox 1.5
+Platform=OS/2
+
+[Mozilla/5.0 (rv:1.*) Gecko/* Firefox/1.5*]
+Parent=Firefox 1.5
+
+[Mozilla/5.0 (Windows; *; Win 9x 4.90; *; rv:1.*) Gecko/* Firefox/1.5*]
+Parent=Firefox 1.5
+Platform=WinME
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Win95; *; rv:1.*) Gecko/* Firefox/1.5*]
+Parent=Firefox 1.5
+Platform=Win95
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Win98; *; rv:1.*) Gecko/* Firefox/1.5*]
+Parent=Firefox 1.5
+Platform=Win98
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.*) Gecko/* Firefox/1.5*]
+Parent=Firefox 1.5
+Platform=Win2000
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.*) Gecko/* Firefox/1.5*]
+Parent=Firefox 1.5
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.2 x64; *; rv:1.*) Gecko/* Firefox/1.5*]
+Parent=Firefox 1.5
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.*) Gecko/* Firefox/1.5*]
+Parent=Firefox 1.5
+Platform=Win2003
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 6.0; *; rv:1.*) Gecko/* Firefox/1.5*]
+Parent=Firefox 1.5
+Platform=WinVista
+Win32=true
+
+[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.*) Gecko/* Firefox/1.5*]
+Parent=Firefox 1.5
+Platform=WinNT
+Win32=true
+
+[Mozilla/5.0 (X11; *; *Linux*; *; rv:1.*) Gecko/* Firefox/1.5*]
+Parent=Firefox 1.5
+Platform=Linux
+
+[Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.*) Gecko/* Firefox/1.5*]
+Parent=Firefox 1.5
+Platform=FreeBSD
+
+[Mozilla/5.0 (X11; *; HP-UX*; *; rv:1.*) Gecko/* Firefox/1.5*]
+Parent=Firefox 1.5
+Platform=HP-UX
+
+[Mozilla/5.0 (X11; *; IRIX64*; *; rv:1.*) Gecko/* Firefox/1.5*]
+Parent=Firefox 1.5
+Platform=IRIX64
+
+[Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.*) Gecko/* Firefox/1.5*]
+Parent=Firefox 1.5
+Platform=OpenBSD
+
+[Mozilla/5.0 (X11; *; SunOS*; *; rv:1.*) Gecko/* Firefox/1.5*]
+Parent=Firefox 1.5
+Platform=SunOS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 2.0
+
+[Firefox 2.0]
+Parent=DefaultProperties
+Browser="Firefox"
+Version=2.0
+MajorVer=2
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (Linux; *; PPC*; *; rv:1.8*) Gecko/* Firefox/2.0*]
+Parent=Firefox 2.0
+Platform=Linux
+
+[Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.8*) Gecko/* Firefox/2.0*]
+Parent=Firefox 2.0
+Platform=MacOSX
+
+[Mozilla/5.0 (OS/2; *; Warp*; *; rv:1.8*) Gecko/* Firefox/2.0*]
+Parent=Firefox 2.0
+Platform=OS/2
+
+[Mozilla/5.0 (Windows; *; Win 9x 4.90; *; rv:1.8*) Gecko/* Firefox/2.0*]
+Parent=Firefox 2.0
+Platform=WinME
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Win95; *; rv:1.8*) Gecko/* Firefox/2.0*]
+Parent=Firefox 2.0
+Platform=Win95
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Win98; *; rv:1.8*) Gecko/* Firefox/2.0*]
+Parent=Firefox 2.0
+Platform=Win98
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.*) Gecko/* Firefox/2.0*]
+Parent=Firefox 2.0
+Platform=Win2000
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.8*) Gecko/* Firefox/2.0*]
+Parent=Firefox 2.0
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.8*) Gecko/* Firefox/2.0*]
+Parent=Firefox 2.0
+Platform=Win2003
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 6.0; *; rv:1.8*) Gecko/* Firefox/2.0*]
+Parent=Firefox 2.0
+Platform=WinVista
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 6.1; *; rv:1.8*) Gecko/* Firefox/2.0*]
+Parent=Firefox 2.0
+Platform=Win7
+
+[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.8*) Gecko/* Firefox/2.0*]
+Parent=Firefox 2.0
+Platform=WinNT
+Win32=true
+
+[Mozilla/5.0 (X11; *; *Linux*; *; rv:1.8*) Gecko/* Firefox/2.0*]
+Parent=Firefox 2.0
+Platform=Linux
+
+[Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.8*) Gecko/* Firefox/2.0*]
+Parent=Firefox 2.0
+Platform=FreeBSD
+
+[Mozilla/5.0 (X11; *; HP-UX*; *; rv:1.8*) Gecko/* Firefox/2.0*]
+Parent=Firefox 2.0
+Platform=HP-UX
+
+[Mozilla/5.0 (X11; *; IRIX64*; *; rv:1.8*) Gecko/* Firefox/2.0*]
+Parent=Firefox 2.0
+Platform=IRIX64
+
+[Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.8*) Gecko/* Firefox/2.0*]
+Parent=Firefox 2.0
+Platform=OpenBSD
+
+[Mozilla/5.0 (X11; *; SunOS*; *; rv:1.8*) Gecko/* Firefox/2.0*]
+Parent=Firefox 2.0
+Platform=SunOS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 3.0
+
+[Firefox 3.0]
+Parent=DefaultProperties
+Browser="Firefox"
+Version=3.0
+MajorVer=3
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=3
+supportsCSS=true
+
+[Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.9*) Gecko/* Firefox/3.0*]
+Parent=Firefox 3.0
+Platform=MacOSX
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.*) Gecko/* Firefox/3.0*]
+Parent=Firefox 3.0
+Platform=Win2000
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.9*) Gecko/* Firefox/3.0*]
+Parent=Firefox 3.0
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.9*) Gecko/* Firefox/3.0*]
+Parent=Firefox 3.0
+Platform=Win2003
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 6.0; *; rv:1.9*) Gecko/* Firefox/3.0*]
+Parent=Firefox 3.0
+Platform=WinVista
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 6.1; *; rv:1.*) Gecko/* Firefox/3.0*]
+Parent=Firefox 3.0
+Platform=Win7
+
+[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.9*) Gecko/* Firefox/3.0*]
+Parent=Firefox 3.0
+Platform=WinNT
+Win32=true
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.1 x64; *; rv:1.9*) Gecko/* Firefox/3.0*]
+Parent=Firefox 3.0
+Platform=WinXP
+Win32=false
+Win64=true
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.2 x64; *; rv:1.9*) Gecko/* Firefox/3.0*]
+Parent=Firefox 3.0
+Platform=Win2003
+Win32=false
+Win64=true
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.0 x64; *; rv:1.9*) Gecko/* Firefox/3.0*]
+Parent=Firefox 3.0
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.1 x64; *; rv:1.9*) Gecko/* Firefox/3.0*]
+Parent=Firefox 3.0
+Platform=Win7
+
+[Mozilla/5.0 (X11; *; *Linux*; *; rv:1.9*) Gecko/* Firefox/3.0*]
+Parent=Firefox 3.0
+Platform=Linux
+
+[Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.9*) Gecko/* Firefox/3.0*]
+Parent=Firefox 3.0
+Platform=FreeBSD
+
+[Mozilla/5.0 (X11; *; HP-UX*; *; rv:1.9*) Gecko/* Firefox/3.0*]
+Parent=Firefox 3.0
+Platform=HP-UX
+
+[Mozilla/5.0 (X11; *; IRIX64*; *; rv:1.9*) Gecko/* Firefox/3.0*]
+Parent=Firefox 3.0
+Platform=IRIX64
+
+[Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.9*) Gecko/* Firefox/3.0*]
+Parent=Firefox 3.0
+Platform=OpenBSD
+
+[Mozilla/5.0 (X11; *; SunOS*; *; rv:1.9*) Gecko/* Firefox/3.0*]
+Parent=Firefox 3.0
+Platform=SunOS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 3.1
+
+[Firefox 3.1]
+Parent=DefaultProperties
+Browser="Firefox"
+Version=3.1
+MajorVer=3
+MinorVer=1
+Beta=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=3
+supportsCSS=true
+
+[Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.9*) Gecko/* Firefox/3.1*]
+Parent=Firefox 3.1
+Platform=MacOSX
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.9*) Gecko/* Firefox/3.1*]
+Parent=Firefox 3.1
+Platform=Win2000
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.9*) Gecko/* Firefox/3.1*]
+Parent=Firefox 3.1
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.9*) Gecko/* Firefox/3.1*]
+Parent=Firefox 3.1
+Platform=Win2003
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 6.0; *; rv:1.9*) Gecko/* Firefox/3.1*]
+Parent=Firefox 3.1
+Platform=WinVista
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 6.1; *; rv:1.9*) Gecko/* Firefox/3.1*]
+Parent=Firefox 3.1
+Platform=Win7
+
+[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.9*) Gecko/* Firefox/3.1*]
+Parent=Firefox 3.1
+Platform=WinNT
+Win32=true
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.1 x64; *; rv:1.9*) Gecko/* Firefox/3.1*]
+Parent=Firefox 3.1
+Platform=WinXP
+Win32=false
+Win64=true
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.2 x64; *; rv:1.9*) Gecko/* Firefox/3.1*]
+Parent=Firefox 3.1
+Platform=Win2003
+Win32=false
+Win64=true
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.0 x64; *; rv:1.9*) Gecko/* Firefox/3.1*]
+Parent=Firefox 3.1
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.1 x64; *; rv:1.9*) Gecko/* Firefox/3.1*]
+Parent=Firefox 3.1
+Platform=Win7
+
+[Mozilla/5.0 (X11; *; *Linux*; *; rv:1.9*) Gecko/* Firefox/3.1*]
+Parent=Firefox 3.1
+Platform=Linux
+
+[Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.9*) Gecko/* Firefox/3.1*]
+Parent=Firefox 3.1
+Platform=FreeBSD
+
+[Mozilla/5.0 (X11; *; HP-UX*; *; rv:1.9*) Gecko/* Firefox/3.1*]
+Parent=Firefox 3.1
+Platform=HP-UX
+
+[Mozilla/5.0 (X11; *; IRIX64*; *; rv:1.9*) Gecko/* Firefox/3.1*]
+Parent=Firefox 3.1
+Platform=IRIX64
+
+[Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.9*) Gecko/* Firefox/3.1*]
+Parent=Firefox 3.1
+Platform=OpenBSD
+
+[Mozilla/5.0 (X11; *; SunOS*; *; rv:1.9*) Gecko/* Firefox/3.1*]
+Parent=Firefox 3.1
+Platform=SunOS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 3.5
+
+[Firefox 3.5]
+Parent=DefaultProperties
+Browser="Firefox"
+Version=3.5
+MajorVer=3
+MinorVer=5
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=3
+supportsCSS=true
+
+[Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.9.*) Gecko/* Firefox/3.5*]
+Parent=Firefox 3.5
+Platform=MacOSX
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.9.*) Gecko/* Firefox/3.5*]
+Parent=Firefox 3.5
+Platform=Win2000
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.9.*) Gecko/* Firefox/3.5*]
+Parent=Firefox 3.5
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.9.*) Gecko/* Firefox/3.5*]
+Parent=Firefox 3.5
+Platform=Win2003
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 6.0; *; rv:1.9.*) Gecko/* Firefox/3.5*]
+Parent=Firefox 3.5
+Platform=WinVista
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 6.1; *; rv:1.9.*) Gecko/* Firefox/3.5*]
+Parent=Firefox 3.5
+Platform=Win7
+
+[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.9.*) Gecko/* Firefox/3.5*]
+Parent=Firefox 3.5
+Platform=WinNT
+Win32=true
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.1 x64; *; rv:1.9.*) Gecko/* Firefox/3.5*]
+Parent=Firefox 3.5
+Platform=WinXP
+Win32=false
+Win64=true
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.2 x64; *; rv:1.9.*) Gecko/* Firefox/3.5*]
+Parent=Firefox 3.5
+Platform=Win2003
+Win32=false
+Win64=true
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.0 x64; *; rv:1.9.*) Gecko/* Firefox/3.5*]
+Parent=Firefox 3.5
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.1 x64; *; rv:1.9.*) Gecko/* Firefox/3.5*]
+Parent=Firefox 3.5
+Platform=Win7
+
+[Mozilla/5.0 (X11; *; *Linux*; *; rv:1.9.*) Gecko/* Firefox/3.5*]
+Parent=Firefox 3.5
+Platform=Linux
+
+[Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.9.*) Gecko/* Firefox/3.5*]
+Parent=Firefox 3.5
+Platform=FreeBSD
+
+[Mozilla/5.0 (X11; *; HP-UX*; *; rv:1.9.*) Gecko/* Firefox/3.5*]
+Parent=Firefox 3.5
+Platform=HP-UX
+
+[Mozilla/5.0 (X11; *; IRIX64*; *; rv:1.9.*) Gecko/* Firefox/3.5*]
+Parent=Firefox 3.5
+Platform=IRIX64
+
+[Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.9.*) Gecko/* Firefox/3.5*]
+Parent=Firefox 3.5
+Platform=OpenBSD
+
+[Mozilla/5.0 (X11; *; SunOS*; *; rv:1.9.*) Gecko/* Firefox/3.5*]
+Parent=Firefox 3.5
+Platform=SunOS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 3.6
+
+[Firefox 3.6]
+Parent=DefaultProperties
+Browser="Firefox"
+Version=3.6
+MajorVer=3
+MinorVer=6
+Beta=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=3
+supportsCSS=true
+
+[Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.9.2*) Gecko/* Firefox/3.6*]
+Parent=Firefox 3.6
+Platform=MacOSX
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.9.2*) Gecko/* Firefox/3.6*]
+Parent=Firefox 3.6
+Platform=Win2000
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.9.2*) Gecko/* Firefox/3.6*]
+Parent=Firefox 3.6
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.9.2*) Gecko/* Firefox/3.6*]
+Parent=Firefox 3.6
+Platform=Win2003
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 6.0; *; rv:1.9.2*) Gecko/* Firefox/3.6*]
+Parent=Firefox 3.6
+Platform=WinVista
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 6.1; *; rv:1.9.2*) Gecko/* Firefox/3.6*]
+Parent=Firefox 3.6
+Platform=Win7
+
+[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.9.2*) Gecko/* Firefox/3.6*]
+Parent=Firefox 3.6
+Platform=WinNT
+Win32=true
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.1 x64; *; rv:1.9.2*) Gecko/* Firefox/3.6*]
+Parent=Firefox 3.6
+Platform=WinXP
+Win32=false
+Win64=true
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.2 x64; *; rv:1.9.2*) Gecko/* Firefox/3.6*]
+Parent=Firefox 3.6
+Platform=Win2003
+Win32=false
+Win64=true
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.0 x64; *; rv:1.9.2*) Gecko/* Firefox/3.6*]
+Parent=Firefox 3.6
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.1 x64; *; rv:1.9.2*) Gecko/* Firefox/3.6*]
+Parent=Firefox 3.6
+Platform=Win7
+
+[Mozilla/5.0 (X11; *; *Linux*; *; rv:1.9.2*) Gecko/* Firefox/3.6*]
+Parent=Firefox 3.6
+Platform=Linux
+
+[Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.9.2*) Gecko/* Firefox/3.6*]
+Parent=Firefox 3.6
+Platform=FreeBSD
+
+[Mozilla/5.0 (X11; *; HP-UX*; *; rv:1.9.2*) Gecko/* Firefox/3.6*]
+Parent=Firefox 3.6
+Platform=HP-UX
+
+[Mozilla/5.0 (X11; *; IRIX64*; *; rv:1.9.2*) Gecko/* Firefox/3.6*]
+Parent=Firefox 3.6
+Platform=IRIX64
+
+[Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.9.2*) Gecko/* Firefox/3.6*]
+Parent=Firefox 3.6
+Platform=OpenBSD
+
+[Mozilla/5.0 (X11; *; SunOS*; *; rv:1.9.2*) Gecko/* Firefox/3.6*]
+Parent=Firefox 3.6
+Platform=SunOS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 3.7
+
+[Firefox 3.7]
+Parent=DefaultProperties
+Browser="Firefox"
+Version=3.7
+MajorVer=3
+MinorVer=7
+Alpha=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=3
+supportsCSS=true
+
+[Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.9.3) Gecko/* Minefield/3.7*]
+Parent=Firefox 3.7
+Platform=MacOSX
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.9.3) Gecko/* Minefield/3.7*]
+Parent=Firefox 3.7
+Platform=Win2000
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.9.3) Gecko/* Minefield/3.7*]
+Parent=Firefox 3.7
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.9.3) Gecko/* Minefield/3.7*]
+Parent=Firefox 3.7
+Platform=Win2003
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 6.0; *; rv:1.9.3) Gecko/* Minefield/3.7*]
+Parent=Firefox 3.7
+Platform=WinVista
+Win32=true
+
+[Mozilla/5.0 (Windows; *; Windows NT 6.1; *; rv:1.9.3) Gecko/* Minefield/3.7*]
+Parent=Firefox 3.7
+Platform=Win7
+
+[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.9.3) Gecko/* Minefield/3.7*]
+Parent=Firefox 3.7
+Platform=WinNT
+Win32=true
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.1 x64; *; rv:1.9.3) Gecko/* Minefield/3.7*]
+Parent=Firefox 3.7
+Platform=WinXP
+Win32=false
+Win64=true
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.2 x64; *; rv:1.9.3) Gecko/* Minefield/3.7*]
+Parent=Firefox 3.7
+Platform=Win2003
+Win32=false
+Win64=true
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.0 x64; *; rv:1.9.3) Gecko/* Minefield/3.7*]
+Parent=Firefox 3.7
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.1 x64; *; rv:1.9.3) Gecko/* Minefield/3.7*]
+Parent=Firefox 3.7
+Platform=Win7
+
+[Mozilla/5.0 (X11; *; *Linux*; *; rv:1.9.3) Gecko/* Minefield/3.7*]
+Parent=Firefox 3.7
+Platform=Linux
+
+[Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.9.3) Gecko/* Minefield/3.7*]
+Parent=Firefox 3.7
+Platform=FreeBSD
+
+[Mozilla/5.0 (X11; *; HP-UX*; *; rv:1.9.3) Gecko/* Minefield/3.7*]
+Parent=Firefox 3.7
+Platform=HP-UX
+
+[Mozilla/5.0 (X11; *; IRIX64*; *; rv:1.9.3) Gecko/* Minefield/3.7*]
+Parent=Firefox 3.7
+Platform=IRIX64
+
+[Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.9.3) Gecko/* Minefield/3.7*]
+Parent=Firefox 3.7
+Platform=OpenBSD
+
+[Mozilla/5.0 (X11; *; SunOS*; *; rv:1.9.3) Gecko/* Minefield/3.7*]
+Parent=Firefox 3.7
+Platform=SunOS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Thunderbird 1.0
+
+[Thunderbird 1.0]
+Parent=DefaultProperties
+Browser="Thunderbird"
+Version=1.0
+MajorVer=1
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+
+[Mozilla/5.0 (Macintosh; *Mac OS X; U; *; rv:1.9.*) Gecko/* Thunderbird/1.*]
+Parent=Thunderbird 1.0
+Platform=MacOSX
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.0; *; rv:1.9.*) Gecko/* Thunderbird/1.*]
+Parent=Thunderbird 1.0
+Platform=Win2000
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.1; *; rv:1.9.*) Gecko/* Thunderbird/1.*]
+Parent=Thunderbird 1.0
+Platform=WinXP
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.2; *; rv:1.9.*) Gecko/* Thunderbird/1.*]
+Parent=Thunderbird 1.0
+Platform=Win2003
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.0; *; rv:1.9.*) Gecko/* Thunderbird/1.*]
+Parent=Thunderbird 1.0
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.1; *; rv:1.9.*) Gecko/* Thunderbird/1.*]
+Parent=Thunderbird 1.0
+Platform=Win7
+
+[Mozilla/5.0 (X11; U; Linux i686*; *; rv:1.9.*) Gecko/* Thunderbird/1.*]
+Parent=Thunderbird 1.0
+Platform=Linux
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Thunderbird 2.0
+
+[Thunderbird 2.0]
+Parent=DefaultProperties
+Browser="Thunderbird"
+Version=2.0
+MajorVer=2
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+
+[Mozilla/5.0 (Macintosh; *Mac OS X; U; *; rv:1.9.*) Gecko/* Thunderbird/2.*]
+Parent=Thunderbird 2.0
+Platform=MacOSX
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.0; *; rv:1.9.*) Gecko/* Thunderbird/2.*]
+Parent=Thunderbird 2.0
+Platform=Win2000
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.1; *; rv:1.9.*) Gecko/* Thunderbird/2.*]
+Parent=Thunderbird 2.0
+Platform=WinXP
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.2; *; rv:1.9.*) Gecko/* Thunderbird/2.*]
+Parent=Thunderbird 2.0
+Platform=Win2003
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.0; *; rv:1.9.*) Gecko/* Thunderbird/2.*]
+Parent=Thunderbird 2.0
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.1; *; rv:1.9.*) Gecko/* Thunderbird/2.*]
+Parent=Thunderbird 2.0
+Platform=Win7
+
+[Mozilla/5.0 (X11; U; Linux i686*; *; rv:1.9.*) Gecko/* Thunderbird/2.*]
+Parent=Thunderbird 2.0
+Platform=Linux
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Thunderbird 3.0
+
+[Thunderbird 3.0]
+Parent=DefaultProperties
+Browser="Thunderbird"
+Version=3.0
+MajorVer=3
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+
+[Mozilla/5.0 (Macintosh; *Mac OS X; U; *; rv:1.9.*) Gecko/* Thunderbird/3.*]
+Parent=Thunderbird 3.0
+Platform=MacOSX
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.0; *; rv:1.9.*) Gecko/* Thunderbird/3.*]
+Parent=Thunderbird 3.0
+Platform=Win2000
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.1; *; rv:1.9.*) Gecko/* Thunderbird/3.*]
+Parent=Thunderbird 3.0
+Platform=WinXP
+
+[Mozilla/5.0 (Windows; U; Windows NT 5.2; *; rv:1.9.*) Gecko/* Thunderbird/3.*]
+Parent=Thunderbird 3.0
+Platform=Win2003
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.0; *; rv:1.9.*) Gecko/* Thunderbird/3.*]
+Parent=Thunderbird 3.0
+Platform=WinVista
+
+[Mozilla/5.0 (Windows; U; Windows NT 6.1; *; rv:1.9.*) Gecko/* Thunderbird/3.*]
+Parent=Thunderbird 3.0
+Platform=Win7
+
+[Mozilla/5.0 (X11; U; Linux i686*; *; rv:1.9.*) Gecko/* Thunderbird/3.*]
+Parent=Thunderbird 3.0
+Platform=Linux
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Iceweasel
+
+[Iceweasel]
+Parent=DefaultProperties
+Browser="Iceweasel"
+Platform=Linux
+Beta=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (X11; U; Linux*; *; rv:1.8*) Gecko/* Iceweasel/2.0* (Debian-*)]
+Parent=Iceweasel
+Version=2.0
+MajorVer=2
+MinorVer=0
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.0
+
+[Mozilla 1.0]
+Parent=DefaultProperties
+Browser="Mozilla"
+Version=1.0
+MajorVer=1
+Beta=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (*rv:1.0.*) Gecko/*]
+Parent=Mozilla 1.0
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.1
+
+[Mozilla 1.1]
+Parent=DefaultProperties
+Browser="Mozilla"
+Version=1.1
+MajorVer=1
+MinorVer=1
+Beta=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (*rv:1.1.*) Gecko/*]
+Parent=Mozilla 1.1
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.2
+
+[Mozilla 1.2]
+Parent=DefaultProperties
+Browser="Mozilla"
+Version=1.2
+MajorVer=1
+MinorVer=2
+Beta=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (*rv:1.2.*) Gecko/*]
+Parent=Mozilla 1.2
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.3
+
+[Mozilla 1.3]
+Parent=DefaultProperties
+Browser="Mozilla"
+Version=1.3
+MajorVer=1
+MinorVer=3
+Beta=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (*rv:1.3.*) Gecko/*]
+Parent=Mozilla 1.3
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.4
+
+[Mozilla 1.4]
+Parent=DefaultProperties
+Browser="Mozilla"
+Version=1.4
+MajorVer=1
+MinorVer=4
+Beta=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (*rv:1.4*) Gecko/*]
+Parent=Mozilla 1.4
+
+[Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *rv:1.4*) Gecko/*]
+Parent=Mozilla 1.4
+Platform=MacOSX
+
+[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *rv:1.4*) Gecko/*]
+Parent=Mozilla 1.4
+Platform=WinME
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win3.1; *rv:1.4*) Gecko/*]
+Parent=Mozilla 1.4
+Platform=Win31
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win3.11; *rv:1.4*) Gecko/*]
+Parent=Mozilla 1.4
+Platform=Win31
+Win16=true
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win95; *rv:1.4*) Gecko/*]
+Parent=Mozilla 1.4
+Platform=Win95
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win98; *rv:1.4*) Gecko/*]
+Parent=Mozilla 1.4
+Platform=Win98
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *rv:1.4*) Gecko/*]
+Parent=Mozilla 1.4
+Platform=Win2000
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:1.4*) Gecko/*]
+Parent=Mozilla 1.4
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT4.0; *rv:1.4*) Gecko/*]
+Parent=Mozilla 1.4
+Platform=WinNT
+Win32=true
+
+[Mozilla/5.0 (X11; *FreeBSD*; *rv:1.4*) Gecko/*]
+Parent=Mozilla 1.4
+Platform=FreeBSD
+
+[Mozilla/5.0 (X11; *Linux*; *rv:1.4*) Gecko/*]
+Parent=Mozilla 1.4
+Platform=Linux
+
+[Mozilla/5.0 (X11; *OpenBSD*; *rv:1.4*) Gecko/*]
+Parent=Mozilla 1.4
+Platform=OpenBSD
+
+[Mozilla/5.0 (X11; *SunOS*; *rv:1.4*) Gecko/*]
+Parent=Mozilla 1.4
+Platform=SunOS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.5
+
+[Mozilla 1.5]
+Parent=DefaultProperties
+Browser="Mozilla"
+Version=1.5
+MajorVer=1
+MinorVer=5
+Beta=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (*rv:1.5*) Gecko/*]
+Parent=Mozilla 1.5
+
+[Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *rv:1.5*) Gecko/*]
+Parent=Mozilla 1.5
+Platform=MacOSX
+
+[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *rv:1.5*) Gecko/*]
+Parent=Mozilla 1.5
+Platform=WinME
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win3.1; *rv:1.5*) Gecko/*]
+Parent=Mozilla 1.5
+Platform=Win31
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win3.11; *rv:1.5*) Gecko/*]
+Parent=Mozilla 1.5
+Platform=Win31
+Win16=true
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win95; *rv:1.5*) Gecko/*]
+Parent=Mozilla 1.5
+Platform=Win95
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win98; *rv:1.5*) Gecko/*]
+Parent=Mozilla 1.5
+Platform=Win98
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *rv:1.5*) Gecko/*]
+Parent=Mozilla 1.5
+Platform=Win2000
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:1.5*) Gecko/*]
+Parent=Mozilla 1.5
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT4.0; *rv:1.5*) Gecko/*]
+Parent=Mozilla 1.5
+Platform=WinNT
+Win32=true
+
+[Mozilla/5.0 (X11; *FreeBSD*; *rv:1.5*) Gecko/*]
+Parent=Mozilla 1.5
+Platform=FreeBSD
+
+[Mozilla/5.0 (X11; *Linux*; *rv:1.5*) Gecko/*]
+Parent=Mozilla 1.5
+Platform=Linux
+
+[Mozilla/5.0 (X11; *OpenBSD*; *rv:1.5*) Gecko/*]
+Parent=Mozilla 1.5
+Platform=OpenBSD
+
+[Mozilla/5.0 (X11; *SunOS*; *rv:1.5*) Gecko/*]
+Parent=Mozilla 1.5
+Platform=SunOS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.6
+
+[Mozilla 1.6]
+Parent=DefaultProperties
+Browser="Mozilla"
+Version=1.6
+MajorVer=1
+MinorVer=6
+Beta=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (*rv:1.6*) Gecko/*]
+Parent=Mozilla 1.6
+
+[Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *rv:1.6*) Gecko/*]
+Parent=Mozilla 1.6
+Platform=MacOSX
+
+[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *rv:1.6*) Gecko/*]
+Parent=Mozilla 1.6
+Platform=WinME
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win3.1; *rv:1.6*) Gecko/*]
+Parent=Mozilla 1.6
+Platform=Win31
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win3.11; *rv:1.6*) Gecko/*]
+Parent=Mozilla 1.6
+Platform=Win31
+Win16=true
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win95; *rv:1.6*) Gecko/*]
+Parent=Mozilla 1.6
+Platform=Win95
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win98; *rv:1.6*) Gecko/*]
+Parent=Mozilla 1.6
+Platform=Win98
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *rv:1.6*) Gecko/*]
+Parent=Mozilla 1.6
+Platform=Win2000
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:1.6*) Gecko/*]
+Parent=Mozilla 1.6
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT4.0; *rv:1.6*) Gecko/*]
+Parent=Mozilla 1.6
+Platform=WinNT
+Win32=true
+
+[Mozilla/5.0 (X11; *FreeBSD*; *rv:1.6*) Gecko/*]
+Parent=Mozilla 1.6
+Platform=FreeBSD
+
+[Mozilla/5.0 (X11; *Linux*; *rv:1.6*) Gecko/*]
+Parent=Mozilla 1.6
+Platform=Linux
+
+[Mozilla/5.0 (X11; *OpenBSD*; *rv:1.6*) Gecko/*]
+Parent=Mozilla 1.6
+Platform=OpenBSD
+
+[Mozilla/5.0 (X11; *SunOS*; *rv:1.6*) Gecko/*]
+Parent=Mozilla 1.6
+Platform=SunOS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.7
+
+[Mozilla 1.7]
+Parent=DefaultProperties
+Browser="Mozilla"
+Version=1.7
+MajorVer=1
+MinorVer=7
+Beta=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (*rv:1.7*) Gecko/*]
+Parent=Mozilla 1.7
+
+[Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *rv:1.7*) Gecko/*]
+Parent=Mozilla 1.7
+Platform=MacOSX
+
+[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *rv:1.7*) Gecko/*]
+Parent=Mozilla 1.7
+Platform=WinME
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win3.1; *rv:1.7*) Gecko/*]
+Parent=Mozilla 1.7
+Platform=Win31
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win3.11; *rv:1.7*) Gecko/*]
+Parent=Mozilla 1.7
+Platform=Win31
+Win16=true
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win95; *rv:1.7*) Gecko/*]
+Parent=Mozilla 1.7
+Platform=Win95
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win98; *rv:1.7*) Gecko/*]
+Parent=Mozilla 1.7
+Platform=Win98
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *rv:1.7*) Gecko/*]
+Parent=Mozilla 1.7
+Platform=Win2000
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:1.7*) Gecko/*]
+Parent=Mozilla 1.7
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *rv:1.7*) Gecko/*]
+Parent=Mozilla 1.7
+Platform=Win2003
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT4.0; *rv:1.7*) Gecko/*]
+Parent=Mozilla 1.7
+Platform=WinNT
+Win32=true
+
+[Mozilla/5.0 (X11; *FreeBSD*; *rv:1.7*) Gecko/*]
+Parent=Mozilla 1.7
+Platform=FreeBSD
+
+[Mozilla/5.0 (X11; *Linux*; *rv:1.7*) Gecko/*]
+Parent=Mozilla 1.7
+Platform=Linux
+
+[Mozilla/5.0 (X11; *OpenBSD*; *rv:1.7*) Gecko/*]
+Parent=Mozilla 1.7
+Platform=OpenBSD
+
+[Mozilla/5.0 (X11; *SunOS*; *rv:1.7*) Gecko/*]
+Parent=Mozilla 1.7
+Platform=SunOS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.8
+
+[Mozilla 1.8]
+Parent=DefaultProperties
+Browser="Mozilla"
+Version=1.8
+MajorVer=1
+MinorVer=8
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (*rv:1.8*) Gecko/*]
+Parent=Mozilla 1.8
+
+[Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *rv:1.8*) Gecko/*]
+Parent=Mozilla 1.8
+Platform=MacOSX
+
+[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *rv:1.8*) Gecko/*]
+Parent=Mozilla 1.8
+Platform=WinME
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win3.1; *rv:1.8*) Gecko/*]
+Parent=Mozilla 1.8
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win3.11; *rv:1.8*) Gecko/*]
+Parent=Mozilla 1.8
+Platform=Win31
+Win16=true
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win95; *rv:1.8*) Gecko/*]
+Parent=Mozilla 1.8
+Platform=Win95
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win98; *rv:1.8*) Gecko/*]
+Parent=Mozilla 1.8
+Platform=Win98
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *rv:1.8*) Gecko/*]
+Parent=Mozilla 1.8
+Platform=Win2000
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:1.8*) Gecko/*]
+Parent=Mozilla 1.8
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *rv:1.8*) Gecko/*]
+Parent=Mozilla 1.8
+Platform=Win2003
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT4.0; *rv:1.8*) Gecko/*]
+Parent=Mozilla 1.8
+Platform=WinNT
+Win32=true
+
+[Mozilla/5.0 (X11; *FreeBSD*; *rv:1.8*) Gecko/*]
+Parent=Mozilla 1.8
+Platform=FreeBSD
+
+[Mozilla/5.0 (X11; *Linux*; *rv:1.8*) Gecko/*]
+Parent=Mozilla 1.8
+Platform=Linux
+
+[Mozilla/5.0 (X11; *OpenBSD*; *rv:1.8*) Gecko/*]
+Parent=Mozilla 1.8
+Platform=OpenBSD
+
+[Mozilla/5.0 (X11; *SunOS*; *rv:1.8*) Gecko/*]
+Parent=Mozilla 1.8
+Platform=SunOS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.9
+
+[Mozilla 1.9]
+Parent=DefaultProperties
+Browser="Mozilla"
+Version=1.9
+MajorVer=1
+MinorVer=9
+Alpha=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+JavaApplets=true
+JavaScript=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/5.0 (*rv:1.9*) Gecko/*]
+Parent=Mozilla 1.9
+
+[Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *rv:1.9*) Gecko/*]
+Parent=Mozilla 1.9
+Platform=MacOSX
+
+[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *rv:1.9*) Gecko/*]
+Parent=Mozilla 1.9
+Platform=WinME
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win3.1; *rv:1.9*) Gecko/*]
+Parent=Mozilla 1.9
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win3.11; *rv:1.9*) Gecko/*]
+Parent=Mozilla 1.9
+Platform=Win31
+Win16=true
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win95; *rv:1.9*) Gecko/*]
+Parent=Mozilla 1.9
+Platform=Win95
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Win98; *rv:1.9*) Gecko/*]
+Parent=Mozilla 1.9
+Platform=Win98
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *rv:1.9*) Gecko/*]
+Parent=Mozilla 1.9
+Platform=Win2000
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:1.9*) Gecko/*]
+Parent=Mozilla 1.9
+Platform=WinXP
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *rv:1.9*) Gecko/*]
+Parent=Mozilla 1.9
+Platform=Win2003
+Win32=true
+
+[Mozilla/5.0 (Windows; ?; WinNT4.0; *rv:1.9*) Gecko/*]
+Parent=Mozilla 1.9
+Platform=WinNT
+Win32=true
+
+[Mozilla/5.0 (X11; *FreeBSD*; *rv:1.9*) Gecko/*]
+Parent=Mozilla 1.9
+Platform=FreeBSD
+
+[Mozilla/5.0 (X11; *Linux*; *rv:1.9*) Gecko/*]
+Parent=Mozilla 1.9
+Platform=Linux
+
+[Mozilla/5.0 (X11; *OpenBSD*; *rv:1.9*) Gecko/*]
+Parent=Mozilla 1.9
+Platform=OpenBSD
+
+[Mozilla/5.0 (X11; *SunOS*; *rv:1.9*) Gecko/*]
+Parent=Mozilla 1.9
+Platform=SunOS
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE Mac
+
+[IE Mac]
+Parent=DefaultProperties
+Browser="IE"
+Platform=MacPPC
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+CDF=true
+JavaApplets=true
+JavaScript=true
+CssVersion=1
+supportsCSS=true
+
+[Mozilla/?.? (compatible; MSIE 4.0*; *Mac_PowerPC*]
+Parent=IE Mac
+Version=4.0
+MajorVer=4
+MinorVer=0
+
+[Mozilla/?.? (compatible; MSIE 4.5*; *Mac_PowerPC*]
+Parent=IE Mac
+Version=4.5
+MajorVer=4
+MinorVer=5
+
+[Mozilla/?.? (compatible; MSIE 5.0*; *Mac_PowerPC*]
+Parent=IE Mac
+Version=5.0
+MajorVer=5
+MinorVer=0
+
+[Mozilla/?.? (compatible; MSIE 5.1*; *Mac_PowerPC*]
+Parent=IE Mac
+Version=5.1
+MajorVer=5
+MinorVer=1
+
+[Mozilla/?.? (compatible; MSIE 5.2*; *Mac_PowerPC*]
+Parent=IE Mac
+Version=5.2
+MajorVer=5
+MinorVer=2
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; AOL 9.0/IE 5.5
+
+[AOL 9.0/IE 5.5]
+Parent=DefaultProperties
+Browser="AOL"
+Version=5.5
+MajorVer=5
+MinorVer=5
+Win32=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+CDF=true
+VBScript=true
+JavaApplets=true
+JavaScript=true
+ActiveXControls=true
+CssVersion=2
+supportsCSS=true
+AOL=true
+aolVersion=9.0
+
+[Mozilla/?.* (?compatible; *MSIE 5.5; *AOL 9.0*)*]
+Parent=AOL 9.0/IE 5.5
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Win 9x 4.90*)*]
+Parent=AOL 9.0/IE 5.5
+Platform=WinME
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 95*)*]
+Parent=AOL 9.0/IE 5.5
+Platform=Win95
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98*)*]
+Parent=AOL 9.0/IE 5.5
+Platform=Win98
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 5.5
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98*.NET CLR 1*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 5.5
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 5.5
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98*.NET CLR 2*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 5.5
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98; Win 9x 4.90*)*]
+Parent=AOL 9.0/IE 5.5
+Platform=WinME
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 5.5
+Platform=WinME
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 1*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 5.5
+Platform=WinME
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 5.5
+Platform=WinME
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 2*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 5.5
+Platform=WinME
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 4.0*)*]
+Parent=AOL 9.0/IE 5.5
+Platform=WinNT
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.0*)*]
+Parent=AOL 9.0/IE 5.5
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.0*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 5.5
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.0*.NET CLR 1*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 5.5
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.0*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 5.5
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.0*.NET CLR 2*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 5.5
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.01*)*]
+Parent=AOL 9.0/IE 5.5
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.01*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 5.5
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.01*.NET CLR 1*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 5.5
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.01*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 5.5
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.01*.NET CLR 2*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 5.5
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.1*)*]
+Parent=AOL 9.0/IE 5.5
+Platform=WinXP
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.1*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 5.5
+Platform=WinXP
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.1*.NET CLR 1*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 5.5
+Platform=WinXP
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.1*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 5.5
+Platform=WinXP
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.1*.NET CLR 2*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 5.5
+Platform=WinXP
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.2*)*]
+Parent=AOL 9.0/IE 5.5
+Platform=Win2003
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.2*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 5.5
+Platform=Win2003
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.2*.NET CLR 1*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 5.5
+Platform=Win2003
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.2*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 5.5
+Platform=Win2003
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.2*.NET CLR 2*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 5.5
+Platform=Win2003
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 6.0*)*]
+Parent=AOL 9.0/IE 5.5
+Platform=WinVista
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 6.0*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 5.5
+Platform=WinVista
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 6.0*.NET CLR 1*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 5.5
+Platform=WinVista
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 6.0*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 5.5
+Platform=WinVista
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 6.0*.NET CLR 2*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 5.5
+Platform=WinVista
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; AOL 9.0/IE 6.0
+
+[AOL 9.0/IE 6.0]
+Parent=DefaultProperties
+Browser="AOL"
+Version=6.0
+MajorVer=6
+Win32=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+CDF=true
+VBScript=true
+JavaApplets=true
+JavaScript=true
+ActiveXControls=true
+CssVersion=2
+supportsCSS=true
+AOL=true
+aolVersion=9.0
+
+[Mozilla/?.* (?compatible; *MSIE 6.0; *AOL 9.0*)*]
+Parent=AOL 9.0/IE 6.0
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Win 9x 4.90*)*]
+Parent=AOL 9.0/IE 6.0
+Platform=WinME
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 95*)*]
+Parent=AOL 9.0/IE 6.0
+Platform=Win95
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98*)*]
+Parent=AOL 9.0/IE 6.0
+Platform=Win98
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 6.0
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98*.NET CLR 1*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 6.0
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 6.0
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98*.NET CLR 2*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 6.0
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98; Win 9x 4.90*)*]
+Parent=AOL 9.0/IE 6.0
+Platform=WinME
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 6.0
+Platform=WinME
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 1*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 6.0
+Platform=WinME
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 6.0
+Platform=WinME
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 2*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 6.0
+Platform=WinME
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 4.0*)*]
+Parent=AOL 9.0/IE 6.0
+Platform=WinNT
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.0*)*]
+Parent=AOL 9.0/IE 6.0
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.0*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 6.0
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.0*.NET CLR 1*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 6.0
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.0*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 6.0
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.0*.NET CLR 2*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 6.0
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.01*)*]
+Parent=AOL 9.0/IE 6.0
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.01*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 6.0
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.01*.NET CLR 1*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 6.0
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.01*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 6.0
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.01*.NET CLR 2*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 6.0
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.1*)*]
+Parent=AOL 9.0/IE 6.0
+Platform=WinXP
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.1*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 6.0
+Platform=WinXP
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.1*.NET CLR 1*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 6.0
+Platform=WinXP
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.1*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 6.0
+Platform=WinXP
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.1*.NET CLR 2*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 6.0
+Platform=WinXP
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.2*)*]
+Parent=AOL 9.0/IE 6.0
+Platform=Win2003
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.2*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 6.0
+Platform=Win2003
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.2*.NET CLR 1*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 6.0
+Platform=Win2003
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.2*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 6.0
+Platform=Win2003
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.2*.NET CLR 2*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 6.0
+Platform=Win2003
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 6.0*)*]
+Parent=AOL 9.0/IE 6.0
+Platform=WinVista
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 6.0*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 6.0
+Platform=WinVista
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 6.0*.NET CLR 1*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 6.0
+Platform=WinVista
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 6.0*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 6.0
+Platform=WinVista
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 6.0*.NET CLR 2*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 6.0
+Platform=WinVista
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; AOL 9.0/IE 7.0
+
+[AOL 9.0/IE 7.0]
+Parent=DefaultProperties
+Browser="AOL"
+Version=7.0
+MajorVer=7
+Win32=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+CDF=true
+VBScript=true
+JavaApplets=true
+JavaScript=true
+ActiveXControls=true
+CssVersion=2
+supportsCSS=true
+AOL=true
+aolVersion=9.0
+
+[Mozilla/?.* (?compatible; *MSIE 7.0; *AOL 9.0*)*]
+Parent=AOL 9.0/IE 7.0
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Win 9x 4.90*)*]
+Parent=AOL 9.0/IE 7.0
+Platform=WinME
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 95*)*]
+Parent=AOL 9.0/IE 7.0
+Platform=Win95
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98*)*]
+Parent=AOL 9.0/IE 7.0
+Platform=Win98
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 7.0
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98*.NET CLR 1*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 7.0
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 7.0
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98*.NET CLR 2*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 7.0
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98; Win 9x 4.90*)*]
+Parent=AOL 9.0/IE 7.0
+Platform=WinME
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 7.0
+Platform=WinME
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 1*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 7.0
+Platform=WinME
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 7.0
+Platform=WinME
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 2*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 7.0
+Platform=WinME
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 4.0*)*]
+Parent=AOL 9.0/IE 7.0
+Platform=WinNT
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.0*)*]
+Parent=AOL 9.0/IE 7.0
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.0*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 7.0
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.0*.NET CLR 1*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 7.0
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.0*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 7.0
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.0*.NET CLR 2*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 7.0
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.01*)*]
+Parent=AOL 9.0/IE 7.0
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.01*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 7.0
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.01*.NET CLR 1*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 7.0
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.01*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 7.0
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.01*.NET CLR 2*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 7.0
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.1*)*]
+Parent=AOL 9.0/IE 7.0
+Platform=WinXP
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.1*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 7.0
+Platform=WinXP
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.1*.NET CLR 1*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 7.0
+Platform=WinXP
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.1*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 7.0
+Platform=WinXP
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.1*.NET CLR 2*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 7.0
+Platform=WinXP
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.2*)*]
+Parent=AOL 9.0/IE 7.0
+Platform=Win2003
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.2*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 7.0
+Platform=Win2003
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.2*.NET CLR 1*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 7.0
+Platform=Win2003
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.2*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 7.0
+Platform=Win2003
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.2*.NET CLR 2*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 7.0
+Platform=Win2003
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 6.0*)*]
+Parent=AOL 9.0/IE 7.0
+Platform=WinVista
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 6.0*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 7.0
+Platform=WinVista
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 6.0*.NET CLR 1*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 7.0
+Platform=WinVista
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 6.0*.NET CLR 2*)*]
+Parent=AOL 9.0/IE 7.0
+Platform=WinVista
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 6.0*.NET CLR 2*.NET CLR 1*)*]
+Parent=AOL 9.0/IE 7.0
+Platform=WinVista
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Avant Browser
+
+[Avant Browser]
+Parent=DefaultProperties
+Browser="Avant Browser"
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+CDF=true
+VBScript=true
+JavaApplets=true
+JavaScript=true
+ActiveXControls=true
+CssVersion=2
+supportsCSS=true
+
+[Advanced Browser (http://www.avantbrowser.com)]
+Parent=Avant Browser
+
+[Avant Browser*]
+Parent=Avant Browser
+
+[Avant Browser/*]
+Parent=Avant Browser
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 4.01
+
+[IE 4.01]
+Parent=DefaultProperties
+Browser="IE"
+Version=4.01
+MajorVer=4
+MinorVer=01
+Win32=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+CDF=true
+VBScript=true
+JavaApplets=true
+JavaScript=true
+ActiveXControls=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/?.* (?compatible; *MSIE 4.01*)*]
+Parent=IE 4.01
+
+[Mozilla/4.0 (compatible; MSIE 4.01; *Windows 95*)*]
+Parent=IE 4.01
+Platform=Win95
+
+[Mozilla/4.0 (compatible; MSIE 4.01; *Windows 98*)*]
+Parent=IE 4.01
+Platform=Win98
+
+[Mozilla/4.0 (compatible; MSIE 4.01; *Windows 98; Win 9x 4.90;*)*]
+Parent=IE 4.01
+Platform=WinME
+
+[Mozilla/4.0 (compatible; MSIE 4.01; *Windows NT 4.0*)*]
+Parent=IE 4.01
+Platform=WinNT
+
+[Mozilla/4.0 (compatible; MSIE 4.01; *Windows NT 5.0*)*]
+Parent=IE 4.01
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 4.01; *Windows NT 5.01*)*]
+Parent=IE 4.01
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 4.01; Windows NT)]
+Parent=IE 4.01
+Platform=WinNT
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 5.0
+
+[IE 5.0]
+Parent=DefaultProperties
+Browser="IE"
+Version=5.0
+MajorVer=5
+Win32=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+CDF=true
+VBScript=true
+JavaApplets=true
+JavaScript=true
+ActiveXControls=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/?.* (?compatible; *MSIE 5.0*)*]
+Parent=IE 5.0
+
+[Mozilla/4.0 (compatible; MSIE 5.0; *Windows 95*)*]
+Parent=IE 5.0
+Platform=Win95
+
+[Mozilla/4.0 (compatible; MSIE 5.0; *Windows 98*)*]
+Parent=IE 5.0
+Platform=Win98
+
+[Mozilla/4.0 (compatible; MSIE 5.0; *Windows 98; Win 9x 4.90;*)*]
+Parent=IE 5.0
+Platform=WinME
+
+[Mozilla/4.0 (compatible; MSIE 5.0; *Windows NT 4.0*)*]
+Parent=IE 5.0
+Platform=WinNT
+
+[Mozilla/4.0 (compatible; MSIE 5.0; *Windows NT 5.0*)*]
+Parent=IE 5.0
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 5.0; *Windows NT 5.01*)*]
+Parent=IE 5.0
+Platform=Win2000
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 5.01
+
+[IE 5.01]
+Parent=DefaultProperties
+Browser="IE"
+Version=5.01
+MajorVer=5
+MinorVer=01
+Win32=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+CDF=true
+VBScript=true
+JavaApplets=true
+JavaScript=true
+ActiveXControls=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/?.* (?compatible; *MSIE 5.01*)*]
+Parent=IE 5.01
+
+[Mozilla/4.0 (compatible; MSIE 5.01; *Windows 95*)*]
+Parent=IE 5.01
+Platform=Win95
+
+[Mozilla/4.0 (compatible; MSIE 5.01; *Windows 98*)*]
+Parent=IE 5.01
+Platform=Win98
+
+[Mozilla/4.0 (compatible; MSIE 5.01; *Windows 98; Win 9x 4.90;*)*]
+Parent=IE 5.01
+Platform=WinME
+
+[Mozilla/4.0 (compatible; MSIE 5.01; *Windows NT 4.0*)*]
+Parent=IE 5.01
+Platform=WinNT
+
+[Mozilla/4.0 (compatible; MSIE 5.01; *Windows NT 5.0*)*]
+Parent=IE 5.01
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 5.01; *Windows NT 5.01*)*]
+Parent=IE 5.01
+Platform=Win2000
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 5.5
+
+[IE 5.5]
+Parent=DefaultProperties
+Browser="IE"
+Version=5.5
+MajorVer=5
+MinorVer=5
+Win32=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+CDF=true
+VBScript=true
+JavaApplets=true
+JavaScript=true
+ActiveXControls=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/?.* (?compatible; *MSIE 5.5*)*]
+Parent=IE 5.5
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *Windows 95*)*]
+Parent=IE 5.5
+Platform=Win95
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *Windows 98*)*]
+Parent=IE 5.5
+Platform=Win98
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *Windows 98; Win 9x 4.90*)*]
+Parent=IE 5.5
+Platform=WinME
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *Windows NT 4.0*)*]
+Parent=IE 5.5
+Platform=WinNT
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *Windows NT 5.0*)*]
+Parent=IE 5.5
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *Windows NT 5.01*)*]
+Parent=IE 5.5
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *Windows NT 5.1*)*]
+Parent=IE 5.5
+Platform=WinXP
+
+[Mozilla/4.0 (compatible; MSIE 5.5; *Windows NT 5.2*)*]
+Parent=IE 5.5
+Platform=Win2003
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 6.0
+
+[IE 6.0]
+Parent=DefaultProperties
+Browser="IE"
+Version=6.0
+MajorVer=6
+Win32=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+CDF=true
+VBScript=true
+JavaApplets=true
+JavaScript=true
+ActiveXControls=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/?.* (?compatible; *MSIE 6.0*)*]
+Parent=IE 6.0
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *Windows 95*)*]
+Parent=IE 6.0
+Platform=Win95
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *Windows 98*)*]
+Parent=IE 6.0
+Platform=Win98
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *Windows 98; Win 9x 4.90*)*]
+Parent=IE 6.0
+Platform=WinME
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *Windows NT 4.0*)*]
+Parent=IE 6.0
+Platform=WinNT
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *Windows NT 5.0*)*]
+Parent=IE 6.0
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *Windows NT 5.01*)*]
+Parent=IE 6.0
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *Windows NT 5.1*)*]
+Parent=IE 6.0
+Platform=WinXP
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *Windows NT 5.2*)*]
+Parent=IE 6.0
+Platform=Win2003
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *Windows NT 5.2;*Win64;*)*]
+Parent=IE 6.0
+Platform=WinXP
+Win32=false
+Win64=true
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *Windows NT 5.2;*WOW64;*)*]
+Parent=IE 6.0
+Platform=WinXP
+
+[Mozilla/4.0 (compatible; MSIE 6.0; *Windows NT 6.0*)*]
+Parent=IE 6.0
+Platform=WinVista
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 7.0
+
+[IE 7.0]
+Parent=DefaultProperties
+Browser="IE"
+Version=7.0
+MajorVer=7
+Win32=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+CDF=true
+VBScript=true
+JavaApplets=true
+JavaScript=true
+ActiveXControls=true
+CssVersion=2
+supportsCSS=true
+
+[Mozilla/?.* (?compatible; *MSIE 7.0*)*]
+Parent=IE 7.0
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows 98*)*]
+Parent=IE 7.0
+Platform=Win98
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows 98; Win 9x 4.90;*)*]
+Parent=IE 7.0
+Platform=WinME
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 4.0*)*]
+Parent=IE 7.0
+Platform=WinNT
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 5.0*)*]
+Parent=IE 7.0
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 5.01*)*]
+Parent=IE 7.0
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 5.1*)*]
+Parent=IE 7.0
+Platform=WinXP
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 5.2*)*]
+Parent=IE 7.0
+Platform=Win2003
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 5.2;*Win64;*)*]
+Parent=IE 7.0
+Platform=WinXP
+Win32=false
+Win64=true
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 5.2;*WOW64;*)*]
+Parent=IE 7.0
+Platform=WinXP
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.0*)*]
+Parent=IE 7.0
+Platform=WinVista
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.1*)*]
+Parent=IE 7.0
+Platform=Win7
+
+[Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/4.0; *)*]
+Parent=IE 7.0
+Platform=Win7
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 8.0
+
+[IE 8.0]
+Parent=DefaultProperties
+Browser="IE"
+Version=8.0
+MajorVer=8
+Win32=true
+Frames=true
+IFrames=true
+Tables=true
+Cookies=true
+BackgroundSounds=true
+CDF=true
+VBScript=true
+JavaApplets=true
+JavaScript=true
+ActiveXControls=true
+CssVersion=3
+supportsCSS=true
+
+[Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0*)*]
+Parent=IE 8.0
+Platform=WinXP
+
+[Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; Trident/4.0*)*]
+Parent=IE 8.0
+Platform=Win2003
+
+[Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0*)*]
+Parent=IE 8.0
+Platform=WinVista
+
+[Mozilla/4.0 (compatible; MSIE 8.0; Win32*)*]
+Parent=IE 8.0
+Platform=Win32
+
+[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.0*)*]
+Parent=IE 8.0
+Platform=Win2000
+
+[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1*)*]
+Parent=IE 8.0
+Platform=WinXP
+
+[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2*)*]
+Parent=IE 8.0
+Platform=Win2003
+
+[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0*)*]
+Parent=IE 8.0
+Platform=WinVista
+
+[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Win64; x64; Trident/4.0*)*]
+Parent=IE 8.0
+Platform=WinVista
+Win32=false
+Win64=true
+
+[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; WOW64; Trident/4.0*)*]
+Parent=IE 8.0
+Platform=WinVista
+Win64=false
+
+[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1*)*]
+Parent=IE 8.0
+Platform=Win7
+
+[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0*)*]
+Parent=IE 8.0
+Platform=Win7
+
+[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64; Trident/4.0*)*]
+Parent=IE 8.0
+Platform=Win7
+Win32=false
+Win64=true
+
+[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0*)*]
+Parent=IE 8.0
+Platform=Win7
+Win64=false
+
+[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 7.0; Trident/4.0*)*]
+Parent=IE 8.0
+Platform=Win7
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Default Browser
+
+[*]
+Browser="Default Browser"
+Version=0
+MajorVer=0
+MinorVer=0
+Platform=unknown
+Alpha=false
+Beta=false
+Win16=false
+Win32=false
+Win64=false
+Frames=true
+IFrames=false
+Tables=true
+Cookies=false
+BackgroundSounds=false
+CDF=false
+VBScript=false
+JavaApplets=false
+JavaScript=false
+ActiveXControls=false
+isBanned=false
+isMobileDevice=false
+isSyndicationReader=false
+Crawler=false
+CssVersion=0
+supportsCSS=false
+AOL=false
+aolVersion=0
diff --git a/php/extras/fonts/fdb/Bitstream Vera Sans Mono-B-I.fdb b/php/extras/fonts/fdb/Bitstream Vera Sans Mono-B-I.fdb
new file mode 100644
index 000000000..0fb4c8a3b
Binary files /dev/null and b/php/extras/fonts/fdb/Bitstream Vera Sans Mono-B-I.fdb differ
diff --git a/php/extras/fonts/fdb/Bitstream Vera Sans Mono-B.fdb b/php/extras/fonts/fdb/Bitstream Vera Sans Mono-B.fdb
new file mode 100644
index 000000000..cc7a09c8e
Binary files /dev/null and b/php/extras/fonts/fdb/Bitstream Vera Sans Mono-B.fdb differ
diff --git a/php/extras/fonts/fdb/Bitstream Vera Sans Mono-I.fdb b/php/extras/fonts/fdb/Bitstream Vera Sans Mono-I.fdb
new file mode 100644
index 000000000..d6cdab3a1
Binary files /dev/null and b/php/extras/fonts/fdb/Bitstream Vera Sans Mono-I.fdb differ
diff --git a/php/extras/fonts/fdb/Bitstream Vera Sans Mono.fdb b/php/extras/fonts/fdb/Bitstream Vera Sans Mono.fdb
new file mode 100644
index 000000000..a80535a51
Binary files /dev/null and b/php/extras/fonts/fdb/Bitstream Vera Sans Mono.fdb differ
diff --git a/php/extras/fonts/fdb/Bitstream Vera Sans-B-I.fdb b/php/extras/fonts/fdb/Bitstream Vera Sans-B-I.fdb
new file mode 100644
index 000000000..f1e2b00e2
Binary files /dev/null and b/php/extras/fonts/fdb/Bitstream Vera Sans-B-I.fdb differ
diff --git a/php/extras/fonts/fdb/Bitstream Vera Sans-B.fdb b/php/extras/fonts/fdb/Bitstream Vera Sans-B.fdb
new file mode 100644
index 000000000..ad42b14e2
Binary files /dev/null and b/php/extras/fonts/fdb/Bitstream Vera Sans-B.fdb differ
diff --git a/php/extras/fonts/fdb/Bitstream Vera Sans-I.fdb b/php/extras/fonts/fdb/Bitstream Vera Sans-I.fdb
new file mode 100644
index 000000000..59696675c
Binary files /dev/null and b/php/extras/fonts/fdb/Bitstream Vera Sans-I.fdb differ
diff --git a/php/extras/fonts/fdb/Bitstream Vera Sans.fdb b/php/extras/fonts/fdb/Bitstream Vera Sans.fdb
new file mode 100644
index 000000000..5fefdcb59
Binary files /dev/null and b/php/extras/fonts/fdb/Bitstream Vera Sans.fdb differ
diff --git a/php/extras/fonts/fdb/Bitstream Vera Serif-B.fdb b/php/extras/fonts/fdb/Bitstream Vera Serif-B.fdb
new file mode 100644
index 000000000..1539a7c98
Binary files /dev/null and b/php/extras/fonts/fdb/Bitstream Vera Serif-B.fdb differ
diff --git a/php/extras/fonts/fdb/Bitstream Vera Serif.fdb b/php/extras/fonts/fdb/Bitstream Vera Serif.fdb
new file mode 100644
index 000000000..b4cb1544d
Binary files /dev/null and b/php/extras/fonts/fdb/Bitstream Vera Serif.fdb differ
diff --git a/php/extras/fonts/fft/BBitstreamGVeraGSans.fft b/php/extras/fonts/fft/BBitstreamGVeraGSans.fft
new file mode 100644
index 000000000..5cd491e8d
Binary files /dev/null and b/php/extras/fonts/fft/BBitstreamGVeraGSans.fft differ
diff --git a/php/extras/fonts/fft/BBitstreamGVeraGSansGMono.fft b/php/extras/fonts/fft/BBitstreamGVeraGSansGMono.fft
new file mode 100644
index 000000000..20a907557
Binary files /dev/null and b/php/extras/fonts/fft/BBitstreamGVeraGSansGMono.fft differ
diff --git a/php/extras/fonts/fft/BBitstreamGVeraGSerif.fft b/php/extras/fonts/fft/BBitstreamGVeraGSerif.fft
new file mode 100644
index 000000000..a2512ce9e
Binary files /dev/null and b/php/extras/fonts/fft/BBitstreamGVeraGSerif.fft differ
diff --git a/php/extras/fonts/fft/BIBitstreamGVeraGSans.fft b/php/extras/fonts/fft/BIBitstreamGVeraGSans.fft
new file mode 100644
index 000000000..a13f6454e
Binary files /dev/null and b/php/extras/fonts/fft/BIBitstreamGVeraGSans.fft differ
diff --git a/php/extras/fonts/fft/BIBitstreamGVeraGSansGMono.fft b/php/extras/fonts/fft/BIBitstreamGVeraGSansGMono.fft
new file mode 100644
index 000000000..867815d18
Binary files /dev/null and b/php/extras/fonts/fft/BIBitstreamGVeraGSansGMono.fft differ
diff --git a/php/extras/fonts/fft/BitstreamGVeraGSans.fft b/php/extras/fonts/fft/BitstreamGVeraGSans.fft
new file mode 100644
index 000000000..57b0769f2
Binary files /dev/null and b/php/extras/fonts/fft/BitstreamGVeraGSans.fft differ
diff --git a/php/extras/fonts/fft/BitstreamGVeraGSansGMono.fft b/php/extras/fonts/fft/BitstreamGVeraGSansGMono.fft
new file mode 100644
index 000000000..4f89e7c11
Binary files /dev/null and b/php/extras/fonts/fft/BitstreamGVeraGSansGMono.fft differ
diff --git a/php/extras/fonts/fft/BitstreamGVeraGSerif.fft b/php/extras/fonts/fft/BitstreamGVeraGSerif.fft
new file mode 100644
index 000000000..c1e1409c5
Binary files /dev/null and b/php/extras/fonts/fft/BitstreamGVeraGSerif.fft differ
diff --git a/php/extras/fonts/fft/IBitstreamGVeraGSans.fft b/php/extras/fonts/fft/IBitstreamGVeraGSans.fft
new file mode 100644
index 000000000..fceafeace
Binary files /dev/null and b/php/extras/fonts/fft/IBitstreamGVeraGSans.fft differ
diff --git a/php/extras/fonts/fft/IBitstreamGVeraGSansGMono.fft b/php/extras/fonts/fft/IBitstreamGVeraGSansGMono.fft
new file mode 100644
index 000000000..e00ea8b26
Binary files /dev/null and b/php/extras/fonts/fft/IBitstreamGVeraGSansGMono.fft differ
diff --git a/php/extras/fonts/fft/MING-README.txt b/php/extras/fonts/fft/MING-README.txt
new file mode 100644
index 000000000..74d3d3aad
--- /dev/null
+++ b/php/extras/fonts/fft/MING-README.txt
@@ -0,0 +1,24 @@
+This package contains the Bitstream Vera font family, converted to
+fft and fdb (Flash) format so you can use them with Ming.
+
+The home page for these fonts can be found here:
+
+http://www.gnome.org/fonts/
+
+You are legally allowed to use these fonts as desired (commercially,
+non-commercially, etc) provided you comply with the conditions
+described in the COPYRIGHT.TXT file (included).
+
+If you have any queries regarding the fonts themselves, or the
+copyright terms, please refer to the COPYRIGHT.TXT file, or the
+homepage.
+
+If you have queries regarding how to use the fonts with Ming,
+please refer to the Ming home page and go from there.
+
+http://ming.sf.net
+
+Good luck! :)
+
+ + The Ming Development Team
+
diff --git a/php/extras/fonts/ps/Courier-Bold.afm b/php/extras/fonts/ps/Courier-Bold.afm
new file mode 100644
index 000000000..eb80542b1
--- /dev/null
+++ b/php/extras/fonts/ps/Courier-Bold.afm
@@ -0,0 +1,342 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Mon Jun 23 16:28:00 1997
+Comment UniqueID 43048
+Comment VMusage 41139 52164
+FontName Courier-Bold
+FullName Courier Bold
+FamilyName Courier
+Weight Bold
+ItalicAngle 0
+IsFixedPitch true
+CharacterSet ExtendedRoman
+FontBBox -113 -250 749 801
+UnderlinePosition -100
+UnderlineThickness 50
+Version 003.000
+Notice Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
+EncodingScheme AdobeStandardEncoding
+CapHeight 562
+XHeight 439
+Ascender 629
+Descender -157
+StdHW 84
+StdVW 106
+StartCharMetrics 315
+C 32 ; WX 600 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 600 ; N exclam ; B 202 -15 398 572 ;
+C 34 ; WX 600 ; N quotedbl ; B 135 277 465 562 ;
+C 35 ; WX 600 ; N numbersign ; B 56 -45 544 651 ;
+C 36 ; WX 600 ; N dollar ; B 82 -126 519 666 ;
+C 37 ; WX 600 ; N percent ; B 5 -15 595 616 ;
+C 38 ; WX 600 ; N ampersand ; B 36 -15 546 543 ;
+C 39 ; WX 600 ; N quoteright ; B 171 277 423 562 ;
+C 40 ; WX 600 ; N parenleft ; B 219 -102 461 616 ;
+C 41 ; WX 600 ; N parenright ; B 139 -102 381 616 ;
+C 42 ; WX 600 ; N asterisk ; B 91 219 509 601 ;
+C 43 ; WX 600 ; N plus ; B 71 39 529 478 ;
+C 44 ; WX 600 ; N comma ; B 123 -111 393 174 ;
+C 45 ; WX 600 ; N hyphen ; B 100 203 500 313 ;
+C 46 ; WX 600 ; N period ; B 192 -15 408 171 ;
+C 47 ; WX 600 ; N slash ; B 98 -77 502 626 ;
+C 48 ; WX 600 ; N zero ; B 87 -15 513 616 ;
+C 49 ; WX 600 ; N one ; B 81 0 539 616 ;
+C 50 ; WX 600 ; N two ; B 61 0 499 616 ;
+C 51 ; WX 600 ; N three ; B 63 -15 501 616 ;
+C 52 ; WX 600 ; N four ; B 53 0 507 616 ;
+C 53 ; WX 600 ; N five ; B 70 -15 521 601 ;
+C 54 ; WX 600 ; N six ; B 90 -15 521 616 ;
+C 55 ; WX 600 ; N seven ; B 55 0 494 601 ;
+C 56 ; WX 600 ; N eight ; B 83 -15 517 616 ;
+C 57 ; WX 600 ; N nine ; B 79 -15 510 616 ;
+C 58 ; WX 600 ; N colon ; B 191 -15 407 425 ;
+C 59 ; WX 600 ; N semicolon ; B 123 -111 408 425 ;
+C 60 ; WX 600 ; N less ; B 66 15 523 501 ;
+C 61 ; WX 600 ; N equal ; B 71 118 529 398 ;
+C 62 ; WX 600 ; N greater ; B 77 15 534 501 ;
+C 63 ; WX 600 ; N question ; B 98 -14 501 580 ;
+C 64 ; WX 600 ; N at ; B 16 -15 584 616 ;
+C 65 ; WX 600 ; N A ; B -9 0 609 562 ;
+C 66 ; WX 600 ; N B ; B 30 0 573 562 ;
+C 67 ; WX 600 ; N C ; B 22 -18 560 580 ;
+C 68 ; WX 600 ; N D ; B 30 0 594 562 ;
+C 69 ; WX 600 ; N E ; B 25 0 560 562 ;
+C 70 ; WX 600 ; N F ; B 39 0 570 562 ;
+C 71 ; WX 600 ; N G ; B 22 -18 594 580 ;
+C 72 ; WX 600 ; N H ; B 20 0 580 562 ;
+C 73 ; WX 600 ; N I ; B 77 0 523 562 ;
+C 74 ; WX 600 ; N J ; B 37 -18 601 562 ;
+C 75 ; WX 600 ; N K ; B 21 0 599 562 ;
+C 76 ; WX 600 ; N L ; B 39 0 578 562 ;
+C 77 ; WX 600 ; N M ; B -2 0 602 562 ;
+C 78 ; WX 600 ; N N ; B 8 -12 610 562 ;
+C 79 ; WX 600 ; N O ; B 22 -18 578 580 ;
+C 80 ; WX 600 ; N P ; B 48 0 559 562 ;
+C 81 ; WX 600 ; N Q ; B 32 -138 578 580 ;
+C 82 ; WX 600 ; N R ; B 24 0 599 562 ;
+C 83 ; WX 600 ; N S ; B 47 -22 553 582 ;
+C 84 ; WX 600 ; N T ; B 21 0 579 562 ;
+C 85 ; WX 600 ; N U ; B 4 -18 596 562 ;
+C 86 ; WX 600 ; N V ; B -13 0 613 562 ;
+C 87 ; WX 600 ; N W ; B -18 0 618 562 ;
+C 88 ; WX 600 ; N X ; B 12 0 588 562 ;
+C 89 ; WX 600 ; N Y ; B 12 0 589 562 ;
+C 90 ; WX 600 ; N Z ; B 62 0 539 562 ;
+C 91 ; WX 600 ; N bracketleft ; B 245 -102 475 616 ;
+C 92 ; WX 600 ; N backslash ; B 99 -77 503 626 ;
+C 93 ; WX 600 ; N bracketright ; B 125 -102 355 616 ;
+C 94 ; WX 600 ; N asciicircum ; B 108 250 492 616 ;
+C 95 ; WX 600 ; N underscore ; B 0 -125 600 -75 ;
+C 96 ; WX 600 ; N quoteleft ; B 178 277 428 562 ;
+C 97 ; WX 600 ; N a ; B 35 -15 570 454 ;
+C 98 ; WX 600 ; N b ; B 0 -15 584 626 ;
+C 99 ; WX 600 ; N c ; B 40 -15 545 459 ;
+C 100 ; WX 600 ; N d ; B 20 -15 591 626 ;
+C 101 ; WX 600 ; N e ; B 40 -15 563 454 ;
+C 102 ; WX 600 ; N f ; B 83 0 547 626 ; L i fi ; L l fl ;
+C 103 ; WX 600 ; N g ; B 30 -146 580 454 ;
+C 104 ; WX 600 ; N h ; B 5 0 592 626 ;
+C 105 ; WX 600 ; N i ; B 77 0 523 658 ;
+C 106 ; WX 600 ; N j ; B 63 -146 440 658 ;
+C 107 ; WX 600 ; N k ; B 20 0 585 626 ;
+C 108 ; WX 600 ; N l ; B 77 0 523 626 ;
+C 109 ; WX 600 ; N m ; B -22 0 626 454 ;
+C 110 ; WX 600 ; N n ; B 18 0 592 454 ;
+C 111 ; WX 600 ; N o ; B 30 -15 570 454 ;
+C 112 ; WX 600 ; N p ; B -1 -142 570 454 ;
+C 113 ; WX 600 ; N q ; B 20 -142 591 454 ;
+C 114 ; WX 600 ; N r ; B 47 0 580 454 ;
+C 115 ; WX 600 ; N s ; B 68 -17 535 459 ;
+C 116 ; WX 600 ; N t ; B 47 -15 532 562 ;
+C 117 ; WX 600 ; N u ; B -1 -15 569 439 ;
+C 118 ; WX 600 ; N v ; B -1 0 601 439 ;
+C 119 ; WX 600 ; N w ; B -18 0 618 439 ;
+C 120 ; WX 600 ; N x ; B 6 0 594 439 ;
+C 121 ; WX 600 ; N y ; B -4 -142 601 439 ;
+C 122 ; WX 600 ; N z ; B 81 0 520 439 ;
+C 123 ; WX 600 ; N braceleft ; B 160 -102 464 616 ;
+C 124 ; WX 600 ; N bar ; B 255 -250 345 750 ;
+C 125 ; WX 600 ; N braceright ; B 136 -102 440 616 ;
+C 126 ; WX 600 ; N asciitilde ; B 71 153 530 356 ;
+C 161 ; WX 600 ; N exclamdown ; B 202 -146 398 449 ;
+C 162 ; WX 600 ; N cent ; B 66 -49 518 614 ;
+C 163 ; WX 600 ; N sterling ; B 72 -28 558 611 ;
+C 164 ; WX 600 ; N fraction ; B 25 -60 576 661 ;
+C 165 ; WX 600 ; N yen ; B 10 0 590 562 ;
+C 166 ; WX 600 ; N florin ; B -30 -131 572 616 ;
+C 167 ; WX 600 ; N section ; B 83 -70 517 580 ;
+C 168 ; WX 600 ; N currency ; B 54 49 546 517 ;
+C 169 ; WX 600 ; N quotesingle ; B 227 277 373 562 ;
+C 170 ; WX 600 ; N quotedblleft ; B 71 277 535 562 ;
+C 171 ; WX 600 ; N guillemotleft ; B 8 70 553 446 ;
+C 172 ; WX 600 ; N guilsinglleft ; B 141 70 459 446 ;
+C 173 ; WX 600 ; N guilsinglright ; B 141 70 459 446 ;
+C 174 ; WX 600 ; N fi ; B 12 0 593 626 ;
+C 175 ; WX 600 ; N fl ; B 12 0 593 626 ;
+C 177 ; WX 600 ; N endash ; B 65 203 535 313 ;
+C 178 ; WX 600 ; N dagger ; B 106 -70 494 580 ;
+C 179 ; WX 600 ; N daggerdbl ; B 106 -70 494 580 ;
+C 180 ; WX 600 ; N periodcentered ; B 196 165 404 351 ;
+C 182 ; WX 600 ; N paragraph ; B 6 -70 576 580 ;
+C 183 ; WX 600 ; N bullet ; B 140 132 460 430 ;
+C 184 ; WX 600 ; N quotesinglbase ; B 175 -142 427 143 ;
+C 185 ; WX 600 ; N quotedblbase ; B 65 -142 529 143 ;
+C 186 ; WX 600 ; N quotedblright ; B 61 277 525 562 ;
+C 187 ; WX 600 ; N guillemotright ; B 47 70 592 446 ;
+C 188 ; WX 600 ; N ellipsis ; B 26 -15 574 116 ;
+C 189 ; WX 600 ; N perthousand ; B -113 -15 713 616 ;
+C 191 ; WX 600 ; N questiondown ; B 99 -146 502 449 ;
+C 193 ; WX 600 ; N grave ; B 132 508 395 661 ;
+C 194 ; WX 600 ; N acute ; B 205 508 468 661 ;
+C 195 ; WX 600 ; N circumflex ; B 103 483 497 657 ;
+C 196 ; WX 600 ; N tilde ; B 89 493 512 636 ;
+C 197 ; WX 600 ; N macron ; B 88 505 512 585 ;
+C 198 ; WX 600 ; N breve ; B 83 468 517 631 ;
+C 199 ; WX 600 ; N dotaccent ; B 230 498 370 638 ;
+C 200 ; WX 600 ; N dieresis ; B 128 498 472 638 ;
+C 202 ; WX 600 ; N ring ; B 198 481 402 678 ;
+C 203 ; WX 600 ; N cedilla ; B 205 -206 387 0 ;
+C 205 ; WX 600 ; N hungarumlaut ; B 68 488 588 661 ;
+C 206 ; WX 600 ; N ogonek ; B 169 -199 400 0 ;
+C 207 ; WX 600 ; N caron ; B 103 493 497 667 ;
+C 208 ; WX 600 ; N emdash ; B -10 203 610 313 ;
+C 225 ; WX 600 ; N AE ; B -29 0 602 562 ;
+C 227 ; WX 600 ; N ordfeminine ; B 147 196 453 580 ;
+C 232 ; WX 600 ; N Lslash ; B 39 0 578 562 ;
+C 233 ; WX 600 ; N Oslash ; B 22 -22 578 584 ;
+C 234 ; WX 600 ; N OE ; B -25 0 595 562 ;
+C 235 ; WX 600 ; N ordmasculine ; B 147 196 453 580 ;
+C 241 ; WX 600 ; N ae ; B -4 -15 601 454 ;
+C 245 ; WX 600 ; N dotlessi ; B 77 0 523 439 ;
+C 248 ; WX 600 ; N lslash ; B 77 0 523 626 ;
+C 249 ; WX 600 ; N oslash ; B 30 -24 570 463 ;
+C 250 ; WX 600 ; N oe ; B -18 -15 611 454 ;
+C 251 ; WX 600 ; N germandbls ; B 22 -15 596 626 ;
+C -1 ; WX 600 ; N Idieresis ; B 77 0 523 761 ;
+C -1 ; WX 600 ; N eacute ; B 40 -15 563 661 ;
+C -1 ; WX 600 ; N abreve ; B 35 -15 570 661 ;
+C -1 ; WX 600 ; N uhungarumlaut ; B -1 -15 628 661 ;
+C -1 ; WX 600 ; N ecaron ; B 40 -15 563 667 ;
+C -1 ; WX 600 ; N Ydieresis ; B 12 0 589 761 ;
+C -1 ; WX 600 ; N divide ; B 71 16 529 500 ;
+C -1 ; WX 600 ; N Yacute ; B 12 0 589 784 ;
+C -1 ; WX 600 ; N Acircumflex ; B -9 0 609 780 ;
+C -1 ; WX 600 ; N aacute ; B 35 -15 570 661 ;
+C -1 ; WX 600 ; N Ucircumflex ; B 4 -18 596 780 ;
+C -1 ; WX 600 ; N yacute ; B -4 -142 601 661 ;
+C -1 ; WX 600 ; N scommaaccent ; B 68 -250 535 459 ;
+C -1 ; WX 600 ; N ecircumflex ; B 40 -15 563 657 ;
+C -1 ; WX 600 ; N Uring ; B 4 -18 596 801 ;
+C -1 ; WX 600 ; N Udieresis ; B 4 -18 596 761 ;
+C -1 ; WX 600 ; N aogonek ; B 35 -199 586 454 ;
+C -1 ; WX 600 ; N Uacute ; B 4 -18 596 784 ;
+C -1 ; WX 600 ; N uogonek ; B -1 -199 585 439 ;
+C -1 ; WX 600 ; N Edieresis ; B 25 0 560 761 ;
+C -1 ; WX 600 ; N Dcroat ; B 30 0 594 562 ;
+C -1 ; WX 600 ; N commaaccent ; B 205 -250 397 -57 ;
+C -1 ; WX 600 ; N copyright ; B 0 -18 600 580 ;
+C -1 ; WX 600 ; N Emacron ; B 25 0 560 708 ;
+C -1 ; WX 600 ; N ccaron ; B 40 -15 545 667 ;
+C -1 ; WX 600 ; N aring ; B 35 -15 570 678 ;
+C -1 ; WX 600 ; N Ncommaaccent ; B 8 -250 610 562 ;
+C -1 ; WX 600 ; N lacute ; B 77 0 523 801 ;
+C -1 ; WX 600 ; N agrave ; B 35 -15 570 661 ;
+C -1 ; WX 600 ; N Tcommaaccent ; B 21 -250 579 562 ;
+C -1 ; WX 600 ; N Cacute ; B 22 -18 560 784 ;
+C -1 ; WX 600 ; N atilde ; B 35 -15 570 636 ;
+C -1 ; WX 600 ; N Edotaccent ; B 25 0 560 761 ;
+C -1 ; WX 600 ; N scaron ; B 68 -17 535 667 ;
+C -1 ; WX 600 ; N scedilla ; B 68 -206 535 459 ;
+C -1 ; WX 600 ; N iacute ; B 77 0 523 661 ;
+C -1 ; WX 600 ; N lozenge ; B 66 0 534 740 ;
+C -1 ; WX 600 ; N Rcaron ; B 24 0 599 790 ;
+C -1 ; WX 600 ; N Gcommaaccent ; B 22 -250 594 580 ;
+C -1 ; WX 600 ; N ucircumflex ; B -1 -15 569 657 ;
+C -1 ; WX 600 ; N acircumflex ; B 35 -15 570 657 ;
+C -1 ; WX 600 ; N Amacron ; B -9 0 609 708 ;
+C -1 ; WX 600 ; N rcaron ; B 47 0 580 667 ;
+C -1 ; WX 600 ; N ccedilla ; B 40 -206 545 459 ;
+C -1 ; WX 600 ; N Zdotaccent ; B 62 0 539 761 ;
+C -1 ; WX 600 ; N Thorn ; B 48 0 557 562 ;
+C -1 ; WX 600 ; N Omacron ; B 22 -18 578 708 ;
+C -1 ; WX 600 ; N Racute ; B 24 0 599 784 ;
+C -1 ; WX 600 ; N Sacute ; B 47 -22 553 784 ;
+C -1 ; WX 600 ; N dcaron ; B 20 -15 727 626 ;
+C -1 ; WX 600 ; N Umacron ; B 4 -18 596 708 ;
+C -1 ; WX 600 ; N uring ; B -1 -15 569 678 ;
+C -1 ; WX 600 ; N threesuperior ; B 138 222 433 616 ;
+C -1 ; WX 600 ; N Ograve ; B 22 -18 578 784 ;
+C -1 ; WX 600 ; N Agrave ; B -9 0 609 784 ;
+C -1 ; WX 600 ; N Abreve ; B -9 0 609 784 ;
+C -1 ; WX 600 ; N multiply ; B 81 39 520 478 ;
+C -1 ; WX 600 ; N uacute ; B -1 -15 569 661 ;
+C -1 ; WX 600 ; N Tcaron ; B 21 0 579 790 ;
+C -1 ; WX 600 ; N partialdiff ; B 63 -38 537 728 ;
+C -1 ; WX 600 ; N ydieresis ; B -4 -142 601 638 ;
+C -1 ; WX 600 ; N Nacute ; B 8 -12 610 784 ;
+C -1 ; WX 600 ; N icircumflex ; B 73 0 523 657 ;
+C -1 ; WX 600 ; N Ecircumflex ; B 25 0 560 780 ;
+C -1 ; WX 600 ; N adieresis ; B 35 -15 570 638 ;
+C -1 ; WX 600 ; N edieresis ; B 40 -15 563 638 ;
+C -1 ; WX 600 ; N cacute ; B 40 -15 545 661 ;
+C -1 ; WX 600 ; N nacute ; B 18 0 592 661 ;
+C -1 ; WX 600 ; N umacron ; B -1 -15 569 585 ;
+C -1 ; WX 600 ; N Ncaron ; B 8 -12 610 790 ;
+C -1 ; WX 600 ; N Iacute ; B 77 0 523 784 ;
+C -1 ; WX 600 ; N plusminus ; B 71 24 529 515 ;
+C -1 ; WX 600 ; N brokenbar ; B 255 -175 345 675 ;
+C -1 ; WX 600 ; N registered ; B 0 -18 600 580 ;
+C -1 ; WX 600 ; N Gbreve ; B 22 -18 594 784 ;
+C -1 ; WX 600 ; N Idotaccent ; B 77 0 523 761 ;
+C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ;
+C -1 ; WX 600 ; N Egrave ; B 25 0 560 784 ;
+C -1 ; WX 600 ; N racute ; B 47 0 580 661 ;
+C -1 ; WX 600 ; N omacron ; B 30 -15 570 585 ;
+C -1 ; WX 600 ; N Zacute ; B 62 0 539 784 ;
+C -1 ; WX 600 ; N Zcaron ; B 62 0 539 790 ;
+C -1 ; WX 600 ; N greaterequal ; B 26 0 523 696 ;
+C -1 ; WX 600 ; N Eth ; B 30 0 594 562 ;
+C -1 ; WX 600 ; N Ccedilla ; B 22 -206 560 580 ;
+C -1 ; WX 600 ; N lcommaaccent ; B 77 -250 523 626 ;
+C -1 ; WX 600 ; N tcaron ; B 47 -15 532 703 ;
+C -1 ; WX 600 ; N eogonek ; B 40 -199 563 454 ;
+C -1 ; WX 600 ; N Uogonek ; B 4 -199 596 562 ;
+C -1 ; WX 600 ; N Aacute ; B -9 0 609 784 ;
+C -1 ; WX 600 ; N Adieresis ; B -9 0 609 761 ;
+C -1 ; WX 600 ; N egrave ; B 40 -15 563 661 ;
+C -1 ; WX 600 ; N zacute ; B 81 0 520 661 ;
+C -1 ; WX 600 ; N iogonek ; B 77 -199 523 658 ;
+C -1 ; WX 600 ; N Oacute ; B 22 -18 578 784 ;
+C -1 ; WX 600 ; N oacute ; B 30 -15 570 661 ;
+C -1 ; WX 600 ; N amacron ; B 35 -15 570 585 ;
+C -1 ; WX 600 ; N sacute ; B 68 -17 535 661 ;
+C -1 ; WX 600 ; N idieresis ; B 77 0 523 618 ;
+C -1 ; WX 600 ; N Ocircumflex ; B 22 -18 578 780 ;
+C -1 ; WX 600 ; N Ugrave ; B 4 -18 596 784 ;
+C -1 ; WX 600 ; N Delta ; B 6 0 594 688 ;
+C -1 ; WX 600 ; N thorn ; B -14 -142 570 626 ;
+C -1 ; WX 600 ; N twosuperior ; B 143 230 436 616 ;
+C -1 ; WX 600 ; N Odieresis ; B 22 -18 578 761 ;
+C -1 ; WX 600 ; N mu ; B -1 -142 569 439 ;
+C -1 ; WX 600 ; N igrave ; B 77 0 523 661 ;
+C -1 ; WX 600 ; N ohungarumlaut ; B 30 -15 668 661 ;
+C -1 ; WX 600 ; N Eogonek ; B 25 -199 576 562 ;
+C -1 ; WX 600 ; N dcroat ; B 20 -15 591 626 ;
+C -1 ; WX 600 ; N threequarters ; B -47 -60 648 661 ;
+C -1 ; WX 600 ; N Scedilla ; B 47 -206 553 582 ;
+C -1 ; WX 600 ; N lcaron ; B 77 0 597 626 ;
+C -1 ; WX 600 ; N Kcommaaccent ; B 21 -250 599 562 ;
+C -1 ; WX 600 ; N Lacute ; B 39 0 578 784 ;
+C -1 ; WX 600 ; N trademark ; B -9 230 749 562 ;
+C -1 ; WX 600 ; N edotaccent ; B 40 -15 563 638 ;
+C -1 ; WX 600 ; N Igrave ; B 77 0 523 784 ;
+C -1 ; WX 600 ; N Imacron ; B 77 0 523 708 ;
+C -1 ; WX 600 ; N Lcaron ; B 39 0 637 562 ;
+C -1 ; WX 600 ; N onehalf ; B -47 -60 648 661 ;
+C -1 ; WX 600 ; N lessequal ; B 26 0 523 696 ;
+C -1 ; WX 600 ; N ocircumflex ; B 30 -15 570 657 ;
+C -1 ; WX 600 ; N ntilde ; B 18 0 592 636 ;
+C -1 ; WX 600 ; N Uhungarumlaut ; B 4 -18 638 784 ;
+C -1 ; WX 600 ; N Eacute ; B 25 0 560 784 ;
+C -1 ; WX 600 ; N emacron ; B 40 -15 563 585 ;
+C -1 ; WX 600 ; N gbreve ; B 30 -146 580 661 ;
+C -1 ; WX 600 ; N onequarter ; B -56 -60 656 661 ;
+C -1 ; WX 600 ; N Scaron ; B 47 -22 553 790 ;
+C -1 ; WX 600 ; N Scommaaccent ; B 47 -250 553 582 ;
+C -1 ; WX 600 ; N Ohungarumlaut ; B 22 -18 628 784 ;
+C -1 ; WX 600 ; N degree ; B 86 243 474 616 ;
+C -1 ; WX 600 ; N ograve ; B 30 -15 570 661 ;
+C -1 ; WX 600 ; N Ccaron ; B 22 -18 560 790 ;
+C -1 ; WX 600 ; N ugrave ; B -1 -15 569 661 ;
+C -1 ; WX 600 ; N radical ; B -19 -104 473 778 ;
+C -1 ; WX 600 ; N Dcaron ; B 30 0 594 790 ;
+C -1 ; WX 600 ; N rcommaaccent ; B 47 -250 580 454 ;
+C -1 ; WX 600 ; N Ntilde ; B 8 -12 610 759 ;
+C -1 ; WX 600 ; N otilde ; B 30 -15 570 636 ;
+C -1 ; WX 600 ; N Rcommaaccent ; B 24 -250 599 562 ;
+C -1 ; WX 600 ; N Lcommaaccent ; B 39 -250 578 562 ;
+C -1 ; WX 600 ; N Atilde ; B -9 0 609 759 ;
+C -1 ; WX 600 ; N Aogonek ; B -9 -199 625 562 ;
+C -1 ; WX 600 ; N Aring ; B -9 0 609 801 ;
+C -1 ; WX 600 ; N Otilde ; B 22 -18 578 759 ;
+C -1 ; WX 600 ; N zdotaccent ; B 81 0 520 638 ;
+C -1 ; WX 600 ; N Ecaron ; B 25 0 560 790 ;
+C -1 ; WX 600 ; N Iogonek ; B 77 -199 523 562 ;
+C -1 ; WX 600 ; N kcommaaccent ; B 20 -250 585 626 ;
+C -1 ; WX 600 ; N minus ; B 71 203 529 313 ;
+C -1 ; WX 600 ; N Icircumflex ; B 77 0 523 780 ;
+C -1 ; WX 600 ; N ncaron ; B 18 0 592 667 ;
+C -1 ; WX 600 ; N tcommaaccent ; B 47 -250 532 562 ;
+C -1 ; WX 600 ; N logicalnot ; B 71 103 529 413 ;
+C -1 ; WX 600 ; N odieresis ; B 30 -15 570 638 ;
+C -1 ; WX 600 ; N udieresis ; B -1 -15 569 638 ;
+C -1 ; WX 600 ; N notequal ; B 12 -47 537 563 ;
+C -1 ; WX 600 ; N gcommaaccent ; B 30 -146 580 714 ;
+C -1 ; WX 600 ; N eth ; B 58 -27 543 626 ;
+C -1 ; WX 600 ; N zcaron ; B 81 0 520 667 ;
+C -1 ; WX 600 ; N ncommaaccent ; B 18 -250 592 454 ;
+C -1 ; WX 600 ; N onesuperior ; B 153 230 447 616 ;
+C -1 ; WX 600 ; N imacron ; B 77 0 523 585 ;
+C -1 ; WX 600 ; N Euro ; B 0 0 0 0 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/php/extras/fonts/ps/Courier-BoldOblique.afm b/php/extras/fonts/ps/Courier-BoldOblique.afm
new file mode 100644
index 000000000..29d3b8b10
--- /dev/null
+++ b/php/extras/fonts/ps/Courier-BoldOblique.afm
@@ -0,0 +1,342 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Mon Jun 23 16:28:46 1997
+Comment UniqueID 43049
+Comment VMusage 17529 79244
+FontName Courier-BoldOblique
+FullName Courier Bold Oblique
+FamilyName Courier
+Weight Bold
+ItalicAngle -12
+IsFixedPitch true
+CharacterSet ExtendedRoman
+FontBBox -57 -250 869 801
+UnderlinePosition -100
+UnderlineThickness 50
+Version 003.000
+Notice Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
+EncodingScheme AdobeStandardEncoding
+CapHeight 562
+XHeight 439
+Ascender 629
+Descender -157
+StdHW 84
+StdVW 106
+StartCharMetrics 315
+C 32 ; WX 600 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 600 ; N exclam ; B 215 -15 495 572 ;
+C 34 ; WX 600 ; N quotedbl ; B 211 277 585 562 ;
+C 35 ; WX 600 ; N numbersign ; B 88 -45 641 651 ;
+C 36 ; WX 600 ; N dollar ; B 87 -126 630 666 ;
+C 37 ; WX 600 ; N percent ; B 101 -15 625 616 ;
+C 38 ; WX 600 ; N ampersand ; B 61 -15 595 543 ;
+C 39 ; WX 600 ; N quoteright ; B 229 277 543 562 ;
+C 40 ; WX 600 ; N parenleft ; B 265 -102 592 616 ;
+C 41 ; WX 600 ; N parenright ; B 117 -102 444 616 ;
+C 42 ; WX 600 ; N asterisk ; B 179 219 598 601 ;
+C 43 ; WX 600 ; N plus ; B 114 39 596 478 ;
+C 44 ; WX 600 ; N comma ; B 99 -111 430 174 ;
+C 45 ; WX 600 ; N hyphen ; B 143 203 567 313 ;
+C 46 ; WX 600 ; N period ; B 206 -15 427 171 ;
+C 47 ; WX 600 ; N slash ; B 90 -77 626 626 ;
+C 48 ; WX 600 ; N zero ; B 135 -15 593 616 ;
+C 49 ; WX 600 ; N one ; B 93 0 562 616 ;
+C 50 ; WX 600 ; N two ; B 61 0 594 616 ;
+C 51 ; WX 600 ; N three ; B 71 -15 571 616 ;
+C 52 ; WX 600 ; N four ; B 81 0 559 616 ;
+C 53 ; WX 600 ; N five ; B 77 -15 621 601 ;
+C 54 ; WX 600 ; N six ; B 135 -15 652 616 ;
+C 55 ; WX 600 ; N seven ; B 147 0 622 601 ;
+C 56 ; WX 600 ; N eight ; B 115 -15 604 616 ;
+C 57 ; WX 600 ; N nine ; B 75 -15 592 616 ;
+C 58 ; WX 600 ; N colon ; B 205 -15 480 425 ;
+C 59 ; WX 600 ; N semicolon ; B 99 -111 481 425 ;
+C 60 ; WX 600 ; N less ; B 120 15 613 501 ;
+C 61 ; WX 600 ; N equal ; B 96 118 614 398 ;
+C 62 ; WX 600 ; N greater ; B 97 15 589 501 ;
+C 63 ; WX 600 ; N question ; B 183 -14 592 580 ;
+C 64 ; WX 600 ; N at ; B 65 -15 642 616 ;
+C 65 ; WX 600 ; N A ; B -9 0 632 562 ;
+C 66 ; WX 600 ; N B ; B 30 0 630 562 ;
+C 67 ; WX 600 ; N C ; B 74 -18 675 580 ;
+C 68 ; WX 600 ; N D ; B 30 0 664 562 ;
+C 69 ; WX 600 ; N E ; B 25 0 670 562 ;
+C 70 ; WX 600 ; N F ; B 39 0 684 562 ;
+C 71 ; WX 600 ; N G ; B 74 -18 675 580 ;
+C 72 ; WX 600 ; N H ; B 20 0 700 562 ;
+C 73 ; WX 600 ; N I ; B 77 0 643 562 ;
+C 74 ; WX 600 ; N J ; B 58 -18 721 562 ;
+C 75 ; WX 600 ; N K ; B 21 0 692 562 ;
+C 76 ; WX 600 ; N L ; B 39 0 636 562 ;
+C 77 ; WX 600 ; N M ; B -2 0 722 562 ;
+C 78 ; WX 600 ; N N ; B 8 -12 730 562 ;
+C 79 ; WX 600 ; N O ; B 74 -18 645 580 ;
+C 80 ; WX 600 ; N P ; B 48 0 643 562 ;
+C 81 ; WX 600 ; N Q ; B 83 -138 636 580 ;
+C 82 ; WX 600 ; N R ; B 24 0 617 562 ;
+C 83 ; WX 600 ; N S ; B 54 -22 673 582 ;
+C 84 ; WX 600 ; N T ; B 86 0 679 562 ;
+C 85 ; WX 600 ; N U ; B 101 -18 716 562 ;
+C 86 ; WX 600 ; N V ; B 84 0 733 562 ;
+C 87 ; WX 600 ; N W ; B 79 0 738 562 ;
+C 88 ; WX 600 ; N X ; B 12 0 690 562 ;
+C 89 ; WX 600 ; N Y ; B 109 0 709 562 ;
+C 90 ; WX 600 ; N Z ; B 62 0 637 562 ;
+C 91 ; WX 600 ; N bracketleft ; B 223 -102 606 616 ;
+C 92 ; WX 600 ; N backslash ; B 222 -77 496 626 ;
+C 93 ; WX 600 ; N bracketright ; B 103 -102 486 616 ;
+C 94 ; WX 600 ; N asciicircum ; B 171 250 556 616 ;
+C 95 ; WX 600 ; N underscore ; B -27 -125 585 -75 ;
+C 96 ; WX 600 ; N quoteleft ; B 297 277 487 562 ;
+C 97 ; WX 600 ; N a ; B 61 -15 593 454 ;
+C 98 ; WX 600 ; N b ; B 13 -15 636 626 ;
+C 99 ; WX 600 ; N c ; B 81 -15 631 459 ;
+C 100 ; WX 600 ; N d ; B 60 -15 645 626 ;
+C 101 ; WX 600 ; N e ; B 81 -15 605 454 ;
+C 102 ; WX 600 ; N f ; B 83 0 677 626 ; L i fi ; L l fl ;
+C 103 ; WX 600 ; N g ; B 40 -146 674 454 ;
+C 104 ; WX 600 ; N h ; B 18 0 615 626 ;
+C 105 ; WX 600 ; N i ; B 77 0 546 658 ;
+C 106 ; WX 600 ; N j ; B 36 -146 580 658 ;
+C 107 ; WX 600 ; N k ; B 33 0 643 626 ;
+C 108 ; WX 600 ; N l ; B 77 0 546 626 ;
+C 109 ; WX 600 ; N m ; B -22 0 649 454 ;
+C 110 ; WX 600 ; N n ; B 18 0 615 454 ;
+C 111 ; WX 600 ; N o ; B 71 -15 622 454 ;
+C 112 ; WX 600 ; N p ; B -32 -142 622 454 ;
+C 113 ; WX 600 ; N q ; B 60 -142 685 454 ;
+C 114 ; WX 600 ; N r ; B 47 0 655 454 ;
+C 115 ; WX 600 ; N s ; B 66 -17 608 459 ;
+C 116 ; WX 600 ; N t ; B 118 -15 567 562 ;
+C 117 ; WX 600 ; N u ; B 70 -15 592 439 ;
+C 118 ; WX 600 ; N v ; B 70 0 695 439 ;
+C 119 ; WX 600 ; N w ; B 53 0 712 439 ;
+C 120 ; WX 600 ; N x ; B 6 0 671 439 ;
+C 121 ; WX 600 ; N y ; B -21 -142 695 439 ;
+C 122 ; WX 600 ; N z ; B 81 0 614 439 ;
+C 123 ; WX 600 ; N braceleft ; B 203 -102 595 616 ;
+C 124 ; WX 600 ; N bar ; B 201 -250 505 750 ;
+C 125 ; WX 600 ; N braceright ; B 114 -102 506 616 ;
+C 126 ; WX 600 ; N asciitilde ; B 120 153 590 356 ;
+C 161 ; WX 600 ; N exclamdown ; B 196 -146 477 449 ;
+C 162 ; WX 600 ; N cent ; B 121 -49 605 614 ;
+C 163 ; WX 600 ; N sterling ; B 106 -28 650 611 ;
+C 164 ; WX 600 ; N fraction ; B 22 -60 708 661 ;
+C 165 ; WX 600 ; N yen ; B 98 0 710 562 ;
+C 166 ; WX 600 ; N florin ; B -57 -131 702 616 ;
+C 167 ; WX 600 ; N section ; B 74 -70 620 580 ;
+C 168 ; WX 600 ; N currency ; B 77 49 644 517 ;
+C 169 ; WX 600 ; N quotesingle ; B 303 277 493 562 ;
+C 170 ; WX 600 ; N quotedblleft ; B 190 277 594 562 ;
+C 171 ; WX 600 ; N guillemotleft ; B 62 70 639 446 ;
+C 172 ; WX 600 ; N guilsinglleft ; B 195 70 545 446 ;
+C 173 ; WX 600 ; N guilsinglright ; B 165 70 514 446 ;
+C 174 ; WX 600 ; N fi ; B 12 0 644 626 ;
+C 175 ; WX 600 ; N fl ; B 12 0 644 626 ;
+C 177 ; WX 600 ; N endash ; B 108 203 602 313 ;
+C 178 ; WX 600 ; N dagger ; B 175 -70 586 580 ;
+C 179 ; WX 600 ; N daggerdbl ; B 121 -70 587 580 ;
+C 180 ; WX 600 ; N periodcentered ; B 248 165 461 351 ;
+C 182 ; WX 600 ; N paragraph ; B 61 -70 700 580 ;
+C 183 ; WX 600 ; N bullet ; B 196 132 523 430 ;
+C 184 ; WX 600 ; N quotesinglbase ; B 144 -142 458 143 ;
+C 185 ; WX 600 ; N quotedblbase ; B 34 -142 560 143 ;
+C 186 ; WX 600 ; N quotedblright ; B 119 277 645 562 ;
+C 187 ; WX 600 ; N guillemotright ; B 71 70 647 446 ;
+C 188 ; WX 600 ; N ellipsis ; B 35 -15 587 116 ;
+C 189 ; WX 600 ; N perthousand ; B -45 -15 743 616 ;
+C 191 ; WX 600 ; N questiondown ; B 100 -146 509 449 ;
+C 193 ; WX 600 ; N grave ; B 272 508 503 661 ;
+C 194 ; WX 600 ; N acute ; B 312 508 609 661 ;
+C 195 ; WX 600 ; N circumflex ; B 212 483 607 657 ;
+C 196 ; WX 600 ; N tilde ; B 199 493 643 636 ;
+C 197 ; WX 600 ; N macron ; B 195 505 637 585 ;
+C 198 ; WX 600 ; N breve ; B 217 468 652 631 ;
+C 199 ; WX 600 ; N dotaccent ; B 348 498 493 638 ;
+C 200 ; WX 600 ; N dieresis ; B 246 498 595 638 ;
+C 202 ; WX 600 ; N ring ; B 319 481 528 678 ;
+C 203 ; WX 600 ; N cedilla ; B 168 -206 368 0 ;
+C 205 ; WX 600 ; N hungarumlaut ; B 171 488 729 661 ;
+C 206 ; WX 600 ; N ogonek ; B 143 -199 367 0 ;
+C 207 ; WX 600 ; N caron ; B 238 493 633 667 ;
+C 208 ; WX 600 ; N emdash ; B 33 203 677 313 ;
+C 225 ; WX 600 ; N AE ; B -29 0 708 562 ;
+C 227 ; WX 600 ; N ordfeminine ; B 188 196 526 580 ;
+C 232 ; WX 600 ; N Lslash ; B 39 0 636 562 ;
+C 233 ; WX 600 ; N Oslash ; B 48 -22 673 584 ;
+C 234 ; WX 600 ; N OE ; B 26 0 701 562 ;
+C 235 ; WX 600 ; N ordmasculine ; B 188 196 543 580 ;
+C 241 ; WX 600 ; N ae ; B 21 -15 652 454 ;
+C 245 ; WX 600 ; N dotlessi ; B 77 0 546 439 ;
+C 248 ; WX 600 ; N lslash ; B 77 0 587 626 ;
+C 249 ; WX 600 ; N oslash ; B 54 -24 638 463 ;
+C 250 ; WX 600 ; N oe ; B 18 -15 662 454 ;
+C 251 ; WX 600 ; N germandbls ; B 22 -15 629 626 ;
+C -1 ; WX 600 ; N Idieresis ; B 77 0 643 761 ;
+C -1 ; WX 600 ; N eacute ; B 81 -15 609 661 ;
+C -1 ; WX 600 ; N abreve ; B 61 -15 658 661 ;
+C -1 ; WX 600 ; N uhungarumlaut ; B 70 -15 769 661 ;
+C -1 ; WX 600 ; N ecaron ; B 81 -15 633 667 ;
+C -1 ; WX 600 ; N Ydieresis ; B 109 0 709 761 ;
+C -1 ; WX 600 ; N divide ; B 114 16 596 500 ;
+C -1 ; WX 600 ; N Yacute ; B 109 0 709 784 ;
+C -1 ; WX 600 ; N Acircumflex ; B -9 0 632 780 ;
+C -1 ; WX 600 ; N aacute ; B 61 -15 609 661 ;
+C -1 ; WX 600 ; N Ucircumflex ; B 101 -18 716 780 ;
+C -1 ; WX 600 ; N yacute ; B -21 -142 695 661 ;
+C -1 ; WX 600 ; N scommaaccent ; B 66 -250 608 459 ;
+C -1 ; WX 600 ; N ecircumflex ; B 81 -15 607 657 ;
+C -1 ; WX 600 ; N Uring ; B 101 -18 716 801 ;
+C -1 ; WX 600 ; N Udieresis ; B 101 -18 716 761 ;
+C -1 ; WX 600 ; N aogonek ; B 61 -199 593 454 ;
+C -1 ; WX 600 ; N Uacute ; B 101 -18 716 784 ;
+C -1 ; WX 600 ; N uogonek ; B 70 -199 592 439 ;
+C -1 ; WX 600 ; N Edieresis ; B 25 0 670 761 ;
+C -1 ; WX 600 ; N Dcroat ; B 30 0 664 562 ;
+C -1 ; WX 600 ; N commaaccent ; B 151 -250 385 -57 ;
+C -1 ; WX 600 ; N copyright ; B 53 -18 667 580 ;
+C -1 ; WX 600 ; N Emacron ; B 25 0 670 708 ;
+C -1 ; WX 600 ; N ccaron ; B 81 -15 633 667 ;
+C -1 ; WX 600 ; N aring ; B 61 -15 593 678 ;
+C -1 ; WX 600 ; N Ncommaaccent ; B 8 -250 730 562 ;
+C -1 ; WX 600 ; N lacute ; B 77 0 639 801 ;
+C -1 ; WX 600 ; N agrave ; B 61 -15 593 661 ;
+C -1 ; WX 600 ; N Tcommaaccent ; B 86 -250 679 562 ;
+C -1 ; WX 600 ; N Cacute ; B 74 -18 675 784 ;
+C -1 ; WX 600 ; N atilde ; B 61 -15 643 636 ;
+C -1 ; WX 600 ; N Edotaccent ; B 25 0 670 761 ;
+C -1 ; WX 600 ; N scaron ; B 66 -17 633 667 ;
+C -1 ; WX 600 ; N scedilla ; B 66 -206 608 459 ;
+C -1 ; WX 600 ; N iacute ; B 77 0 609 661 ;
+C -1 ; WX 600 ; N lozenge ; B 145 0 614 740 ;
+C -1 ; WX 600 ; N Rcaron ; B 24 0 659 790 ;
+C -1 ; WX 600 ; N Gcommaaccent ; B 74 -250 675 580 ;
+C -1 ; WX 600 ; N ucircumflex ; B 70 -15 597 657 ;
+C -1 ; WX 600 ; N acircumflex ; B 61 -15 607 657 ;
+C -1 ; WX 600 ; N Amacron ; B -9 0 633 708 ;
+C -1 ; WX 600 ; N rcaron ; B 47 0 655 667 ;
+C -1 ; WX 600 ; N ccedilla ; B 81 -206 631 459 ;
+C -1 ; WX 600 ; N Zdotaccent ; B 62 0 637 761 ;
+C -1 ; WX 600 ; N Thorn ; B 48 0 620 562 ;
+C -1 ; WX 600 ; N Omacron ; B 74 -18 663 708 ;
+C -1 ; WX 600 ; N Racute ; B 24 0 665 784 ;
+C -1 ; WX 600 ; N Sacute ; B 54 -22 673 784 ;
+C -1 ; WX 600 ; N dcaron ; B 60 -15 861 626 ;
+C -1 ; WX 600 ; N Umacron ; B 101 -18 716 708 ;
+C -1 ; WX 600 ; N uring ; B 70 -15 592 678 ;
+C -1 ; WX 600 ; N threesuperior ; B 193 222 526 616 ;
+C -1 ; WX 600 ; N Ograve ; B 74 -18 645 784 ;
+C -1 ; WX 600 ; N Agrave ; B -9 0 632 784 ;
+C -1 ; WX 600 ; N Abreve ; B -9 0 684 784 ;
+C -1 ; WX 600 ; N multiply ; B 104 39 606 478 ;
+C -1 ; WX 600 ; N uacute ; B 70 -15 599 661 ;
+C -1 ; WX 600 ; N Tcaron ; B 86 0 679 790 ;
+C -1 ; WX 600 ; N partialdiff ; B 91 -38 627 728 ;
+C -1 ; WX 600 ; N ydieresis ; B -21 -142 695 638 ;
+C -1 ; WX 600 ; N Nacute ; B 8 -12 730 784 ;
+C -1 ; WX 600 ; N icircumflex ; B 77 0 577 657 ;
+C -1 ; WX 600 ; N Ecircumflex ; B 25 0 670 780 ;
+C -1 ; WX 600 ; N adieresis ; B 61 -15 595 638 ;
+C -1 ; WX 600 ; N edieresis ; B 81 -15 605 638 ;
+C -1 ; WX 600 ; N cacute ; B 81 -15 649 661 ;
+C -1 ; WX 600 ; N nacute ; B 18 0 639 661 ;
+C -1 ; WX 600 ; N umacron ; B 70 -15 637 585 ;
+C -1 ; WX 600 ; N Ncaron ; B 8 -12 730 790 ;
+C -1 ; WX 600 ; N Iacute ; B 77 0 643 784 ;
+C -1 ; WX 600 ; N plusminus ; B 76 24 614 515 ;
+C -1 ; WX 600 ; N brokenbar ; B 217 -175 489 675 ;
+C -1 ; WX 600 ; N registered ; B 53 -18 667 580 ;
+C -1 ; WX 600 ; N Gbreve ; B 74 -18 684 784 ;
+C -1 ; WX 600 ; N Idotaccent ; B 77 0 643 761 ;
+C -1 ; WX 600 ; N summation ; B 15 -10 672 706 ;
+C -1 ; WX 600 ; N Egrave ; B 25 0 670 784 ;
+C -1 ; WX 600 ; N racute ; B 47 0 655 661 ;
+C -1 ; WX 600 ; N omacron ; B 71 -15 637 585 ;
+C -1 ; WX 600 ; N Zacute ; B 62 0 665 784 ;
+C -1 ; WX 600 ; N Zcaron ; B 62 0 659 790 ;
+C -1 ; WX 600 ; N greaterequal ; B 26 0 627 696 ;
+C -1 ; WX 600 ; N Eth ; B 30 0 664 562 ;
+C -1 ; WX 600 ; N Ccedilla ; B 74 -206 675 580 ;
+C -1 ; WX 600 ; N lcommaaccent ; B 77 -250 546 626 ;
+C -1 ; WX 600 ; N tcaron ; B 118 -15 627 703 ;
+C -1 ; WX 600 ; N eogonek ; B 81 -199 605 454 ;
+C -1 ; WX 600 ; N Uogonek ; B 101 -199 716 562 ;
+C -1 ; WX 600 ; N Aacute ; B -9 0 655 784 ;
+C -1 ; WX 600 ; N Adieresis ; B -9 0 632 761 ;
+C -1 ; WX 600 ; N egrave ; B 81 -15 605 661 ;
+C -1 ; WX 600 ; N zacute ; B 81 0 614 661 ;
+C -1 ; WX 600 ; N iogonek ; B 77 -199 546 658 ;
+C -1 ; WX 600 ; N Oacute ; B 74 -18 645 784 ;
+C -1 ; WX 600 ; N oacute ; B 71 -15 649 661 ;
+C -1 ; WX 600 ; N amacron ; B 61 -15 637 585 ;
+C -1 ; WX 600 ; N sacute ; B 66 -17 609 661 ;
+C -1 ; WX 600 ; N idieresis ; B 77 0 561 618 ;
+C -1 ; WX 600 ; N Ocircumflex ; B 74 -18 645 780 ;
+C -1 ; WX 600 ; N Ugrave ; B 101 -18 716 784 ;
+C -1 ; WX 600 ; N Delta ; B 6 0 594 688 ;
+C -1 ; WX 600 ; N thorn ; B -32 -142 622 626 ;
+C -1 ; WX 600 ; N twosuperior ; B 191 230 542 616 ;
+C -1 ; WX 600 ; N Odieresis ; B 74 -18 645 761 ;
+C -1 ; WX 600 ; N mu ; B 49 -142 592 439 ;
+C -1 ; WX 600 ; N igrave ; B 77 0 546 661 ;
+C -1 ; WX 600 ; N ohungarumlaut ; B 71 -15 809 661 ;
+C -1 ; WX 600 ; N Eogonek ; B 25 -199 670 562 ;
+C -1 ; WX 600 ; N dcroat ; B 60 -15 712 626 ;
+C -1 ; WX 600 ; N threequarters ; B 8 -60 699 661 ;
+C -1 ; WX 600 ; N Scedilla ; B 54 -206 673 582 ;
+C -1 ; WX 600 ; N lcaron ; B 77 0 731 626 ;
+C -1 ; WX 600 ; N Kcommaaccent ; B 21 -250 692 562 ;
+C -1 ; WX 600 ; N Lacute ; B 39 0 636 784 ;
+C -1 ; WX 600 ; N trademark ; B 86 230 869 562 ;
+C -1 ; WX 600 ; N edotaccent ; B 81 -15 605 638 ;
+C -1 ; WX 600 ; N Igrave ; B 77 0 643 784 ;
+C -1 ; WX 600 ; N Imacron ; B 77 0 663 708 ;
+C -1 ; WX 600 ; N Lcaron ; B 39 0 757 562 ;
+C -1 ; WX 600 ; N onehalf ; B 22 -60 716 661 ;
+C -1 ; WX 600 ; N lessequal ; B 26 0 671 696 ;
+C -1 ; WX 600 ; N ocircumflex ; B 71 -15 622 657 ;
+C -1 ; WX 600 ; N ntilde ; B 18 0 643 636 ;
+C -1 ; WX 600 ; N Uhungarumlaut ; B 101 -18 805 784 ;
+C -1 ; WX 600 ; N Eacute ; B 25 0 670 784 ;
+C -1 ; WX 600 ; N emacron ; B 81 -15 637 585 ;
+C -1 ; WX 600 ; N gbreve ; B 40 -146 674 661 ;
+C -1 ; WX 600 ; N onequarter ; B 13 -60 707 661 ;
+C -1 ; WX 600 ; N Scaron ; B 54 -22 689 790 ;
+C -1 ; WX 600 ; N Scommaaccent ; B 54 -250 673 582 ;
+C -1 ; WX 600 ; N Ohungarumlaut ; B 74 -18 795 784 ;
+C -1 ; WX 600 ; N degree ; B 173 243 570 616 ;
+C -1 ; WX 600 ; N ograve ; B 71 -15 622 661 ;
+C -1 ; WX 600 ; N Ccaron ; B 74 -18 689 790 ;
+C -1 ; WX 600 ; N ugrave ; B 70 -15 592 661 ;
+C -1 ; WX 600 ; N radical ; B 67 -104 635 778 ;
+C -1 ; WX 600 ; N Dcaron ; B 30 0 664 790 ;
+C -1 ; WX 600 ; N rcommaaccent ; B 47 -250 655 454 ;
+C -1 ; WX 600 ; N Ntilde ; B 8 -12 730 759 ;
+C -1 ; WX 600 ; N otilde ; B 71 -15 643 636 ;
+C -1 ; WX 600 ; N Rcommaaccent ; B 24 -250 617 562 ;
+C -1 ; WX 600 ; N Lcommaaccent ; B 39 -250 636 562 ;
+C -1 ; WX 600 ; N Atilde ; B -9 0 669 759 ;
+C -1 ; WX 600 ; N Aogonek ; B -9 -199 632 562 ;
+C -1 ; WX 600 ; N Aring ; B -9 0 632 801 ;
+C -1 ; WX 600 ; N Otilde ; B 74 -18 669 759 ;
+C -1 ; WX 600 ; N zdotaccent ; B 81 0 614 638 ;
+C -1 ; WX 600 ; N Ecaron ; B 25 0 670 790 ;
+C -1 ; WX 600 ; N Iogonek ; B 77 -199 643 562 ;
+C -1 ; WX 600 ; N kcommaaccent ; B 33 -250 643 626 ;
+C -1 ; WX 600 ; N minus ; B 114 203 596 313 ;
+C -1 ; WX 600 ; N Icircumflex ; B 77 0 643 780 ;
+C -1 ; WX 600 ; N ncaron ; B 18 0 633 667 ;
+C -1 ; WX 600 ; N tcommaaccent ; B 118 -250 567 562 ;
+C -1 ; WX 600 ; N logicalnot ; B 135 103 617 413 ;
+C -1 ; WX 600 ; N odieresis ; B 71 -15 622 638 ;
+C -1 ; WX 600 ; N udieresis ; B 70 -15 595 638 ;
+C -1 ; WX 600 ; N notequal ; B 30 -47 626 563 ;
+C -1 ; WX 600 ; N gcommaaccent ; B 40 -146 674 714 ;
+C -1 ; WX 600 ; N eth ; B 93 -27 661 626 ;
+C -1 ; WX 600 ; N zcaron ; B 81 0 643 667 ;
+C -1 ; WX 600 ; N ncommaaccent ; B 18 -250 615 454 ;
+C -1 ; WX 600 ; N onesuperior ; B 212 230 514 616 ;
+C -1 ; WX 600 ; N imacron ; B 77 0 575 585 ;
+C -1 ; WX 600 ; N Euro ; B 0 0 0 0 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/php/extras/fonts/ps/Courier-Oblique.afm b/php/extras/fonts/ps/Courier-Oblique.afm
new file mode 100644
index 000000000..3dc163f77
--- /dev/null
+++ b/php/extras/fonts/ps/Courier-Oblique.afm
@@ -0,0 +1,342 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Thu May 1 17:37:52 1997
+Comment UniqueID 43051
+Comment VMusage 16248 75829
+FontName Courier-Oblique
+FullName Courier Oblique
+FamilyName Courier
+Weight Medium
+ItalicAngle -12
+IsFixedPitch true
+CharacterSet ExtendedRoman
+FontBBox -27 -250 849 805
+UnderlinePosition -100
+UnderlineThickness 50
+Version 003.000
+Notice Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
+EncodingScheme AdobeStandardEncoding
+CapHeight 562
+XHeight 426
+Ascender 629
+Descender -157
+StdHW 51
+StdVW 51
+StartCharMetrics 315
+C 32 ; WX 600 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 600 ; N exclam ; B 243 -15 464 572 ;
+C 34 ; WX 600 ; N quotedbl ; B 273 328 532 562 ;
+C 35 ; WX 600 ; N numbersign ; B 133 -32 596 639 ;
+C 36 ; WX 600 ; N dollar ; B 108 -126 596 662 ;
+C 37 ; WX 600 ; N percent ; B 134 -15 599 622 ;
+C 38 ; WX 600 ; N ampersand ; B 87 -15 580 543 ;
+C 39 ; WX 600 ; N quoteright ; B 283 328 495 562 ;
+C 40 ; WX 600 ; N parenleft ; B 313 -108 572 622 ;
+C 41 ; WX 600 ; N parenright ; B 137 -108 396 622 ;
+C 42 ; WX 600 ; N asterisk ; B 212 257 580 607 ;
+C 43 ; WX 600 ; N plus ; B 129 44 580 470 ;
+C 44 ; WX 600 ; N comma ; B 157 -112 370 122 ;
+C 45 ; WX 600 ; N hyphen ; B 152 231 558 285 ;
+C 46 ; WX 600 ; N period ; B 238 -15 382 109 ;
+C 47 ; WX 600 ; N slash ; B 112 -80 604 629 ;
+C 48 ; WX 600 ; N zero ; B 154 -15 575 622 ;
+C 49 ; WX 600 ; N one ; B 98 0 515 622 ;
+C 50 ; WX 600 ; N two ; B 70 0 568 622 ;
+C 51 ; WX 600 ; N three ; B 82 -15 538 622 ;
+C 52 ; WX 600 ; N four ; B 108 0 541 622 ;
+C 53 ; WX 600 ; N five ; B 99 -15 589 607 ;
+C 54 ; WX 600 ; N six ; B 155 -15 629 622 ;
+C 55 ; WX 600 ; N seven ; B 182 0 612 607 ;
+C 56 ; WX 600 ; N eight ; B 132 -15 588 622 ;
+C 57 ; WX 600 ; N nine ; B 93 -15 574 622 ;
+C 58 ; WX 600 ; N colon ; B 238 -15 441 385 ;
+C 59 ; WX 600 ; N semicolon ; B 157 -112 441 385 ;
+C 60 ; WX 600 ; N less ; B 96 42 610 472 ;
+C 61 ; WX 600 ; N equal ; B 109 138 600 376 ;
+C 62 ; WX 600 ; N greater ; B 85 42 599 472 ;
+C 63 ; WX 600 ; N question ; B 222 -15 583 572 ;
+C 64 ; WX 600 ; N at ; B 127 -15 582 622 ;
+C 65 ; WX 600 ; N A ; B 3 0 607 562 ;
+C 66 ; WX 600 ; N B ; B 43 0 616 562 ;
+C 67 ; WX 600 ; N C ; B 93 -18 655 580 ;
+C 68 ; WX 600 ; N D ; B 43 0 645 562 ;
+C 69 ; WX 600 ; N E ; B 53 0 660 562 ;
+C 70 ; WX 600 ; N F ; B 53 0 660 562 ;
+C 71 ; WX 600 ; N G ; B 83 -18 645 580 ;
+C 72 ; WX 600 ; N H ; B 32 0 687 562 ;
+C 73 ; WX 600 ; N I ; B 96 0 623 562 ;
+C 74 ; WX 600 ; N J ; B 52 -18 685 562 ;
+C 75 ; WX 600 ; N K ; B 38 0 671 562 ;
+C 76 ; WX 600 ; N L ; B 47 0 607 562 ;
+C 77 ; WX 600 ; N M ; B 4 0 715 562 ;
+C 78 ; WX 600 ; N N ; B 7 -13 712 562 ;
+C 79 ; WX 600 ; N O ; B 94 -18 625 580 ;
+C 80 ; WX 600 ; N P ; B 79 0 644 562 ;
+C 81 ; WX 600 ; N Q ; B 95 -138 625 580 ;
+C 82 ; WX 600 ; N R ; B 38 0 598 562 ;
+C 83 ; WX 600 ; N S ; B 76 -20 650 580 ;
+C 84 ; WX 600 ; N T ; B 108 0 665 562 ;
+C 85 ; WX 600 ; N U ; B 125 -18 702 562 ;
+C 86 ; WX 600 ; N V ; B 105 -13 723 562 ;
+C 87 ; WX 600 ; N W ; B 106 -13 722 562 ;
+C 88 ; WX 600 ; N X ; B 23 0 675 562 ;
+C 89 ; WX 600 ; N Y ; B 133 0 695 562 ;
+C 90 ; WX 600 ; N Z ; B 86 0 610 562 ;
+C 91 ; WX 600 ; N bracketleft ; B 246 -108 574 622 ;
+C 92 ; WX 600 ; N backslash ; B 249 -80 468 629 ;
+C 93 ; WX 600 ; N bracketright ; B 135 -108 463 622 ;
+C 94 ; WX 600 ; N asciicircum ; B 175 354 587 622 ;
+C 95 ; WX 600 ; N underscore ; B -27 -125 584 -75 ;
+C 96 ; WX 600 ; N quoteleft ; B 343 328 457 562 ;
+C 97 ; WX 600 ; N a ; B 76 -15 569 441 ;
+C 98 ; WX 600 ; N b ; B 29 -15 625 629 ;
+C 99 ; WX 600 ; N c ; B 106 -15 608 441 ;
+C 100 ; WX 600 ; N d ; B 85 -15 640 629 ;
+C 101 ; WX 600 ; N e ; B 106 -15 598 441 ;
+C 102 ; WX 600 ; N f ; B 114 0 662 629 ; L i fi ; L l fl ;
+C 103 ; WX 600 ; N g ; B 61 -157 657 441 ;
+C 104 ; WX 600 ; N h ; B 33 0 592 629 ;
+C 105 ; WX 600 ; N i ; B 95 0 515 657 ;
+C 106 ; WX 600 ; N j ; B 52 -157 550 657 ;
+C 107 ; WX 600 ; N k ; B 58 0 633 629 ;
+C 108 ; WX 600 ; N l ; B 95 0 515 629 ;
+C 109 ; WX 600 ; N m ; B -5 0 615 441 ;
+C 110 ; WX 600 ; N n ; B 26 0 585 441 ;
+C 111 ; WX 600 ; N o ; B 102 -15 588 441 ;
+C 112 ; WX 600 ; N p ; B -24 -157 605 441 ;
+C 113 ; WX 600 ; N q ; B 85 -157 682 441 ;
+C 114 ; WX 600 ; N r ; B 60 0 636 441 ;
+C 115 ; WX 600 ; N s ; B 78 -15 584 441 ;
+C 116 ; WX 600 ; N t ; B 167 -15 561 561 ;
+C 117 ; WX 600 ; N u ; B 101 -15 572 426 ;
+C 118 ; WX 600 ; N v ; B 90 -10 681 426 ;
+C 119 ; WX 600 ; N w ; B 76 -10 695 426 ;
+C 120 ; WX 600 ; N x ; B 20 0 655 426 ;
+C 121 ; WX 600 ; N y ; B -4 -157 683 426 ;
+C 122 ; WX 600 ; N z ; B 99 0 593 426 ;
+C 123 ; WX 600 ; N braceleft ; B 233 -108 569 622 ;
+C 124 ; WX 600 ; N bar ; B 222 -250 485 750 ;
+C 125 ; WX 600 ; N braceright ; B 140 -108 477 622 ;
+C 126 ; WX 600 ; N asciitilde ; B 116 197 600 320 ;
+C 161 ; WX 600 ; N exclamdown ; B 225 -157 445 430 ;
+C 162 ; WX 600 ; N cent ; B 151 -49 588 614 ;
+C 163 ; WX 600 ; N sterling ; B 124 -21 621 611 ;
+C 164 ; WX 600 ; N fraction ; B 84 -57 646 665 ;
+C 165 ; WX 600 ; N yen ; B 120 0 693 562 ;
+C 166 ; WX 600 ; N florin ; B -26 -143 671 622 ;
+C 167 ; WX 600 ; N section ; B 104 -78 590 580 ;
+C 168 ; WX 600 ; N currency ; B 94 58 628 506 ;
+C 169 ; WX 600 ; N quotesingle ; B 345 328 460 562 ;
+C 170 ; WX 600 ; N quotedblleft ; B 262 328 541 562 ;
+C 171 ; WX 600 ; N guillemotleft ; B 92 70 652 446 ;
+C 172 ; WX 600 ; N guilsinglleft ; B 204 70 540 446 ;
+C 173 ; WX 600 ; N guilsinglright ; B 170 70 506 446 ;
+C 174 ; WX 600 ; N fi ; B 3 0 619 629 ;
+C 175 ; WX 600 ; N fl ; B 3 0 619 629 ;
+C 177 ; WX 600 ; N endash ; B 124 231 586 285 ;
+C 178 ; WX 600 ; N dagger ; B 217 -78 546 580 ;
+C 179 ; WX 600 ; N daggerdbl ; B 163 -78 546 580 ;
+C 180 ; WX 600 ; N periodcentered ; B 275 189 434 327 ;
+C 182 ; WX 600 ; N paragraph ; B 100 -78 630 562 ;
+C 183 ; WX 600 ; N bullet ; B 224 130 485 383 ;
+C 184 ; WX 600 ; N quotesinglbase ; B 185 -134 397 100 ;
+C 185 ; WX 600 ; N quotedblbase ; B 115 -134 478 100 ;
+C 186 ; WX 600 ; N quotedblright ; B 213 328 576 562 ;
+C 187 ; WX 600 ; N guillemotright ; B 58 70 618 446 ;
+C 188 ; WX 600 ; N ellipsis ; B 46 -15 575 111 ;
+C 189 ; WX 600 ; N perthousand ; B 59 -15 627 622 ;
+C 191 ; WX 600 ; N questiondown ; B 105 -157 466 430 ;
+C 193 ; WX 600 ; N grave ; B 294 497 484 672 ;
+C 194 ; WX 600 ; N acute ; B 348 497 612 672 ;
+C 195 ; WX 600 ; N circumflex ; B 229 477 581 654 ;
+C 196 ; WX 600 ; N tilde ; B 212 489 629 606 ;
+C 197 ; WX 600 ; N macron ; B 232 525 600 565 ;
+C 198 ; WX 600 ; N breve ; B 279 501 576 609 ;
+C 199 ; WX 600 ; N dotaccent ; B 373 537 478 640 ;
+C 200 ; WX 600 ; N dieresis ; B 272 537 579 640 ;
+C 202 ; WX 600 ; N ring ; B 332 463 500 627 ;
+C 203 ; WX 600 ; N cedilla ; B 197 -151 344 10 ;
+C 205 ; WX 600 ; N hungarumlaut ; B 239 497 683 672 ;
+C 206 ; WX 600 ; N ogonek ; B 189 -172 377 4 ;
+C 207 ; WX 600 ; N caron ; B 262 492 614 669 ;
+C 208 ; WX 600 ; N emdash ; B 49 231 661 285 ;
+C 225 ; WX 600 ; N AE ; B 3 0 655 562 ;
+C 227 ; WX 600 ; N ordfeminine ; B 209 249 512 580 ;
+C 232 ; WX 600 ; N Lslash ; B 47 0 607 562 ;
+C 233 ; WX 600 ; N Oslash ; B 94 -80 625 629 ;
+C 234 ; WX 600 ; N OE ; B 59 0 672 562 ;
+C 235 ; WX 600 ; N ordmasculine ; B 210 249 535 580 ;
+C 241 ; WX 600 ; N ae ; B 41 -15 626 441 ;
+C 245 ; WX 600 ; N dotlessi ; B 95 0 515 426 ;
+C 248 ; WX 600 ; N lslash ; B 95 0 587 629 ;
+C 249 ; WX 600 ; N oslash ; B 102 -80 588 506 ;
+C 250 ; WX 600 ; N oe ; B 54 -15 615 441 ;
+C 251 ; WX 600 ; N germandbls ; B 48 -15 617 629 ;
+C -1 ; WX 600 ; N Idieresis ; B 96 0 623 753 ;
+C -1 ; WX 600 ; N eacute ; B 106 -15 612 672 ;
+C -1 ; WX 600 ; N abreve ; B 76 -15 576 609 ;
+C -1 ; WX 600 ; N uhungarumlaut ; B 101 -15 723 672 ;
+C -1 ; WX 600 ; N ecaron ; B 106 -15 614 669 ;
+C -1 ; WX 600 ; N Ydieresis ; B 133 0 695 753 ;
+C -1 ; WX 600 ; N divide ; B 136 48 573 467 ;
+C -1 ; WX 600 ; N Yacute ; B 133 0 695 805 ;
+C -1 ; WX 600 ; N Acircumflex ; B 3 0 607 787 ;
+C -1 ; WX 600 ; N aacute ; B 76 -15 612 672 ;
+C -1 ; WX 600 ; N Ucircumflex ; B 125 -18 702 787 ;
+C -1 ; WX 600 ; N yacute ; B -4 -157 683 672 ;
+C -1 ; WX 600 ; N scommaaccent ; B 78 -250 584 441 ;
+C -1 ; WX 600 ; N ecircumflex ; B 106 -15 598 654 ;
+C -1 ; WX 600 ; N Uring ; B 125 -18 702 760 ;
+C -1 ; WX 600 ; N Udieresis ; B 125 -18 702 753 ;
+C -1 ; WX 600 ; N aogonek ; B 76 -172 569 441 ;
+C -1 ; WX 600 ; N Uacute ; B 125 -18 702 805 ;
+C -1 ; WX 600 ; N uogonek ; B 101 -172 572 426 ;
+C -1 ; WX 600 ; N Edieresis ; B 53 0 660 753 ;
+C -1 ; WX 600 ; N Dcroat ; B 43 0 645 562 ;
+C -1 ; WX 600 ; N commaaccent ; B 145 -250 323 -58 ;
+C -1 ; WX 600 ; N copyright ; B 53 -18 667 580 ;
+C -1 ; WX 600 ; N Emacron ; B 53 0 660 698 ;
+C -1 ; WX 600 ; N ccaron ; B 106 -15 614 669 ;
+C -1 ; WX 600 ; N aring ; B 76 -15 569 627 ;
+C -1 ; WX 600 ; N Ncommaaccent ; B 7 -250 712 562 ;
+C -1 ; WX 600 ; N lacute ; B 95 0 640 805 ;
+C -1 ; WX 600 ; N agrave ; B 76 -15 569 672 ;
+C -1 ; WX 600 ; N Tcommaaccent ; B 108 -250 665 562 ;
+C -1 ; WX 600 ; N Cacute ; B 93 -18 655 805 ;
+C -1 ; WX 600 ; N atilde ; B 76 -15 629 606 ;
+C -1 ; WX 600 ; N Edotaccent ; B 53 0 660 753 ;
+C -1 ; WX 600 ; N scaron ; B 78 -15 614 669 ;
+C -1 ; WX 600 ; N scedilla ; B 78 -151 584 441 ;
+C -1 ; WX 600 ; N iacute ; B 95 0 612 672 ;
+C -1 ; WX 600 ; N lozenge ; B 94 0 519 706 ;
+C -1 ; WX 600 ; N Rcaron ; B 38 0 642 802 ;
+C -1 ; WX 600 ; N Gcommaaccent ; B 83 -250 645 580 ;
+C -1 ; WX 600 ; N ucircumflex ; B 101 -15 572 654 ;
+C -1 ; WX 600 ; N acircumflex ; B 76 -15 581 654 ;
+C -1 ; WX 600 ; N Amacron ; B 3 0 607 698 ;
+C -1 ; WX 600 ; N rcaron ; B 60 0 636 669 ;
+C -1 ; WX 600 ; N ccedilla ; B 106 -151 614 441 ;
+C -1 ; WX 600 ; N Zdotaccent ; B 86 0 610 753 ;
+C -1 ; WX 600 ; N Thorn ; B 79 0 606 562 ;
+C -1 ; WX 600 ; N Omacron ; B 94 -18 628 698 ;
+C -1 ; WX 600 ; N Racute ; B 38 0 670 805 ;
+C -1 ; WX 600 ; N Sacute ; B 76 -20 650 805 ;
+C -1 ; WX 600 ; N dcaron ; B 85 -15 849 629 ;
+C -1 ; WX 600 ; N Umacron ; B 125 -18 702 698 ;
+C -1 ; WX 600 ; N uring ; B 101 -15 572 627 ;
+C -1 ; WX 600 ; N threesuperior ; B 213 240 501 622 ;
+C -1 ; WX 600 ; N Ograve ; B 94 -18 625 805 ;
+C -1 ; WX 600 ; N Agrave ; B 3 0 607 805 ;
+C -1 ; WX 600 ; N Abreve ; B 3 0 607 732 ;
+C -1 ; WX 600 ; N multiply ; B 103 43 607 470 ;
+C -1 ; WX 600 ; N uacute ; B 101 -15 602 672 ;
+C -1 ; WX 600 ; N Tcaron ; B 108 0 665 802 ;
+C -1 ; WX 600 ; N partialdiff ; B 45 -38 546 710 ;
+C -1 ; WX 600 ; N ydieresis ; B -4 -157 683 620 ;
+C -1 ; WX 600 ; N Nacute ; B 7 -13 712 805 ;
+C -1 ; WX 600 ; N icircumflex ; B 95 0 551 654 ;
+C -1 ; WX 600 ; N Ecircumflex ; B 53 0 660 787 ;
+C -1 ; WX 600 ; N adieresis ; B 76 -15 575 620 ;
+C -1 ; WX 600 ; N edieresis ; B 106 -15 598 620 ;
+C -1 ; WX 600 ; N cacute ; B 106 -15 612 672 ;
+C -1 ; WX 600 ; N nacute ; B 26 0 602 672 ;
+C -1 ; WX 600 ; N umacron ; B 101 -15 600 565 ;
+C -1 ; WX 600 ; N Ncaron ; B 7 -13 712 802 ;
+C -1 ; WX 600 ; N Iacute ; B 96 0 640 805 ;
+C -1 ; WX 600 ; N plusminus ; B 96 44 594 558 ;
+C -1 ; WX 600 ; N brokenbar ; B 238 -175 469 675 ;
+C -1 ; WX 600 ; N registered ; B 53 -18 667 580 ;
+C -1 ; WX 600 ; N Gbreve ; B 83 -18 645 732 ;
+C -1 ; WX 600 ; N Idotaccent ; B 96 0 623 753 ;
+C -1 ; WX 600 ; N summation ; B 15 -10 670 706 ;
+C -1 ; WX 600 ; N Egrave ; B 53 0 660 805 ;
+C -1 ; WX 600 ; N racute ; B 60 0 636 672 ;
+C -1 ; WX 600 ; N omacron ; B 102 -15 600 565 ;
+C -1 ; WX 600 ; N Zacute ; B 86 0 670 805 ;
+C -1 ; WX 600 ; N Zcaron ; B 86 0 642 802 ;
+C -1 ; WX 600 ; N greaterequal ; B 98 0 594 710 ;
+C -1 ; WX 600 ; N Eth ; B 43 0 645 562 ;
+C -1 ; WX 600 ; N Ccedilla ; B 93 -151 658 580 ;
+C -1 ; WX 600 ; N lcommaaccent ; B 95 -250 515 629 ;
+C -1 ; WX 600 ; N tcaron ; B 167 -15 587 717 ;
+C -1 ; WX 600 ; N eogonek ; B 106 -172 598 441 ;
+C -1 ; WX 600 ; N Uogonek ; B 124 -172 702 562 ;
+C -1 ; WX 600 ; N Aacute ; B 3 0 660 805 ;
+C -1 ; WX 600 ; N Adieresis ; B 3 0 607 753 ;
+C -1 ; WX 600 ; N egrave ; B 106 -15 598 672 ;
+C -1 ; WX 600 ; N zacute ; B 99 0 612 672 ;
+C -1 ; WX 600 ; N iogonek ; B 95 -172 515 657 ;
+C -1 ; WX 600 ; N Oacute ; B 94 -18 640 805 ;
+C -1 ; WX 600 ; N oacute ; B 102 -15 612 672 ;
+C -1 ; WX 600 ; N amacron ; B 76 -15 600 565 ;
+C -1 ; WX 600 ; N sacute ; B 78 -15 612 672 ;
+C -1 ; WX 600 ; N idieresis ; B 95 0 545 620 ;
+C -1 ; WX 600 ; N Ocircumflex ; B 94 -18 625 787 ;
+C -1 ; WX 600 ; N Ugrave ; B 125 -18 702 805 ;
+C -1 ; WX 600 ; N Delta ; B 6 0 598 688 ;
+C -1 ; WX 600 ; N thorn ; B -24 -157 605 629 ;
+C -1 ; WX 600 ; N twosuperior ; B 230 249 535 622 ;
+C -1 ; WX 600 ; N Odieresis ; B 94 -18 625 753 ;
+C -1 ; WX 600 ; N mu ; B 72 -157 572 426 ;
+C -1 ; WX 600 ; N igrave ; B 95 0 515 672 ;
+C -1 ; WX 600 ; N ohungarumlaut ; B 102 -15 723 672 ;
+C -1 ; WX 600 ; N Eogonek ; B 53 -172 660 562 ;
+C -1 ; WX 600 ; N dcroat ; B 85 -15 704 629 ;
+C -1 ; WX 600 ; N threequarters ; B 73 -56 659 666 ;
+C -1 ; WX 600 ; N Scedilla ; B 76 -151 650 580 ;
+C -1 ; WX 600 ; N lcaron ; B 95 0 667 629 ;
+C -1 ; WX 600 ; N Kcommaaccent ; B 38 -250 671 562 ;
+C -1 ; WX 600 ; N Lacute ; B 47 0 607 805 ;
+C -1 ; WX 600 ; N trademark ; B 75 263 742 562 ;
+C -1 ; WX 600 ; N edotaccent ; B 106 -15 598 620 ;
+C -1 ; WX 600 ; N Igrave ; B 96 0 623 805 ;
+C -1 ; WX 600 ; N Imacron ; B 96 0 628 698 ;
+C -1 ; WX 600 ; N Lcaron ; B 47 0 632 562 ;
+C -1 ; WX 600 ; N onehalf ; B 65 -57 669 665 ;
+C -1 ; WX 600 ; N lessequal ; B 98 0 645 710 ;
+C -1 ; WX 600 ; N ocircumflex ; B 102 -15 588 654 ;
+C -1 ; WX 600 ; N ntilde ; B 26 0 629 606 ;
+C -1 ; WX 600 ; N Uhungarumlaut ; B 125 -18 761 805 ;
+C -1 ; WX 600 ; N Eacute ; B 53 0 670 805 ;
+C -1 ; WX 600 ; N emacron ; B 106 -15 600 565 ;
+C -1 ; WX 600 ; N gbreve ; B 61 -157 657 609 ;
+C -1 ; WX 600 ; N onequarter ; B 65 -57 674 665 ;
+C -1 ; WX 600 ; N Scaron ; B 76 -20 672 802 ;
+C -1 ; WX 600 ; N Scommaaccent ; B 76 -250 650 580 ;
+C -1 ; WX 600 ; N Ohungarumlaut ; B 94 -18 751 805 ;
+C -1 ; WX 600 ; N degree ; B 214 269 576 622 ;
+C -1 ; WX 600 ; N ograve ; B 102 -15 588 672 ;
+C -1 ; WX 600 ; N Ccaron ; B 93 -18 672 802 ;
+C -1 ; WX 600 ; N ugrave ; B 101 -15 572 672 ;
+C -1 ; WX 600 ; N radical ; B 85 -15 765 792 ;
+C -1 ; WX 600 ; N Dcaron ; B 43 0 645 802 ;
+C -1 ; WX 600 ; N rcommaaccent ; B 60 -250 636 441 ;
+C -1 ; WX 600 ; N Ntilde ; B 7 -13 712 729 ;
+C -1 ; WX 600 ; N otilde ; B 102 -15 629 606 ;
+C -1 ; WX 600 ; N Rcommaaccent ; B 38 -250 598 562 ;
+C -1 ; WX 600 ; N Lcommaaccent ; B 47 -250 607 562 ;
+C -1 ; WX 600 ; N Atilde ; B 3 0 655 729 ;
+C -1 ; WX 600 ; N Aogonek ; B 3 -172 607 562 ;
+C -1 ; WX 600 ; N Aring ; B 3 0 607 750 ;
+C -1 ; WX 600 ; N Otilde ; B 94 -18 655 729 ;
+C -1 ; WX 600 ; N zdotaccent ; B 99 0 593 620 ;
+C -1 ; WX 600 ; N Ecaron ; B 53 0 660 802 ;
+C -1 ; WX 600 ; N Iogonek ; B 96 -172 623 562 ;
+C -1 ; WX 600 ; N kcommaaccent ; B 58 -250 633 629 ;
+C -1 ; WX 600 ; N minus ; B 129 232 580 283 ;
+C -1 ; WX 600 ; N Icircumflex ; B 96 0 623 787 ;
+C -1 ; WX 600 ; N ncaron ; B 26 0 614 669 ;
+C -1 ; WX 600 ; N tcommaaccent ; B 165 -250 561 561 ;
+C -1 ; WX 600 ; N logicalnot ; B 155 108 591 369 ;
+C -1 ; WX 600 ; N odieresis ; B 102 -15 588 620 ;
+C -1 ; WX 600 ; N udieresis ; B 101 -15 575 620 ;
+C -1 ; WX 600 ; N notequal ; B 43 -16 621 529 ;
+C -1 ; WX 600 ; N gcommaaccent ; B 61 -157 657 708 ;
+C -1 ; WX 600 ; N eth ; B 102 -15 639 629 ;
+C -1 ; WX 600 ; N zcaron ; B 99 0 624 669 ;
+C -1 ; WX 600 ; N ncommaaccent ; B 26 -250 585 441 ;
+C -1 ; WX 600 ; N onesuperior ; B 231 249 491 622 ;
+C -1 ; WX 600 ; N imacron ; B 95 0 543 565 ;
+C -1 ; WX 600 ; N Euro ; B 0 0 0 0 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/php/extras/fonts/ps/Courier.afm b/php/extras/fonts/ps/Courier.afm
new file mode 100644
index 000000000..2f7be81d5
--- /dev/null
+++ b/php/extras/fonts/ps/Courier.afm
@@ -0,0 +1,342 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Thu May 1 17:27:09 1997
+Comment UniqueID 43050
+Comment VMusage 39754 50779
+FontName Courier
+FullName Courier
+FamilyName Courier
+Weight Medium
+ItalicAngle 0
+IsFixedPitch true
+CharacterSet ExtendedRoman
+FontBBox -23 -250 715 805
+UnderlinePosition -100
+UnderlineThickness 50
+Version 003.000
+Notice Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
+EncodingScheme AdobeStandardEncoding
+CapHeight 562
+XHeight 426
+Ascender 629
+Descender -157
+StdHW 51
+StdVW 51
+StartCharMetrics 315
+C 32 ; WX 600 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 600 ; N exclam ; B 236 -15 364 572 ;
+C 34 ; WX 600 ; N quotedbl ; B 187 328 413 562 ;
+C 35 ; WX 600 ; N numbersign ; B 93 -32 507 639 ;
+C 36 ; WX 600 ; N dollar ; B 105 -126 496 662 ;
+C 37 ; WX 600 ; N percent ; B 81 -15 518 622 ;
+C 38 ; WX 600 ; N ampersand ; B 63 -15 538 543 ;
+C 39 ; WX 600 ; N quoteright ; B 213 328 376 562 ;
+C 40 ; WX 600 ; N parenleft ; B 269 -108 440 622 ;
+C 41 ; WX 600 ; N parenright ; B 160 -108 331 622 ;
+C 42 ; WX 600 ; N asterisk ; B 116 257 484 607 ;
+C 43 ; WX 600 ; N plus ; B 80 44 520 470 ;
+C 44 ; WX 600 ; N comma ; B 181 -112 344 122 ;
+C 45 ; WX 600 ; N hyphen ; B 103 231 497 285 ;
+C 46 ; WX 600 ; N period ; B 229 -15 371 109 ;
+C 47 ; WX 600 ; N slash ; B 125 -80 475 629 ;
+C 48 ; WX 600 ; N zero ; B 106 -15 494 622 ;
+C 49 ; WX 600 ; N one ; B 96 0 505 622 ;
+C 50 ; WX 600 ; N two ; B 70 0 471 622 ;
+C 51 ; WX 600 ; N three ; B 75 -15 466 622 ;
+C 52 ; WX 600 ; N four ; B 78 0 500 622 ;
+C 53 ; WX 600 ; N five ; B 92 -15 497 607 ;
+C 54 ; WX 600 ; N six ; B 111 -15 497 622 ;
+C 55 ; WX 600 ; N seven ; B 82 0 483 607 ;
+C 56 ; WX 600 ; N eight ; B 102 -15 498 622 ;
+C 57 ; WX 600 ; N nine ; B 96 -15 489 622 ;
+C 58 ; WX 600 ; N colon ; B 229 -15 371 385 ;
+C 59 ; WX 600 ; N semicolon ; B 181 -112 371 385 ;
+C 60 ; WX 600 ; N less ; B 41 42 519 472 ;
+C 61 ; WX 600 ; N equal ; B 80 138 520 376 ;
+C 62 ; WX 600 ; N greater ; B 66 42 544 472 ;
+C 63 ; WX 600 ; N question ; B 129 -15 492 572 ;
+C 64 ; WX 600 ; N at ; B 77 -15 533 622 ;
+C 65 ; WX 600 ; N A ; B 3 0 597 562 ;
+C 66 ; WX 600 ; N B ; B 43 0 559 562 ;
+C 67 ; WX 600 ; N C ; B 41 -18 540 580 ;
+C 68 ; WX 600 ; N D ; B 43 0 574 562 ;
+C 69 ; WX 600 ; N E ; B 53 0 550 562 ;
+C 70 ; WX 600 ; N F ; B 53 0 545 562 ;
+C 71 ; WX 600 ; N G ; B 31 -18 575 580 ;
+C 72 ; WX 600 ; N H ; B 32 0 568 562 ;
+C 73 ; WX 600 ; N I ; B 96 0 504 562 ;
+C 74 ; WX 600 ; N J ; B 34 -18 566 562 ;
+C 75 ; WX 600 ; N K ; B 38 0 582 562 ;
+C 76 ; WX 600 ; N L ; B 47 0 554 562 ;
+C 77 ; WX 600 ; N M ; B 4 0 596 562 ;
+C 78 ; WX 600 ; N N ; B 7 -13 593 562 ;
+C 79 ; WX 600 ; N O ; B 43 -18 557 580 ;
+C 80 ; WX 600 ; N P ; B 79 0 558 562 ;
+C 81 ; WX 600 ; N Q ; B 43 -138 557 580 ;
+C 82 ; WX 600 ; N R ; B 38 0 588 562 ;
+C 83 ; WX 600 ; N S ; B 72 -20 529 580 ;
+C 84 ; WX 600 ; N T ; B 38 0 563 562 ;
+C 85 ; WX 600 ; N U ; B 17 -18 583 562 ;
+C 86 ; WX 600 ; N V ; B -4 -13 604 562 ;
+C 87 ; WX 600 ; N W ; B -3 -13 603 562 ;
+C 88 ; WX 600 ; N X ; B 23 0 577 562 ;
+C 89 ; WX 600 ; N Y ; B 24 0 576 562 ;
+C 90 ; WX 600 ; N Z ; B 86 0 514 562 ;
+C 91 ; WX 600 ; N bracketleft ; B 269 -108 442 622 ;
+C 92 ; WX 600 ; N backslash ; B 118 -80 482 629 ;
+C 93 ; WX 600 ; N bracketright ; B 158 -108 331 622 ;
+C 94 ; WX 600 ; N asciicircum ; B 94 354 506 622 ;
+C 95 ; WX 600 ; N underscore ; B 0 -125 600 -75 ;
+C 96 ; WX 600 ; N quoteleft ; B 224 328 387 562 ;
+C 97 ; WX 600 ; N a ; B 53 -15 559 441 ;
+C 98 ; WX 600 ; N b ; B 14 -15 575 629 ;
+C 99 ; WX 600 ; N c ; B 66 -15 529 441 ;
+C 100 ; WX 600 ; N d ; B 45 -15 591 629 ;
+C 101 ; WX 600 ; N e ; B 66 -15 548 441 ;
+C 102 ; WX 600 ; N f ; B 114 0 531 629 ; L i fi ; L l fl ;
+C 103 ; WX 600 ; N g ; B 45 -157 566 441 ;
+C 104 ; WX 600 ; N h ; B 18 0 582 629 ;
+C 105 ; WX 600 ; N i ; B 95 0 505 657 ;
+C 106 ; WX 600 ; N j ; B 82 -157 410 657 ;
+C 107 ; WX 600 ; N k ; B 43 0 580 629 ;
+C 108 ; WX 600 ; N l ; B 95 0 505 629 ;
+C 109 ; WX 600 ; N m ; B -5 0 605 441 ;
+C 110 ; WX 600 ; N n ; B 26 0 575 441 ;
+C 111 ; WX 600 ; N o ; B 62 -15 538 441 ;
+C 112 ; WX 600 ; N p ; B 9 -157 555 441 ;
+C 113 ; WX 600 ; N q ; B 45 -157 591 441 ;
+C 114 ; WX 600 ; N r ; B 60 0 559 441 ;
+C 115 ; WX 600 ; N s ; B 80 -15 513 441 ;
+C 116 ; WX 600 ; N t ; B 87 -15 530 561 ;
+C 117 ; WX 600 ; N u ; B 21 -15 562 426 ;
+C 118 ; WX 600 ; N v ; B 10 -10 590 426 ;
+C 119 ; WX 600 ; N w ; B -4 -10 604 426 ;
+C 120 ; WX 600 ; N x ; B 20 0 580 426 ;
+C 121 ; WX 600 ; N y ; B 7 -157 592 426 ;
+C 122 ; WX 600 ; N z ; B 99 0 502 426 ;
+C 123 ; WX 600 ; N braceleft ; B 182 -108 437 622 ;
+C 124 ; WX 600 ; N bar ; B 275 -250 326 750 ;
+C 125 ; WX 600 ; N braceright ; B 163 -108 418 622 ;
+C 126 ; WX 600 ; N asciitilde ; B 63 197 540 320 ;
+C 161 ; WX 600 ; N exclamdown ; B 236 -157 364 430 ;
+C 162 ; WX 600 ; N cent ; B 96 -49 500 614 ;
+C 163 ; WX 600 ; N sterling ; B 84 -21 521 611 ;
+C 164 ; WX 600 ; N fraction ; B 92 -57 509 665 ;
+C 165 ; WX 600 ; N yen ; B 26 0 574 562 ;
+C 166 ; WX 600 ; N florin ; B 4 -143 539 622 ;
+C 167 ; WX 600 ; N section ; B 113 -78 488 580 ;
+C 168 ; WX 600 ; N currency ; B 73 58 527 506 ;
+C 169 ; WX 600 ; N quotesingle ; B 259 328 341 562 ;
+C 170 ; WX 600 ; N quotedblleft ; B 143 328 471 562 ;
+C 171 ; WX 600 ; N guillemotleft ; B 37 70 563 446 ;
+C 172 ; WX 600 ; N guilsinglleft ; B 149 70 451 446 ;
+C 173 ; WX 600 ; N guilsinglright ; B 149 70 451 446 ;
+C 174 ; WX 600 ; N fi ; B 3 0 597 629 ;
+C 175 ; WX 600 ; N fl ; B 3 0 597 629 ;
+C 177 ; WX 600 ; N endash ; B 75 231 525 285 ;
+C 178 ; WX 600 ; N dagger ; B 141 -78 459 580 ;
+C 179 ; WX 600 ; N daggerdbl ; B 141 -78 459 580 ;
+C 180 ; WX 600 ; N periodcentered ; B 222 189 378 327 ;
+C 182 ; WX 600 ; N paragraph ; B 50 -78 511 562 ;
+C 183 ; WX 600 ; N bullet ; B 172 130 428 383 ;
+C 184 ; WX 600 ; N quotesinglbase ; B 213 -134 376 100 ;
+C 185 ; WX 600 ; N quotedblbase ; B 143 -134 457 100 ;
+C 186 ; WX 600 ; N quotedblright ; B 143 328 457 562 ;
+C 187 ; WX 600 ; N guillemotright ; B 37 70 563 446 ;
+C 188 ; WX 600 ; N ellipsis ; B 37 -15 563 111 ;
+C 189 ; WX 600 ; N perthousand ; B 3 -15 600 622 ;
+C 191 ; WX 600 ; N questiondown ; B 108 -157 471 430 ;
+C 193 ; WX 600 ; N grave ; B 151 497 378 672 ;
+C 194 ; WX 600 ; N acute ; B 242 497 469 672 ;
+C 195 ; WX 600 ; N circumflex ; B 124 477 476 654 ;
+C 196 ; WX 600 ; N tilde ; B 105 489 503 606 ;
+C 197 ; WX 600 ; N macron ; B 120 525 480 565 ;
+C 198 ; WX 600 ; N breve ; B 153 501 447 609 ;
+C 199 ; WX 600 ; N dotaccent ; B 249 537 352 640 ;
+C 200 ; WX 600 ; N dieresis ; B 148 537 453 640 ;
+C 202 ; WX 600 ; N ring ; B 218 463 382 627 ;
+C 203 ; WX 600 ; N cedilla ; B 224 -151 362 10 ;
+C 205 ; WX 600 ; N hungarumlaut ; B 133 497 540 672 ;
+C 206 ; WX 600 ; N ogonek ; B 211 -172 407 4 ;
+C 207 ; WX 600 ; N caron ; B 124 492 476 669 ;
+C 208 ; WX 600 ; N emdash ; B 0 231 600 285 ;
+C 225 ; WX 600 ; N AE ; B 3 0 550 562 ;
+C 227 ; WX 600 ; N ordfeminine ; B 156 249 442 580 ;
+C 232 ; WX 600 ; N Lslash ; B 47 0 554 562 ;
+C 233 ; WX 600 ; N Oslash ; B 43 -80 557 629 ;
+C 234 ; WX 600 ; N OE ; B 7 0 567 562 ;
+C 235 ; WX 600 ; N ordmasculine ; B 157 249 443 580 ;
+C 241 ; WX 600 ; N ae ; B 19 -15 570 441 ;
+C 245 ; WX 600 ; N dotlessi ; B 95 0 505 426 ;
+C 248 ; WX 600 ; N lslash ; B 95 0 505 629 ;
+C 249 ; WX 600 ; N oslash ; B 62 -80 538 506 ;
+C 250 ; WX 600 ; N oe ; B 19 -15 559 441 ;
+C 251 ; WX 600 ; N germandbls ; B 48 -15 588 629 ;
+C -1 ; WX 600 ; N Idieresis ; B 96 0 504 753 ;
+C -1 ; WX 600 ; N eacute ; B 66 -15 548 672 ;
+C -1 ; WX 600 ; N abreve ; B 53 -15 559 609 ;
+C -1 ; WX 600 ; N uhungarumlaut ; B 21 -15 580 672 ;
+C -1 ; WX 600 ; N ecaron ; B 66 -15 548 669 ;
+C -1 ; WX 600 ; N Ydieresis ; B 24 0 576 753 ;
+C -1 ; WX 600 ; N divide ; B 87 48 513 467 ;
+C -1 ; WX 600 ; N Yacute ; B 24 0 576 805 ;
+C -1 ; WX 600 ; N Acircumflex ; B 3 0 597 787 ;
+C -1 ; WX 600 ; N aacute ; B 53 -15 559 672 ;
+C -1 ; WX 600 ; N Ucircumflex ; B 17 -18 583 787 ;
+C -1 ; WX 600 ; N yacute ; B 7 -157 592 672 ;
+C -1 ; WX 600 ; N scommaaccent ; B 80 -250 513 441 ;
+C -1 ; WX 600 ; N ecircumflex ; B 66 -15 548 654 ;
+C -1 ; WX 600 ; N Uring ; B 17 -18 583 760 ;
+C -1 ; WX 600 ; N Udieresis ; B 17 -18 583 753 ;
+C -1 ; WX 600 ; N aogonek ; B 53 -172 587 441 ;
+C -1 ; WX 600 ; N Uacute ; B 17 -18 583 805 ;
+C -1 ; WX 600 ; N uogonek ; B 21 -172 590 426 ;
+C -1 ; WX 600 ; N Edieresis ; B 53 0 550 753 ;
+C -1 ; WX 600 ; N Dcroat ; B 30 0 574 562 ;
+C -1 ; WX 600 ; N commaaccent ; B 198 -250 335 -58 ;
+C -1 ; WX 600 ; N copyright ; B 0 -18 600 580 ;
+C -1 ; WX 600 ; N Emacron ; B 53 0 550 698 ;
+C -1 ; WX 600 ; N ccaron ; B 66 -15 529 669 ;
+C -1 ; WX 600 ; N aring ; B 53 -15 559 627 ;
+C -1 ; WX 600 ; N Ncommaaccent ; B 7 -250 593 562 ;
+C -1 ; WX 600 ; N lacute ; B 95 0 505 805 ;
+C -1 ; WX 600 ; N agrave ; B 53 -15 559 672 ;
+C -1 ; WX 600 ; N Tcommaaccent ; B 38 -250 563 562 ;
+C -1 ; WX 600 ; N Cacute ; B 41 -18 540 805 ;
+C -1 ; WX 600 ; N atilde ; B 53 -15 559 606 ;
+C -1 ; WX 600 ; N Edotaccent ; B 53 0 550 753 ;
+C -1 ; WX 600 ; N scaron ; B 80 -15 513 669 ;
+C -1 ; WX 600 ; N scedilla ; B 80 -151 513 441 ;
+C -1 ; WX 600 ; N iacute ; B 95 0 505 672 ;
+C -1 ; WX 600 ; N lozenge ; B 18 0 443 706 ;
+C -1 ; WX 600 ; N Rcaron ; B 38 0 588 802 ;
+C -1 ; WX 600 ; N Gcommaaccent ; B 31 -250 575 580 ;
+C -1 ; WX 600 ; N ucircumflex ; B 21 -15 562 654 ;
+C -1 ; WX 600 ; N acircumflex ; B 53 -15 559 654 ;
+C -1 ; WX 600 ; N Amacron ; B 3 0 597 698 ;
+C -1 ; WX 600 ; N rcaron ; B 60 0 559 669 ;
+C -1 ; WX 600 ; N ccedilla ; B 66 -151 529 441 ;
+C -1 ; WX 600 ; N Zdotaccent ; B 86 0 514 753 ;
+C -1 ; WX 600 ; N Thorn ; B 79 0 538 562 ;
+C -1 ; WX 600 ; N Omacron ; B 43 -18 557 698 ;
+C -1 ; WX 600 ; N Racute ; B 38 0 588 805 ;
+C -1 ; WX 600 ; N Sacute ; B 72 -20 529 805 ;
+C -1 ; WX 600 ; N dcaron ; B 45 -15 715 629 ;
+C -1 ; WX 600 ; N Umacron ; B 17 -18 583 698 ;
+C -1 ; WX 600 ; N uring ; B 21 -15 562 627 ;
+C -1 ; WX 600 ; N threesuperior ; B 155 240 406 622 ;
+C -1 ; WX 600 ; N Ograve ; B 43 -18 557 805 ;
+C -1 ; WX 600 ; N Agrave ; B 3 0 597 805 ;
+C -1 ; WX 600 ; N Abreve ; B 3 0 597 732 ;
+C -1 ; WX 600 ; N multiply ; B 87 43 515 470 ;
+C -1 ; WX 600 ; N uacute ; B 21 -15 562 672 ;
+C -1 ; WX 600 ; N Tcaron ; B 38 0 563 802 ;
+C -1 ; WX 600 ; N partialdiff ; B 17 -38 459 710 ;
+C -1 ; WX 600 ; N ydieresis ; B 7 -157 592 620 ;
+C -1 ; WX 600 ; N Nacute ; B 7 -13 593 805 ;
+C -1 ; WX 600 ; N icircumflex ; B 94 0 505 654 ;
+C -1 ; WX 600 ; N Ecircumflex ; B 53 0 550 787 ;
+C -1 ; WX 600 ; N adieresis ; B 53 -15 559 620 ;
+C -1 ; WX 600 ; N edieresis ; B 66 -15 548 620 ;
+C -1 ; WX 600 ; N cacute ; B 66 -15 529 672 ;
+C -1 ; WX 600 ; N nacute ; B 26 0 575 672 ;
+C -1 ; WX 600 ; N umacron ; B 21 -15 562 565 ;
+C -1 ; WX 600 ; N Ncaron ; B 7 -13 593 802 ;
+C -1 ; WX 600 ; N Iacute ; B 96 0 504 805 ;
+C -1 ; WX 600 ; N plusminus ; B 87 44 513 558 ;
+C -1 ; WX 600 ; N brokenbar ; B 275 -175 326 675 ;
+C -1 ; WX 600 ; N registered ; B 0 -18 600 580 ;
+C -1 ; WX 600 ; N Gbreve ; B 31 -18 575 732 ;
+C -1 ; WX 600 ; N Idotaccent ; B 96 0 504 753 ;
+C -1 ; WX 600 ; N summation ; B 15 -10 585 706 ;
+C -1 ; WX 600 ; N Egrave ; B 53 0 550 805 ;
+C -1 ; WX 600 ; N racute ; B 60 0 559 672 ;
+C -1 ; WX 600 ; N omacron ; B 62 -15 538 565 ;
+C -1 ; WX 600 ; N Zacute ; B 86 0 514 805 ;
+C -1 ; WX 600 ; N Zcaron ; B 86 0 514 802 ;
+C -1 ; WX 600 ; N greaterequal ; B 98 0 502 710 ;
+C -1 ; WX 600 ; N Eth ; B 30 0 574 562 ;
+C -1 ; WX 600 ; N Ccedilla ; B 41 -151 540 580 ;
+C -1 ; WX 600 ; N lcommaaccent ; B 95 -250 505 629 ;
+C -1 ; WX 600 ; N tcaron ; B 87 -15 530 717 ;
+C -1 ; WX 600 ; N eogonek ; B 66 -172 548 441 ;
+C -1 ; WX 600 ; N Uogonek ; B 17 -172 583 562 ;
+C -1 ; WX 600 ; N Aacute ; B 3 0 597 805 ;
+C -1 ; WX 600 ; N Adieresis ; B 3 0 597 753 ;
+C -1 ; WX 600 ; N egrave ; B 66 -15 548 672 ;
+C -1 ; WX 600 ; N zacute ; B 99 0 502 672 ;
+C -1 ; WX 600 ; N iogonek ; B 95 -172 505 657 ;
+C -1 ; WX 600 ; N Oacute ; B 43 -18 557 805 ;
+C -1 ; WX 600 ; N oacute ; B 62 -15 538 672 ;
+C -1 ; WX 600 ; N amacron ; B 53 -15 559 565 ;
+C -1 ; WX 600 ; N sacute ; B 80 -15 513 672 ;
+C -1 ; WX 600 ; N idieresis ; B 95 0 505 620 ;
+C -1 ; WX 600 ; N Ocircumflex ; B 43 -18 557 787 ;
+C -1 ; WX 600 ; N Ugrave ; B 17 -18 583 805 ;
+C -1 ; WX 600 ; N Delta ; B 6 0 598 688 ;
+C -1 ; WX 600 ; N thorn ; B -6 -157 555 629 ;
+C -1 ; WX 600 ; N twosuperior ; B 177 249 424 622 ;
+C -1 ; WX 600 ; N Odieresis ; B 43 -18 557 753 ;
+C -1 ; WX 600 ; N mu ; B 21 -157 562 426 ;
+C -1 ; WX 600 ; N igrave ; B 95 0 505 672 ;
+C -1 ; WX 600 ; N ohungarumlaut ; B 62 -15 580 672 ;
+C -1 ; WX 600 ; N Eogonek ; B 53 -172 561 562 ;
+C -1 ; WX 600 ; N dcroat ; B 45 -15 591 629 ;
+C -1 ; WX 600 ; N threequarters ; B 8 -56 593 666 ;
+C -1 ; WX 600 ; N Scedilla ; B 72 -151 529 580 ;
+C -1 ; WX 600 ; N lcaron ; B 95 0 533 629 ;
+C -1 ; WX 600 ; N Kcommaaccent ; B 38 -250 582 562 ;
+C -1 ; WX 600 ; N Lacute ; B 47 0 554 805 ;
+C -1 ; WX 600 ; N trademark ; B -23 263 623 562 ;
+C -1 ; WX 600 ; N edotaccent ; B 66 -15 548 620 ;
+C -1 ; WX 600 ; N Igrave ; B 96 0 504 805 ;
+C -1 ; WX 600 ; N Imacron ; B 96 0 504 698 ;
+C -1 ; WX 600 ; N Lcaron ; B 47 0 554 562 ;
+C -1 ; WX 600 ; N onehalf ; B 0 -57 611 665 ;
+C -1 ; WX 600 ; N lessequal ; B 98 0 502 710 ;
+C -1 ; WX 600 ; N ocircumflex ; B 62 -15 538 654 ;
+C -1 ; WX 600 ; N ntilde ; B 26 0 575 606 ;
+C -1 ; WX 600 ; N Uhungarumlaut ; B 17 -18 590 805 ;
+C -1 ; WX 600 ; N Eacute ; B 53 0 550 805 ;
+C -1 ; WX 600 ; N emacron ; B 66 -15 548 565 ;
+C -1 ; WX 600 ; N gbreve ; B 45 -157 566 609 ;
+C -1 ; WX 600 ; N onequarter ; B 0 -57 600 665 ;
+C -1 ; WX 600 ; N Scaron ; B 72 -20 529 802 ;
+C -1 ; WX 600 ; N Scommaaccent ; B 72 -250 529 580 ;
+C -1 ; WX 600 ; N Ohungarumlaut ; B 43 -18 580 805 ;
+C -1 ; WX 600 ; N degree ; B 123 269 477 622 ;
+C -1 ; WX 600 ; N ograve ; B 62 -15 538 672 ;
+C -1 ; WX 600 ; N Ccaron ; B 41 -18 540 802 ;
+C -1 ; WX 600 ; N ugrave ; B 21 -15 562 672 ;
+C -1 ; WX 600 ; N radical ; B 3 -15 597 792 ;
+C -1 ; WX 600 ; N Dcaron ; B 43 0 574 802 ;
+C -1 ; WX 600 ; N rcommaaccent ; B 60 -250 559 441 ;
+C -1 ; WX 600 ; N Ntilde ; B 7 -13 593 729 ;
+C -1 ; WX 600 ; N otilde ; B 62 -15 538 606 ;
+C -1 ; WX 600 ; N Rcommaaccent ; B 38 -250 588 562 ;
+C -1 ; WX 600 ; N Lcommaaccent ; B 47 -250 554 562 ;
+C -1 ; WX 600 ; N Atilde ; B 3 0 597 729 ;
+C -1 ; WX 600 ; N Aogonek ; B 3 -172 608 562 ;
+C -1 ; WX 600 ; N Aring ; B 3 0 597 750 ;
+C -1 ; WX 600 ; N Otilde ; B 43 -18 557 729 ;
+C -1 ; WX 600 ; N zdotaccent ; B 99 0 502 620 ;
+C -1 ; WX 600 ; N Ecaron ; B 53 0 550 802 ;
+C -1 ; WX 600 ; N Iogonek ; B 96 -172 504 562 ;
+C -1 ; WX 600 ; N kcommaaccent ; B 43 -250 580 629 ;
+C -1 ; WX 600 ; N minus ; B 80 232 520 283 ;
+C -1 ; WX 600 ; N Icircumflex ; B 96 0 504 787 ;
+C -1 ; WX 600 ; N ncaron ; B 26 0 575 669 ;
+C -1 ; WX 600 ; N tcommaaccent ; B 87 -250 530 561 ;
+C -1 ; WX 600 ; N logicalnot ; B 87 108 513 369 ;
+C -1 ; WX 600 ; N odieresis ; B 62 -15 538 620 ;
+C -1 ; WX 600 ; N udieresis ; B 21 -15 562 620 ;
+C -1 ; WX 600 ; N notequal ; B 15 -16 540 529 ;
+C -1 ; WX 600 ; N gcommaaccent ; B 45 -157 566 708 ;
+C -1 ; WX 600 ; N eth ; B 62 -15 538 629 ;
+C -1 ; WX 600 ; N zcaron ; B 99 0 502 669 ;
+C -1 ; WX 600 ; N ncommaaccent ; B 26 -250 575 441 ;
+C -1 ; WX 600 ; N onesuperior ; B 172 249 428 622 ;
+C -1 ; WX 600 ; N imacron ; B 95 0 505 565 ;
+C -1 ; WX 600 ; N Euro ; B 0 0 0 0 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/php/extras/fonts/ps/Helvetica-Bold.afm b/php/extras/fonts/ps/Helvetica-Bold.afm
new file mode 100644
index 000000000..837c594e0
--- /dev/null
+++ b/php/extras/fonts/ps/Helvetica-Bold.afm
@@ -0,0 +1,2827 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Thu May 1 12:43:52 1997
+Comment UniqueID 43052
+Comment VMusage 37169 48194
+FontName Helvetica-Bold
+FullName Helvetica Bold
+FamilyName Helvetica
+Weight Bold
+ItalicAngle 0
+IsFixedPitch false
+CharacterSet ExtendedRoman
+FontBBox -170 -228 1003 962
+UnderlinePosition -100
+UnderlineThickness 50
+Version 002.000
+Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries.
+EncodingScheme AdobeStandardEncoding
+CapHeight 718
+XHeight 532
+Ascender 718
+Descender -207
+StdHW 118
+StdVW 140
+StartCharMetrics 315
+C 32 ; WX 278 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 333 ; N exclam ; B 90 0 244 718 ;
+C 34 ; WX 474 ; N quotedbl ; B 98 447 376 718 ;
+C 35 ; WX 556 ; N numbersign ; B 18 0 538 698 ;
+C 36 ; WX 556 ; N dollar ; B 30 -115 523 775 ;
+C 37 ; WX 889 ; N percent ; B 28 -19 861 710 ;
+C 38 ; WX 722 ; N ampersand ; B 54 -19 701 718 ;
+C 39 ; WX 278 ; N quoteright ; B 69 445 209 718 ;
+C 40 ; WX 333 ; N parenleft ; B 35 -208 314 734 ;
+C 41 ; WX 333 ; N parenright ; B 19 -208 298 734 ;
+C 42 ; WX 389 ; N asterisk ; B 27 387 362 718 ;
+C 43 ; WX 584 ; N plus ; B 40 0 544 506 ;
+C 44 ; WX 278 ; N comma ; B 64 -168 214 146 ;
+C 45 ; WX 333 ; N hyphen ; B 27 215 306 345 ;
+C 46 ; WX 278 ; N period ; B 64 0 214 146 ;
+C 47 ; WX 278 ; N slash ; B -33 -19 311 737 ;
+C 48 ; WX 556 ; N zero ; B 32 -19 524 710 ;
+C 49 ; WX 556 ; N one ; B 69 0 378 710 ;
+C 50 ; WX 556 ; N two ; B 26 0 511 710 ;
+C 51 ; WX 556 ; N three ; B 27 -19 516 710 ;
+C 52 ; WX 556 ; N four ; B 27 0 526 710 ;
+C 53 ; WX 556 ; N five ; B 27 -19 516 698 ;
+C 54 ; WX 556 ; N six ; B 31 -19 520 710 ;
+C 55 ; WX 556 ; N seven ; B 25 0 528 698 ;
+C 56 ; WX 556 ; N eight ; B 32 -19 524 710 ;
+C 57 ; WX 556 ; N nine ; B 30 -19 522 710 ;
+C 58 ; WX 333 ; N colon ; B 92 0 242 512 ;
+C 59 ; WX 333 ; N semicolon ; B 92 -168 242 512 ;
+C 60 ; WX 584 ; N less ; B 38 -8 546 514 ;
+C 61 ; WX 584 ; N equal ; B 40 87 544 419 ;
+C 62 ; WX 584 ; N greater ; B 38 -8 546 514 ;
+C 63 ; WX 611 ; N question ; B 60 0 556 727 ;
+C 64 ; WX 975 ; N at ; B 118 -19 856 737 ;
+C 65 ; WX 722 ; N A ; B 20 0 702 718 ;
+C 66 ; WX 722 ; N B ; B 76 0 669 718 ;
+C 67 ; WX 722 ; N C ; B 44 -19 684 737 ;
+C 68 ; WX 722 ; N D ; B 76 0 685 718 ;
+C 69 ; WX 667 ; N E ; B 76 0 621 718 ;
+C 70 ; WX 611 ; N F ; B 76 0 587 718 ;
+C 71 ; WX 778 ; N G ; B 44 -19 713 737 ;
+C 72 ; WX 722 ; N H ; B 71 0 651 718 ;
+C 73 ; WX 278 ; N I ; B 64 0 214 718 ;
+C 74 ; WX 556 ; N J ; B 22 -18 484 718 ;
+C 75 ; WX 722 ; N K ; B 87 0 722 718 ;
+C 76 ; WX 611 ; N L ; B 76 0 583 718 ;
+C 77 ; WX 833 ; N M ; B 69 0 765 718 ;
+C 78 ; WX 722 ; N N ; B 69 0 654 718 ;
+C 79 ; WX 778 ; N O ; B 44 -19 734 737 ;
+C 80 ; WX 667 ; N P ; B 76 0 627 718 ;
+C 81 ; WX 778 ; N Q ; B 44 -52 737 737 ;
+C 82 ; WX 722 ; N R ; B 76 0 677 718 ;
+C 83 ; WX 667 ; N S ; B 39 -19 629 737 ;
+C 84 ; WX 611 ; N T ; B 14 0 598 718 ;
+C 85 ; WX 722 ; N U ; B 72 -19 651 718 ;
+C 86 ; WX 667 ; N V ; B 19 0 648 718 ;
+C 87 ; WX 944 ; N W ; B 16 0 929 718 ;
+C 88 ; WX 667 ; N X ; B 14 0 653 718 ;
+C 89 ; WX 667 ; N Y ; B 15 0 653 718 ;
+C 90 ; WX 611 ; N Z ; B 25 0 586 718 ;
+C 91 ; WX 333 ; N bracketleft ; B 63 -196 309 722 ;
+C 92 ; WX 278 ; N backslash ; B -33 -19 311 737 ;
+C 93 ; WX 333 ; N bracketright ; B 24 -196 270 722 ;
+C 94 ; WX 584 ; N asciicircum ; B 62 323 522 698 ;
+C 95 ; WX 556 ; N underscore ; B 0 -125 556 -75 ;
+C 96 ; WX 278 ; N quoteleft ; B 69 454 209 727 ;
+C 97 ; WX 556 ; N a ; B 29 -14 527 546 ;
+C 98 ; WX 611 ; N b ; B 61 -14 578 718 ;
+C 99 ; WX 556 ; N c ; B 34 -14 524 546 ;
+C 100 ; WX 611 ; N d ; B 34 -14 551 718 ;
+C 101 ; WX 556 ; N e ; B 23 -14 528 546 ;
+C 102 ; WX 333 ; N f ; B 10 0 318 727 ; L i fi ; L l fl ;
+C 103 ; WX 611 ; N g ; B 40 -217 553 546 ;
+C 104 ; WX 611 ; N h ; B 65 0 546 718 ;
+C 105 ; WX 278 ; N i ; B 69 0 209 725 ;
+C 106 ; WX 278 ; N j ; B 3 -214 209 725 ;
+C 107 ; WX 556 ; N k ; B 69 0 562 718 ;
+C 108 ; WX 278 ; N l ; B 69 0 209 718 ;
+C 109 ; WX 889 ; N m ; B 64 0 826 546 ;
+C 110 ; WX 611 ; N n ; B 65 0 546 546 ;
+C 111 ; WX 611 ; N o ; B 34 -14 578 546 ;
+C 112 ; WX 611 ; N p ; B 62 -207 578 546 ;
+C 113 ; WX 611 ; N q ; B 34 -207 552 546 ;
+C 114 ; WX 389 ; N r ; B 64 0 373 546 ;
+C 115 ; WX 556 ; N s ; B 30 -14 519 546 ;
+C 116 ; WX 333 ; N t ; B 10 -6 309 676 ;
+C 117 ; WX 611 ; N u ; B 66 -14 545 532 ;
+C 118 ; WX 556 ; N v ; B 13 0 543 532 ;
+C 119 ; WX 778 ; N w ; B 10 0 769 532 ;
+C 120 ; WX 556 ; N x ; B 15 0 541 532 ;
+C 121 ; WX 556 ; N y ; B 10 -214 539 532 ;
+C 122 ; WX 500 ; N z ; B 20 0 480 532 ;
+C 123 ; WX 389 ; N braceleft ; B 48 -196 365 722 ;
+C 124 ; WX 280 ; N bar ; B 84 -225 196 775 ;
+C 125 ; WX 389 ; N braceright ; B 24 -196 341 722 ;
+C 126 ; WX 584 ; N asciitilde ; B 61 163 523 343 ;
+C 161 ; WX 333 ; N exclamdown ; B 90 -186 244 532 ;
+C 162 ; WX 556 ; N cent ; B 34 -118 524 628 ;
+C 163 ; WX 556 ; N sterling ; B 28 -16 541 718 ;
+C 164 ; WX 167 ; N fraction ; B -170 -19 336 710 ;
+C 165 ; WX 556 ; N yen ; B -9 0 565 698 ;
+C 166 ; WX 556 ; N florin ; B -10 -210 516 737 ;
+C 167 ; WX 556 ; N section ; B 34 -184 522 727 ;
+C 168 ; WX 556 ; N currency ; B -3 76 559 636 ;
+C 169 ; WX 238 ; N quotesingle ; B 70 447 168 718 ;
+C 170 ; WX 500 ; N quotedblleft ; B 64 454 436 727 ;
+C 171 ; WX 556 ; N guillemotleft ; B 88 76 468 484 ;
+C 172 ; WX 333 ; N guilsinglleft ; B 83 76 250 484 ;
+C 173 ; WX 333 ; N guilsinglright ; B 83 76 250 484 ;
+C 174 ; WX 611 ; N fi ; B 10 0 542 727 ;
+C 175 ; WX 611 ; N fl ; B 10 0 542 727 ;
+C 177 ; WX 556 ; N endash ; B 0 227 556 333 ;
+C 178 ; WX 556 ; N dagger ; B 36 -171 520 718 ;
+C 179 ; WX 556 ; N daggerdbl ; B 36 -171 520 718 ;
+C 180 ; WX 278 ; N periodcentered ; B 58 172 220 334 ;
+C 182 ; WX 556 ; N paragraph ; B -8 -191 539 700 ;
+C 183 ; WX 350 ; N bullet ; B 10 194 340 524 ;
+C 184 ; WX 278 ; N quotesinglbase ; B 69 -146 209 127 ;
+C 185 ; WX 500 ; N quotedblbase ; B 64 -146 436 127 ;
+C 186 ; WX 500 ; N quotedblright ; B 64 445 436 718 ;
+C 187 ; WX 556 ; N guillemotright ; B 88 76 468 484 ;
+C 188 ; WX 1000 ; N ellipsis ; B 92 0 908 146 ;
+C 189 ; WX 1000 ; N perthousand ; B -3 -19 1003 710 ;
+C 191 ; WX 611 ; N questiondown ; B 55 -195 551 532 ;
+C 193 ; WX 333 ; N grave ; B -23 604 225 750 ;
+C 194 ; WX 333 ; N acute ; B 108 604 356 750 ;
+C 195 ; WX 333 ; N circumflex ; B -10 604 343 750 ;
+C 196 ; WX 333 ; N tilde ; B -17 610 350 737 ;
+C 197 ; WX 333 ; N macron ; B -6 604 339 678 ;
+C 198 ; WX 333 ; N breve ; B -2 604 335 750 ;
+C 199 ; WX 333 ; N dotaccent ; B 104 614 230 729 ;
+C 200 ; WX 333 ; N dieresis ; B 6 614 327 729 ;
+C 202 ; WX 333 ; N ring ; B 59 568 275 776 ;
+C 203 ; WX 333 ; N cedilla ; B 6 -228 245 0 ;
+C 205 ; WX 333 ; N hungarumlaut ; B 9 604 486 750 ;
+C 206 ; WX 333 ; N ogonek ; B 71 -228 304 0 ;
+C 207 ; WX 333 ; N caron ; B -10 604 343 750 ;
+C 208 ; WX 1000 ; N emdash ; B 0 227 1000 333 ;
+C 225 ; WX 1000 ; N AE ; B 5 0 954 718 ;
+C 227 ; WX 370 ; N ordfeminine ; B 22 401 347 737 ;
+C 232 ; WX 611 ; N Lslash ; B -20 0 583 718 ;
+C 233 ; WX 778 ; N Oslash ; B 33 -27 744 745 ;
+C 234 ; WX 1000 ; N OE ; B 37 -19 961 737 ;
+C 235 ; WX 365 ; N ordmasculine ; B 6 401 360 737 ;
+C 241 ; WX 889 ; N ae ; B 29 -14 858 546 ;
+C 245 ; WX 278 ; N dotlessi ; B 69 0 209 532 ;
+C 248 ; WX 278 ; N lslash ; B -18 0 296 718 ;
+C 249 ; WX 611 ; N oslash ; B 22 -29 589 560 ;
+C 250 ; WX 944 ; N oe ; B 34 -14 912 546 ;
+C 251 ; WX 611 ; N germandbls ; B 69 -14 579 731 ;
+C -1 ; WX 278 ; N Idieresis ; B -21 0 300 915 ;
+C -1 ; WX 556 ; N eacute ; B 23 -14 528 750 ;
+C -1 ; WX 556 ; N abreve ; B 29 -14 527 750 ;
+C -1 ; WX 611 ; N uhungarumlaut ; B 66 -14 625 750 ;
+C -1 ; WX 556 ; N ecaron ; B 23 -14 528 750 ;
+C -1 ; WX 667 ; N Ydieresis ; B 15 0 653 915 ;
+C -1 ; WX 584 ; N divide ; B 40 -42 544 548 ;
+C -1 ; WX 667 ; N Yacute ; B 15 0 653 936 ;
+C -1 ; WX 722 ; N Acircumflex ; B 20 0 702 936 ;
+C -1 ; WX 556 ; N aacute ; B 29 -14 527 750 ;
+C -1 ; WX 722 ; N Ucircumflex ; B 72 -19 651 936 ;
+C -1 ; WX 556 ; N yacute ; B 10 -214 539 750 ;
+C -1 ; WX 556 ; N scommaaccent ; B 30 -228 519 546 ;
+C -1 ; WX 556 ; N ecircumflex ; B 23 -14 528 750 ;
+C -1 ; WX 722 ; N Uring ; B 72 -19 651 962 ;
+C -1 ; WX 722 ; N Udieresis ; B 72 -19 651 915 ;
+C -1 ; WX 556 ; N aogonek ; B 29 -224 545 546 ;
+C -1 ; WX 722 ; N Uacute ; B 72 -19 651 936 ;
+C -1 ; WX 611 ; N uogonek ; B 66 -228 545 532 ;
+C -1 ; WX 667 ; N Edieresis ; B 76 0 621 915 ;
+C -1 ; WX 722 ; N Dcroat ; B -5 0 685 718 ;
+C -1 ; WX 250 ; N commaaccent ; B 64 -228 199 -50 ;
+C -1 ; WX 737 ; N copyright ; B -11 -19 749 737 ;
+C -1 ; WX 667 ; N Emacron ; B 76 0 621 864 ;
+C -1 ; WX 556 ; N ccaron ; B 34 -14 524 750 ;
+C -1 ; WX 556 ; N aring ; B 29 -14 527 776 ;
+C -1 ; WX 722 ; N Ncommaaccent ; B 69 -228 654 718 ;
+C -1 ; WX 278 ; N lacute ; B 69 0 329 936 ;
+C -1 ; WX 556 ; N agrave ; B 29 -14 527 750 ;
+C -1 ; WX 611 ; N Tcommaaccent ; B 14 -228 598 718 ;
+C -1 ; WX 722 ; N Cacute ; B 44 -19 684 936 ;
+C -1 ; WX 556 ; N atilde ; B 29 -14 527 737 ;
+C -1 ; WX 667 ; N Edotaccent ; B 76 0 621 915 ;
+C -1 ; WX 556 ; N scaron ; B 30 -14 519 750 ;
+C -1 ; WX 556 ; N scedilla ; B 30 -228 519 546 ;
+C -1 ; WX 278 ; N iacute ; B 69 0 329 750 ;
+C -1 ; WX 494 ; N lozenge ; B 10 0 484 745 ;
+C -1 ; WX 722 ; N Rcaron ; B 76 0 677 936 ;
+C -1 ; WX 778 ; N Gcommaaccent ; B 44 -228 713 737 ;
+C -1 ; WX 611 ; N ucircumflex ; B 66 -14 545 750 ;
+C -1 ; WX 556 ; N acircumflex ; B 29 -14 527 750 ;
+C -1 ; WX 722 ; N Amacron ; B 20 0 702 864 ;
+C -1 ; WX 389 ; N rcaron ; B 18 0 373 750 ;
+C -1 ; WX 556 ; N ccedilla ; B 34 -228 524 546 ;
+C -1 ; WX 611 ; N Zdotaccent ; B 25 0 586 915 ;
+C -1 ; WX 667 ; N Thorn ; B 76 0 627 718 ;
+C -1 ; WX 778 ; N Omacron ; B 44 -19 734 864 ;
+C -1 ; WX 722 ; N Racute ; B 76 0 677 936 ;
+C -1 ; WX 667 ; N Sacute ; B 39 -19 629 936 ;
+C -1 ; WX 743 ; N dcaron ; B 34 -14 750 718 ;
+C -1 ; WX 722 ; N Umacron ; B 72 -19 651 864 ;
+C -1 ; WX 611 ; N uring ; B 66 -14 545 776 ;
+C -1 ; WX 333 ; N threesuperior ; B 8 271 326 710 ;
+C -1 ; WX 778 ; N Ograve ; B 44 -19 734 936 ;
+C -1 ; WX 722 ; N Agrave ; B 20 0 702 936 ;
+C -1 ; WX 722 ; N Abreve ; B 20 0 702 936 ;
+C -1 ; WX 584 ; N multiply ; B 40 1 545 505 ;
+C -1 ; WX 611 ; N uacute ; B 66 -14 545 750 ;
+C -1 ; WX 611 ; N Tcaron ; B 14 0 598 936 ;
+C -1 ; WX 494 ; N partialdiff ; B 11 -21 494 750 ;
+C -1 ; WX 556 ; N ydieresis ; B 10 -214 539 729 ;
+C -1 ; WX 722 ; N Nacute ; B 69 0 654 936 ;
+C -1 ; WX 278 ; N icircumflex ; B -37 0 316 750 ;
+C -1 ; WX 667 ; N Ecircumflex ; B 76 0 621 936 ;
+C -1 ; WX 556 ; N adieresis ; B 29 -14 527 729 ;
+C -1 ; WX 556 ; N edieresis ; B 23 -14 528 729 ;
+C -1 ; WX 556 ; N cacute ; B 34 -14 524 750 ;
+C -1 ; WX 611 ; N nacute ; B 65 0 546 750 ;
+C -1 ; WX 611 ; N umacron ; B 66 -14 545 678 ;
+C -1 ; WX 722 ; N Ncaron ; B 69 0 654 936 ;
+C -1 ; WX 278 ; N Iacute ; B 64 0 329 936 ;
+C -1 ; WX 584 ; N plusminus ; B 40 0 544 506 ;
+C -1 ; WX 280 ; N brokenbar ; B 84 -150 196 700 ;
+C -1 ; WX 737 ; N registered ; B -11 -19 748 737 ;
+C -1 ; WX 778 ; N Gbreve ; B 44 -19 713 936 ;
+C -1 ; WX 278 ; N Idotaccent ; B 64 0 214 915 ;
+C -1 ; WX 600 ; N summation ; B 14 -10 585 706 ;
+C -1 ; WX 667 ; N Egrave ; B 76 0 621 936 ;
+C -1 ; WX 389 ; N racute ; B 64 0 384 750 ;
+C -1 ; WX 611 ; N omacron ; B 34 -14 578 678 ;
+C -1 ; WX 611 ; N Zacute ; B 25 0 586 936 ;
+C -1 ; WX 611 ; N Zcaron ; B 25 0 586 936 ;
+C -1 ; WX 549 ; N greaterequal ; B 26 0 523 704 ;
+C -1 ; WX 722 ; N Eth ; B -5 0 685 718 ;
+C -1 ; WX 722 ; N Ccedilla ; B 44 -228 684 737 ;
+C -1 ; WX 278 ; N lcommaaccent ; B 69 -228 213 718 ;
+C -1 ; WX 389 ; N tcaron ; B 10 -6 421 878 ;
+C -1 ; WX 556 ; N eogonek ; B 23 -228 528 546 ;
+C -1 ; WX 722 ; N Uogonek ; B 72 -228 651 718 ;
+C -1 ; WX 722 ; N Aacute ; B 20 0 702 936 ;
+C -1 ; WX 722 ; N Adieresis ; B 20 0 702 915 ;
+C -1 ; WX 556 ; N egrave ; B 23 -14 528 750 ;
+C -1 ; WX 500 ; N zacute ; B 20 0 480 750 ;
+C -1 ; WX 278 ; N iogonek ; B 16 -224 249 725 ;
+C -1 ; WX 778 ; N Oacute ; B 44 -19 734 936 ;
+C -1 ; WX 611 ; N oacute ; B 34 -14 578 750 ;
+C -1 ; WX 556 ; N amacron ; B 29 -14 527 678 ;
+C -1 ; WX 556 ; N sacute ; B 30 -14 519 750 ;
+C -1 ; WX 278 ; N idieresis ; B -21 0 300 729 ;
+C -1 ; WX 778 ; N Ocircumflex ; B 44 -19 734 936 ;
+C -1 ; WX 722 ; N Ugrave ; B 72 -19 651 936 ;
+C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
+C -1 ; WX 611 ; N thorn ; B 62 -208 578 718 ;
+C -1 ; WX 333 ; N twosuperior ; B 9 283 324 710 ;
+C -1 ; WX 778 ; N Odieresis ; B 44 -19 734 915 ;
+C -1 ; WX 611 ; N mu ; B 66 -207 545 532 ;
+C -1 ; WX 278 ; N igrave ; B -50 0 209 750 ;
+C -1 ; WX 611 ; N ohungarumlaut ; B 34 -14 625 750 ;
+C -1 ; WX 667 ; N Eogonek ; B 76 -224 639 718 ;
+C -1 ; WX 611 ; N dcroat ; B 34 -14 650 718 ;
+C -1 ; WX 834 ; N threequarters ; B 16 -19 799 710 ;
+C -1 ; WX 667 ; N Scedilla ; B 39 -228 629 737 ;
+C -1 ; WX 400 ; N lcaron ; B 69 0 408 718 ;
+C -1 ; WX 722 ; N Kcommaaccent ; B 87 -228 722 718 ;
+C -1 ; WX 611 ; N Lacute ; B 76 0 583 936 ;
+C -1 ; WX 1000 ; N trademark ; B 44 306 956 718 ;
+C -1 ; WX 556 ; N edotaccent ; B 23 -14 528 729 ;
+C -1 ; WX 278 ; N Igrave ; B -50 0 214 936 ;
+C -1 ; WX 278 ; N Imacron ; B -33 0 312 864 ;
+C -1 ; WX 611 ; N Lcaron ; B 76 0 583 718 ;
+C -1 ; WX 834 ; N onehalf ; B 26 -19 794 710 ;
+C -1 ; WX 549 ; N lessequal ; B 29 0 526 704 ;
+C -1 ; WX 611 ; N ocircumflex ; B 34 -14 578 750 ;
+C -1 ; WX 611 ; N ntilde ; B 65 0 546 737 ;
+C -1 ; WX 722 ; N Uhungarumlaut ; B 72 -19 681 936 ;
+C -1 ; WX 667 ; N Eacute ; B 76 0 621 936 ;
+C -1 ; WX 556 ; N emacron ; B 23 -14 528 678 ;
+C -1 ; WX 611 ; N gbreve ; B 40 -217 553 750 ;
+C -1 ; WX 834 ; N onequarter ; B 26 -19 766 710 ;
+C -1 ; WX 667 ; N Scaron ; B 39 -19 629 936 ;
+C -1 ; WX 667 ; N Scommaaccent ; B 39 -228 629 737 ;
+C -1 ; WX 778 ; N Ohungarumlaut ; B 44 -19 734 936 ;
+C -1 ; WX 400 ; N degree ; B 57 426 343 712 ;
+C -1 ; WX 611 ; N ograve ; B 34 -14 578 750 ;
+C -1 ; WX 722 ; N Ccaron ; B 44 -19 684 936 ;
+C -1 ; WX 611 ; N ugrave ; B 66 -14 545 750 ;
+C -1 ; WX 549 ; N radical ; B 10 -46 512 850 ;
+C -1 ; WX 722 ; N Dcaron ; B 76 0 685 936 ;
+C -1 ; WX 389 ; N rcommaaccent ; B 64 -228 373 546 ;
+C -1 ; WX 722 ; N Ntilde ; B 69 0 654 923 ;
+C -1 ; WX 611 ; N otilde ; B 34 -14 578 737 ;
+C -1 ; WX 722 ; N Rcommaaccent ; B 76 -228 677 718 ;
+C -1 ; WX 611 ; N Lcommaaccent ; B 76 -228 583 718 ;
+C -1 ; WX 722 ; N Atilde ; B 20 0 702 923 ;
+C -1 ; WX 722 ; N Aogonek ; B 20 -224 742 718 ;
+C -1 ; WX 722 ; N Aring ; B 20 0 702 962 ;
+C -1 ; WX 778 ; N Otilde ; B 44 -19 734 923 ;
+C -1 ; WX 500 ; N zdotaccent ; B 20 0 480 729 ;
+C -1 ; WX 667 ; N Ecaron ; B 76 0 621 936 ;
+C -1 ; WX 278 ; N Iogonek ; B -11 -228 222 718 ;
+C -1 ; WX 556 ; N kcommaaccent ; B 69 -228 562 718 ;
+C -1 ; WX 584 ; N minus ; B 40 197 544 309 ;
+C -1 ; WX 278 ; N Icircumflex ; B -37 0 316 936 ;
+C -1 ; WX 611 ; N ncaron ; B 65 0 546 750 ;
+C -1 ; WX 333 ; N tcommaaccent ; B 10 -228 309 676 ;
+C -1 ; WX 584 ; N logicalnot ; B 40 108 544 419 ;
+C -1 ; WX 611 ; N odieresis ; B 34 -14 578 729 ;
+C -1 ; WX 611 ; N udieresis ; B 66 -14 545 729 ;
+C -1 ; WX 549 ; N notequal ; B 15 -49 540 570 ;
+C -1 ; WX 611 ; N gcommaaccent ; B 40 -217 553 850 ;
+C -1 ; WX 611 ; N eth ; B 34 -14 578 737 ;
+C -1 ; WX 500 ; N zcaron ; B 20 0 480 750 ;
+C -1 ; WX 611 ; N ncommaaccent ; B 65 -228 546 546 ;
+C -1 ; WX 333 ; N onesuperior ; B 26 283 237 710 ;
+C -1 ; WX 278 ; N imacron ; B -8 0 285 678 ;
+C -1 ; WX 556 ; N Euro ; B 0 0 0 0 ;
+EndCharMetrics
+StartKernData
+StartKernPairs 2481
+KPX A C -40
+KPX A Cacute -40
+KPX A Ccaron -40
+KPX A Ccedilla -40
+KPX A G -50
+KPX A Gbreve -50
+KPX A Gcommaaccent -50
+KPX A O -40
+KPX A Oacute -40
+KPX A Ocircumflex -40
+KPX A Odieresis -40
+KPX A Ograve -40
+KPX A Ohungarumlaut -40
+KPX A Omacron -40
+KPX A Oslash -40
+KPX A Otilde -40
+KPX A Q -40
+KPX A T -90
+KPX A Tcaron -90
+KPX A Tcommaaccent -90
+KPX A U -50
+KPX A Uacute -50
+KPX A Ucircumflex -50
+KPX A Udieresis -50
+KPX A Ugrave -50
+KPX A Uhungarumlaut -50
+KPX A Umacron -50
+KPX A Uogonek -50
+KPX A Uring -50
+KPX A V -80
+KPX A W -60
+KPX A Y -110
+KPX A Yacute -110
+KPX A Ydieresis -110
+KPX A u -30
+KPX A uacute -30
+KPX A ucircumflex -30
+KPX A udieresis -30
+KPX A ugrave -30
+KPX A uhungarumlaut -30
+KPX A umacron -30
+KPX A uogonek -30
+KPX A uring -30
+KPX A v -40
+KPX A w -30
+KPX A y -30
+KPX A yacute -30
+KPX A ydieresis -30
+KPX Aacute C -40
+KPX Aacute Cacute -40
+KPX Aacute Ccaron -40
+KPX Aacute Ccedilla -40
+KPX Aacute G -50
+KPX Aacute Gbreve -50
+KPX Aacute Gcommaaccent -50
+KPX Aacute O -40
+KPX Aacute Oacute -40
+KPX Aacute Ocircumflex -40
+KPX Aacute Odieresis -40
+KPX Aacute Ograve -40
+KPX Aacute Ohungarumlaut -40
+KPX Aacute Omacron -40
+KPX Aacute Oslash -40
+KPX Aacute Otilde -40
+KPX Aacute Q -40
+KPX Aacute T -90
+KPX Aacute Tcaron -90
+KPX Aacute Tcommaaccent -90
+KPX Aacute U -50
+KPX Aacute Uacute -50
+KPX Aacute Ucircumflex -50
+KPX Aacute Udieresis -50
+KPX Aacute Ugrave -50
+KPX Aacute Uhungarumlaut -50
+KPX Aacute Umacron -50
+KPX Aacute Uogonek -50
+KPX Aacute Uring -50
+KPX Aacute V -80
+KPX Aacute W -60
+KPX Aacute Y -110
+KPX Aacute Yacute -110
+KPX Aacute Ydieresis -110
+KPX Aacute u -30
+KPX Aacute uacute -30
+KPX Aacute ucircumflex -30
+KPX Aacute udieresis -30
+KPX Aacute ugrave -30
+KPX Aacute uhungarumlaut -30
+KPX Aacute umacron -30
+KPX Aacute uogonek -30
+KPX Aacute uring -30
+KPX Aacute v -40
+KPX Aacute w -30
+KPX Aacute y -30
+KPX Aacute yacute -30
+KPX Aacute ydieresis -30
+KPX Abreve C -40
+KPX Abreve Cacute -40
+KPX Abreve Ccaron -40
+KPX Abreve Ccedilla -40
+KPX Abreve G -50
+KPX Abreve Gbreve -50
+KPX Abreve Gcommaaccent -50
+KPX Abreve O -40
+KPX Abreve Oacute -40
+KPX Abreve Ocircumflex -40
+KPX Abreve Odieresis -40
+KPX Abreve Ograve -40
+KPX Abreve Ohungarumlaut -40
+KPX Abreve Omacron -40
+KPX Abreve Oslash -40
+KPX Abreve Otilde -40
+KPX Abreve Q -40
+KPX Abreve T -90
+KPX Abreve Tcaron -90
+KPX Abreve Tcommaaccent -90
+KPX Abreve U -50
+KPX Abreve Uacute -50
+KPX Abreve Ucircumflex -50
+KPX Abreve Udieresis -50
+KPX Abreve Ugrave -50
+KPX Abreve Uhungarumlaut -50
+KPX Abreve Umacron -50
+KPX Abreve Uogonek -50
+KPX Abreve Uring -50
+KPX Abreve V -80
+KPX Abreve W -60
+KPX Abreve Y -110
+KPX Abreve Yacute -110
+KPX Abreve Ydieresis -110
+KPX Abreve u -30
+KPX Abreve uacute -30
+KPX Abreve ucircumflex -30
+KPX Abreve udieresis -30
+KPX Abreve ugrave -30
+KPX Abreve uhungarumlaut -30
+KPX Abreve umacron -30
+KPX Abreve uogonek -30
+KPX Abreve uring -30
+KPX Abreve v -40
+KPX Abreve w -30
+KPX Abreve y -30
+KPX Abreve yacute -30
+KPX Abreve ydieresis -30
+KPX Acircumflex C -40
+KPX Acircumflex Cacute -40
+KPX Acircumflex Ccaron -40
+KPX Acircumflex Ccedilla -40
+KPX Acircumflex G -50
+KPX Acircumflex Gbreve -50
+KPX Acircumflex Gcommaaccent -50
+KPX Acircumflex O -40
+KPX Acircumflex Oacute -40
+KPX Acircumflex Ocircumflex -40
+KPX Acircumflex Odieresis -40
+KPX Acircumflex Ograve -40
+KPX Acircumflex Ohungarumlaut -40
+KPX Acircumflex Omacron -40
+KPX Acircumflex Oslash -40
+KPX Acircumflex Otilde -40
+KPX Acircumflex Q -40
+KPX Acircumflex T -90
+KPX Acircumflex Tcaron -90
+KPX Acircumflex Tcommaaccent -90
+KPX Acircumflex U -50
+KPX Acircumflex Uacute -50
+KPX Acircumflex Ucircumflex -50
+KPX Acircumflex Udieresis -50
+KPX Acircumflex Ugrave -50
+KPX Acircumflex Uhungarumlaut -50
+KPX Acircumflex Umacron -50
+KPX Acircumflex Uogonek -50
+KPX Acircumflex Uring -50
+KPX Acircumflex V -80
+KPX Acircumflex W -60
+KPX Acircumflex Y -110
+KPX Acircumflex Yacute -110
+KPX Acircumflex Ydieresis -110
+KPX Acircumflex u -30
+KPX Acircumflex uacute -30
+KPX Acircumflex ucircumflex -30
+KPX Acircumflex udieresis -30
+KPX Acircumflex ugrave -30
+KPX Acircumflex uhungarumlaut -30
+KPX Acircumflex umacron -30
+KPX Acircumflex uogonek -30
+KPX Acircumflex uring -30
+KPX Acircumflex v -40
+KPX Acircumflex w -30
+KPX Acircumflex y -30
+KPX Acircumflex yacute -30
+KPX Acircumflex ydieresis -30
+KPX Adieresis C -40
+KPX Adieresis Cacute -40
+KPX Adieresis Ccaron -40
+KPX Adieresis Ccedilla -40
+KPX Adieresis G -50
+KPX Adieresis Gbreve -50
+KPX Adieresis Gcommaaccent -50
+KPX Adieresis O -40
+KPX Adieresis Oacute -40
+KPX Adieresis Ocircumflex -40
+KPX Adieresis Odieresis -40
+KPX Adieresis Ograve -40
+KPX Adieresis Ohungarumlaut -40
+KPX Adieresis Omacron -40
+KPX Adieresis Oslash -40
+KPX Adieresis Otilde -40
+KPX Adieresis Q -40
+KPX Adieresis T -90
+KPX Adieresis Tcaron -90
+KPX Adieresis Tcommaaccent -90
+KPX Adieresis U -50
+KPX Adieresis Uacute -50
+KPX Adieresis Ucircumflex -50
+KPX Adieresis Udieresis -50
+KPX Adieresis Ugrave -50
+KPX Adieresis Uhungarumlaut -50
+KPX Adieresis Umacron -50
+KPX Adieresis Uogonek -50
+KPX Adieresis Uring -50
+KPX Adieresis V -80
+KPX Adieresis W -60
+KPX Adieresis Y -110
+KPX Adieresis Yacute -110
+KPX Adieresis Ydieresis -110
+KPX Adieresis u -30
+KPX Adieresis uacute -30
+KPX Adieresis ucircumflex -30
+KPX Adieresis udieresis -30
+KPX Adieresis ugrave -30
+KPX Adieresis uhungarumlaut -30
+KPX Adieresis umacron -30
+KPX Adieresis uogonek -30
+KPX Adieresis uring -30
+KPX Adieresis v -40
+KPX Adieresis w -30
+KPX Adieresis y -30
+KPX Adieresis yacute -30
+KPX Adieresis ydieresis -30
+KPX Agrave C -40
+KPX Agrave Cacute -40
+KPX Agrave Ccaron -40
+KPX Agrave Ccedilla -40
+KPX Agrave G -50
+KPX Agrave Gbreve -50
+KPX Agrave Gcommaaccent -50
+KPX Agrave O -40
+KPX Agrave Oacute -40
+KPX Agrave Ocircumflex -40
+KPX Agrave Odieresis -40
+KPX Agrave Ograve -40
+KPX Agrave Ohungarumlaut -40
+KPX Agrave Omacron -40
+KPX Agrave Oslash -40
+KPX Agrave Otilde -40
+KPX Agrave Q -40
+KPX Agrave T -90
+KPX Agrave Tcaron -90
+KPX Agrave Tcommaaccent -90
+KPX Agrave U -50
+KPX Agrave Uacute -50
+KPX Agrave Ucircumflex -50
+KPX Agrave Udieresis -50
+KPX Agrave Ugrave -50
+KPX Agrave Uhungarumlaut -50
+KPX Agrave Umacron -50
+KPX Agrave Uogonek -50
+KPX Agrave Uring -50
+KPX Agrave V -80
+KPX Agrave W -60
+KPX Agrave Y -110
+KPX Agrave Yacute -110
+KPX Agrave Ydieresis -110
+KPX Agrave u -30
+KPX Agrave uacute -30
+KPX Agrave ucircumflex -30
+KPX Agrave udieresis -30
+KPX Agrave ugrave -30
+KPX Agrave uhungarumlaut -30
+KPX Agrave umacron -30
+KPX Agrave uogonek -30
+KPX Agrave uring -30
+KPX Agrave v -40
+KPX Agrave w -30
+KPX Agrave y -30
+KPX Agrave yacute -30
+KPX Agrave ydieresis -30
+KPX Amacron C -40
+KPX Amacron Cacute -40
+KPX Amacron Ccaron -40
+KPX Amacron Ccedilla -40
+KPX Amacron G -50
+KPX Amacron Gbreve -50
+KPX Amacron Gcommaaccent -50
+KPX Amacron O -40
+KPX Amacron Oacute -40
+KPX Amacron Ocircumflex -40
+KPX Amacron Odieresis -40
+KPX Amacron Ograve -40
+KPX Amacron Ohungarumlaut -40
+KPX Amacron Omacron -40
+KPX Amacron Oslash -40
+KPX Amacron Otilde -40
+KPX Amacron Q -40
+KPX Amacron T -90
+KPX Amacron Tcaron -90
+KPX Amacron Tcommaaccent -90
+KPX Amacron U -50
+KPX Amacron Uacute -50
+KPX Amacron Ucircumflex -50
+KPX Amacron Udieresis -50
+KPX Amacron Ugrave -50
+KPX Amacron Uhungarumlaut -50
+KPX Amacron Umacron -50
+KPX Amacron Uogonek -50
+KPX Amacron Uring -50
+KPX Amacron V -80
+KPX Amacron W -60
+KPX Amacron Y -110
+KPX Amacron Yacute -110
+KPX Amacron Ydieresis -110
+KPX Amacron u -30
+KPX Amacron uacute -30
+KPX Amacron ucircumflex -30
+KPX Amacron udieresis -30
+KPX Amacron ugrave -30
+KPX Amacron uhungarumlaut -30
+KPX Amacron umacron -30
+KPX Amacron uogonek -30
+KPX Amacron uring -30
+KPX Amacron v -40
+KPX Amacron w -30
+KPX Amacron y -30
+KPX Amacron yacute -30
+KPX Amacron ydieresis -30
+KPX Aogonek C -40
+KPX Aogonek Cacute -40
+KPX Aogonek Ccaron -40
+KPX Aogonek Ccedilla -40
+KPX Aogonek G -50
+KPX Aogonek Gbreve -50
+KPX Aogonek Gcommaaccent -50
+KPX Aogonek O -40
+KPX Aogonek Oacute -40
+KPX Aogonek Ocircumflex -40
+KPX Aogonek Odieresis -40
+KPX Aogonek Ograve -40
+KPX Aogonek Ohungarumlaut -40
+KPX Aogonek Omacron -40
+KPX Aogonek Oslash -40
+KPX Aogonek Otilde -40
+KPX Aogonek Q -40
+KPX Aogonek T -90
+KPX Aogonek Tcaron -90
+KPX Aogonek Tcommaaccent -90
+KPX Aogonek U -50
+KPX Aogonek Uacute -50
+KPX Aogonek Ucircumflex -50
+KPX Aogonek Udieresis -50
+KPX Aogonek Ugrave -50
+KPX Aogonek Uhungarumlaut -50
+KPX Aogonek Umacron -50
+KPX Aogonek Uogonek -50
+KPX Aogonek Uring -50
+KPX Aogonek V -80
+KPX Aogonek W -60
+KPX Aogonek Y -110
+KPX Aogonek Yacute -110
+KPX Aogonek Ydieresis -110
+KPX Aogonek u -30
+KPX Aogonek uacute -30
+KPX Aogonek ucircumflex -30
+KPX Aogonek udieresis -30
+KPX Aogonek ugrave -30
+KPX Aogonek uhungarumlaut -30
+KPX Aogonek umacron -30
+KPX Aogonek uogonek -30
+KPX Aogonek uring -30
+KPX Aogonek v -40
+KPX Aogonek w -30
+KPX Aogonek y -30
+KPX Aogonek yacute -30
+KPX Aogonek ydieresis -30
+KPX Aring C -40
+KPX Aring Cacute -40
+KPX Aring Ccaron -40
+KPX Aring Ccedilla -40
+KPX Aring G -50
+KPX Aring Gbreve -50
+KPX Aring Gcommaaccent -50
+KPX Aring O -40
+KPX Aring Oacute -40
+KPX Aring Ocircumflex -40
+KPX Aring Odieresis -40
+KPX Aring Ograve -40
+KPX Aring Ohungarumlaut -40
+KPX Aring Omacron -40
+KPX Aring Oslash -40
+KPX Aring Otilde -40
+KPX Aring Q -40
+KPX Aring T -90
+KPX Aring Tcaron -90
+KPX Aring Tcommaaccent -90
+KPX Aring U -50
+KPX Aring Uacute -50
+KPX Aring Ucircumflex -50
+KPX Aring Udieresis -50
+KPX Aring Ugrave -50
+KPX Aring Uhungarumlaut -50
+KPX Aring Umacron -50
+KPX Aring Uogonek -50
+KPX Aring Uring -50
+KPX Aring V -80
+KPX Aring W -60
+KPX Aring Y -110
+KPX Aring Yacute -110
+KPX Aring Ydieresis -110
+KPX Aring u -30
+KPX Aring uacute -30
+KPX Aring ucircumflex -30
+KPX Aring udieresis -30
+KPX Aring ugrave -30
+KPX Aring uhungarumlaut -30
+KPX Aring umacron -30
+KPX Aring uogonek -30
+KPX Aring uring -30
+KPX Aring v -40
+KPX Aring w -30
+KPX Aring y -30
+KPX Aring yacute -30
+KPX Aring ydieresis -30
+KPX Atilde C -40
+KPX Atilde Cacute -40
+KPX Atilde Ccaron -40
+KPX Atilde Ccedilla -40
+KPX Atilde G -50
+KPX Atilde Gbreve -50
+KPX Atilde Gcommaaccent -50
+KPX Atilde O -40
+KPX Atilde Oacute -40
+KPX Atilde Ocircumflex -40
+KPX Atilde Odieresis -40
+KPX Atilde Ograve -40
+KPX Atilde Ohungarumlaut -40
+KPX Atilde Omacron -40
+KPX Atilde Oslash -40
+KPX Atilde Otilde -40
+KPX Atilde Q -40
+KPX Atilde T -90
+KPX Atilde Tcaron -90
+KPX Atilde Tcommaaccent -90
+KPX Atilde U -50
+KPX Atilde Uacute -50
+KPX Atilde Ucircumflex -50
+KPX Atilde Udieresis -50
+KPX Atilde Ugrave -50
+KPX Atilde Uhungarumlaut -50
+KPX Atilde Umacron -50
+KPX Atilde Uogonek -50
+KPX Atilde Uring -50
+KPX Atilde V -80
+KPX Atilde W -60
+KPX Atilde Y -110
+KPX Atilde Yacute -110
+KPX Atilde Ydieresis -110
+KPX Atilde u -30
+KPX Atilde uacute -30
+KPX Atilde ucircumflex -30
+KPX Atilde udieresis -30
+KPX Atilde ugrave -30
+KPX Atilde uhungarumlaut -30
+KPX Atilde umacron -30
+KPX Atilde uogonek -30
+KPX Atilde uring -30
+KPX Atilde v -40
+KPX Atilde w -30
+KPX Atilde y -30
+KPX Atilde yacute -30
+KPX Atilde ydieresis -30
+KPX B A -30
+KPX B Aacute -30
+KPX B Abreve -30
+KPX B Acircumflex -30
+KPX B Adieresis -30
+KPX B Agrave -30
+KPX B Amacron -30
+KPX B Aogonek -30
+KPX B Aring -30
+KPX B Atilde -30
+KPX B U -10
+KPX B Uacute -10
+KPX B Ucircumflex -10
+KPX B Udieresis -10
+KPX B Ugrave -10
+KPX B Uhungarumlaut -10
+KPX B Umacron -10
+KPX B Uogonek -10
+KPX B Uring -10
+KPX D A -40
+KPX D Aacute -40
+KPX D Abreve -40
+KPX D Acircumflex -40
+KPX D Adieresis -40
+KPX D Agrave -40
+KPX D Amacron -40
+KPX D Aogonek -40
+KPX D Aring -40
+KPX D Atilde -40
+KPX D V -40
+KPX D W -40
+KPX D Y -70
+KPX D Yacute -70
+KPX D Ydieresis -70
+KPX D comma -30
+KPX D period -30
+KPX Dcaron A -40
+KPX Dcaron Aacute -40
+KPX Dcaron Abreve -40
+KPX Dcaron Acircumflex -40
+KPX Dcaron Adieresis -40
+KPX Dcaron Agrave -40
+KPX Dcaron Amacron -40
+KPX Dcaron Aogonek -40
+KPX Dcaron Aring -40
+KPX Dcaron Atilde -40
+KPX Dcaron V -40
+KPX Dcaron W -40
+KPX Dcaron Y -70
+KPX Dcaron Yacute -70
+KPX Dcaron Ydieresis -70
+KPX Dcaron comma -30
+KPX Dcaron period -30
+KPX Dcroat A -40
+KPX Dcroat Aacute -40
+KPX Dcroat Abreve -40
+KPX Dcroat Acircumflex -40
+KPX Dcroat Adieresis -40
+KPX Dcroat Agrave -40
+KPX Dcroat Amacron -40
+KPX Dcroat Aogonek -40
+KPX Dcroat Aring -40
+KPX Dcroat Atilde -40
+KPX Dcroat V -40
+KPX Dcroat W -40
+KPX Dcroat Y -70
+KPX Dcroat Yacute -70
+KPX Dcroat Ydieresis -70
+KPX Dcroat comma -30
+KPX Dcroat period -30
+KPX F A -80
+KPX F Aacute -80
+KPX F Abreve -80
+KPX F Acircumflex -80
+KPX F Adieresis -80
+KPX F Agrave -80
+KPX F Amacron -80
+KPX F Aogonek -80
+KPX F Aring -80
+KPX F Atilde -80
+KPX F a -20
+KPX F aacute -20
+KPX F abreve -20
+KPX F acircumflex -20
+KPX F adieresis -20
+KPX F agrave -20
+KPX F amacron -20
+KPX F aogonek -20
+KPX F aring -20
+KPX F atilde -20
+KPX F comma -100
+KPX F period -100
+KPX J A -20
+KPX J Aacute -20
+KPX J Abreve -20
+KPX J Acircumflex -20
+KPX J Adieresis -20
+KPX J Agrave -20
+KPX J Amacron -20
+KPX J Aogonek -20
+KPX J Aring -20
+KPX J Atilde -20
+KPX J comma -20
+KPX J period -20
+KPX J u -20
+KPX J uacute -20
+KPX J ucircumflex -20
+KPX J udieresis -20
+KPX J ugrave -20
+KPX J uhungarumlaut -20
+KPX J umacron -20
+KPX J uogonek -20
+KPX J uring -20
+KPX K O -30
+KPX K Oacute -30
+KPX K Ocircumflex -30
+KPX K Odieresis -30
+KPX K Ograve -30
+KPX K Ohungarumlaut -30
+KPX K Omacron -30
+KPX K Oslash -30
+KPX K Otilde -30
+KPX K e -15
+KPX K eacute -15
+KPX K ecaron -15
+KPX K ecircumflex -15
+KPX K edieresis -15
+KPX K edotaccent -15
+KPX K egrave -15
+KPX K emacron -15
+KPX K eogonek -15
+KPX K o -35
+KPX K oacute -35
+KPX K ocircumflex -35
+KPX K odieresis -35
+KPX K ograve -35
+KPX K ohungarumlaut -35
+KPX K omacron -35
+KPX K oslash -35
+KPX K otilde -35
+KPX K u -30
+KPX K uacute -30
+KPX K ucircumflex -30
+KPX K udieresis -30
+KPX K ugrave -30
+KPX K uhungarumlaut -30
+KPX K umacron -30
+KPX K uogonek -30
+KPX K uring -30
+KPX K y -40
+KPX K yacute -40
+KPX K ydieresis -40
+KPX Kcommaaccent O -30
+KPX Kcommaaccent Oacute -30
+KPX Kcommaaccent Ocircumflex -30
+KPX Kcommaaccent Odieresis -30
+KPX Kcommaaccent Ograve -30
+KPX Kcommaaccent Ohungarumlaut -30
+KPX Kcommaaccent Omacron -30
+KPX Kcommaaccent Oslash -30
+KPX Kcommaaccent Otilde -30
+KPX Kcommaaccent e -15
+KPX Kcommaaccent eacute -15
+KPX Kcommaaccent ecaron -15
+KPX Kcommaaccent ecircumflex -15
+KPX Kcommaaccent edieresis -15
+KPX Kcommaaccent edotaccent -15
+KPX Kcommaaccent egrave -15
+KPX Kcommaaccent emacron -15
+KPX Kcommaaccent eogonek -15
+KPX Kcommaaccent o -35
+KPX Kcommaaccent oacute -35
+KPX Kcommaaccent ocircumflex -35
+KPX Kcommaaccent odieresis -35
+KPX Kcommaaccent ograve -35
+KPX Kcommaaccent ohungarumlaut -35
+KPX Kcommaaccent omacron -35
+KPX Kcommaaccent oslash -35
+KPX Kcommaaccent otilde -35
+KPX Kcommaaccent u -30
+KPX Kcommaaccent uacute -30
+KPX Kcommaaccent ucircumflex -30
+KPX Kcommaaccent udieresis -30
+KPX Kcommaaccent ugrave -30
+KPX Kcommaaccent uhungarumlaut -30
+KPX Kcommaaccent umacron -30
+KPX Kcommaaccent uogonek -30
+KPX Kcommaaccent uring -30
+KPX Kcommaaccent y -40
+KPX Kcommaaccent yacute -40
+KPX Kcommaaccent ydieresis -40
+KPX L T -90
+KPX L Tcaron -90
+KPX L Tcommaaccent -90
+KPX L V -110
+KPX L W -80
+KPX L Y -120
+KPX L Yacute -120
+KPX L Ydieresis -120
+KPX L quotedblright -140
+KPX L quoteright -140
+KPX L y -30
+KPX L yacute -30
+KPX L ydieresis -30
+KPX Lacute T -90
+KPX Lacute Tcaron -90
+KPX Lacute Tcommaaccent -90
+KPX Lacute V -110
+KPX Lacute W -80
+KPX Lacute Y -120
+KPX Lacute Yacute -120
+KPX Lacute Ydieresis -120
+KPX Lacute quotedblright -140
+KPX Lacute quoteright -140
+KPX Lacute y -30
+KPX Lacute yacute -30
+KPX Lacute ydieresis -30
+KPX Lcommaaccent T -90
+KPX Lcommaaccent Tcaron -90
+KPX Lcommaaccent Tcommaaccent -90
+KPX Lcommaaccent V -110
+KPX Lcommaaccent W -80
+KPX Lcommaaccent Y -120
+KPX Lcommaaccent Yacute -120
+KPX Lcommaaccent Ydieresis -120
+KPX Lcommaaccent quotedblright -140
+KPX Lcommaaccent quoteright -140
+KPX Lcommaaccent y -30
+KPX Lcommaaccent yacute -30
+KPX Lcommaaccent ydieresis -30
+KPX Lslash T -90
+KPX Lslash Tcaron -90
+KPX Lslash Tcommaaccent -90
+KPX Lslash V -110
+KPX Lslash W -80
+KPX Lslash Y -120
+KPX Lslash Yacute -120
+KPX Lslash Ydieresis -120
+KPX Lslash quotedblright -140
+KPX Lslash quoteright -140
+KPX Lslash y -30
+KPX Lslash yacute -30
+KPX Lslash ydieresis -30
+KPX O A -50
+KPX O Aacute -50
+KPX O Abreve -50
+KPX O Acircumflex -50
+KPX O Adieresis -50
+KPX O Agrave -50
+KPX O Amacron -50
+KPX O Aogonek -50
+KPX O Aring -50
+KPX O Atilde -50
+KPX O T -40
+KPX O Tcaron -40
+KPX O Tcommaaccent -40
+KPX O V -50
+KPX O W -50
+KPX O X -50
+KPX O Y -70
+KPX O Yacute -70
+KPX O Ydieresis -70
+KPX O comma -40
+KPX O period -40
+KPX Oacute A -50
+KPX Oacute Aacute -50
+KPX Oacute Abreve -50
+KPX Oacute Acircumflex -50
+KPX Oacute Adieresis -50
+KPX Oacute Agrave -50
+KPX Oacute Amacron -50
+KPX Oacute Aogonek -50
+KPX Oacute Aring -50
+KPX Oacute Atilde -50
+KPX Oacute T -40
+KPX Oacute Tcaron -40
+KPX Oacute Tcommaaccent -40
+KPX Oacute V -50
+KPX Oacute W -50
+KPX Oacute X -50
+KPX Oacute Y -70
+KPX Oacute Yacute -70
+KPX Oacute Ydieresis -70
+KPX Oacute comma -40
+KPX Oacute period -40
+KPX Ocircumflex A -50
+KPX Ocircumflex Aacute -50
+KPX Ocircumflex Abreve -50
+KPX Ocircumflex Acircumflex -50
+KPX Ocircumflex Adieresis -50
+KPX Ocircumflex Agrave -50
+KPX Ocircumflex Amacron -50
+KPX Ocircumflex Aogonek -50
+KPX Ocircumflex Aring -50
+KPX Ocircumflex Atilde -50
+KPX Ocircumflex T -40
+KPX Ocircumflex Tcaron -40
+KPX Ocircumflex Tcommaaccent -40
+KPX Ocircumflex V -50
+KPX Ocircumflex W -50
+KPX Ocircumflex X -50
+KPX Ocircumflex Y -70
+KPX Ocircumflex Yacute -70
+KPX Ocircumflex Ydieresis -70
+KPX Ocircumflex comma -40
+KPX Ocircumflex period -40
+KPX Odieresis A -50
+KPX Odieresis Aacute -50
+KPX Odieresis Abreve -50
+KPX Odieresis Acircumflex -50
+KPX Odieresis Adieresis -50
+KPX Odieresis Agrave -50
+KPX Odieresis Amacron -50
+KPX Odieresis Aogonek -50
+KPX Odieresis Aring -50
+KPX Odieresis Atilde -50
+KPX Odieresis T -40
+KPX Odieresis Tcaron -40
+KPX Odieresis Tcommaaccent -40
+KPX Odieresis V -50
+KPX Odieresis W -50
+KPX Odieresis X -50
+KPX Odieresis Y -70
+KPX Odieresis Yacute -70
+KPX Odieresis Ydieresis -70
+KPX Odieresis comma -40
+KPX Odieresis period -40
+KPX Ograve A -50
+KPX Ograve Aacute -50
+KPX Ograve Abreve -50
+KPX Ograve Acircumflex -50
+KPX Ograve Adieresis -50
+KPX Ograve Agrave -50
+KPX Ograve Amacron -50
+KPX Ograve Aogonek -50
+KPX Ograve Aring -50
+KPX Ograve Atilde -50
+KPX Ograve T -40
+KPX Ograve Tcaron -40
+KPX Ograve Tcommaaccent -40
+KPX Ograve V -50
+KPX Ograve W -50
+KPX Ograve X -50
+KPX Ograve Y -70
+KPX Ograve Yacute -70
+KPX Ograve Ydieresis -70
+KPX Ograve comma -40
+KPX Ograve period -40
+KPX Ohungarumlaut A -50
+KPX Ohungarumlaut Aacute -50
+KPX Ohungarumlaut Abreve -50
+KPX Ohungarumlaut Acircumflex -50
+KPX Ohungarumlaut Adieresis -50
+KPX Ohungarumlaut Agrave -50
+KPX Ohungarumlaut Amacron -50
+KPX Ohungarumlaut Aogonek -50
+KPX Ohungarumlaut Aring -50
+KPX Ohungarumlaut Atilde -50
+KPX Ohungarumlaut T -40
+KPX Ohungarumlaut Tcaron -40
+KPX Ohungarumlaut Tcommaaccent -40
+KPX Ohungarumlaut V -50
+KPX Ohungarumlaut W -50
+KPX Ohungarumlaut X -50
+KPX Ohungarumlaut Y -70
+KPX Ohungarumlaut Yacute -70
+KPX Ohungarumlaut Ydieresis -70
+KPX Ohungarumlaut comma -40
+KPX Ohungarumlaut period -40
+KPX Omacron A -50
+KPX Omacron Aacute -50
+KPX Omacron Abreve -50
+KPX Omacron Acircumflex -50
+KPX Omacron Adieresis -50
+KPX Omacron Agrave -50
+KPX Omacron Amacron -50
+KPX Omacron Aogonek -50
+KPX Omacron Aring -50
+KPX Omacron Atilde -50
+KPX Omacron T -40
+KPX Omacron Tcaron -40
+KPX Omacron Tcommaaccent -40
+KPX Omacron V -50
+KPX Omacron W -50
+KPX Omacron X -50
+KPX Omacron Y -70
+KPX Omacron Yacute -70
+KPX Omacron Ydieresis -70
+KPX Omacron comma -40
+KPX Omacron period -40
+KPX Oslash A -50
+KPX Oslash Aacute -50
+KPX Oslash Abreve -50
+KPX Oslash Acircumflex -50
+KPX Oslash Adieresis -50
+KPX Oslash Agrave -50
+KPX Oslash Amacron -50
+KPX Oslash Aogonek -50
+KPX Oslash Aring -50
+KPX Oslash Atilde -50
+KPX Oslash T -40
+KPX Oslash Tcaron -40
+KPX Oslash Tcommaaccent -40
+KPX Oslash V -50
+KPX Oslash W -50
+KPX Oslash X -50
+KPX Oslash Y -70
+KPX Oslash Yacute -70
+KPX Oslash Ydieresis -70
+KPX Oslash comma -40
+KPX Oslash period -40
+KPX Otilde A -50
+KPX Otilde Aacute -50
+KPX Otilde Abreve -50
+KPX Otilde Acircumflex -50
+KPX Otilde Adieresis -50
+KPX Otilde Agrave -50
+KPX Otilde Amacron -50
+KPX Otilde Aogonek -50
+KPX Otilde Aring -50
+KPX Otilde Atilde -50
+KPX Otilde T -40
+KPX Otilde Tcaron -40
+KPX Otilde Tcommaaccent -40
+KPX Otilde V -50
+KPX Otilde W -50
+KPX Otilde X -50
+KPX Otilde Y -70
+KPX Otilde Yacute -70
+KPX Otilde Ydieresis -70
+KPX Otilde comma -40
+KPX Otilde period -40
+KPX P A -100
+KPX P Aacute -100
+KPX P Abreve -100
+KPX P Acircumflex -100
+KPX P Adieresis -100
+KPX P Agrave -100
+KPX P Amacron -100
+KPX P Aogonek -100
+KPX P Aring -100
+KPX P Atilde -100
+KPX P a -30
+KPX P aacute -30
+KPX P abreve -30
+KPX P acircumflex -30
+KPX P adieresis -30
+KPX P agrave -30
+KPX P amacron -30
+KPX P aogonek -30
+KPX P aring -30
+KPX P atilde -30
+KPX P comma -120
+KPX P e -30
+KPX P eacute -30
+KPX P ecaron -30
+KPX P ecircumflex -30
+KPX P edieresis -30
+KPX P edotaccent -30
+KPX P egrave -30
+KPX P emacron -30
+KPX P eogonek -30
+KPX P o -40
+KPX P oacute -40
+KPX P ocircumflex -40
+KPX P odieresis -40
+KPX P ograve -40
+KPX P ohungarumlaut -40
+KPX P omacron -40
+KPX P oslash -40
+KPX P otilde -40
+KPX P period -120
+KPX Q U -10
+KPX Q Uacute -10
+KPX Q Ucircumflex -10
+KPX Q Udieresis -10
+KPX Q Ugrave -10
+KPX Q Uhungarumlaut -10
+KPX Q Umacron -10
+KPX Q Uogonek -10
+KPX Q Uring -10
+KPX Q comma 20
+KPX Q period 20
+KPX R O -20
+KPX R Oacute -20
+KPX R Ocircumflex -20
+KPX R Odieresis -20
+KPX R Ograve -20
+KPX R Ohungarumlaut -20
+KPX R Omacron -20
+KPX R Oslash -20
+KPX R Otilde -20
+KPX R T -20
+KPX R Tcaron -20
+KPX R Tcommaaccent -20
+KPX R U -20
+KPX R Uacute -20
+KPX R Ucircumflex -20
+KPX R Udieresis -20
+KPX R Ugrave -20
+KPX R Uhungarumlaut -20
+KPX R Umacron -20
+KPX R Uogonek -20
+KPX R Uring -20
+KPX R V -50
+KPX R W -40
+KPX R Y -50
+KPX R Yacute -50
+KPX R Ydieresis -50
+KPX Racute O -20
+KPX Racute Oacute -20
+KPX Racute Ocircumflex -20
+KPX Racute Odieresis -20
+KPX Racute Ograve -20
+KPX Racute Ohungarumlaut -20
+KPX Racute Omacron -20
+KPX Racute Oslash -20
+KPX Racute Otilde -20
+KPX Racute T -20
+KPX Racute Tcaron -20
+KPX Racute Tcommaaccent -20
+KPX Racute U -20
+KPX Racute Uacute -20
+KPX Racute Ucircumflex -20
+KPX Racute Udieresis -20
+KPX Racute Ugrave -20
+KPX Racute Uhungarumlaut -20
+KPX Racute Umacron -20
+KPX Racute Uogonek -20
+KPX Racute Uring -20
+KPX Racute V -50
+KPX Racute W -40
+KPX Racute Y -50
+KPX Racute Yacute -50
+KPX Racute Ydieresis -50
+KPX Rcaron O -20
+KPX Rcaron Oacute -20
+KPX Rcaron Ocircumflex -20
+KPX Rcaron Odieresis -20
+KPX Rcaron Ograve -20
+KPX Rcaron Ohungarumlaut -20
+KPX Rcaron Omacron -20
+KPX Rcaron Oslash -20
+KPX Rcaron Otilde -20
+KPX Rcaron T -20
+KPX Rcaron Tcaron -20
+KPX Rcaron Tcommaaccent -20
+KPX Rcaron U -20
+KPX Rcaron Uacute -20
+KPX Rcaron Ucircumflex -20
+KPX Rcaron Udieresis -20
+KPX Rcaron Ugrave -20
+KPX Rcaron Uhungarumlaut -20
+KPX Rcaron Umacron -20
+KPX Rcaron Uogonek -20
+KPX Rcaron Uring -20
+KPX Rcaron V -50
+KPX Rcaron W -40
+KPX Rcaron Y -50
+KPX Rcaron Yacute -50
+KPX Rcaron Ydieresis -50
+KPX Rcommaaccent O -20
+KPX Rcommaaccent Oacute -20
+KPX Rcommaaccent Ocircumflex -20
+KPX Rcommaaccent Odieresis -20
+KPX Rcommaaccent Ograve -20
+KPX Rcommaaccent Ohungarumlaut -20
+KPX Rcommaaccent Omacron -20
+KPX Rcommaaccent Oslash -20
+KPX Rcommaaccent Otilde -20
+KPX Rcommaaccent T -20
+KPX Rcommaaccent Tcaron -20
+KPX Rcommaaccent Tcommaaccent -20
+KPX Rcommaaccent U -20
+KPX Rcommaaccent Uacute -20
+KPX Rcommaaccent Ucircumflex -20
+KPX Rcommaaccent Udieresis -20
+KPX Rcommaaccent Ugrave -20
+KPX Rcommaaccent Uhungarumlaut -20
+KPX Rcommaaccent Umacron -20
+KPX Rcommaaccent Uogonek -20
+KPX Rcommaaccent Uring -20
+KPX Rcommaaccent V -50
+KPX Rcommaaccent W -40
+KPX Rcommaaccent Y -50
+KPX Rcommaaccent Yacute -50
+KPX Rcommaaccent Ydieresis -50
+KPX T A -90
+KPX T Aacute -90
+KPX T Abreve -90
+KPX T Acircumflex -90
+KPX T Adieresis -90
+KPX T Agrave -90
+KPX T Amacron -90
+KPX T Aogonek -90
+KPX T Aring -90
+KPX T Atilde -90
+KPX T O -40
+KPX T Oacute -40
+KPX T Ocircumflex -40
+KPX T Odieresis -40
+KPX T Ograve -40
+KPX T Ohungarumlaut -40
+KPX T Omacron -40
+KPX T Oslash -40
+KPX T Otilde -40
+KPX T a -80
+KPX T aacute -80
+KPX T abreve -80
+KPX T acircumflex -80
+KPX T adieresis -80
+KPX T agrave -80
+KPX T amacron -80
+KPX T aogonek -80
+KPX T aring -80
+KPX T atilde -80
+KPX T colon -40
+KPX T comma -80
+KPX T e -60
+KPX T eacute -60
+KPX T ecaron -60
+KPX T ecircumflex -60
+KPX T edieresis -60
+KPX T edotaccent -60
+KPX T egrave -60
+KPX T emacron -60
+KPX T eogonek -60
+KPX T hyphen -120
+KPX T o -80
+KPX T oacute -80
+KPX T ocircumflex -80
+KPX T odieresis -80
+KPX T ograve -80
+KPX T ohungarumlaut -80
+KPX T omacron -80
+KPX T oslash -80
+KPX T otilde -80
+KPX T period -80
+KPX T r -80
+KPX T racute -80
+KPX T rcommaaccent -80
+KPX T semicolon -40
+KPX T u -90
+KPX T uacute -90
+KPX T ucircumflex -90
+KPX T udieresis -90
+KPX T ugrave -90
+KPX T uhungarumlaut -90
+KPX T umacron -90
+KPX T uogonek -90
+KPX T uring -90
+KPX T w -60
+KPX T y -60
+KPX T yacute -60
+KPX T ydieresis -60
+KPX Tcaron A -90
+KPX Tcaron Aacute -90
+KPX Tcaron Abreve -90
+KPX Tcaron Acircumflex -90
+KPX Tcaron Adieresis -90
+KPX Tcaron Agrave -90
+KPX Tcaron Amacron -90
+KPX Tcaron Aogonek -90
+KPX Tcaron Aring -90
+KPX Tcaron Atilde -90
+KPX Tcaron O -40
+KPX Tcaron Oacute -40
+KPX Tcaron Ocircumflex -40
+KPX Tcaron Odieresis -40
+KPX Tcaron Ograve -40
+KPX Tcaron Ohungarumlaut -40
+KPX Tcaron Omacron -40
+KPX Tcaron Oslash -40
+KPX Tcaron Otilde -40
+KPX Tcaron a -80
+KPX Tcaron aacute -80
+KPX Tcaron abreve -80
+KPX Tcaron acircumflex -80
+KPX Tcaron adieresis -80
+KPX Tcaron agrave -80
+KPX Tcaron amacron -80
+KPX Tcaron aogonek -80
+KPX Tcaron aring -80
+KPX Tcaron atilde -80
+KPX Tcaron colon -40
+KPX Tcaron comma -80
+KPX Tcaron e -60
+KPX Tcaron eacute -60
+KPX Tcaron ecaron -60
+KPX Tcaron ecircumflex -60
+KPX Tcaron edieresis -60
+KPX Tcaron edotaccent -60
+KPX Tcaron egrave -60
+KPX Tcaron emacron -60
+KPX Tcaron eogonek -60
+KPX Tcaron hyphen -120
+KPX Tcaron o -80
+KPX Tcaron oacute -80
+KPX Tcaron ocircumflex -80
+KPX Tcaron odieresis -80
+KPX Tcaron ograve -80
+KPX Tcaron ohungarumlaut -80
+KPX Tcaron omacron -80
+KPX Tcaron oslash -80
+KPX Tcaron otilde -80
+KPX Tcaron period -80
+KPX Tcaron r -80
+KPX Tcaron racute -80
+KPX Tcaron rcommaaccent -80
+KPX Tcaron semicolon -40
+KPX Tcaron u -90
+KPX Tcaron uacute -90
+KPX Tcaron ucircumflex -90
+KPX Tcaron udieresis -90
+KPX Tcaron ugrave -90
+KPX Tcaron uhungarumlaut -90
+KPX Tcaron umacron -90
+KPX Tcaron uogonek -90
+KPX Tcaron uring -90
+KPX Tcaron w -60
+KPX Tcaron y -60
+KPX Tcaron yacute -60
+KPX Tcaron ydieresis -60
+KPX Tcommaaccent A -90
+KPX Tcommaaccent Aacute -90
+KPX Tcommaaccent Abreve -90
+KPX Tcommaaccent Acircumflex -90
+KPX Tcommaaccent Adieresis -90
+KPX Tcommaaccent Agrave -90
+KPX Tcommaaccent Amacron -90
+KPX Tcommaaccent Aogonek -90
+KPX Tcommaaccent Aring -90
+KPX Tcommaaccent Atilde -90
+KPX Tcommaaccent O -40
+KPX Tcommaaccent Oacute -40
+KPX Tcommaaccent Ocircumflex -40
+KPX Tcommaaccent Odieresis -40
+KPX Tcommaaccent Ograve -40
+KPX Tcommaaccent Ohungarumlaut -40
+KPX Tcommaaccent Omacron -40
+KPX Tcommaaccent Oslash -40
+KPX Tcommaaccent Otilde -40
+KPX Tcommaaccent a -80
+KPX Tcommaaccent aacute -80
+KPX Tcommaaccent abreve -80
+KPX Tcommaaccent acircumflex -80
+KPX Tcommaaccent adieresis -80
+KPX Tcommaaccent agrave -80
+KPX Tcommaaccent amacron -80
+KPX Tcommaaccent aogonek -80
+KPX Tcommaaccent aring -80
+KPX Tcommaaccent atilde -80
+KPX Tcommaaccent colon -40
+KPX Tcommaaccent comma -80
+KPX Tcommaaccent e -60
+KPX Tcommaaccent eacute -60
+KPX Tcommaaccent ecaron -60
+KPX Tcommaaccent ecircumflex -60
+KPX Tcommaaccent edieresis -60
+KPX Tcommaaccent edotaccent -60
+KPX Tcommaaccent egrave -60
+KPX Tcommaaccent emacron -60
+KPX Tcommaaccent eogonek -60
+KPX Tcommaaccent hyphen -120
+KPX Tcommaaccent o -80
+KPX Tcommaaccent oacute -80
+KPX Tcommaaccent ocircumflex -80
+KPX Tcommaaccent odieresis -80
+KPX Tcommaaccent ograve -80
+KPX Tcommaaccent ohungarumlaut -80
+KPX Tcommaaccent omacron -80
+KPX Tcommaaccent oslash -80
+KPX Tcommaaccent otilde -80
+KPX Tcommaaccent period -80
+KPX Tcommaaccent r -80
+KPX Tcommaaccent racute -80
+KPX Tcommaaccent rcommaaccent -80
+KPX Tcommaaccent semicolon -40
+KPX Tcommaaccent u -90
+KPX Tcommaaccent uacute -90
+KPX Tcommaaccent ucircumflex -90
+KPX Tcommaaccent udieresis -90
+KPX Tcommaaccent ugrave -90
+KPX Tcommaaccent uhungarumlaut -90
+KPX Tcommaaccent umacron -90
+KPX Tcommaaccent uogonek -90
+KPX Tcommaaccent uring -90
+KPX Tcommaaccent w -60
+KPX Tcommaaccent y -60
+KPX Tcommaaccent yacute -60
+KPX Tcommaaccent ydieresis -60
+KPX U A -50
+KPX U Aacute -50
+KPX U Abreve -50
+KPX U Acircumflex -50
+KPX U Adieresis -50
+KPX U Agrave -50
+KPX U Amacron -50
+KPX U Aogonek -50
+KPX U Aring -50
+KPX U Atilde -50
+KPX U comma -30
+KPX U period -30
+KPX Uacute A -50
+KPX Uacute Aacute -50
+KPX Uacute Abreve -50
+KPX Uacute Acircumflex -50
+KPX Uacute Adieresis -50
+KPX Uacute Agrave -50
+KPX Uacute Amacron -50
+KPX Uacute Aogonek -50
+KPX Uacute Aring -50
+KPX Uacute Atilde -50
+KPX Uacute comma -30
+KPX Uacute period -30
+KPX Ucircumflex A -50
+KPX Ucircumflex Aacute -50
+KPX Ucircumflex Abreve -50
+KPX Ucircumflex Acircumflex -50
+KPX Ucircumflex Adieresis -50
+KPX Ucircumflex Agrave -50
+KPX Ucircumflex Amacron -50
+KPX Ucircumflex Aogonek -50
+KPX Ucircumflex Aring -50
+KPX Ucircumflex Atilde -50
+KPX Ucircumflex comma -30
+KPX Ucircumflex period -30
+KPX Udieresis A -50
+KPX Udieresis Aacute -50
+KPX Udieresis Abreve -50
+KPX Udieresis Acircumflex -50
+KPX Udieresis Adieresis -50
+KPX Udieresis Agrave -50
+KPX Udieresis Amacron -50
+KPX Udieresis Aogonek -50
+KPX Udieresis Aring -50
+KPX Udieresis Atilde -50
+KPX Udieresis comma -30
+KPX Udieresis period -30
+KPX Ugrave A -50
+KPX Ugrave Aacute -50
+KPX Ugrave Abreve -50
+KPX Ugrave Acircumflex -50
+KPX Ugrave Adieresis -50
+KPX Ugrave Agrave -50
+KPX Ugrave Amacron -50
+KPX Ugrave Aogonek -50
+KPX Ugrave Aring -50
+KPX Ugrave Atilde -50
+KPX Ugrave comma -30
+KPX Ugrave period -30
+KPX Uhungarumlaut A -50
+KPX Uhungarumlaut Aacute -50
+KPX Uhungarumlaut Abreve -50
+KPX Uhungarumlaut Acircumflex -50
+KPX Uhungarumlaut Adieresis -50
+KPX Uhungarumlaut Agrave -50
+KPX Uhungarumlaut Amacron -50
+KPX Uhungarumlaut Aogonek -50
+KPX Uhungarumlaut Aring -50
+KPX Uhungarumlaut Atilde -50
+KPX Uhungarumlaut comma -30
+KPX Uhungarumlaut period -30
+KPX Umacron A -50
+KPX Umacron Aacute -50
+KPX Umacron Abreve -50
+KPX Umacron Acircumflex -50
+KPX Umacron Adieresis -50
+KPX Umacron Agrave -50
+KPX Umacron Amacron -50
+KPX Umacron Aogonek -50
+KPX Umacron Aring -50
+KPX Umacron Atilde -50
+KPX Umacron comma -30
+KPX Umacron period -30
+KPX Uogonek A -50
+KPX Uogonek Aacute -50
+KPX Uogonek Abreve -50
+KPX Uogonek Acircumflex -50
+KPX Uogonek Adieresis -50
+KPX Uogonek Agrave -50
+KPX Uogonek Amacron -50
+KPX Uogonek Aogonek -50
+KPX Uogonek Aring -50
+KPX Uogonek Atilde -50
+KPX Uogonek comma -30
+KPX Uogonek period -30
+KPX Uring A -50
+KPX Uring Aacute -50
+KPX Uring Abreve -50
+KPX Uring Acircumflex -50
+KPX Uring Adieresis -50
+KPX Uring Agrave -50
+KPX Uring Amacron -50
+KPX Uring Aogonek -50
+KPX Uring Aring -50
+KPX Uring Atilde -50
+KPX Uring comma -30
+KPX Uring period -30
+KPX V A -80
+KPX V Aacute -80
+KPX V Abreve -80
+KPX V Acircumflex -80
+KPX V Adieresis -80
+KPX V Agrave -80
+KPX V Amacron -80
+KPX V Aogonek -80
+KPX V Aring -80
+KPX V Atilde -80
+KPX V G -50
+KPX V Gbreve -50
+KPX V Gcommaaccent -50
+KPX V O -50
+KPX V Oacute -50
+KPX V Ocircumflex -50
+KPX V Odieresis -50
+KPX V Ograve -50
+KPX V Ohungarumlaut -50
+KPX V Omacron -50
+KPX V Oslash -50
+KPX V Otilde -50
+KPX V a -60
+KPX V aacute -60
+KPX V abreve -60
+KPX V acircumflex -60
+KPX V adieresis -60
+KPX V agrave -60
+KPX V amacron -60
+KPX V aogonek -60
+KPX V aring -60
+KPX V atilde -60
+KPX V colon -40
+KPX V comma -120
+KPX V e -50
+KPX V eacute -50
+KPX V ecaron -50
+KPX V ecircumflex -50
+KPX V edieresis -50
+KPX V edotaccent -50
+KPX V egrave -50
+KPX V emacron -50
+KPX V eogonek -50
+KPX V hyphen -80
+KPX V o -90
+KPX V oacute -90
+KPX V ocircumflex -90
+KPX V odieresis -90
+KPX V ograve -90
+KPX V ohungarumlaut -90
+KPX V omacron -90
+KPX V oslash -90
+KPX V otilde -90
+KPX V period -120
+KPX V semicolon -40
+KPX V u -60
+KPX V uacute -60
+KPX V ucircumflex -60
+KPX V udieresis -60
+KPX V ugrave -60
+KPX V uhungarumlaut -60
+KPX V umacron -60
+KPX V uogonek -60
+KPX V uring -60
+KPX W A -60
+KPX W Aacute -60
+KPX W Abreve -60
+KPX W Acircumflex -60
+KPX W Adieresis -60
+KPX W Agrave -60
+KPX W Amacron -60
+KPX W Aogonek -60
+KPX W Aring -60
+KPX W Atilde -60
+KPX W O -20
+KPX W Oacute -20
+KPX W Ocircumflex -20
+KPX W Odieresis -20
+KPX W Ograve -20
+KPX W Ohungarumlaut -20
+KPX W Omacron -20
+KPX W Oslash -20
+KPX W Otilde -20
+KPX W a -40
+KPX W aacute -40
+KPX W abreve -40
+KPX W acircumflex -40
+KPX W adieresis -40
+KPX W agrave -40
+KPX W amacron -40
+KPX W aogonek -40
+KPX W aring -40
+KPX W atilde -40
+KPX W colon -10
+KPX W comma -80
+KPX W e -35
+KPX W eacute -35
+KPX W ecaron -35
+KPX W ecircumflex -35
+KPX W edieresis -35
+KPX W edotaccent -35
+KPX W egrave -35
+KPX W emacron -35
+KPX W eogonek -35
+KPX W hyphen -40
+KPX W o -60
+KPX W oacute -60
+KPX W ocircumflex -60
+KPX W odieresis -60
+KPX W ograve -60
+KPX W ohungarumlaut -60
+KPX W omacron -60
+KPX W oslash -60
+KPX W otilde -60
+KPX W period -80
+KPX W semicolon -10
+KPX W u -45
+KPX W uacute -45
+KPX W ucircumflex -45
+KPX W udieresis -45
+KPX W ugrave -45
+KPX W uhungarumlaut -45
+KPX W umacron -45
+KPX W uogonek -45
+KPX W uring -45
+KPX W y -20
+KPX W yacute -20
+KPX W ydieresis -20
+KPX Y A -110
+KPX Y Aacute -110
+KPX Y Abreve -110
+KPX Y Acircumflex -110
+KPX Y Adieresis -110
+KPX Y Agrave -110
+KPX Y Amacron -110
+KPX Y Aogonek -110
+KPX Y Aring -110
+KPX Y Atilde -110
+KPX Y O -70
+KPX Y Oacute -70
+KPX Y Ocircumflex -70
+KPX Y Odieresis -70
+KPX Y Ograve -70
+KPX Y Ohungarumlaut -70
+KPX Y Omacron -70
+KPX Y Oslash -70
+KPX Y Otilde -70
+KPX Y a -90
+KPX Y aacute -90
+KPX Y abreve -90
+KPX Y acircumflex -90
+KPX Y adieresis -90
+KPX Y agrave -90
+KPX Y amacron -90
+KPX Y aogonek -90
+KPX Y aring -90
+KPX Y atilde -90
+KPX Y colon -50
+KPX Y comma -100
+KPX Y e -80
+KPX Y eacute -80
+KPX Y ecaron -80
+KPX Y ecircumflex -80
+KPX Y edieresis -80
+KPX Y edotaccent -80
+KPX Y egrave -80
+KPX Y emacron -80
+KPX Y eogonek -80
+KPX Y o -100
+KPX Y oacute -100
+KPX Y ocircumflex -100
+KPX Y odieresis -100
+KPX Y ograve -100
+KPX Y ohungarumlaut -100
+KPX Y omacron -100
+KPX Y oslash -100
+KPX Y otilde -100
+KPX Y period -100
+KPX Y semicolon -50
+KPX Y u -100
+KPX Y uacute -100
+KPX Y ucircumflex -100
+KPX Y udieresis -100
+KPX Y ugrave -100
+KPX Y uhungarumlaut -100
+KPX Y umacron -100
+KPX Y uogonek -100
+KPX Y uring -100
+KPX Yacute A -110
+KPX Yacute Aacute -110
+KPX Yacute Abreve -110
+KPX Yacute Acircumflex -110
+KPX Yacute Adieresis -110
+KPX Yacute Agrave -110
+KPX Yacute Amacron -110
+KPX Yacute Aogonek -110
+KPX Yacute Aring -110
+KPX Yacute Atilde -110
+KPX Yacute O -70
+KPX Yacute Oacute -70
+KPX Yacute Ocircumflex -70
+KPX Yacute Odieresis -70
+KPX Yacute Ograve -70
+KPX Yacute Ohungarumlaut -70
+KPX Yacute Omacron -70
+KPX Yacute Oslash -70
+KPX Yacute Otilde -70
+KPX Yacute a -90
+KPX Yacute aacute -90
+KPX Yacute abreve -90
+KPX Yacute acircumflex -90
+KPX Yacute adieresis -90
+KPX Yacute agrave -90
+KPX Yacute amacron -90
+KPX Yacute aogonek -90
+KPX Yacute aring -90
+KPX Yacute atilde -90
+KPX Yacute colon -50
+KPX Yacute comma -100
+KPX Yacute e -80
+KPX Yacute eacute -80
+KPX Yacute ecaron -80
+KPX Yacute ecircumflex -80
+KPX Yacute edieresis -80
+KPX Yacute edotaccent -80
+KPX Yacute egrave -80
+KPX Yacute emacron -80
+KPX Yacute eogonek -80
+KPX Yacute o -100
+KPX Yacute oacute -100
+KPX Yacute ocircumflex -100
+KPX Yacute odieresis -100
+KPX Yacute ograve -100
+KPX Yacute ohungarumlaut -100
+KPX Yacute omacron -100
+KPX Yacute oslash -100
+KPX Yacute otilde -100
+KPX Yacute period -100
+KPX Yacute semicolon -50
+KPX Yacute u -100
+KPX Yacute uacute -100
+KPX Yacute ucircumflex -100
+KPX Yacute udieresis -100
+KPX Yacute ugrave -100
+KPX Yacute uhungarumlaut -100
+KPX Yacute umacron -100
+KPX Yacute uogonek -100
+KPX Yacute uring -100
+KPX Ydieresis A -110
+KPX Ydieresis Aacute -110
+KPX Ydieresis Abreve -110
+KPX Ydieresis Acircumflex -110
+KPX Ydieresis Adieresis -110
+KPX Ydieresis Agrave -110
+KPX Ydieresis Amacron -110
+KPX Ydieresis Aogonek -110
+KPX Ydieresis Aring -110
+KPX Ydieresis Atilde -110
+KPX Ydieresis O -70
+KPX Ydieresis Oacute -70
+KPX Ydieresis Ocircumflex -70
+KPX Ydieresis Odieresis -70
+KPX Ydieresis Ograve -70
+KPX Ydieresis Ohungarumlaut -70
+KPX Ydieresis Omacron -70
+KPX Ydieresis Oslash -70
+KPX Ydieresis Otilde -70
+KPX Ydieresis a -90
+KPX Ydieresis aacute -90
+KPX Ydieresis abreve -90
+KPX Ydieresis acircumflex -90
+KPX Ydieresis adieresis -90
+KPX Ydieresis agrave -90
+KPX Ydieresis amacron -90
+KPX Ydieresis aogonek -90
+KPX Ydieresis aring -90
+KPX Ydieresis atilde -90
+KPX Ydieresis colon -50
+KPX Ydieresis comma -100
+KPX Ydieresis e -80
+KPX Ydieresis eacute -80
+KPX Ydieresis ecaron -80
+KPX Ydieresis ecircumflex -80
+KPX Ydieresis edieresis -80
+KPX Ydieresis edotaccent -80
+KPX Ydieresis egrave -80
+KPX Ydieresis emacron -80
+KPX Ydieresis eogonek -80
+KPX Ydieresis o -100
+KPX Ydieresis oacute -100
+KPX Ydieresis ocircumflex -100
+KPX Ydieresis odieresis -100
+KPX Ydieresis ograve -100
+KPX Ydieresis ohungarumlaut -100
+KPX Ydieresis omacron -100
+KPX Ydieresis oslash -100
+KPX Ydieresis otilde -100
+KPX Ydieresis period -100
+KPX Ydieresis semicolon -50
+KPX Ydieresis u -100
+KPX Ydieresis uacute -100
+KPX Ydieresis ucircumflex -100
+KPX Ydieresis udieresis -100
+KPX Ydieresis ugrave -100
+KPX Ydieresis uhungarumlaut -100
+KPX Ydieresis umacron -100
+KPX Ydieresis uogonek -100
+KPX Ydieresis uring -100
+KPX a g -10
+KPX a gbreve -10
+KPX a gcommaaccent -10
+KPX a v -15
+KPX a w -15
+KPX a y -20
+KPX a yacute -20
+KPX a ydieresis -20
+KPX aacute g -10
+KPX aacute gbreve -10
+KPX aacute gcommaaccent -10
+KPX aacute v -15
+KPX aacute w -15
+KPX aacute y -20
+KPX aacute yacute -20
+KPX aacute ydieresis -20
+KPX abreve g -10
+KPX abreve gbreve -10
+KPX abreve gcommaaccent -10
+KPX abreve v -15
+KPX abreve w -15
+KPX abreve y -20
+KPX abreve yacute -20
+KPX abreve ydieresis -20
+KPX acircumflex g -10
+KPX acircumflex gbreve -10
+KPX acircumflex gcommaaccent -10
+KPX acircumflex v -15
+KPX acircumflex w -15
+KPX acircumflex y -20
+KPX acircumflex yacute -20
+KPX acircumflex ydieresis -20
+KPX adieresis g -10
+KPX adieresis gbreve -10
+KPX adieresis gcommaaccent -10
+KPX adieresis v -15
+KPX adieresis w -15
+KPX adieresis y -20
+KPX adieresis yacute -20
+KPX adieresis ydieresis -20
+KPX agrave g -10
+KPX agrave gbreve -10
+KPX agrave gcommaaccent -10
+KPX agrave v -15
+KPX agrave w -15
+KPX agrave y -20
+KPX agrave yacute -20
+KPX agrave ydieresis -20
+KPX amacron g -10
+KPX amacron gbreve -10
+KPX amacron gcommaaccent -10
+KPX amacron v -15
+KPX amacron w -15
+KPX amacron y -20
+KPX amacron yacute -20
+KPX amacron ydieresis -20
+KPX aogonek g -10
+KPX aogonek gbreve -10
+KPX aogonek gcommaaccent -10
+KPX aogonek v -15
+KPX aogonek w -15
+KPX aogonek y -20
+KPX aogonek yacute -20
+KPX aogonek ydieresis -20
+KPX aring g -10
+KPX aring gbreve -10
+KPX aring gcommaaccent -10
+KPX aring v -15
+KPX aring w -15
+KPX aring y -20
+KPX aring yacute -20
+KPX aring ydieresis -20
+KPX atilde g -10
+KPX atilde gbreve -10
+KPX atilde gcommaaccent -10
+KPX atilde v -15
+KPX atilde w -15
+KPX atilde y -20
+KPX atilde yacute -20
+KPX atilde ydieresis -20
+KPX b l -10
+KPX b lacute -10
+KPX b lcommaaccent -10
+KPX b lslash -10
+KPX b u -20
+KPX b uacute -20
+KPX b ucircumflex -20
+KPX b udieresis -20
+KPX b ugrave -20
+KPX b uhungarumlaut -20
+KPX b umacron -20
+KPX b uogonek -20
+KPX b uring -20
+KPX b v -20
+KPX b y -20
+KPX b yacute -20
+KPX b ydieresis -20
+KPX c h -10
+KPX c k -20
+KPX c kcommaaccent -20
+KPX c l -20
+KPX c lacute -20
+KPX c lcommaaccent -20
+KPX c lslash -20
+KPX c y -10
+KPX c yacute -10
+KPX c ydieresis -10
+KPX cacute h -10
+KPX cacute k -20
+KPX cacute kcommaaccent -20
+KPX cacute l -20
+KPX cacute lacute -20
+KPX cacute lcommaaccent -20
+KPX cacute lslash -20
+KPX cacute y -10
+KPX cacute yacute -10
+KPX cacute ydieresis -10
+KPX ccaron h -10
+KPX ccaron k -20
+KPX ccaron kcommaaccent -20
+KPX ccaron l -20
+KPX ccaron lacute -20
+KPX ccaron lcommaaccent -20
+KPX ccaron lslash -20
+KPX ccaron y -10
+KPX ccaron yacute -10
+KPX ccaron ydieresis -10
+KPX ccedilla h -10
+KPX ccedilla k -20
+KPX ccedilla kcommaaccent -20
+KPX ccedilla l -20
+KPX ccedilla lacute -20
+KPX ccedilla lcommaaccent -20
+KPX ccedilla lslash -20
+KPX ccedilla y -10
+KPX ccedilla yacute -10
+KPX ccedilla ydieresis -10
+KPX colon space -40
+KPX comma quotedblright -120
+KPX comma quoteright -120
+KPX comma space -40
+KPX d d -10
+KPX d dcroat -10
+KPX d v -15
+KPX d w -15
+KPX d y -15
+KPX d yacute -15
+KPX d ydieresis -15
+KPX dcroat d -10
+KPX dcroat dcroat -10
+KPX dcroat v -15
+KPX dcroat w -15
+KPX dcroat y -15
+KPX dcroat yacute -15
+KPX dcroat ydieresis -15
+KPX e comma 10
+KPX e period 20
+KPX e v -15
+KPX e w -15
+KPX e x -15
+KPX e y -15
+KPX e yacute -15
+KPX e ydieresis -15
+KPX eacute comma 10
+KPX eacute period 20
+KPX eacute v -15
+KPX eacute w -15
+KPX eacute x -15
+KPX eacute y -15
+KPX eacute yacute -15
+KPX eacute ydieresis -15
+KPX ecaron comma 10
+KPX ecaron period 20
+KPX ecaron v -15
+KPX ecaron w -15
+KPX ecaron x -15
+KPX ecaron y -15
+KPX ecaron yacute -15
+KPX ecaron ydieresis -15
+KPX ecircumflex comma 10
+KPX ecircumflex period 20
+KPX ecircumflex v -15
+KPX ecircumflex w -15
+KPX ecircumflex x -15
+KPX ecircumflex y -15
+KPX ecircumflex yacute -15
+KPX ecircumflex ydieresis -15
+KPX edieresis comma 10
+KPX edieresis period 20
+KPX edieresis v -15
+KPX edieresis w -15
+KPX edieresis x -15
+KPX edieresis y -15
+KPX edieresis yacute -15
+KPX edieresis ydieresis -15
+KPX edotaccent comma 10
+KPX edotaccent period 20
+KPX edotaccent v -15
+KPX edotaccent w -15
+KPX edotaccent x -15
+KPX edotaccent y -15
+KPX edotaccent yacute -15
+KPX edotaccent ydieresis -15
+KPX egrave comma 10
+KPX egrave period 20
+KPX egrave v -15
+KPX egrave w -15
+KPX egrave x -15
+KPX egrave y -15
+KPX egrave yacute -15
+KPX egrave ydieresis -15
+KPX emacron comma 10
+KPX emacron period 20
+KPX emacron v -15
+KPX emacron w -15
+KPX emacron x -15
+KPX emacron y -15
+KPX emacron yacute -15
+KPX emacron ydieresis -15
+KPX eogonek comma 10
+KPX eogonek period 20
+KPX eogonek v -15
+KPX eogonek w -15
+KPX eogonek x -15
+KPX eogonek y -15
+KPX eogonek yacute -15
+KPX eogonek ydieresis -15
+KPX f comma -10
+KPX f e -10
+KPX f eacute -10
+KPX f ecaron -10
+KPX f ecircumflex -10
+KPX f edieresis -10
+KPX f edotaccent -10
+KPX f egrave -10
+KPX f emacron -10
+KPX f eogonek -10
+KPX f o -20
+KPX f oacute -20
+KPX f ocircumflex -20
+KPX f odieresis -20
+KPX f ograve -20
+KPX f ohungarumlaut -20
+KPX f omacron -20
+KPX f oslash -20
+KPX f otilde -20
+KPX f period -10
+KPX f quotedblright 30
+KPX f quoteright 30
+KPX g e 10
+KPX g eacute 10
+KPX g ecaron 10
+KPX g ecircumflex 10
+KPX g edieresis 10
+KPX g edotaccent 10
+KPX g egrave 10
+KPX g emacron 10
+KPX g eogonek 10
+KPX g g -10
+KPX g gbreve -10
+KPX g gcommaaccent -10
+KPX gbreve e 10
+KPX gbreve eacute 10
+KPX gbreve ecaron 10
+KPX gbreve ecircumflex 10
+KPX gbreve edieresis 10
+KPX gbreve edotaccent 10
+KPX gbreve egrave 10
+KPX gbreve emacron 10
+KPX gbreve eogonek 10
+KPX gbreve g -10
+KPX gbreve gbreve -10
+KPX gbreve gcommaaccent -10
+KPX gcommaaccent e 10
+KPX gcommaaccent eacute 10
+KPX gcommaaccent ecaron 10
+KPX gcommaaccent ecircumflex 10
+KPX gcommaaccent edieresis 10
+KPX gcommaaccent edotaccent 10
+KPX gcommaaccent egrave 10
+KPX gcommaaccent emacron 10
+KPX gcommaaccent eogonek 10
+KPX gcommaaccent g -10
+KPX gcommaaccent gbreve -10
+KPX gcommaaccent gcommaaccent -10
+KPX h y -20
+KPX h yacute -20
+KPX h ydieresis -20
+KPX k o -15
+KPX k oacute -15
+KPX k ocircumflex -15
+KPX k odieresis -15
+KPX k ograve -15
+KPX k ohungarumlaut -15
+KPX k omacron -15
+KPX k oslash -15
+KPX k otilde -15
+KPX kcommaaccent o -15
+KPX kcommaaccent oacute -15
+KPX kcommaaccent ocircumflex -15
+KPX kcommaaccent odieresis -15
+KPX kcommaaccent ograve -15
+KPX kcommaaccent ohungarumlaut -15
+KPX kcommaaccent omacron -15
+KPX kcommaaccent oslash -15
+KPX kcommaaccent otilde -15
+KPX l w -15
+KPX l y -15
+KPX l yacute -15
+KPX l ydieresis -15
+KPX lacute w -15
+KPX lacute y -15
+KPX lacute yacute -15
+KPX lacute ydieresis -15
+KPX lcommaaccent w -15
+KPX lcommaaccent y -15
+KPX lcommaaccent yacute -15
+KPX lcommaaccent ydieresis -15
+KPX lslash w -15
+KPX lslash y -15
+KPX lslash yacute -15
+KPX lslash ydieresis -15
+KPX m u -20
+KPX m uacute -20
+KPX m ucircumflex -20
+KPX m udieresis -20
+KPX m ugrave -20
+KPX m uhungarumlaut -20
+KPX m umacron -20
+KPX m uogonek -20
+KPX m uring -20
+KPX m y -30
+KPX m yacute -30
+KPX m ydieresis -30
+KPX n u -10
+KPX n uacute -10
+KPX n ucircumflex -10
+KPX n udieresis -10
+KPX n ugrave -10
+KPX n uhungarumlaut -10
+KPX n umacron -10
+KPX n uogonek -10
+KPX n uring -10
+KPX n v -40
+KPX n y -20
+KPX n yacute -20
+KPX n ydieresis -20
+KPX nacute u -10
+KPX nacute uacute -10
+KPX nacute ucircumflex -10
+KPX nacute udieresis -10
+KPX nacute ugrave -10
+KPX nacute uhungarumlaut -10
+KPX nacute umacron -10
+KPX nacute uogonek -10
+KPX nacute uring -10
+KPX nacute v -40
+KPX nacute y -20
+KPX nacute yacute -20
+KPX nacute ydieresis -20
+KPX ncaron u -10
+KPX ncaron uacute -10
+KPX ncaron ucircumflex -10
+KPX ncaron udieresis -10
+KPX ncaron ugrave -10
+KPX ncaron uhungarumlaut -10
+KPX ncaron umacron -10
+KPX ncaron uogonek -10
+KPX ncaron uring -10
+KPX ncaron v -40
+KPX ncaron y -20
+KPX ncaron yacute -20
+KPX ncaron ydieresis -20
+KPX ncommaaccent u -10
+KPX ncommaaccent uacute -10
+KPX ncommaaccent ucircumflex -10
+KPX ncommaaccent udieresis -10
+KPX ncommaaccent ugrave -10
+KPX ncommaaccent uhungarumlaut -10
+KPX ncommaaccent umacron -10
+KPX ncommaaccent uogonek -10
+KPX ncommaaccent uring -10
+KPX ncommaaccent v -40
+KPX ncommaaccent y -20
+KPX ncommaaccent yacute -20
+KPX ncommaaccent ydieresis -20
+KPX ntilde u -10
+KPX ntilde uacute -10
+KPX ntilde ucircumflex -10
+KPX ntilde udieresis -10
+KPX ntilde ugrave -10
+KPX ntilde uhungarumlaut -10
+KPX ntilde umacron -10
+KPX ntilde uogonek -10
+KPX ntilde uring -10
+KPX ntilde v -40
+KPX ntilde y -20
+KPX ntilde yacute -20
+KPX ntilde ydieresis -20
+KPX o v -20
+KPX o w -15
+KPX o x -30
+KPX o y -20
+KPX o yacute -20
+KPX o ydieresis -20
+KPX oacute v -20
+KPX oacute w -15
+KPX oacute x -30
+KPX oacute y -20
+KPX oacute yacute -20
+KPX oacute ydieresis -20
+KPX ocircumflex v -20
+KPX ocircumflex w -15
+KPX ocircumflex x -30
+KPX ocircumflex y -20
+KPX ocircumflex yacute -20
+KPX ocircumflex ydieresis -20
+KPX odieresis v -20
+KPX odieresis w -15
+KPX odieresis x -30
+KPX odieresis y -20
+KPX odieresis yacute -20
+KPX odieresis ydieresis -20
+KPX ograve v -20
+KPX ograve w -15
+KPX ograve x -30
+KPX ograve y -20
+KPX ograve yacute -20
+KPX ograve ydieresis -20
+KPX ohungarumlaut v -20
+KPX ohungarumlaut w -15
+KPX ohungarumlaut x -30
+KPX ohungarumlaut y -20
+KPX ohungarumlaut yacute -20
+KPX ohungarumlaut ydieresis -20
+KPX omacron v -20
+KPX omacron w -15
+KPX omacron x -30
+KPX omacron y -20
+KPX omacron yacute -20
+KPX omacron ydieresis -20
+KPX oslash v -20
+KPX oslash w -15
+KPX oslash x -30
+KPX oslash y -20
+KPX oslash yacute -20
+KPX oslash ydieresis -20
+KPX otilde v -20
+KPX otilde w -15
+KPX otilde x -30
+KPX otilde y -20
+KPX otilde yacute -20
+KPX otilde ydieresis -20
+KPX p y -15
+KPX p yacute -15
+KPX p ydieresis -15
+KPX period quotedblright -120
+KPX period quoteright -120
+KPX period space -40
+KPX quotedblright space -80
+KPX quoteleft quoteleft -46
+KPX quoteright d -80
+KPX quoteright dcroat -80
+KPX quoteright l -20
+KPX quoteright lacute -20
+KPX quoteright lcommaaccent -20
+KPX quoteright lslash -20
+KPX quoteright quoteright -46
+KPX quoteright r -40
+KPX quoteright racute -40
+KPX quoteright rcaron -40
+KPX quoteright rcommaaccent -40
+KPX quoteright s -60
+KPX quoteright sacute -60
+KPX quoteright scaron -60
+KPX quoteright scedilla -60
+KPX quoteright scommaaccent -60
+KPX quoteright space -80
+KPX quoteright v -20
+KPX r c -20
+KPX r cacute -20
+KPX r ccaron -20
+KPX r ccedilla -20
+KPX r comma -60
+KPX r d -20
+KPX r dcroat -20
+KPX r g -15
+KPX r gbreve -15
+KPX r gcommaaccent -15
+KPX r hyphen -20
+KPX r o -20
+KPX r oacute -20
+KPX r ocircumflex -20
+KPX r odieresis -20
+KPX r ograve -20
+KPX r ohungarumlaut -20
+KPX r omacron -20
+KPX r oslash -20
+KPX r otilde -20
+KPX r period -60
+KPX r q -20
+KPX r s -15
+KPX r sacute -15
+KPX r scaron -15
+KPX r scedilla -15
+KPX r scommaaccent -15
+KPX r t 20
+KPX r tcommaaccent 20
+KPX r v 10
+KPX r y 10
+KPX r yacute 10
+KPX r ydieresis 10
+KPX racute c -20
+KPX racute cacute -20
+KPX racute ccaron -20
+KPX racute ccedilla -20
+KPX racute comma -60
+KPX racute d -20
+KPX racute dcroat -20
+KPX racute g -15
+KPX racute gbreve -15
+KPX racute gcommaaccent -15
+KPX racute hyphen -20
+KPX racute o -20
+KPX racute oacute -20
+KPX racute ocircumflex -20
+KPX racute odieresis -20
+KPX racute ograve -20
+KPX racute ohungarumlaut -20
+KPX racute omacron -20
+KPX racute oslash -20
+KPX racute otilde -20
+KPX racute period -60
+KPX racute q -20
+KPX racute s -15
+KPX racute sacute -15
+KPX racute scaron -15
+KPX racute scedilla -15
+KPX racute scommaaccent -15
+KPX racute t 20
+KPX racute tcommaaccent 20
+KPX racute v 10
+KPX racute y 10
+KPX racute yacute 10
+KPX racute ydieresis 10
+KPX rcaron c -20
+KPX rcaron cacute -20
+KPX rcaron ccaron -20
+KPX rcaron ccedilla -20
+KPX rcaron comma -60
+KPX rcaron d -20
+KPX rcaron dcroat -20
+KPX rcaron g -15
+KPX rcaron gbreve -15
+KPX rcaron gcommaaccent -15
+KPX rcaron hyphen -20
+KPX rcaron o -20
+KPX rcaron oacute -20
+KPX rcaron ocircumflex -20
+KPX rcaron odieresis -20
+KPX rcaron ograve -20
+KPX rcaron ohungarumlaut -20
+KPX rcaron omacron -20
+KPX rcaron oslash -20
+KPX rcaron otilde -20
+KPX rcaron period -60
+KPX rcaron q -20
+KPX rcaron s -15
+KPX rcaron sacute -15
+KPX rcaron scaron -15
+KPX rcaron scedilla -15
+KPX rcaron scommaaccent -15
+KPX rcaron t 20
+KPX rcaron tcommaaccent 20
+KPX rcaron v 10
+KPX rcaron y 10
+KPX rcaron yacute 10
+KPX rcaron ydieresis 10
+KPX rcommaaccent c -20
+KPX rcommaaccent cacute -20
+KPX rcommaaccent ccaron -20
+KPX rcommaaccent ccedilla -20
+KPX rcommaaccent comma -60
+KPX rcommaaccent d -20
+KPX rcommaaccent dcroat -20
+KPX rcommaaccent g -15
+KPX rcommaaccent gbreve -15
+KPX rcommaaccent gcommaaccent -15
+KPX rcommaaccent hyphen -20
+KPX rcommaaccent o -20
+KPX rcommaaccent oacute -20
+KPX rcommaaccent ocircumflex -20
+KPX rcommaaccent odieresis -20
+KPX rcommaaccent ograve -20
+KPX rcommaaccent ohungarumlaut -20
+KPX rcommaaccent omacron -20
+KPX rcommaaccent oslash -20
+KPX rcommaaccent otilde -20
+KPX rcommaaccent period -60
+KPX rcommaaccent q -20
+KPX rcommaaccent s -15
+KPX rcommaaccent sacute -15
+KPX rcommaaccent scaron -15
+KPX rcommaaccent scedilla -15
+KPX rcommaaccent scommaaccent -15
+KPX rcommaaccent t 20
+KPX rcommaaccent tcommaaccent 20
+KPX rcommaaccent v 10
+KPX rcommaaccent y 10
+KPX rcommaaccent yacute 10
+KPX rcommaaccent ydieresis 10
+KPX s w -15
+KPX sacute w -15
+KPX scaron w -15
+KPX scedilla w -15
+KPX scommaaccent w -15
+KPX semicolon space -40
+KPX space T -100
+KPX space Tcaron -100
+KPX space Tcommaaccent -100
+KPX space V -80
+KPX space W -80
+KPX space Y -120
+KPX space Yacute -120
+KPX space Ydieresis -120
+KPX space quotedblleft -80
+KPX space quoteleft -60
+KPX v a -20
+KPX v aacute -20
+KPX v abreve -20
+KPX v acircumflex -20
+KPX v adieresis -20
+KPX v agrave -20
+KPX v amacron -20
+KPX v aogonek -20
+KPX v aring -20
+KPX v atilde -20
+KPX v comma -80
+KPX v o -30
+KPX v oacute -30
+KPX v ocircumflex -30
+KPX v odieresis -30
+KPX v ograve -30
+KPX v ohungarumlaut -30
+KPX v omacron -30
+KPX v oslash -30
+KPX v otilde -30
+KPX v period -80
+KPX w comma -40
+KPX w o -20
+KPX w oacute -20
+KPX w ocircumflex -20
+KPX w odieresis -20
+KPX w ograve -20
+KPX w ohungarumlaut -20
+KPX w omacron -20
+KPX w oslash -20
+KPX w otilde -20
+KPX w period -40
+KPX x e -10
+KPX x eacute -10
+KPX x ecaron -10
+KPX x ecircumflex -10
+KPX x edieresis -10
+KPX x edotaccent -10
+KPX x egrave -10
+KPX x emacron -10
+KPX x eogonek -10
+KPX y a -30
+KPX y aacute -30
+KPX y abreve -30
+KPX y acircumflex -30
+KPX y adieresis -30
+KPX y agrave -30
+KPX y amacron -30
+KPX y aogonek -30
+KPX y aring -30
+KPX y atilde -30
+KPX y comma -80
+KPX y e -10
+KPX y eacute -10
+KPX y ecaron -10
+KPX y ecircumflex -10
+KPX y edieresis -10
+KPX y edotaccent -10
+KPX y egrave -10
+KPX y emacron -10
+KPX y eogonek -10
+KPX y o -25
+KPX y oacute -25
+KPX y ocircumflex -25
+KPX y odieresis -25
+KPX y ograve -25
+KPX y ohungarumlaut -25
+KPX y omacron -25
+KPX y oslash -25
+KPX y otilde -25
+KPX y period -80
+KPX yacute a -30
+KPX yacute aacute -30
+KPX yacute abreve -30
+KPX yacute acircumflex -30
+KPX yacute adieresis -30
+KPX yacute agrave -30
+KPX yacute amacron -30
+KPX yacute aogonek -30
+KPX yacute aring -30
+KPX yacute atilde -30
+KPX yacute comma -80
+KPX yacute e -10
+KPX yacute eacute -10
+KPX yacute ecaron -10
+KPX yacute ecircumflex -10
+KPX yacute edieresis -10
+KPX yacute edotaccent -10
+KPX yacute egrave -10
+KPX yacute emacron -10
+KPX yacute eogonek -10
+KPX yacute o -25
+KPX yacute oacute -25
+KPX yacute ocircumflex -25
+KPX yacute odieresis -25
+KPX yacute ograve -25
+KPX yacute ohungarumlaut -25
+KPX yacute omacron -25
+KPX yacute oslash -25
+KPX yacute otilde -25
+KPX yacute period -80
+KPX ydieresis a -30
+KPX ydieresis aacute -30
+KPX ydieresis abreve -30
+KPX ydieresis acircumflex -30
+KPX ydieresis adieresis -30
+KPX ydieresis agrave -30
+KPX ydieresis amacron -30
+KPX ydieresis aogonek -30
+KPX ydieresis aring -30
+KPX ydieresis atilde -30
+KPX ydieresis comma -80
+KPX ydieresis e -10
+KPX ydieresis eacute -10
+KPX ydieresis ecaron -10
+KPX ydieresis ecircumflex -10
+KPX ydieresis edieresis -10
+KPX ydieresis edotaccent -10
+KPX ydieresis egrave -10
+KPX ydieresis emacron -10
+KPX ydieresis eogonek -10
+KPX ydieresis o -25
+KPX ydieresis oacute -25
+KPX ydieresis ocircumflex -25
+KPX ydieresis odieresis -25
+KPX ydieresis ograve -25
+KPX ydieresis ohungarumlaut -25
+KPX ydieresis omacron -25
+KPX ydieresis oslash -25
+KPX ydieresis otilde -25
+KPX ydieresis period -80
+KPX z e 10
+KPX z eacute 10
+KPX z ecaron 10
+KPX z ecircumflex 10
+KPX z edieresis 10
+KPX z edotaccent 10
+KPX z egrave 10
+KPX z emacron 10
+KPX z eogonek 10
+KPX zacute e 10
+KPX zacute eacute 10
+KPX zacute ecaron 10
+KPX zacute ecircumflex 10
+KPX zacute edieresis 10
+KPX zacute edotaccent 10
+KPX zacute egrave 10
+KPX zacute emacron 10
+KPX zacute eogonek 10
+KPX zcaron e 10
+KPX zcaron eacute 10
+KPX zcaron ecaron 10
+KPX zcaron ecircumflex 10
+KPX zcaron edieresis 10
+KPX zcaron edotaccent 10
+KPX zcaron egrave 10
+KPX zcaron emacron 10
+KPX zcaron eogonek 10
+KPX zdotaccent e 10
+KPX zdotaccent eacute 10
+KPX zdotaccent ecaron 10
+KPX zdotaccent ecircumflex 10
+KPX zdotaccent edieresis 10
+KPX zdotaccent edotaccent 10
+KPX zdotaccent egrave 10
+KPX zdotaccent emacron 10
+KPX zdotaccent eogonek 10
+EndKernPairs
+EndKernData
+EndFontMetrics
diff --git a/php/extras/fonts/ps/Helvetica-BoldOblique.afm b/php/extras/fonts/ps/Helvetica-BoldOblique.afm
new file mode 100644
index 000000000..1715b2104
--- /dev/null
+++ b/php/extras/fonts/ps/Helvetica-BoldOblique.afm
@@ -0,0 +1,2827 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Thu May 1 12:45:12 1997
+Comment UniqueID 43053
+Comment VMusage 14482 68586
+FontName Helvetica-BoldOblique
+FullName Helvetica Bold Oblique
+FamilyName Helvetica
+Weight Bold
+ItalicAngle -12
+IsFixedPitch false
+CharacterSet ExtendedRoman
+FontBBox -174 -228 1114 962
+UnderlinePosition -100
+UnderlineThickness 50
+Version 002.000
+Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries.
+EncodingScheme AdobeStandardEncoding
+CapHeight 718
+XHeight 532
+Ascender 718
+Descender -207
+StdHW 118
+StdVW 140
+StartCharMetrics 315
+C 32 ; WX 278 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 333 ; N exclam ; B 94 0 397 718 ;
+C 34 ; WX 474 ; N quotedbl ; B 193 447 529 718 ;
+C 35 ; WX 556 ; N numbersign ; B 60 0 644 698 ;
+C 36 ; WX 556 ; N dollar ; B 67 -115 622 775 ;
+C 37 ; WX 889 ; N percent ; B 136 -19 901 710 ;
+C 38 ; WX 722 ; N ampersand ; B 89 -19 732 718 ;
+C 39 ; WX 278 ; N quoteright ; B 167 445 362 718 ;
+C 40 ; WX 333 ; N parenleft ; B 76 -208 470 734 ;
+C 41 ; WX 333 ; N parenright ; B -25 -208 369 734 ;
+C 42 ; WX 389 ; N asterisk ; B 146 387 481 718 ;
+C 43 ; WX 584 ; N plus ; B 82 0 610 506 ;
+C 44 ; WX 278 ; N comma ; B 28 -168 245 146 ;
+C 45 ; WX 333 ; N hyphen ; B 73 215 379 345 ;
+C 46 ; WX 278 ; N period ; B 64 0 245 146 ;
+C 47 ; WX 278 ; N slash ; B -37 -19 468 737 ;
+C 48 ; WX 556 ; N zero ; B 86 -19 617 710 ;
+C 49 ; WX 556 ; N one ; B 173 0 529 710 ;
+C 50 ; WX 556 ; N two ; B 26 0 619 710 ;
+C 51 ; WX 556 ; N three ; B 65 -19 608 710 ;
+C 52 ; WX 556 ; N four ; B 60 0 598 710 ;
+C 53 ; WX 556 ; N five ; B 64 -19 636 698 ;
+C 54 ; WX 556 ; N six ; B 85 -19 619 710 ;
+C 55 ; WX 556 ; N seven ; B 125 0 676 698 ;
+C 56 ; WX 556 ; N eight ; B 69 -19 616 710 ;
+C 57 ; WX 556 ; N nine ; B 78 -19 615 710 ;
+C 58 ; WX 333 ; N colon ; B 92 0 351 512 ;
+C 59 ; WX 333 ; N semicolon ; B 56 -168 351 512 ;
+C 60 ; WX 584 ; N less ; B 82 -8 655 514 ;
+C 61 ; WX 584 ; N equal ; B 58 87 633 419 ;
+C 62 ; WX 584 ; N greater ; B 36 -8 609 514 ;
+C 63 ; WX 611 ; N question ; B 165 0 671 727 ;
+C 64 ; WX 975 ; N at ; B 186 -19 954 737 ;
+C 65 ; WX 722 ; N A ; B 20 0 702 718 ;
+C 66 ; WX 722 ; N B ; B 76 0 764 718 ;
+C 67 ; WX 722 ; N C ; B 107 -19 789 737 ;
+C 68 ; WX 722 ; N D ; B 76 0 777 718 ;
+C 69 ; WX 667 ; N E ; B 76 0 757 718 ;
+C 70 ; WX 611 ; N F ; B 76 0 740 718 ;
+C 71 ; WX 778 ; N G ; B 108 -19 817 737 ;
+C 72 ; WX 722 ; N H ; B 71 0 804 718 ;
+C 73 ; WX 278 ; N I ; B 64 0 367 718 ;
+C 74 ; WX 556 ; N J ; B 60 -18 637 718 ;
+C 75 ; WX 722 ; N K ; B 87 0 858 718 ;
+C 76 ; WX 611 ; N L ; B 76 0 611 718 ;
+C 77 ; WX 833 ; N M ; B 69 0 918 718 ;
+C 78 ; WX 722 ; N N ; B 69 0 807 718 ;
+C 79 ; WX 778 ; N O ; B 107 -19 823 737 ;
+C 80 ; WX 667 ; N P ; B 76 0 738 718 ;
+C 81 ; WX 778 ; N Q ; B 107 -52 823 737 ;
+C 82 ; WX 722 ; N R ; B 76 0 778 718 ;
+C 83 ; WX 667 ; N S ; B 81 -19 718 737 ;
+C 84 ; WX 611 ; N T ; B 140 0 751 718 ;
+C 85 ; WX 722 ; N U ; B 116 -19 804 718 ;
+C 86 ; WX 667 ; N V ; B 172 0 801 718 ;
+C 87 ; WX 944 ; N W ; B 169 0 1082 718 ;
+C 88 ; WX 667 ; N X ; B 14 0 791 718 ;
+C 89 ; WX 667 ; N Y ; B 168 0 806 718 ;
+C 90 ; WX 611 ; N Z ; B 25 0 737 718 ;
+C 91 ; WX 333 ; N bracketleft ; B 21 -196 462 722 ;
+C 92 ; WX 278 ; N backslash ; B 124 -19 307 737 ;
+C 93 ; WX 333 ; N bracketright ; B -18 -196 423 722 ;
+C 94 ; WX 584 ; N asciicircum ; B 131 323 591 698 ;
+C 95 ; WX 556 ; N underscore ; B -27 -125 540 -75 ;
+C 96 ; WX 278 ; N quoteleft ; B 165 454 361 727 ;
+C 97 ; WX 556 ; N a ; B 55 -14 583 546 ;
+C 98 ; WX 611 ; N b ; B 61 -14 645 718 ;
+C 99 ; WX 556 ; N c ; B 79 -14 599 546 ;
+C 100 ; WX 611 ; N d ; B 82 -14 704 718 ;
+C 101 ; WX 556 ; N e ; B 70 -14 593 546 ;
+C 102 ; WX 333 ; N f ; B 87 0 469 727 ; L i fi ; L l fl ;
+C 103 ; WX 611 ; N g ; B 38 -217 666 546 ;
+C 104 ; WX 611 ; N h ; B 65 0 629 718 ;
+C 105 ; WX 278 ; N i ; B 69 0 363 725 ;
+C 106 ; WX 278 ; N j ; B -42 -214 363 725 ;
+C 107 ; WX 556 ; N k ; B 69 0 670 718 ;
+C 108 ; WX 278 ; N l ; B 69 0 362 718 ;
+C 109 ; WX 889 ; N m ; B 64 0 909 546 ;
+C 110 ; WX 611 ; N n ; B 65 0 629 546 ;
+C 111 ; WX 611 ; N o ; B 82 -14 643 546 ;
+C 112 ; WX 611 ; N p ; B 18 -207 645 546 ;
+C 113 ; WX 611 ; N q ; B 80 -207 665 546 ;
+C 114 ; WX 389 ; N r ; B 64 0 489 546 ;
+C 115 ; WX 556 ; N s ; B 63 -14 584 546 ;
+C 116 ; WX 333 ; N t ; B 100 -6 422 676 ;
+C 117 ; WX 611 ; N u ; B 98 -14 658 532 ;
+C 118 ; WX 556 ; N v ; B 126 0 656 532 ;
+C 119 ; WX 778 ; N w ; B 123 0 882 532 ;
+C 120 ; WX 556 ; N x ; B 15 0 648 532 ;
+C 121 ; WX 556 ; N y ; B 42 -214 652 532 ;
+C 122 ; WX 500 ; N z ; B 20 0 583 532 ;
+C 123 ; WX 389 ; N braceleft ; B 94 -196 518 722 ;
+C 124 ; WX 280 ; N bar ; B 36 -225 361 775 ;
+C 125 ; WX 389 ; N braceright ; B -18 -196 407 722 ;
+C 126 ; WX 584 ; N asciitilde ; B 115 163 577 343 ;
+C 161 ; WX 333 ; N exclamdown ; B 50 -186 353 532 ;
+C 162 ; WX 556 ; N cent ; B 79 -118 599 628 ;
+C 163 ; WX 556 ; N sterling ; B 50 -16 635 718 ;
+C 164 ; WX 167 ; N fraction ; B -174 -19 487 710 ;
+C 165 ; WX 556 ; N yen ; B 60 0 713 698 ;
+C 166 ; WX 556 ; N florin ; B -50 -210 669 737 ;
+C 167 ; WX 556 ; N section ; B 61 -184 598 727 ;
+C 168 ; WX 556 ; N currency ; B 27 76 680 636 ;
+C 169 ; WX 238 ; N quotesingle ; B 165 447 321 718 ;
+C 170 ; WX 500 ; N quotedblleft ; B 160 454 588 727 ;
+C 171 ; WX 556 ; N guillemotleft ; B 135 76 571 484 ;
+C 172 ; WX 333 ; N guilsinglleft ; B 130 76 353 484 ;
+C 173 ; WX 333 ; N guilsinglright ; B 99 76 322 484 ;
+C 174 ; WX 611 ; N fi ; B 87 0 696 727 ;
+C 175 ; WX 611 ; N fl ; B 87 0 695 727 ;
+C 177 ; WX 556 ; N endash ; B 48 227 627 333 ;
+C 178 ; WX 556 ; N dagger ; B 118 -171 626 718 ;
+C 179 ; WX 556 ; N daggerdbl ; B 46 -171 628 718 ;
+C 180 ; WX 278 ; N periodcentered ; B 110 172 276 334 ;
+C 182 ; WX 556 ; N paragraph ; B 98 -191 688 700 ;
+C 183 ; WX 350 ; N bullet ; B 83 194 420 524 ;
+C 184 ; WX 278 ; N quotesinglbase ; B 41 -146 236 127 ;
+C 185 ; WX 500 ; N quotedblbase ; B 36 -146 463 127 ;
+C 186 ; WX 500 ; N quotedblright ; B 162 445 589 718 ;
+C 187 ; WX 556 ; N guillemotright ; B 104 76 540 484 ;
+C 188 ; WX 1000 ; N ellipsis ; B 92 0 939 146 ;
+C 189 ; WX 1000 ; N perthousand ; B 76 -19 1038 710 ;
+C 191 ; WX 611 ; N questiondown ; B 53 -195 559 532 ;
+C 193 ; WX 333 ; N grave ; B 136 604 353 750 ;
+C 194 ; WX 333 ; N acute ; B 236 604 515 750 ;
+C 195 ; WX 333 ; N circumflex ; B 118 604 471 750 ;
+C 196 ; WX 333 ; N tilde ; B 113 610 507 737 ;
+C 197 ; WX 333 ; N macron ; B 122 604 483 678 ;
+C 198 ; WX 333 ; N breve ; B 156 604 494 750 ;
+C 199 ; WX 333 ; N dotaccent ; B 235 614 385 729 ;
+C 200 ; WX 333 ; N dieresis ; B 137 614 482 729 ;
+C 202 ; WX 333 ; N ring ; B 200 568 420 776 ;
+C 203 ; WX 333 ; N cedilla ; B -37 -228 220 0 ;
+C 205 ; WX 333 ; N hungarumlaut ; B 137 604 645 750 ;
+C 206 ; WX 333 ; N ogonek ; B 41 -228 264 0 ;
+C 207 ; WX 333 ; N caron ; B 149 604 502 750 ;
+C 208 ; WX 1000 ; N emdash ; B 48 227 1071 333 ;
+C 225 ; WX 1000 ; N AE ; B 5 0 1100 718 ;
+C 227 ; WX 370 ; N ordfeminine ; B 125 401 465 737 ;
+C 232 ; WX 611 ; N Lslash ; B 34 0 611 718 ;
+C 233 ; WX 778 ; N Oslash ; B 35 -27 894 745 ;
+C 234 ; WX 1000 ; N OE ; B 99 -19 1114 737 ;
+C 235 ; WX 365 ; N ordmasculine ; B 123 401 485 737 ;
+C 241 ; WX 889 ; N ae ; B 56 -14 923 546 ;
+C 245 ; WX 278 ; N dotlessi ; B 69 0 322 532 ;
+C 248 ; WX 278 ; N lslash ; B 40 0 407 718 ;
+C 249 ; WX 611 ; N oslash ; B 22 -29 701 560 ;
+C 250 ; WX 944 ; N oe ; B 82 -14 977 546 ;
+C 251 ; WX 611 ; N germandbls ; B 69 -14 657 731 ;
+C -1 ; WX 278 ; N Idieresis ; B 64 0 494 915 ;
+C -1 ; WX 556 ; N eacute ; B 70 -14 627 750 ;
+C -1 ; WX 556 ; N abreve ; B 55 -14 606 750 ;
+C -1 ; WX 611 ; N uhungarumlaut ; B 98 -14 784 750 ;
+C -1 ; WX 556 ; N ecaron ; B 70 -14 614 750 ;
+C -1 ; WX 667 ; N Ydieresis ; B 168 0 806 915 ;
+C -1 ; WX 584 ; N divide ; B 82 -42 610 548 ;
+C -1 ; WX 667 ; N Yacute ; B 168 0 806 936 ;
+C -1 ; WX 722 ; N Acircumflex ; B 20 0 706 936 ;
+C -1 ; WX 556 ; N aacute ; B 55 -14 627 750 ;
+C -1 ; WX 722 ; N Ucircumflex ; B 116 -19 804 936 ;
+C -1 ; WX 556 ; N yacute ; B 42 -214 652 750 ;
+C -1 ; WX 556 ; N scommaaccent ; B 63 -228 584 546 ;
+C -1 ; WX 556 ; N ecircumflex ; B 70 -14 593 750 ;
+C -1 ; WX 722 ; N Uring ; B 116 -19 804 962 ;
+C -1 ; WX 722 ; N Udieresis ; B 116 -19 804 915 ;
+C -1 ; WX 556 ; N aogonek ; B 55 -224 583 546 ;
+C -1 ; WX 722 ; N Uacute ; B 116 -19 804 936 ;
+C -1 ; WX 611 ; N uogonek ; B 98 -228 658 532 ;
+C -1 ; WX 667 ; N Edieresis ; B 76 0 757 915 ;
+C -1 ; WX 722 ; N Dcroat ; B 62 0 777 718 ;
+C -1 ; WX 250 ; N commaaccent ; B 16 -228 188 -50 ;
+C -1 ; WX 737 ; N copyright ; B 56 -19 835 737 ;
+C -1 ; WX 667 ; N Emacron ; B 76 0 757 864 ;
+C -1 ; WX 556 ; N ccaron ; B 79 -14 614 750 ;
+C -1 ; WX 556 ; N aring ; B 55 -14 583 776 ;
+C -1 ; WX 722 ; N Ncommaaccent ; B 69 -228 807 718 ;
+C -1 ; WX 278 ; N lacute ; B 69 0 528 936 ;
+C -1 ; WX 556 ; N agrave ; B 55 -14 583 750 ;
+C -1 ; WX 611 ; N Tcommaaccent ; B 140 -228 751 718 ;
+C -1 ; WX 722 ; N Cacute ; B 107 -19 789 936 ;
+C -1 ; WX 556 ; N atilde ; B 55 -14 619 737 ;
+C -1 ; WX 667 ; N Edotaccent ; B 76 0 757 915 ;
+C -1 ; WX 556 ; N scaron ; B 63 -14 614 750 ;
+C -1 ; WX 556 ; N scedilla ; B 63 -228 584 546 ;
+C -1 ; WX 278 ; N iacute ; B 69 0 488 750 ;
+C -1 ; WX 494 ; N lozenge ; B 90 0 564 745 ;
+C -1 ; WX 722 ; N Rcaron ; B 76 0 778 936 ;
+C -1 ; WX 778 ; N Gcommaaccent ; B 108 -228 817 737 ;
+C -1 ; WX 611 ; N ucircumflex ; B 98 -14 658 750 ;
+C -1 ; WX 556 ; N acircumflex ; B 55 -14 583 750 ;
+C -1 ; WX 722 ; N Amacron ; B 20 0 718 864 ;
+C -1 ; WX 389 ; N rcaron ; B 64 0 530 750 ;
+C -1 ; WX 556 ; N ccedilla ; B 79 -228 599 546 ;
+C -1 ; WX 611 ; N Zdotaccent ; B 25 0 737 915 ;
+C -1 ; WX 667 ; N Thorn ; B 76 0 716 718 ;
+C -1 ; WX 778 ; N Omacron ; B 107 -19 823 864 ;
+C -1 ; WX 722 ; N Racute ; B 76 0 778 936 ;
+C -1 ; WX 667 ; N Sacute ; B 81 -19 722 936 ;
+C -1 ; WX 743 ; N dcaron ; B 82 -14 903 718 ;
+C -1 ; WX 722 ; N Umacron ; B 116 -19 804 864 ;
+C -1 ; WX 611 ; N uring ; B 98 -14 658 776 ;
+C -1 ; WX 333 ; N threesuperior ; B 91 271 441 710 ;
+C -1 ; WX 778 ; N Ograve ; B 107 -19 823 936 ;
+C -1 ; WX 722 ; N Agrave ; B 20 0 702 936 ;
+C -1 ; WX 722 ; N Abreve ; B 20 0 729 936 ;
+C -1 ; WX 584 ; N multiply ; B 57 1 635 505 ;
+C -1 ; WX 611 ; N uacute ; B 98 -14 658 750 ;
+C -1 ; WX 611 ; N Tcaron ; B 140 0 751 936 ;
+C -1 ; WX 494 ; N partialdiff ; B 43 -21 585 750 ;
+C -1 ; WX 556 ; N ydieresis ; B 42 -214 652 729 ;
+C -1 ; WX 722 ; N Nacute ; B 69 0 807 936 ;
+C -1 ; WX 278 ; N icircumflex ; B 69 0 444 750 ;
+C -1 ; WX 667 ; N Ecircumflex ; B 76 0 757 936 ;
+C -1 ; WX 556 ; N adieresis ; B 55 -14 594 729 ;
+C -1 ; WX 556 ; N edieresis ; B 70 -14 594 729 ;
+C -1 ; WX 556 ; N cacute ; B 79 -14 627 750 ;
+C -1 ; WX 611 ; N nacute ; B 65 0 654 750 ;
+C -1 ; WX 611 ; N umacron ; B 98 -14 658 678 ;
+C -1 ; WX 722 ; N Ncaron ; B 69 0 807 936 ;
+C -1 ; WX 278 ; N Iacute ; B 64 0 528 936 ;
+C -1 ; WX 584 ; N plusminus ; B 40 0 625 506 ;
+C -1 ; WX 280 ; N brokenbar ; B 52 -150 345 700 ;
+C -1 ; WX 737 ; N registered ; B 55 -19 834 737 ;
+C -1 ; WX 778 ; N Gbreve ; B 108 -19 817 936 ;
+C -1 ; WX 278 ; N Idotaccent ; B 64 0 397 915 ;
+C -1 ; WX 600 ; N summation ; B 14 -10 670 706 ;
+C -1 ; WX 667 ; N Egrave ; B 76 0 757 936 ;
+C -1 ; WX 389 ; N racute ; B 64 0 543 750 ;
+C -1 ; WX 611 ; N omacron ; B 82 -14 643 678 ;
+C -1 ; WX 611 ; N Zacute ; B 25 0 737 936 ;
+C -1 ; WX 611 ; N Zcaron ; B 25 0 737 936 ;
+C -1 ; WX 549 ; N greaterequal ; B 26 0 629 704 ;
+C -1 ; WX 722 ; N Eth ; B 62 0 777 718 ;
+C -1 ; WX 722 ; N Ccedilla ; B 107 -228 789 737 ;
+C -1 ; WX 278 ; N lcommaaccent ; B 30 -228 362 718 ;
+C -1 ; WX 389 ; N tcaron ; B 100 -6 608 878 ;
+C -1 ; WX 556 ; N eogonek ; B 70 -228 593 546 ;
+C -1 ; WX 722 ; N Uogonek ; B 116 -228 804 718 ;
+C -1 ; WX 722 ; N Aacute ; B 20 0 750 936 ;
+C -1 ; WX 722 ; N Adieresis ; B 20 0 716 915 ;
+C -1 ; WX 556 ; N egrave ; B 70 -14 593 750 ;
+C -1 ; WX 500 ; N zacute ; B 20 0 599 750 ;
+C -1 ; WX 278 ; N iogonek ; B -14 -224 363 725 ;
+C -1 ; WX 778 ; N Oacute ; B 107 -19 823 936 ;
+C -1 ; WX 611 ; N oacute ; B 82 -14 654 750 ;
+C -1 ; WX 556 ; N amacron ; B 55 -14 595 678 ;
+C -1 ; WX 556 ; N sacute ; B 63 -14 627 750 ;
+C -1 ; WX 278 ; N idieresis ; B 69 0 455 729 ;
+C -1 ; WX 778 ; N Ocircumflex ; B 107 -19 823 936 ;
+C -1 ; WX 722 ; N Ugrave ; B 116 -19 804 936 ;
+C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
+C -1 ; WX 611 ; N thorn ; B 18 -208 645 718 ;
+C -1 ; WX 333 ; N twosuperior ; B 69 283 449 710 ;
+C -1 ; WX 778 ; N Odieresis ; B 107 -19 823 915 ;
+C -1 ; WX 611 ; N mu ; B 22 -207 658 532 ;
+C -1 ; WX 278 ; N igrave ; B 69 0 326 750 ;
+C -1 ; WX 611 ; N ohungarumlaut ; B 82 -14 784 750 ;
+C -1 ; WX 667 ; N Eogonek ; B 76 -224 757 718 ;
+C -1 ; WX 611 ; N dcroat ; B 82 -14 789 718 ;
+C -1 ; WX 834 ; N threequarters ; B 99 -19 839 710 ;
+C -1 ; WX 667 ; N Scedilla ; B 81 -228 718 737 ;
+C -1 ; WX 400 ; N lcaron ; B 69 0 561 718 ;
+C -1 ; WX 722 ; N Kcommaaccent ; B 87 -228 858 718 ;
+C -1 ; WX 611 ; N Lacute ; B 76 0 611 936 ;
+C -1 ; WX 1000 ; N trademark ; B 179 306 1109 718 ;
+C -1 ; WX 556 ; N edotaccent ; B 70 -14 593 729 ;
+C -1 ; WX 278 ; N Igrave ; B 64 0 367 936 ;
+C -1 ; WX 278 ; N Imacron ; B 64 0 496 864 ;
+C -1 ; WX 611 ; N Lcaron ; B 76 0 643 718 ;
+C -1 ; WX 834 ; N onehalf ; B 132 -19 858 710 ;
+C -1 ; WX 549 ; N lessequal ; B 29 0 676 704 ;
+C -1 ; WX 611 ; N ocircumflex ; B 82 -14 643 750 ;
+C -1 ; WX 611 ; N ntilde ; B 65 0 646 737 ;
+C -1 ; WX 722 ; N Uhungarumlaut ; B 116 -19 880 936 ;
+C -1 ; WX 667 ; N Eacute ; B 76 0 757 936 ;
+C -1 ; WX 556 ; N emacron ; B 70 -14 595 678 ;
+C -1 ; WX 611 ; N gbreve ; B 38 -217 666 750 ;
+C -1 ; WX 834 ; N onequarter ; B 132 -19 806 710 ;
+C -1 ; WX 667 ; N Scaron ; B 81 -19 718 936 ;
+C -1 ; WX 667 ; N Scommaaccent ; B 81 -228 718 737 ;
+C -1 ; WX 778 ; N Ohungarumlaut ; B 107 -19 908 936 ;
+C -1 ; WX 400 ; N degree ; B 175 426 467 712 ;
+C -1 ; WX 611 ; N ograve ; B 82 -14 643 750 ;
+C -1 ; WX 722 ; N Ccaron ; B 107 -19 789 936 ;
+C -1 ; WX 611 ; N ugrave ; B 98 -14 658 750 ;
+C -1 ; WX 549 ; N radical ; B 112 -46 689 850 ;
+C -1 ; WX 722 ; N Dcaron ; B 76 0 777 936 ;
+C -1 ; WX 389 ; N rcommaaccent ; B 26 -228 489 546 ;
+C -1 ; WX 722 ; N Ntilde ; B 69 0 807 923 ;
+C -1 ; WX 611 ; N otilde ; B 82 -14 646 737 ;
+C -1 ; WX 722 ; N Rcommaaccent ; B 76 -228 778 718 ;
+C -1 ; WX 611 ; N Lcommaaccent ; B 76 -228 611 718 ;
+C -1 ; WX 722 ; N Atilde ; B 20 0 741 923 ;
+C -1 ; WX 722 ; N Aogonek ; B 20 -224 702 718 ;
+C -1 ; WX 722 ; N Aring ; B 20 0 702 962 ;
+C -1 ; WX 778 ; N Otilde ; B 107 -19 823 923 ;
+C -1 ; WX 500 ; N zdotaccent ; B 20 0 583 729 ;
+C -1 ; WX 667 ; N Ecaron ; B 76 0 757 936 ;
+C -1 ; WX 278 ; N Iogonek ; B -41 -228 367 718 ;
+C -1 ; WX 556 ; N kcommaaccent ; B 69 -228 670 718 ;
+C -1 ; WX 584 ; N minus ; B 82 197 610 309 ;
+C -1 ; WX 278 ; N Icircumflex ; B 64 0 484 936 ;
+C -1 ; WX 611 ; N ncaron ; B 65 0 641 750 ;
+C -1 ; WX 333 ; N tcommaaccent ; B 58 -228 422 676 ;
+C -1 ; WX 584 ; N logicalnot ; B 105 108 633 419 ;
+C -1 ; WX 611 ; N odieresis ; B 82 -14 643 729 ;
+C -1 ; WX 611 ; N udieresis ; B 98 -14 658 729 ;
+C -1 ; WX 549 ; N notequal ; B 32 -49 630 570 ;
+C -1 ; WX 611 ; N gcommaaccent ; B 38 -217 666 850 ;
+C -1 ; WX 611 ; N eth ; B 82 -14 670 737 ;
+C -1 ; WX 500 ; N zcaron ; B 20 0 586 750 ;
+C -1 ; WX 611 ; N ncommaaccent ; B 65 -228 629 546 ;
+C -1 ; WX 333 ; N onesuperior ; B 148 283 388 710 ;
+C -1 ; WX 278 ; N imacron ; B 69 0 429 678 ;
+C -1 ; WX 556 ; N Euro ; B 0 0 0 0 ;
+EndCharMetrics
+StartKernData
+StartKernPairs 2481
+KPX A C -40
+KPX A Cacute -40
+KPX A Ccaron -40
+KPX A Ccedilla -40
+KPX A G -50
+KPX A Gbreve -50
+KPX A Gcommaaccent -50
+KPX A O -40
+KPX A Oacute -40
+KPX A Ocircumflex -40
+KPX A Odieresis -40
+KPX A Ograve -40
+KPX A Ohungarumlaut -40
+KPX A Omacron -40
+KPX A Oslash -40
+KPX A Otilde -40
+KPX A Q -40
+KPX A T -90
+KPX A Tcaron -90
+KPX A Tcommaaccent -90
+KPX A U -50
+KPX A Uacute -50
+KPX A Ucircumflex -50
+KPX A Udieresis -50
+KPX A Ugrave -50
+KPX A Uhungarumlaut -50
+KPX A Umacron -50
+KPX A Uogonek -50
+KPX A Uring -50
+KPX A V -80
+KPX A W -60
+KPX A Y -110
+KPX A Yacute -110
+KPX A Ydieresis -110
+KPX A u -30
+KPX A uacute -30
+KPX A ucircumflex -30
+KPX A udieresis -30
+KPX A ugrave -30
+KPX A uhungarumlaut -30
+KPX A umacron -30
+KPX A uogonek -30
+KPX A uring -30
+KPX A v -40
+KPX A w -30
+KPX A y -30
+KPX A yacute -30
+KPX A ydieresis -30
+KPX Aacute C -40
+KPX Aacute Cacute -40
+KPX Aacute Ccaron -40
+KPX Aacute Ccedilla -40
+KPX Aacute G -50
+KPX Aacute Gbreve -50
+KPX Aacute Gcommaaccent -50
+KPX Aacute O -40
+KPX Aacute Oacute -40
+KPX Aacute Ocircumflex -40
+KPX Aacute Odieresis -40
+KPX Aacute Ograve -40
+KPX Aacute Ohungarumlaut -40
+KPX Aacute Omacron -40
+KPX Aacute Oslash -40
+KPX Aacute Otilde -40
+KPX Aacute Q -40
+KPX Aacute T -90
+KPX Aacute Tcaron -90
+KPX Aacute Tcommaaccent -90
+KPX Aacute U -50
+KPX Aacute Uacute -50
+KPX Aacute Ucircumflex -50
+KPX Aacute Udieresis -50
+KPX Aacute Ugrave -50
+KPX Aacute Uhungarumlaut -50
+KPX Aacute Umacron -50
+KPX Aacute Uogonek -50
+KPX Aacute Uring -50
+KPX Aacute V -80
+KPX Aacute W -60
+KPX Aacute Y -110
+KPX Aacute Yacute -110
+KPX Aacute Ydieresis -110
+KPX Aacute u -30
+KPX Aacute uacute -30
+KPX Aacute ucircumflex -30
+KPX Aacute udieresis -30
+KPX Aacute ugrave -30
+KPX Aacute uhungarumlaut -30
+KPX Aacute umacron -30
+KPX Aacute uogonek -30
+KPX Aacute uring -30
+KPX Aacute v -40
+KPX Aacute w -30
+KPX Aacute y -30
+KPX Aacute yacute -30
+KPX Aacute ydieresis -30
+KPX Abreve C -40
+KPX Abreve Cacute -40
+KPX Abreve Ccaron -40
+KPX Abreve Ccedilla -40
+KPX Abreve G -50
+KPX Abreve Gbreve -50
+KPX Abreve Gcommaaccent -50
+KPX Abreve O -40
+KPX Abreve Oacute -40
+KPX Abreve Ocircumflex -40
+KPX Abreve Odieresis -40
+KPX Abreve Ograve -40
+KPX Abreve Ohungarumlaut -40
+KPX Abreve Omacron -40
+KPX Abreve Oslash -40
+KPX Abreve Otilde -40
+KPX Abreve Q -40
+KPX Abreve T -90
+KPX Abreve Tcaron -90
+KPX Abreve Tcommaaccent -90
+KPX Abreve U -50
+KPX Abreve Uacute -50
+KPX Abreve Ucircumflex -50
+KPX Abreve Udieresis -50
+KPX Abreve Ugrave -50
+KPX Abreve Uhungarumlaut -50
+KPX Abreve Umacron -50
+KPX Abreve Uogonek -50
+KPX Abreve Uring -50
+KPX Abreve V -80
+KPX Abreve W -60
+KPX Abreve Y -110
+KPX Abreve Yacute -110
+KPX Abreve Ydieresis -110
+KPX Abreve u -30
+KPX Abreve uacute -30
+KPX Abreve ucircumflex -30
+KPX Abreve udieresis -30
+KPX Abreve ugrave -30
+KPX Abreve uhungarumlaut -30
+KPX Abreve umacron -30
+KPX Abreve uogonek -30
+KPX Abreve uring -30
+KPX Abreve v -40
+KPX Abreve w -30
+KPX Abreve y -30
+KPX Abreve yacute -30
+KPX Abreve ydieresis -30
+KPX Acircumflex C -40
+KPX Acircumflex Cacute -40
+KPX Acircumflex Ccaron -40
+KPX Acircumflex Ccedilla -40
+KPX Acircumflex G -50
+KPX Acircumflex Gbreve -50
+KPX Acircumflex Gcommaaccent -50
+KPX Acircumflex O -40
+KPX Acircumflex Oacute -40
+KPX Acircumflex Ocircumflex -40
+KPX Acircumflex Odieresis -40
+KPX Acircumflex Ograve -40
+KPX Acircumflex Ohungarumlaut -40
+KPX Acircumflex Omacron -40
+KPX Acircumflex Oslash -40
+KPX Acircumflex Otilde -40
+KPX Acircumflex Q -40
+KPX Acircumflex T -90
+KPX Acircumflex Tcaron -90
+KPX Acircumflex Tcommaaccent -90
+KPX Acircumflex U -50
+KPX Acircumflex Uacute -50
+KPX Acircumflex Ucircumflex -50
+KPX Acircumflex Udieresis -50
+KPX Acircumflex Ugrave -50
+KPX Acircumflex Uhungarumlaut -50
+KPX Acircumflex Umacron -50
+KPX Acircumflex Uogonek -50
+KPX Acircumflex Uring -50
+KPX Acircumflex V -80
+KPX Acircumflex W -60
+KPX Acircumflex Y -110
+KPX Acircumflex Yacute -110
+KPX Acircumflex Ydieresis -110
+KPX Acircumflex u -30
+KPX Acircumflex uacute -30
+KPX Acircumflex ucircumflex -30
+KPX Acircumflex udieresis -30
+KPX Acircumflex ugrave -30
+KPX Acircumflex uhungarumlaut -30
+KPX Acircumflex umacron -30
+KPX Acircumflex uogonek -30
+KPX Acircumflex uring -30
+KPX Acircumflex v -40
+KPX Acircumflex w -30
+KPX Acircumflex y -30
+KPX Acircumflex yacute -30
+KPX Acircumflex ydieresis -30
+KPX Adieresis C -40
+KPX Adieresis Cacute -40
+KPX Adieresis Ccaron -40
+KPX Adieresis Ccedilla -40
+KPX Adieresis G -50
+KPX Adieresis Gbreve -50
+KPX Adieresis Gcommaaccent -50
+KPX Adieresis O -40
+KPX Adieresis Oacute -40
+KPX Adieresis Ocircumflex -40
+KPX Adieresis Odieresis -40
+KPX Adieresis Ograve -40
+KPX Adieresis Ohungarumlaut -40
+KPX Adieresis Omacron -40
+KPX Adieresis Oslash -40
+KPX Adieresis Otilde -40
+KPX Adieresis Q -40
+KPX Adieresis T -90
+KPX Adieresis Tcaron -90
+KPX Adieresis Tcommaaccent -90
+KPX Adieresis U -50
+KPX Adieresis Uacute -50
+KPX Adieresis Ucircumflex -50
+KPX Adieresis Udieresis -50
+KPX Adieresis Ugrave -50
+KPX Adieresis Uhungarumlaut -50
+KPX Adieresis Umacron -50
+KPX Adieresis Uogonek -50
+KPX Adieresis Uring -50
+KPX Adieresis V -80
+KPX Adieresis W -60
+KPX Adieresis Y -110
+KPX Adieresis Yacute -110
+KPX Adieresis Ydieresis -110
+KPX Adieresis u -30
+KPX Adieresis uacute -30
+KPX Adieresis ucircumflex -30
+KPX Adieresis udieresis -30
+KPX Adieresis ugrave -30
+KPX Adieresis uhungarumlaut -30
+KPX Adieresis umacron -30
+KPX Adieresis uogonek -30
+KPX Adieresis uring -30
+KPX Adieresis v -40
+KPX Adieresis w -30
+KPX Adieresis y -30
+KPX Adieresis yacute -30
+KPX Adieresis ydieresis -30
+KPX Agrave C -40
+KPX Agrave Cacute -40
+KPX Agrave Ccaron -40
+KPX Agrave Ccedilla -40
+KPX Agrave G -50
+KPX Agrave Gbreve -50
+KPX Agrave Gcommaaccent -50
+KPX Agrave O -40
+KPX Agrave Oacute -40
+KPX Agrave Ocircumflex -40
+KPX Agrave Odieresis -40
+KPX Agrave Ograve -40
+KPX Agrave Ohungarumlaut -40
+KPX Agrave Omacron -40
+KPX Agrave Oslash -40
+KPX Agrave Otilde -40
+KPX Agrave Q -40
+KPX Agrave T -90
+KPX Agrave Tcaron -90
+KPX Agrave Tcommaaccent -90
+KPX Agrave U -50
+KPX Agrave Uacute -50
+KPX Agrave Ucircumflex -50
+KPX Agrave Udieresis -50
+KPX Agrave Ugrave -50
+KPX Agrave Uhungarumlaut -50
+KPX Agrave Umacron -50
+KPX Agrave Uogonek -50
+KPX Agrave Uring -50
+KPX Agrave V -80
+KPX Agrave W -60
+KPX Agrave Y -110
+KPX Agrave Yacute -110
+KPX Agrave Ydieresis -110
+KPX Agrave u -30
+KPX Agrave uacute -30
+KPX Agrave ucircumflex -30
+KPX Agrave udieresis -30
+KPX Agrave ugrave -30
+KPX Agrave uhungarumlaut -30
+KPX Agrave umacron -30
+KPX Agrave uogonek -30
+KPX Agrave uring -30
+KPX Agrave v -40
+KPX Agrave w -30
+KPX Agrave y -30
+KPX Agrave yacute -30
+KPX Agrave ydieresis -30
+KPX Amacron C -40
+KPX Amacron Cacute -40
+KPX Amacron Ccaron -40
+KPX Amacron Ccedilla -40
+KPX Amacron G -50
+KPX Amacron Gbreve -50
+KPX Amacron Gcommaaccent -50
+KPX Amacron O -40
+KPX Amacron Oacute -40
+KPX Amacron Ocircumflex -40
+KPX Amacron Odieresis -40
+KPX Amacron Ograve -40
+KPX Amacron Ohungarumlaut -40
+KPX Amacron Omacron -40
+KPX Amacron Oslash -40
+KPX Amacron Otilde -40
+KPX Amacron Q -40
+KPX Amacron T -90
+KPX Amacron Tcaron -90
+KPX Amacron Tcommaaccent -90
+KPX Amacron U -50
+KPX Amacron Uacute -50
+KPX Amacron Ucircumflex -50
+KPX Amacron Udieresis -50
+KPX Amacron Ugrave -50
+KPX Amacron Uhungarumlaut -50
+KPX Amacron Umacron -50
+KPX Amacron Uogonek -50
+KPX Amacron Uring -50
+KPX Amacron V -80
+KPX Amacron W -60
+KPX Amacron Y -110
+KPX Amacron Yacute -110
+KPX Amacron Ydieresis -110
+KPX Amacron u -30
+KPX Amacron uacute -30
+KPX Amacron ucircumflex -30
+KPX Amacron udieresis -30
+KPX Amacron ugrave -30
+KPX Amacron uhungarumlaut -30
+KPX Amacron umacron -30
+KPX Amacron uogonek -30
+KPX Amacron uring -30
+KPX Amacron v -40
+KPX Amacron w -30
+KPX Amacron y -30
+KPX Amacron yacute -30
+KPX Amacron ydieresis -30
+KPX Aogonek C -40
+KPX Aogonek Cacute -40
+KPX Aogonek Ccaron -40
+KPX Aogonek Ccedilla -40
+KPX Aogonek G -50
+KPX Aogonek Gbreve -50
+KPX Aogonek Gcommaaccent -50
+KPX Aogonek O -40
+KPX Aogonek Oacute -40
+KPX Aogonek Ocircumflex -40
+KPX Aogonek Odieresis -40
+KPX Aogonek Ograve -40
+KPX Aogonek Ohungarumlaut -40
+KPX Aogonek Omacron -40
+KPX Aogonek Oslash -40
+KPX Aogonek Otilde -40
+KPX Aogonek Q -40
+KPX Aogonek T -90
+KPX Aogonek Tcaron -90
+KPX Aogonek Tcommaaccent -90
+KPX Aogonek U -50
+KPX Aogonek Uacute -50
+KPX Aogonek Ucircumflex -50
+KPX Aogonek Udieresis -50
+KPX Aogonek Ugrave -50
+KPX Aogonek Uhungarumlaut -50
+KPX Aogonek Umacron -50
+KPX Aogonek Uogonek -50
+KPX Aogonek Uring -50
+KPX Aogonek V -80
+KPX Aogonek W -60
+KPX Aogonek Y -110
+KPX Aogonek Yacute -110
+KPX Aogonek Ydieresis -110
+KPX Aogonek u -30
+KPX Aogonek uacute -30
+KPX Aogonek ucircumflex -30
+KPX Aogonek udieresis -30
+KPX Aogonek ugrave -30
+KPX Aogonek uhungarumlaut -30
+KPX Aogonek umacron -30
+KPX Aogonek uogonek -30
+KPX Aogonek uring -30
+KPX Aogonek v -40
+KPX Aogonek w -30
+KPX Aogonek y -30
+KPX Aogonek yacute -30
+KPX Aogonek ydieresis -30
+KPX Aring C -40
+KPX Aring Cacute -40
+KPX Aring Ccaron -40
+KPX Aring Ccedilla -40
+KPX Aring G -50
+KPX Aring Gbreve -50
+KPX Aring Gcommaaccent -50
+KPX Aring O -40
+KPX Aring Oacute -40
+KPX Aring Ocircumflex -40
+KPX Aring Odieresis -40
+KPX Aring Ograve -40
+KPX Aring Ohungarumlaut -40
+KPX Aring Omacron -40
+KPX Aring Oslash -40
+KPX Aring Otilde -40
+KPX Aring Q -40
+KPX Aring T -90
+KPX Aring Tcaron -90
+KPX Aring Tcommaaccent -90
+KPX Aring U -50
+KPX Aring Uacute -50
+KPX Aring Ucircumflex -50
+KPX Aring Udieresis -50
+KPX Aring Ugrave -50
+KPX Aring Uhungarumlaut -50
+KPX Aring Umacron -50
+KPX Aring Uogonek -50
+KPX Aring Uring -50
+KPX Aring V -80
+KPX Aring W -60
+KPX Aring Y -110
+KPX Aring Yacute -110
+KPX Aring Ydieresis -110
+KPX Aring u -30
+KPX Aring uacute -30
+KPX Aring ucircumflex -30
+KPX Aring udieresis -30
+KPX Aring ugrave -30
+KPX Aring uhungarumlaut -30
+KPX Aring umacron -30
+KPX Aring uogonek -30
+KPX Aring uring -30
+KPX Aring v -40
+KPX Aring w -30
+KPX Aring y -30
+KPX Aring yacute -30
+KPX Aring ydieresis -30
+KPX Atilde C -40
+KPX Atilde Cacute -40
+KPX Atilde Ccaron -40
+KPX Atilde Ccedilla -40
+KPX Atilde G -50
+KPX Atilde Gbreve -50
+KPX Atilde Gcommaaccent -50
+KPX Atilde O -40
+KPX Atilde Oacute -40
+KPX Atilde Ocircumflex -40
+KPX Atilde Odieresis -40
+KPX Atilde Ograve -40
+KPX Atilde Ohungarumlaut -40
+KPX Atilde Omacron -40
+KPX Atilde Oslash -40
+KPX Atilde Otilde -40
+KPX Atilde Q -40
+KPX Atilde T -90
+KPX Atilde Tcaron -90
+KPX Atilde Tcommaaccent -90
+KPX Atilde U -50
+KPX Atilde Uacute -50
+KPX Atilde Ucircumflex -50
+KPX Atilde Udieresis -50
+KPX Atilde Ugrave -50
+KPX Atilde Uhungarumlaut -50
+KPX Atilde Umacron -50
+KPX Atilde Uogonek -50
+KPX Atilde Uring -50
+KPX Atilde V -80
+KPX Atilde W -60
+KPX Atilde Y -110
+KPX Atilde Yacute -110
+KPX Atilde Ydieresis -110
+KPX Atilde u -30
+KPX Atilde uacute -30
+KPX Atilde ucircumflex -30
+KPX Atilde udieresis -30
+KPX Atilde ugrave -30
+KPX Atilde uhungarumlaut -30
+KPX Atilde umacron -30
+KPX Atilde uogonek -30
+KPX Atilde uring -30
+KPX Atilde v -40
+KPX Atilde w -30
+KPX Atilde y -30
+KPX Atilde yacute -30
+KPX Atilde ydieresis -30
+KPX B A -30
+KPX B Aacute -30
+KPX B Abreve -30
+KPX B Acircumflex -30
+KPX B Adieresis -30
+KPX B Agrave -30
+KPX B Amacron -30
+KPX B Aogonek -30
+KPX B Aring -30
+KPX B Atilde -30
+KPX B U -10
+KPX B Uacute -10
+KPX B Ucircumflex -10
+KPX B Udieresis -10
+KPX B Ugrave -10
+KPX B Uhungarumlaut -10
+KPX B Umacron -10
+KPX B Uogonek -10
+KPX B Uring -10
+KPX D A -40
+KPX D Aacute -40
+KPX D Abreve -40
+KPX D Acircumflex -40
+KPX D Adieresis -40
+KPX D Agrave -40
+KPX D Amacron -40
+KPX D Aogonek -40
+KPX D Aring -40
+KPX D Atilde -40
+KPX D V -40
+KPX D W -40
+KPX D Y -70
+KPX D Yacute -70
+KPX D Ydieresis -70
+KPX D comma -30
+KPX D period -30
+KPX Dcaron A -40
+KPX Dcaron Aacute -40
+KPX Dcaron Abreve -40
+KPX Dcaron Acircumflex -40
+KPX Dcaron Adieresis -40
+KPX Dcaron Agrave -40
+KPX Dcaron Amacron -40
+KPX Dcaron Aogonek -40
+KPX Dcaron Aring -40
+KPX Dcaron Atilde -40
+KPX Dcaron V -40
+KPX Dcaron W -40
+KPX Dcaron Y -70
+KPX Dcaron Yacute -70
+KPX Dcaron Ydieresis -70
+KPX Dcaron comma -30
+KPX Dcaron period -30
+KPX Dcroat A -40
+KPX Dcroat Aacute -40
+KPX Dcroat Abreve -40
+KPX Dcroat Acircumflex -40
+KPX Dcroat Adieresis -40
+KPX Dcroat Agrave -40
+KPX Dcroat Amacron -40
+KPX Dcroat Aogonek -40
+KPX Dcroat Aring -40
+KPX Dcroat Atilde -40
+KPX Dcroat V -40
+KPX Dcroat W -40
+KPX Dcroat Y -70
+KPX Dcroat Yacute -70
+KPX Dcroat Ydieresis -70
+KPX Dcroat comma -30
+KPX Dcroat period -30
+KPX F A -80
+KPX F Aacute -80
+KPX F Abreve -80
+KPX F Acircumflex -80
+KPX F Adieresis -80
+KPX F Agrave -80
+KPX F Amacron -80
+KPX F Aogonek -80
+KPX F Aring -80
+KPX F Atilde -80
+KPX F a -20
+KPX F aacute -20
+KPX F abreve -20
+KPX F acircumflex -20
+KPX F adieresis -20
+KPX F agrave -20
+KPX F amacron -20
+KPX F aogonek -20
+KPX F aring -20
+KPX F atilde -20
+KPX F comma -100
+KPX F period -100
+KPX J A -20
+KPX J Aacute -20
+KPX J Abreve -20
+KPX J Acircumflex -20
+KPX J Adieresis -20
+KPX J Agrave -20
+KPX J Amacron -20
+KPX J Aogonek -20
+KPX J Aring -20
+KPX J Atilde -20
+KPX J comma -20
+KPX J period -20
+KPX J u -20
+KPX J uacute -20
+KPX J ucircumflex -20
+KPX J udieresis -20
+KPX J ugrave -20
+KPX J uhungarumlaut -20
+KPX J umacron -20
+KPX J uogonek -20
+KPX J uring -20
+KPX K O -30
+KPX K Oacute -30
+KPX K Ocircumflex -30
+KPX K Odieresis -30
+KPX K Ograve -30
+KPX K Ohungarumlaut -30
+KPX K Omacron -30
+KPX K Oslash -30
+KPX K Otilde -30
+KPX K e -15
+KPX K eacute -15
+KPX K ecaron -15
+KPX K ecircumflex -15
+KPX K edieresis -15
+KPX K edotaccent -15
+KPX K egrave -15
+KPX K emacron -15
+KPX K eogonek -15
+KPX K o -35
+KPX K oacute -35
+KPX K ocircumflex -35
+KPX K odieresis -35
+KPX K ograve -35
+KPX K ohungarumlaut -35
+KPX K omacron -35
+KPX K oslash -35
+KPX K otilde -35
+KPX K u -30
+KPX K uacute -30
+KPX K ucircumflex -30
+KPX K udieresis -30
+KPX K ugrave -30
+KPX K uhungarumlaut -30
+KPX K umacron -30
+KPX K uogonek -30
+KPX K uring -30
+KPX K y -40
+KPX K yacute -40
+KPX K ydieresis -40
+KPX Kcommaaccent O -30
+KPX Kcommaaccent Oacute -30
+KPX Kcommaaccent Ocircumflex -30
+KPX Kcommaaccent Odieresis -30
+KPX Kcommaaccent Ograve -30
+KPX Kcommaaccent Ohungarumlaut -30
+KPX Kcommaaccent Omacron -30
+KPX Kcommaaccent Oslash -30
+KPX Kcommaaccent Otilde -30
+KPX Kcommaaccent e -15
+KPX Kcommaaccent eacute -15
+KPX Kcommaaccent ecaron -15
+KPX Kcommaaccent ecircumflex -15
+KPX Kcommaaccent edieresis -15
+KPX Kcommaaccent edotaccent -15
+KPX Kcommaaccent egrave -15
+KPX Kcommaaccent emacron -15
+KPX Kcommaaccent eogonek -15
+KPX Kcommaaccent o -35
+KPX Kcommaaccent oacute -35
+KPX Kcommaaccent ocircumflex -35
+KPX Kcommaaccent odieresis -35
+KPX Kcommaaccent ograve -35
+KPX Kcommaaccent ohungarumlaut -35
+KPX Kcommaaccent omacron -35
+KPX Kcommaaccent oslash -35
+KPX Kcommaaccent otilde -35
+KPX Kcommaaccent u -30
+KPX Kcommaaccent uacute -30
+KPX Kcommaaccent ucircumflex -30
+KPX Kcommaaccent udieresis -30
+KPX Kcommaaccent ugrave -30
+KPX Kcommaaccent uhungarumlaut -30
+KPX Kcommaaccent umacron -30
+KPX Kcommaaccent uogonek -30
+KPX Kcommaaccent uring -30
+KPX Kcommaaccent y -40
+KPX Kcommaaccent yacute -40
+KPX Kcommaaccent ydieresis -40
+KPX L T -90
+KPX L Tcaron -90
+KPX L Tcommaaccent -90
+KPX L V -110
+KPX L W -80
+KPX L Y -120
+KPX L Yacute -120
+KPX L Ydieresis -120
+KPX L quotedblright -140
+KPX L quoteright -140
+KPX L y -30
+KPX L yacute -30
+KPX L ydieresis -30
+KPX Lacute T -90
+KPX Lacute Tcaron -90
+KPX Lacute Tcommaaccent -90
+KPX Lacute V -110
+KPX Lacute W -80
+KPX Lacute Y -120
+KPX Lacute Yacute -120
+KPX Lacute Ydieresis -120
+KPX Lacute quotedblright -140
+KPX Lacute quoteright -140
+KPX Lacute y -30
+KPX Lacute yacute -30
+KPX Lacute ydieresis -30
+KPX Lcommaaccent T -90
+KPX Lcommaaccent Tcaron -90
+KPX Lcommaaccent Tcommaaccent -90
+KPX Lcommaaccent V -110
+KPX Lcommaaccent W -80
+KPX Lcommaaccent Y -120
+KPX Lcommaaccent Yacute -120
+KPX Lcommaaccent Ydieresis -120
+KPX Lcommaaccent quotedblright -140
+KPX Lcommaaccent quoteright -140
+KPX Lcommaaccent y -30
+KPX Lcommaaccent yacute -30
+KPX Lcommaaccent ydieresis -30
+KPX Lslash T -90
+KPX Lslash Tcaron -90
+KPX Lslash Tcommaaccent -90
+KPX Lslash V -110
+KPX Lslash W -80
+KPX Lslash Y -120
+KPX Lslash Yacute -120
+KPX Lslash Ydieresis -120
+KPX Lslash quotedblright -140
+KPX Lslash quoteright -140
+KPX Lslash y -30
+KPX Lslash yacute -30
+KPX Lslash ydieresis -30
+KPX O A -50
+KPX O Aacute -50
+KPX O Abreve -50
+KPX O Acircumflex -50
+KPX O Adieresis -50
+KPX O Agrave -50
+KPX O Amacron -50
+KPX O Aogonek -50
+KPX O Aring -50
+KPX O Atilde -50
+KPX O T -40
+KPX O Tcaron -40
+KPX O Tcommaaccent -40
+KPX O V -50
+KPX O W -50
+KPX O X -50
+KPX O Y -70
+KPX O Yacute -70
+KPX O Ydieresis -70
+KPX O comma -40
+KPX O period -40
+KPX Oacute A -50
+KPX Oacute Aacute -50
+KPX Oacute Abreve -50
+KPX Oacute Acircumflex -50
+KPX Oacute Adieresis -50
+KPX Oacute Agrave -50
+KPX Oacute Amacron -50
+KPX Oacute Aogonek -50
+KPX Oacute Aring -50
+KPX Oacute Atilde -50
+KPX Oacute T -40
+KPX Oacute Tcaron -40
+KPX Oacute Tcommaaccent -40
+KPX Oacute V -50
+KPX Oacute W -50
+KPX Oacute X -50
+KPX Oacute Y -70
+KPX Oacute Yacute -70
+KPX Oacute Ydieresis -70
+KPX Oacute comma -40
+KPX Oacute period -40
+KPX Ocircumflex A -50
+KPX Ocircumflex Aacute -50
+KPX Ocircumflex Abreve -50
+KPX Ocircumflex Acircumflex -50
+KPX Ocircumflex Adieresis -50
+KPX Ocircumflex Agrave -50
+KPX Ocircumflex Amacron -50
+KPX Ocircumflex Aogonek -50
+KPX Ocircumflex Aring -50
+KPX Ocircumflex Atilde -50
+KPX Ocircumflex T -40
+KPX Ocircumflex Tcaron -40
+KPX Ocircumflex Tcommaaccent -40
+KPX Ocircumflex V -50
+KPX Ocircumflex W -50
+KPX Ocircumflex X -50
+KPX Ocircumflex Y -70
+KPX Ocircumflex Yacute -70
+KPX Ocircumflex Ydieresis -70
+KPX Ocircumflex comma -40
+KPX Ocircumflex period -40
+KPX Odieresis A -50
+KPX Odieresis Aacute -50
+KPX Odieresis Abreve -50
+KPX Odieresis Acircumflex -50
+KPX Odieresis Adieresis -50
+KPX Odieresis Agrave -50
+KPX Odieresis Amacron -50
+KPX Odieresis Aogonek -50
+KPX Odieresis Aring -50
+KPX Odieresis Atilde -50
+KPX Odieresis T -40
+KPX Odieresis Tcaron -40
+KPX Odieresis Tcommaaccent -40
+KPX Odieresis V -50
+KPX Odieresis W -50
+KPX Odieresis X -50
+KPX Odieresis Y -70
+KPX Odieresis Yacute -70
+KPX Odieresis Ydieresis -70
+KPX Odieresis comma -40
+KPX Odieresis period -40
+KPX Ograve A -50
+KPX Ograve Aacute -50
+KPX Ograve Abreve -50
+KPX Ograve Acircumflex -50
+KPX Ograve Adieresis -50
+KPX Ograve Agrave -50
+KPX Ograve Amacron -50
+KPX Ograve Aogonek -50
+KPX Ograve Aring -50
+KPX Ograve Atilde -50
+KPX Ograve T -40
+KPX Ograve Tcaron -40
+KPX Ograve Tcommaaccent -40
+KPX Ograve V -50
+KPX Ograve W -50
+KPX Ograve X -50
+KPX Ograve Y -70
+KPX Ograve Yacute -70
+KPX Ograve Ydieresis -70
+KPX Ograve comma -40
+KPX Ograve period -40
+KPX Ohungarumlaut A -50
+KPX Ohungarumlaut Aacute -50
+KPX Ohungarumlaut Abreve -50
+KPX Ohungarumlaut Acircumflex -50
+KPX Ohungarumlaut Adieresis -50
+KPX Ohungarumlaut Agrave -50
+KPX Ohungarumlaut Amacron -50
+KPX Ohungarumlaut Aogonek -50
+KPX Ohungarumlaut Aring -50
+KPX Ohungarumlaut Atilde -50
+KPX Ohungarumlaut T -40
+KPX Ohungarumlaut Tcaron -40
+KPX Ohungarumlaut Tcommaaccent -40
+KPX Ohungarumlaut V -50
+KPX Ohungarumlaut W -50
+KPX Ohungarumlaut X -50
+KPX Ohungarumlaut Y -70
+KPX Ohungarumlaut Yacute -70
+KPX Ohungarumlaut Ydieresis -70
+KPX Ohungarumlaut comma -40
+KPX Ohungarumlaut period -40
+KPX Omacron A -50
+KPX Omacron Aacute -50
+KPX Omacron Abreve -50
+KPX Omacron Acircumflex -50
+KPX Omacron Adieresis -50
+KPX Omacron Agrave -50
+KPX Omacron Amacron -50
+KPX Omacron Aogonek -50
+KPX Omacron Aring -50
+KPX Omacron Atilde -50
+KPX Omacron T -40
+KPX Omacron Tcaron -40
+KPX Omacron Tcommaaccent -40
+KPX Omacron V -50
+KPX Omacron W -50
+KPX Omacron X -50
+KPX Omacron Y -70
+KPX Omacron Yacute -70
+KPX Omacron Ydieresis -70
+KPX Omacron comma -40
+KPX Omacron period -40
+KPX Oslash A -50
+KPX Oslash Aacute -50
+KPX Oslash Abreve -50
+KPX Oslash Acircumflex -50
+KPX Oslash Adieresis -50
+KPX Oslash Agrave -50
+KPX Oslash Amacron -50
+KPX Oslash Aogonek -50
+KPX Oslash Aring -50
+KPX Oslash Atilde -50
+KPX Oslash T -40
+KPX Oslash Tcaron -40
+KPX Oslash Tcommaaccent -40
+KPX Oslash V -50
+KPX Oslash W -50
+KPX Oslash X -50
+KPX Oslash Y -70
+KPX Oslash Yacute -70
+KPX Oslash Ydieresis -70
+KPX Oslash comma -40
+KPX Oslash period -40
+KPX Otilde A -50
+KPX Otilde Aacute -50
+KPX Otilde Abreve -50
+KPX Otilde Acircumflex -50
+KPX Otilde Adieresis -50
+KPX Otilde Agrave -50
+KPX Otilde Amacron -50
+KPX Otilde Aogonek -50
+KPX Otilde Aring -50
+KPX Otilde Atilde -50
+KPX Otilde T -40
+KPX Otilde Tcaron -40
+KPX Otilde Tcommaaccent -40
+KPX Otilde V -50
+KPX Otilde W -50
+KPX Otilde X -50
+KPX Otilde Y -70
+KPX Otilde Yacute -70
+KPX Otilde Ydieresis -70
+KPX Otilde comma -40
+KPX Otilde period -40
+KPX P A -100
+KPX P Aacute -100
+KPX P Abreve -100
+KPX P Acircumflex -100
+KPX P Adieresis -100
+KPX P Agrave -100
+KPX P Amacron -100
+KPX P Aogonek -100
+KPX P Aring -100
+KPX P Atilde -100
+KPX P a -30
+KPX P aacute -30
+KPX P abreve -30
+KPX P acircumflex -30
+KPX P adieresis -30
+KPX P agrave -30
+KPX P amacron -30
+KPX P aogonek -30
+KPX P aring -30
+KPX P atilde -30
+KPX P comma -120
+KPX P e -30
+KPX P eacute -30
+KPX P ecaron -30
+KPX P ecircumflex -30
+KPX P edieresis -30
+KPX P edotaccent -30
+KPX P egrave -30
+KPX P emacron -30
+KPX P eogonek -30
+KPX P o -40
+KPX P oacute -40
+KPX P ocircumflex -40
+KPX P odieresis -40
+KPX P ograve -40
+KPX P ohungarumlaut -40
+KPX P omacron -40
+KPX P oslash -40
+KPX P otilde -40
+KPX P period -120
+KPX Q U -10
+KPX Q Uacute -10
+KPX Q Ucircumflex -10
+KPX Q Udieresis -10
+KPX Q Ugrave -10
+KPX Q Uhungarumlaut -10
+KPX Q Umacron -10
+KPX Q Uogonek -10
+KPX Q Uring -10
+KPX Q comma 20
+KPX Q period 20
+KPX R O -20
+KPX R Oacute -20
+KPX R Ocircumflex -20
+KPX R Odieresis -20
+KPX R Ograve -20
+KPX R Ohungarumlaut -20
+KPX R Omacron -20
+KPX R Oslash -20
+KPX R Otilde -20
+KPX R T -20
+KPX R Tcaron -20
+KPX R Tcommaaccent -20
+KPX R U -20
+KPX R Uacute -20
+KPX R Ucircumflex -20
+KPX R Udieresis -20
+KPX R Ugrave -20
+KPX R Uhungarumlaut -20
+KPX R Umacron -20
+KPX R Uogonek -20
+KPX R Uring -20
+KPX R V -50
+KPX R W -40
+KPX R Y -50
+KPX R Yacute -50
+KPX R Ydieresis -50
+KPX Racute O -20
+KPX Racute Oacute -20
+KPX Racute Ocircumflex -20
+KPX Racute Odieresis -20
+KPX Racute Ograve -20
+KPX Racute Ohungarumlaut -20
+KPX Racute Omacron -20
+KPX Racute Oslash -20
+KPX Racute Otilde -20
+KPX Racute T -20
+KPX Racute Tcaron -20
+KPX Racute Tcommaaccent -20
+KPX Racute U -20
+KPX Racute Uacute -20
+KPX Racute Ucircumflex -20
+KPX Racute Udieresis -20
+KPX Racute Ugrave -20
+KPX Racute Uhungarumlaut -20
+KPX Racute Umacron -20
+KPX Racute Uogonek -20
+KPX Racute Uring -20
+KPX Racute V -50
+KPX Racute W -40
+KPX Racute Y -50
+KPX Racute Yacute -50
+KPX Racute Ydieresis -50
+KPX Rcaron O -20
+KPX Rcaron Oacute -20
+KPX Rcaron Ocircumflex -20
+KPX Rcaron Odieresis -20
+KPX Rcaron Ograve -20
+KPX Rcaron Ohungarumlaut -20
+KPX Rcaron Omacron -20
+KPX Rcaron Oslash -20
+KPX Rcaron Otilde -20
+KPX Rcaron T -20
+KPX Rcaron Tcaron -20
+KPX Rcaron Tcommaaccent -20
+KPX Rcaron U -20
+KPX Rcaron Uacute -20
+KPX Rcaron Ucircumflex -20
+KPX Rcaron Udieresis -20
+KPX Rcaron Ugrave -20
+KPX Rcaron Uhungarumlaut -20
+KPX Rcaron Umacron -20
+KPX Rcaron Uogonek -20
+KPX Rcaron Uring -20
+KPX Rcaron V -50
+KPX Rcaron W -40
+KPX Rcaron Y -50
+KPX Rcaron Yacute -50
+KPX Rcaron Ydieresis -50
+KPX Rcommaaccent O -20
+KPX Rcommaaccent Oacute -20
+KPX Rcommaaccent Ocircumflex -20
+KPX Rcommaaccent Odieresis -20
+KPX Rcommaaccent Ograve -20
+KPX Rcommaaccent Ohungarumlaut -20
+KPX Rcommaaccent Omacron -20
+KPX Rcommaaccent Oslash -20
+KPX Rcommaaccent Otilde -20
+KPX Rcommaaccent T -20
+KPX Rcommaaccent Tcaron -20
+KPX Rcommaaccent Tcommaaccent -20
+KPX Rcommaaccent U -20
+KPX Rcommaaccent Uacute -20
+KPX Rcommaaccent Ucircumflex -20
+KPX Rcommaaccent Udieresis -20
+KPX Rcommaaccent Ugrave -20
+KPX Rcommaaccent Uhungarumlaut -20
+KPX Rcommaaccent Umacron -20
+KPX Rcommaaccent Uogonek -20
+KPX Rcommaaccent Uring -20
+KPX Rcommaaccent V -50
+KPX Rcommaaccent W -40
+KPX Rcommaaccent Y -50
+KPX Rcommaaccent Yacute -50
+KPX Rcommaaccent Ydieresis -50
+KPX T A -90
+KPX T Aacute -90
+KPX T Abreve -90
+KPX T Acircumflex -90
+KPX T Adieresis -90
+KPX T Agrave -90
+KPX T Amacron -90
+KPX T Aogonek -90
+KPX T Aring -90
+KPX T Atilde -90
+KPX T O -40
+KPX T Oacute -40
+KPX T Ocircumflex -40
+KPX T Odieresis -40
+KPX T Ograve -40
+KPX T Ohungarumlaut -40
+KPX T Omacron -40
+KPX T Oslash -40
+KPX T Otilde -40
+KPX T a -80
+KPX T aacute -80
+KPX T abreve -80
+KPX T acircumflex -80
+KPX T adieresis -80
+KPX T agrave -80
+KPX T amacron -80
+KPX T aogonek -80
+KPX T aring -80
+KPX T atilde -80
+KPX T colon -40
+KPX T comma -80
+KPX T e -60
+KPX T eacute -60
+KPX T ecaron -60
+KPX T ecircumflex -60
+KPX T edieresis -60
+KPX T edotaccent -60
+KPX T egrave -60
+KPX T emacron -60
+KPX T eogonek -60
+KPX T hyphen -120
+KPX T o -80
+KPX T oacute -80
+KPX T ocircumflex -80
+KPX T odieresis -80
+KPX T ograve -80
+KPX T ohungarumlaut -80
+KPX T omacron -80
+KPX T oslash -80
+KPX T otilde -80
+KPX T period -80
+KPX T r -80
+KPX T racute -80
+KPX T rcommaaccent -80
+KPX T semicolon -40
+KPX T u -90
+KPX T uacute -90
+KPX T ucircumflex -90
+KPX T udieresis -90
+KPX T ugrave -90
+KPX T uhungarumlaut -90
+KPX T umacron -90
+KPX T uogonek -90
+KPX T uring -90
+KPX T w -60
+KPX T y -60
+KPX T yacute -60
+KPX T ydieresis -60
+KPX Tcaron A -90
+KPX Tcaron Aacute -90
+KPX Tcaron Abreve -90
+KPX Tcaron Acircumflex -90
+KPX Tcaron Adieresis -90
+KPX Tcaron Agrave -90
+KPX Tcaron Amacron -90
+KPX Tcaron Aogonek -90
+KPX Tcaron Aring -90
+KPX Tcaron Atilde -90
+KPX Tcaron O -40
+KPX Tcaron Oacute -40
+KPX Tcaron Ocircumflex -40
+KPX Tcaron Odieresis -40
+KPX Tcaron Ograve -40
+KPX Tcaron Ohungarumlaut -40
+KPX Tcaron Omacron -40
+KPX Tcaron Oslash -40
+KPX Tcaron Otilde -40
+KPX Tcaron a -80
+KPX Tcaron aacute -80
+KPX Tcaron abreve -80
+KPX Tcaron acircumflex -80
+KPX Tcaron adieresis -80
+KPX Tcaron agrave -80
+KPX Tcaron amacron -80
+KPX Tcaron aogonek -80
+KPX Tcaron aring -80
+KPX Tcaron atilde -80
+KPX Tcaron colon -40
+KPX Tcaron comma -80
+KPX Tcaron e -60
+KPX Tcaron eacute -60
+KPX Tcaron ecaron -60
+KPX Tcaron ecircumflex -60
+KPX Tcaron edieresis -60
+KPX Tcaron edotaccent -60
+KPX Tcaron egrave -60
+KPX Tcaron emacron -60
+KPX Tcaron eogonek -60
+KPX Tcaron hyphen -120
+KPX Tcaron o -80
+KPX Tcaron oacute -80
+KPX Tcaron ocircumflex -80
+KPX Tcaron odieresis -80
+KPX Tcaron ograve -80
+KPX Tcaron ohungarumlaut -80
+KPX Tcaron omacron -80
+KPX Tcaron oslash -80
+KPX Tcaron otilde -80
+KPX Tcaron period -80
+KPX Tcaron r -80
+KPX Tcaron racute -80
+KPX Tcaron rcommaaccent -80
+KPX Tcaron semicolon -40
+KPX Tcaron u -90
+KPX Tcaron uacute -90
+KPX Tcaron ucircumflex -90
+KPX Tcaron udieresis -90
+KPX Tcaron ugrave -90
+KPX Tcaron uhungarumlaut -90
+KPX Tcaron umacron -90
+KPX Tcaron uogonek -90
+KPX Tcaron uring -90
+KPX Tcaron w -60
+KPX Tcaron y -60
+KPX Tcaron yacute -60
+KPX Tcaron ydieresis -60
+KPX Tcommaaccent A -90
+KPX Tcommaaccent Aacute -90
+KPX Tcommaaccent Abreve -90
+KPX Tcommaaccent Acircumflex -90
+KPX Tcommaaccent Adieresis -90
+KPX Tcommaaccent Agrave -90
+KPX Tcommaaccent Amacron -90
+KPX Tcommaaccent Aogonek -90
+KPX Tcommaaccent Aring -90
+KPX Tcommaaccent Atilde -90
+KPX Tcommaaccent O -40
+KPX Tcommaaccent Oacute -40
+KPX Tcommaaccent Ocircumflex -40
+KPX Tcommaaccent Odieresis -40
+KPX Tcommaaccent Ograve -40
+KPX Tcommaaccent Ohungarumlaut -40
+KPX Tcommaaccent Omacron -40
+KPX Tcommaaccent Oslash -40
+KPX Tcommaaccent Otilde -40
+KPX Tcommaaccent a -80
+KPX Tcommaaccent aacute -80
+KPX Tcommaaccent abreve -80
+KPX Tcommaaccent acircumflex -80
+KPX Tcommaaccent adieresis -80
+KPX Tcommaaccent agrave -80
+KPX Tcommaaccent amacron -80
+KPX Tcommaaccent aogonek -80
+KPX Tcommaaccent aring -80
+KPX Tcommaaccent atilde -80
+KPX Tcommaaccent colon -40
+KPX Tcommaaccent comma -80
+KPX Tcommaaccent e -60
+KPX Tcommaaccent eacute -60
+KPX Tcommaaccent ecaron -60
+KPX Tcommaaccent ecircumflex -60
+KPX Tcommaaccent edieresis -60
+KPX Tcommaaccent edotaccent -60
+KPX Tcommaaccent egrave -60
+KPX Tcommaaccent emacron -60
+KPX Tcommaaccent eogonek -60
+KPX Tcommaaccent hyphen -120
+KPX Tcommaaccent o -80
+KPX Tcommaaccent oacute -80
+KPX Tcommaaccent ocircumflex -80
+KPX Tcommaaccent odieresis -80
+KPX Tcommaaccent ograve -80
+KPX Tcommaaccent ohungarumlaut -80
+KPX Tcommaaccent omacron -80
+KPX Tcommaaccent oslash -80
+KPX Tcommaaccent otilde -80
+KPX Tcommaaccent period -80
+KPX Tcommaaccent r -80
+KPX Tcommaaccent racute -80
+KPX Tcommaaccent rcommaaccent -80
+KPX Tcommaaccent semicolon -40
+KPX Tcommaaccent u -90
+KPX Tcommaaccent uacute -90
+KPX Tcommaaccent ucircumflex -90
+KPX Tcommaaccent udieresis -90
+KPX Tcommaaccent ugrave -90
+KPX Tcommaaccent uhungarumlaut -90
+KPX Tcommaaccent umacron -90
+KPX Tcommaaccent uogonek -90
+KPX Tcommaaccent uring -90
+KPX Tcommaaccent w -60
+KPX Tcommaaccent y -60
+KPX Tcommaaccent yacute -60
+KPX Tcommaaccent ydieresis -60
+KPX U A -50
+KPX U Aacute -50
+KPX U Abreve -50
+KPX U Acircumflex -50
+KPX U Adieresis -50
+KPX U Agrave -50
+KPX U Amacron -50
+KPX U Aogonek -50
+KPX U Aring -50
+KPX U Atilde -50
+KPX U comma -30
+KPX U period -30
+KPX Uacute A -50
+KPX Uacute Aacute -50
+KPX Uacute Abreve -50
+KPX Uacute Acircumflex -50
+KPX Uacute Adieresis -50
+KPX Uacute Agrave -50
+KPX Uacute Amacron -50
+KPX Uacute Aogonek -50
+KPX Uacute Aring -50
+KPX Uacute Atilde -50
+KPX Uacute comma -30
+KPX Uacute period -30
+KPX Ucircumflex A -50
+KPX Ucircumflex Aacute -50
+KPX Ucircumflex Abreve -50
+KPX Ucircumflex Acircumflex -50
+KPX Ucircumflex Adieresis -50
+KPX Ucircumflex Agrave -50
+KPX Ucircumflex Amacron -50
+KPX Ucircumflex Aogonek -50
+KPX Ucircumflex Aring -50
+KPX Ucircumflex Atilde -50
+KPX Ucircumflex comma -30
+KPX Ucircumflex period -30
+KPX Udieresis A -50
+KPX Udieresis Aacute -50
+KPX Udieresis Abreve -50
+KPX Udieresis Acircumflex -50
+KPX Udieresis Adieresis -50
+KPX Udieresis Agrave -50
+KPX Udieresis Amacron -50
+KPX Udieresis Aogonek -50
+KPX Udieresis Aring -50
+KPX Udieresis Atilde -50
+KPX Udieresis comma -30
+KPX Udieresis period -30
+KPX Ugrave A -50
+KPX Ugrave Aacute -50
+KPX Ugrave Abreve -50
+KPX Ugrave Acircumflex -50
+KPX Ugrave Adieresis -50
+KPX Ugrave Agrave -50
+KPX Ugrave Amacron -50
+KPX Ugrave Aogonek -50
+KPX Ugrave Aring -50
+KPX Ugrave Atilde -50
+KPX Ugrave comma -30
+KPX Ugrave period -30
+KPX Uhungarumlaut A -50
+KPX Uhungarumlaut Aacute -50
+KPX Uhungarumlaut Abreve -50
+KPX Uhungarumlaut Acircumflex -50
+KPX Uhungarumlaut Adieresis -50
+KPX Uhungarumlaut Agrave -50
+KPX Uhungarumlaut Amacron -50
+KPX Uhungarumlaut Aogonek -50
+KPX Uhungarumlaut Aring -50
+KPX Uhungarumlaut Atilde -50
+KPX Uhungarumlaut comma -30
+KPX Uhungarumlaut period -30
+KPX Umacron A -50
+KPX Umacron Aacute -50
+KPX Umacron Abreve -50
+KPX Umacron Acircumflex -50
+KPX Umacron Adieresis -50
+KPX Umacron Agrave -50
+KPX Umacron Amacron -50
+KPX Umacron Aogonek -50
+KPX Umacron Aring -50
+KPX Umacron Atilde -50
+KPX Umacron comma -30
+KPX Umacron period -30
+KPX Uogonek A -50
+KPX Uogonek Aacute -50
+KPX Uogonek Abreve -50
+KPX Uogonek Acircumflex -50
+KPX Uogonek Adieresis -50
+KPX Uogonek Agrave -50
+KPX Uogonek Amacron -50
+KPX Uogonek Aogonek -50
+KPX Uogonek Aring -50
+KPX Uogonek Atilde -50
+KPX Uogonek comma -30
+KPX Uogonek period -30
+KPX Uring A -50
+KPX Uring Aacute -50
+KPX Uring Abreve -50
+KPX Uring Acircumflex -50
+KPX Uring Adieresis -50
+KPX Uring Agrave -50
+KPX Uring Amacron -50
+KPX Uring Aogonek -50
+KPX Uring Aring -50
+KPX Uring Atilde -50
+KPX Uring comma -30
+KPX Uring period -30
+KPX V A -80
+KPX V Aacute -80
+KPX V Abreve -80
+KPX V Acircumflex -80
+KPX V Adieresis -80
+KPX V Agrave -80
+KPX V Amacron -80
+KPX V Aogonek -80
+KPX V Aring -80
+KPX V Atilde -80
+KPX V G -50
+KPX V Gbreve -50
+KPX V Gcommaaccent -50
+KPX V O -50
+KPX V Oacute -50
+KPX V Ocircumflex -50
+KPX V Odieresis -50
+KPX V Ograve -50
+KPX V Ohungarumlaut -50
+KPX V Omacron -50
+KPX V Oslash -50
+KPX V Otilde -50
+KPX V a -60
+KPX V aacute -60
+KPX V abreve -60
+KPX V acircumflex -60
+KPX V adieresis -60
+KPX V agrave -60
+KPX V amacron -60
+KPX V aogonek -60
+KPX V aring -60
+KPX V atilde -60
+KPX V colon -40
+KPX V comma -120
+KPX V e -50
+KPX V eacute -50
+KPX V ecaron -50
+KPX V ecircumflex -50
+KPX V edieresis -50
+KPX V edotaccent -50
+KPX V egrave -50
+KPX V emacron -50
+KPX V eogonek -50
+KPX V hyphen -80
+KPX V o -90
+KPX V oacute -90
+KPX V ocircumflex -90
+KPX V odieresis -90
+KPX V ograve -90
+KPX V ohungarumlaut -90
+KPX V omacron -90
+KPX V oslash -90
+KPX V otilde -90
+KPX V period -120
+KPX V semicolon -40
+KPX V u -60
+KPX V uacute -60
+KPX V ucircumflex -60
+KPX V udieresis -60
+KPX V ugrave -60
+KPX V uhungarumlaut -60
+KPX V umacron -60
+KPX V uogonek -60
+KPX V uring -60
+KPX W A -60
+KPX W Aacute -60
+KPX W Abreve -60
+KPX W Acircumflex -60
+KPX W Adieresis -60
+KPX W Agrave -60
+KPX W Amacron -60
+KPX W Aogonek -60
+KPX W Aring -60
+KPX W Atilde -60
+KPX W O -20
+KPX W Oacute -20
+KPX W Ocircumflex -20
+KPX W Odieresis -20
+KPX W Ograve -20
+KPX W Ohungarumlaut -20
+KPX W Omacron -20
+KPX W Oslash -20
+KPX W Otilde -20
+KPX W a -40
+KPX W aacute -40
+KPX W abreve -40
+KPX W acircumflex -40
+KPX W adieresis -40
+KPX W agrave -40
+KPX W amacron -40
+KPX W aogonek -40
+KPX W aring -40
+KPX W atilde -40
+KPX W colon -10
+KPX W comma -80
+KPX W e -35
+KPX W eacute -35
+KPX W ecaron -35
+KPX W ecircumflex -35
+KPX W edieresis -35
+KPX W edotaccent -35
+KPX W egrave -35
+KPX W emacron -35
+KPX W eogonek -35
+KPX W hyphen -40
+KPX W o -60
+KPX W oacute -60
+KPX W ocircumflex -60
+KPX W odieresis -60
+KPX W ograve -60
+KPX W ohungarumlaut -60
+KPX W omacron -60
+KPX W oslash -60
+KPX W otilde -60
+KPX W period -80
+KPX W semicolon -10
+KPX W u -45
+KPX W uacute -45
+KPX W ucircumflex -45
+KPX W udieresis -45
+KPX W ugrave -45
+KPX W uhungarumlaut -45
+KPX W umacron -45
+KPX W uogonek -45
+KPX W uring -45
+KPX W y -20
+KPX W yacute -20
+KPX W ydieresis -20
+KPX Y A -110
+KPX Y Aacute -110
+KPX Y Abreve -110
+KPX Y Acircumflex -110
+KPX Y Adieresis -110
+KPX Y Agrave -110
+KPX Y Amacron -110
+KPX Y Aogonek -110
+KPX Y Aring -110
+KPX Y Atilde -110
+KPX Y O -70
+KPX Y Oacute -70
+KPX Y Ocircumflex -70
+KPX Y Odieresis -70
+KPX Y Ograve -70
+KPX Y Ohungarumlaut -70
+KPX Y Omacron -70
+KPX Y Oslash -70
+KPX Y Otilde -70
+KPX Y a -90
+KPX Y aacute -90
+KPX Y abreve -90
+KPX Y acircumflex -90
+KPX Y adieresis -90
+KPX Y agrave -90
+KPX Y amacron -90
+KPX Y aogonek -90
+KPX Y aring -90
+KPX Y atilde -90
+KPX Y colon -50
+KPX Y comma -100
+KPX Y e -80
+KPX Y eacute -80
+KPX Y ecaron -80
+KPX Y ecircumflex -80
+KPX Y edieresis -80
+KPX Y edotaccent -80
+KPX Y egrave -80
+KPX Y emacron -80
+KPX Y eogonek -80
+KPX Y o -100
+KPX Y oacute -100
+KPX Y ocircumflex -100
+KPX Y odieresis -100
+KPX Y ograve -100
+KPX Y ohungarumlaut -100
+KPX Y omacron -100
+KPX Y oslash -100
+KPX Y otilde -100
+KPX Y period -100
+KPX Y semicolon -50
+KPX Y u -100
+KPX Y uacute -100
+KPX Y ucircumflex -100
+KPX Y udieresis -100
+KPX Y ugrave -100
+KPX Y uhungarumlaut -100
+KPX Y umacron -100
+KPX Y uogonek -100
+KPX Y uring -100
+KPX Yacute A -110
+KPX Yacute Aacute -110
+KPX Yacute Abreve -110
+KPX Yacute Acircumflex -110
+KPX Yacute Adieresis -110
+KPX Yacute Agrave -110
+KPX Yacute Amacron -110
+KPX Yacute Aogonek -110
+KPX Yacute Aring -110
+KPX Yacute Atilde -110
+KPX Yacute O -70
+KPX Yacute Oacute -70
+KPX Yacute Ocircumflex -70
+KPX Yacute Odieresis -70
+KPX Yacute Ograve -70
+KPX Yacute Ohungarumlaut -70
+KPX Yacute Omacron -70
+KPX Yacute Oslash -70
+KPX Yacute Otilde -70
+KPX Yacute a -90
+KPX Yacute aacute -90
+KPX Yacute abreve -90
+KPX Yacute acircumflex -90
+KPX Yacute adieresis -90
+KPX Yacute agrave -90
+KPX Yacute amacron -90
+KPX Yacute aogonek -90
+KPX Yacute aring -90
+KPX Yacute atilde -90
+KPX Yacute colon -50
+KPX Yacute comma -100
+KPX Yacute e -80
+KPX Yacute eacute -80
+KPX Yacute ecaron -80
+KPX Yacute ecircumflex -80
+KPX Yacute edieresis -80
+KPX Yacute edotaccent -80
+KPX Yacute egrave -80
+KPX Yacute emacron -80
+KPX Yacute eogonek -80
+KPX Yacute o -100
+KPX Yacute oacute -100
+KPX Yacute ocircumflex -100
+KPX Yacute odieresis -100
+KPX Yacute ograve -100
+KPX Yacute ohungarumlaut -100
+KPX Yacute omacron -100
+KPX Yacute oslash -100
+KPX Yacute otilde -100
+KPX Yacute period -100
+KPX Yacute semicolon -50
+KPX Yacute u -100
+KPX Yacute uacute -100
+KPX Yacute ucircumflex -100
+KPX Yacute udieresis -100
+KPX Yacute ugrave -100
+KPX Yacute uhungarumlaut -100
+KPX Yacute umacron -100
+KPX Yacute uogonek -100
+KPX Yacute uring -100
+KPX Ydieresis A -110
+KPX Ydieresis Aacute -110
+KPX Ydieresis Abreve -110
+KPX Ydieresis Acircumflex -110
+KPX Ydieresis Adieresis -110
+KPX Ydieresis Agrave -110
+KPX Ydieresis Amacron -110
+KPX Ydieresis Aogonek -110
+KPX Ydieresis Aring -110
+KPX Ydieresis Atilde -110
+KPX Ydieresis O -70
+KPX Ydieresis Oacute -70
+KPX Ydieresis Ocircumflex -70
+KPX Ydieresis Odieresis -70
+KPX Ydieresis Ograve -70
+KPX Ydieresis Ohungarumlaut -70
+KPX Ydieresis Omacron -70
+KPX Ydieresis Oslash -70
+KPX Ydieresis Otilde -70
+KPX Ydieresis a -90
+KPX Ydieresis aacute -90
+KPX Ydieresis abreve -90
+KPX Ydieresis acircumflex -90
+KPX Ydieresis adieresis -90
+KPX Ydieresis agrave -90
+KPX Ydieresis amacron -90
+KPX Ydieresis aogonek -90
+KPX Ydieresis aring -90
+KPX Ydieresis atilde -90
+KPX Ydieresis colon -50
+KPX Ydieresis comma -100
+KPX Ydieresis e -80
+KPX Ydieresis eacute -80
+KPX Ydieresis ecaron -80
+KPX Ydieresis ecircumflex -80
+KPX Ydieresis edieresis -80
+KPX Ydieresis edotaccent -80
+KPX Ydieresis egrave -80
+KPX Ydieresis emacron -80
+KPX Ydieresis eogonek -80
+KPX Ydieresis o -100
+KPX Ydieresis oacute -100
+KPX Ydieresis ocircumflex -100
+KPX Ydieresis odieresis -100
+KPX Ydieresis ograve -100
+KPX Ydieresis ohungarumlaut -100
+KPX Ydieresis omacron -100
+KPX Ydieresis oslash -100
+KPX Ydieresis otilde -100
+KPX Ydieresis period -100
+KPX Ydieresis semicolon -50
+KPX Ydieresis u -100
+KPX Ydieresis uacute -100
+KPX Ydieresis ucircumflex -100
+KPX Ydieresis udieresis -100
+KPX Ydieresis ugrave -100
+KPX Ydieresis uhungarumlaut -100
+KPX Ydieresis umacron -100
+KPX Ydieresis uogonek -100
+KPX Ydieresis uring -100
+KPX a g -10
+KPX a gbreve -10
+KPX a gcommaaccent -10
+KPX a v -15
+KPX a w -15
+KPX a y -20
+KPX a yacute -20
+KPX a ydieresis -20
+KPX aacute g -10
+KPX aacute gbreve -10
+KPX aacute gcommaaccent -10
+KPX aacute v -15
+KPX aacute w -15
+KPX aacute y -20
+KPX aacute yacute -20
+KPX aacute ydieresis -20
+KPX abreve g -10
+KPX abreve gbreve -10
+KPX abreve gcommaaccent -10
+KPX abreve v -15
+KPX abreve w -15
+KPX abreve y -20
+KPX abreve yacute -20
+KPX abreve ydieresis -20
+KPX acircumflex g -10
+KPX acircumflex gbreve -10
+KPX acircumflex gcommaaccent -10
+KPX acircumflex v -15
+KPX acircumflex w -15
+KPX acircumflex y -20
+KPX acircumflex yacute -20
+KPX acircumflex ydieresis -20
+KPX adieresis g -10
+KPX adieresis gbreve -10
+KPX adieresis gcommaaccent -10
+KPX adieresis v -15
+KPX adieresis w -15
+KPX adieresis y -20
+KPX adieresis yacute -20
+KPX adieresis ydieresis -20
+KPX agrave g -10
+KPX agrave gbreve -10
+KPX agrave gcommaaccent -10
+KPX agrave v -15
+KPX agrave w -15
+KPX agrave y -20
+KPX agrave yacute -20
+KPX agrave ydieresis -20
+KPX amacron g -10
+KPX amacron gbreve -10
+KPX amacron gcommaaccent -10
+KPX amacron v -15
+KPX amacron w -15
+KPX amacron y -20
+KPX amacron yacute -20
+KPX amacron ydieresis -20
+KPX aogonek g -10
+KPX aogonek gbreve -10
+KPX aogonek gcommaaccent -10
+KPX aogonek v -15
+KPX aogonek w -15
+KPX aogonek y -20
+KPX aogonek yacute -20
+KPX aogonek ydieresis -20
+KPX aring g -10
+KPX aring gbreve -10
+KPX aring gcommaaccent -10
+KPX aring v -15
+KPX aring w -15
+KPX aring y -20
+KPX aring yacute -20
+KPX aring ydieresis -20
+KPX atilde g -10
+KPX atilde gbreve -10
+KPX atilde gcommaaccent -10
+KPX atilde v -15
+KPX atilde w -15
+KPX atilde y -20
+KPX atilde yacute -20
+KPX atilde ydieresis -20
+KPX b l -10
+KPX b lacute -10
+KPX b lcommaaccent -10
+KPX b lslash -10
+KPX b u -20
+KPX b uacute -20
+KPX b ucircumflex -20
+KPX b udieresis -20
+KPX b ugrave -20
+KPX b uhungarumlaut -20
+KPX b umacron -20
+KPX b uogonek -20
+KPX b uring -20
+KPX b v -20
+KPX b y -20
+KPX b yacute -20
+KPX b ydieresis -20
+KPX c h -10
+KPX c k -20
+KPX c kcommaaccent -20
+KPX c l -20
+KPX c lacute -20
+KPX c lcommaaccent -20
+KPX c lslash -20
+KPX c y -10
+KPX c yacute -10
+KPX c ydieresis -10
+KPX cacute h -10
+KPX cacute k -20
+KPX cacute kcommaaccent -20
+KPX cacute l -20
+KPX cacute lacute -20
+KPX cacute lcommaaccent -20
+KPX cacute lslash -20
+KPX cacute y -10
+KPX cacute yacute -10
+KPX cacute ydieresis -10
+KPX ccaron h -10
+KPX ccaron k -20
+KPX ccaron kcommaaccent -20
+KPX ccaron l -20
+KPX ccaron lacute -20
+KPX ccaron lcommaaccent -20
+KPX ccaron lslash -20
+KPX ccaron y -10
+KPX ccaron yacute -10
+KPX ccaron ydieresis -10
+KPX ccedilla h -10
+KPX ccedilla k -20
+KPX ccedilla kcommaaccent -20
+KPX ccedilla l -20
+KPX ccedilla lacute -20
+KPX ccedilla lcommaaccent -20
+KPX ccedilla lslash -20
+KPX ccedilla y -10
+KPX ccedilla yacute -10
+KPX ccedilla ydieresis -10
+KPX colon space -40
+KPX comma quotedblright -120
+KPX comma quoteright -120
+KPX comma space -40
+KPX d d -10
+KPX d dcroat -10
+KPX d v -15
+KPX d w -15
+KPX d y -15
+KPX d yacute -15
+KPX d ydieresis -15
+KPX dcroat d -10
+KPX dcroat dcroat -10
+KPX dcroat v -15
+KPX dcroat w -15
+KPX dcroat y -15
+KPX dcroat yacute -15
+KPX dcroat ydieresis -15
+KPX e comma 10
+KPX e period 20
+KPX e v -15
+KPX e w -15
+KPX e x -15
+KPX e y -15
+KPX e yacute -15
+KPX e ydieresis -15
+KPX eacute comma 10
+KPX eacute period 20
+KPX eacute v -15
+KPX eacute w -15
+KPX eacute x -15
+KPX eacute y -15
+KPX eacute yacute -15
+KPX eacute ydieresis -15
+KPX ecaron comma 10
+KPX ecaron period 20
+KPX ecaron v -15
+KPX ecaron w -15
+KPX ecaron x -15
+KPX ecaron y -15
+KPX ecaron yacute -15
+KPX ecaron ydieresis -15
+KPX ecircumflex comma 10
+KPX ecircumflex period 20
+KPX ecircumflex v -15
+KPX ecircumflex w -15
+KPX ecircumflex x -15
+KPX ecircumflex y -15
+KPX ecircumflex yacute -15
+KPX ecircumflex ydieresis -15
+KPX edieresis comma 10
+KPX edieresis period 20
+KPX edieresis v -15
+KPX edieresis w -15
+KPX edieresis x -15
+KPX edieresis y -15
+KPX edieresis yacute -15
+KPX edieresis ydieresis -15
+KPX edotaccent comma 10
+KPX edotaccent period 20
+KPX edotaccent v -15
+KPX edotaccent w -15
+KPX edotaccent x -15
+KPX edotaccent y -15
+KPX edotaccent yacute -15
+KPX edotaccent ydieresis -15
+KPX egrave comma 10
+KPX egrave period 20
+KPX egrave v -15
+KPX egrave w -15
+KPX egrave x -15
+KPX egrave y -15
+KPX egrave yacute -15
+KPX egrave ydieresis -15
+KPX emacron comma 10
+KPX emacron period 20
+KPX emacron v -15
+KPX emacron w -15
+KPX emacron x -15
+KPX emacron y -15
+KPX emacron yacute -15
+KPX emacron ydieresis -15
+KPX eogonek comma 10
+KPX eogonek period 20
+KPX eogonek v -15
+KPX eogonek w -15
+KPX eogonek x -15
+KPX eogonek y -15
+KPX eogonek yacute -15
+KPX eogonek ydieresis -15
+KPX f comma -10
+KPX f e -10
+KPX f eacute -10
+KPX f ecaron -10
+KPX f ecircumflex -10
+KPX f edieresis -10
+KPX f edotaccent -10
+KPX f egrave -10
+KPX f emacron -10
+KPX f eogonek -10
+KPX f o -20
+KPX f oacute -20
+KPX f ocircumflex -20
+KPX f odieresis -20
+KPX f ograve -20
+KPX f ohungarumlaut -20
+KPX f omacron -20
+KPX f oslash -20
+KPX f otilde -20
+KPX f period -10
+KPX f quotedblright 30
+KPX f quoteright 30
+KPX g e 10
+KPX g eacute 10
+KPX g ecaron 10
+KPX g ecircumflex 10
+KPX g edieresis 10
+KPX g edotaccent 10
+KPX g egrave 10
+KPX g emacron 10
+KPX g eogonek 10
+KPX g g -10
+KPX g gbreve -10
+KPX g gcommaaccent -10
+KPX gbreve e 10
+KPX gbreve eacute 10
+KPX gbreve ecaron 10
+KPX gbreve ecircumflex 10
+KPX gbreve edieresis 10
+KPX gbreve edotaccent 10
+KPX gbreve egrave 10
+KPX gbreve emacron 10
+KPX gbreve eogonek 10
+KPX gbreve g -10
+KPX gbreve gbreve -10
+KPX gbreve gcommaaccent -10
+KPX gcommaaccent e 10
+KPX gcommaaccent eacute 10
+KPX gcommaaccent ecaron 10
+KPX gcommaaccent ecircumflex 10
+KPX gcommaaccent edieresis 10
+KPX gcommaaccent edotaccent 10
+KPX gcommaaccent egrave 10
+KPX gcommaaccent emacron 10
+KPX gcommaaccent eogonek 10
+KPX gcommaaccent g -10
+KPX gcommaaccent gbreve -10
+KPX gcommaaccent gcommaaccent -10
+KPX h y -20
+KPX h yacute -20
+KPX h ydieresis -20
+KPX k o -15
+KPX k oacute -15
+KPX k ocircumflex -15
+KPX k odieresis -15
+KPX k ograve -15
+KPX k ohungarumlaut -15
+KPX k omacron -15
+KPX k oslash -15
+KPX k otilde -15
+KPX kcommaaccent o -15
+KPX kcommaaccent oacute -15
+KPX kcommaaccent ocircumflex -15
+KPX kcommaaccent odieresis -15
+KPX kcommaaccent ograve -15
+KPX kcommaaccent ohungarumlaut -15
+KPX kcommaaccent omacron -15
+KPX kcommaaccent oslash -15
+KPX kcommaaccent otilde -15
+KPX l w -15
+KPX l y -15
+KPX l yacute -15
+KPX l ydieresis -15
+KPX lacute w -15
+KPX lacute y -15
+KPX lacute yacute -15
+KPX lacute ydieresis -15
+KPX lcommaaccent w -15
+KPX lcommaaccent y -15
+KPX lcommaaccent yacute -15
+KPX lcommaaccent ydieresis -15
+KPX lslash w -15
+KPX lslash y -15
+KPX lslash yacute -15
+KPX lslash ydieresis -15
+KPX m u -20
+KPX m uacute -20
+KPX m ucircumflex -20
+KPX m udieresis -20
+KPX m ugrave -20
+KPX m uhungarumlaut -20
+KPX m umacron -20
+KPX m uogonek -20
+KPX m uring -20
+KPX m y -30
+KPX m yacute -30
+KPX m ydieresis -30
+KPX n u -10
+KPX n uacute -10
+KPX n ucircumflex -10
+KPX n udieresis -10
+KPX n ugrave -10
+KPX n uhungarumlaut -10
+KPX n umacron -10
+KPX n uogonek -10
+KPX n uring -10
+KPX n v -40
+KPX n y -20
+KPX n yacute -20
+KPX n ydieresis -20
+KPX nacute u -10
+KPX nacute uacute -10
+KPX nacute ucircumflex -10
+KPX nacute udieresis -10
+KPX nacute ugrave -10
+KPX nacute uhungarumlaut -10
+KPX nacute umacron -10
+KPX nacute uogonek -10
+KPX nacute uring -10
+KPX nacute v -40
+KPX nacute y -20
+KPX nacute yacute -20
+KPX nacute ydieresis -20
+KPX ncaron u -10
+KPX ncaron uacute -10
+KPX ncaron ucircumflex -10
+KPX ncaron udieresis -10
+KPX ncaron ugrave -10
+KPX ncaron uhungarumlaut -10
+KPX ncaron umacron -10
+KPX ncaron uogonek -10
+KPX ncaron uring -10
+KPX ncaron v -40
+KPX ncaron y -20
+KPX ncaron yacute -20
+KPX ncaron ydieresis -20
+KPX ncommaaccent u -10
+KPX ncommaaccent uacute -10
+KPX ncommaaccent ucircumflex -10
+KPX ncommaaccent udieresis -10
+KPX ncommaaccent ugrave -10
+KPX ncommaaccent uhungarumlaut -10
+KPX ncommaaccent umacron -10
+KPX ncommaaccent uogonek -10
+KPX ncommaaccent uring -10
+KPX ncommaaccent v -40
+KPX ncommaaccent y -20
+KPX ncommaaccent yacute -20
+KPX ncommaaccent ydieresis -20
+KPX ntilde u -10
+KPX ntilde uacute -10
+KPX ntilde ucircumflex -10
+KPX ntilde udieresis -10
+KPX ntilde ugrave -10
+KPX ntilde uhungarumlaut -10
+KPX ntilde umacron -10
+KPX ntilde uogonek -10
+KPX ntilde uring -10
+KPX ntilde v -40
+KPX ntilde y -20
+KPX ntilde yacute -20
+KPX ntilde ydieresis -20
+KPX o v -20
+KPX o w -15
+KPX o x -30
+KPX o y -20
+KPX o yacute -20
+KPX o ydieresis -20
+KPX oacute v -20
+KPX oacute w -15
+KPX oacute x -30
+KPX oacute y -20
+KPX oacute yacute -20
+KPX oacute ydieresis -20
+KPX ocircumflex v -20
+KPX ocircumflex w -15
+KPX ocircumflex x -30
+KPX ocircumflex y -20
+KPX ocircumflex yacute -20
+KPX ocircumflex ydieresis -20
+KPX odieresis v -20
+KPX odieresis w -15
+KPX odieresis x -30
+KPX odieresis y -20
+KPX odieresis yacute -20
+KPX odieresis ydieresis -20
+KPX ograve v -20
+KPX ograve w -15
+KPX ograve x -30
+KPX ograve y -20
+KPX ograve yacute -20
+KPX ograve ydieresis -20
+KPX ohungarumlaut v -20
+KPX ohungarumlaut w -15
+KPX ohungarumlaut x -30
+KPX ohungarumlaut y -20
+KPX ohungarumlaut yacute -20
+KPX ohungarumlaut ydieresis -20
+KPX omacron v -20
+KPX omacron w -15
+KPX omacron x -30
+KPX omacron y -20
+KPX omacron yacute -20
+KPX omacron ydieresis -20
+KPX oslash v -20
+KPX oslash w -15
+KPX oslash x -30
+KPX oslash y -20
+KPX oslash yacute -20
+KPX oslash ydieresis -20
+KPX otilde v -20
+KPX otilde w -15
+KPX otilde x -30
+KPX otilde y -20
+KPX otilde yacute -20
+KPX otilde ydieresis -20
+KPX p y -15
+KPX p yacute -15
+KPX p ydieresis -15
+KPX period quotedblright -120
+KPX period quoteright -120
+KPX period space -40
+KPX quotedblright space -80
+KPX quoteleft quoteleft -46
+KPX quoteright d -80
+KPX quoteright dcroat -80
+KPX quoteright l -20
+KPX quoteright lacute -20
+KPX quoteright lcommaaccent -20
+KPX quoteright lslash -20
+KPX quoteright quoteright -46
+KPX quoteright r -40
+KPX quoteright racute -40
+KPX quoteright rcaron -40
+KPX quoteright rcommaaccent -40
+KPX quoteright s -60
+KPX quoteright sacute -60
+KPX quoteright scaron -60
+KPX quoteright scedilla -60
+KPX quoteright scommaaccent -60
+KPX quoteright space -80
+KPX quoteright v -20
+KPX r c -20
+KPX r cacute -20
+KPX r ccaron -20
+KPX r ccedilla -20
+KPX r comma -60
+KPX r d -20
+KPX r dcroat -20
+KPX r g -15
+KPX r gbreve -15
+KPX r gcommaaccent -15
+KPX r hyphen -20
+KPX r o -20
+KPX r oacute -20
+KPX r ocircumflex -20
+KPX r odieresis -20
+KPX r ograve -20
+KPX r ohungarumlaut -20
+KPX r omacron -20
+KPX r oslash -20
+KPX r otilde -20
+KPX r period -60
+KPX r q -20
+KPX r s -15
+KPX r sacute -15
+KPX r scaron -15
+KPX r scedilla -15
+KPX r scommaaccent -15
+KPX r t 20
+KPX r tcommaaccent 20
+KPX r v 10
+KPX r y 10
+KPX r yacute 10
+KPX r ydieresis 10
+KPX racute c -20
+KPX racute cacute -20
+KPX racute ccaron -20
+KPX racute ccedilla -20
+KPX racute comma -60
+KPX racute d -20
+KPX racute dcroat -20
+KPX racute g -15
+KPX racute gbreve -15
+KPX racute gcommaaccent -15
+KPX racute hyphen -20
+KPX racute o -20
+KPX racute oacute -20
+KPX racute ocircumflex -20
+KPX racute odieresis -20
+KPX racute ograve -20
+KPX racute ohungarumlaut -20
+KPX racute omacron -20
+KPX racute oslash -20
+KPX racute otilde -20
+KPX racute period -60
+KPX racute q -20
+KPX racute s -15
+KPX racute sacute -15
+KPX racute scaron -15
+KPX racute scedilla -15
+KPX racute scommaaccent -15
+KPX racute t 20
+KPX racute tcommaaccent 20
+KPX racute v 10
+KPX racute y 10
+KPX racute yacute 10
+KPX racute ydieresis 10
+KPX rcaron c -20
+KPX rcaron cacute -20
+KPX rcaron ccaron -20
+KPX rcaron ccedilla -20
+KPX rcaron comma -60
+KPX rcaron d -20
+KPX rcaron dcroat -20
+KPX rcaron g -15
+KPX rcaron gbreve -15
+KPX rcaron gcommaaccent -15
+KPX rcaron hyphen -20
+KPX rcaron o -20
+KPX rcaron oacute -20
+KPX rcaron ocircumflex -20
+KPX rcaron odieresis -20
+KPX rcaron ograve -20
+KPX rcaron ohungarumlaut -20
+KPX rcaron omacron -20
+KPX rcaron oslash -20
+KPX rcaron otilde -20
+KPX rcaron period -60
+KPX rcaron q -20
+KPX rcaron s -15
+KPX rcaron sacute -15
+KPX rcaron scaron -15
+KPX rcaron scedilla -15
+KPX rcaron scommaaccent -15
+KPX rcaron t 20
+KPX rcaron tcommaaccent 20
+KPX rcaron v 10
+KPX rcaron y 10
+KPX rcaron yacute 10
+KPX rcaron ydieresis 10
+KPX rcommaaccent c -20
+KPX rcommaaccent cacute -20
+KPX rcommaaccent ccaron -20
+KPX rcommaaccent ccedilla -20
+KPX rcommaaccent comma -60
+KPX rcommaaccent d -20
+KPX rcommaaccent dcroat -20
+KPX rcommaaccent g -15
+KPX rcommaaccent gbreve -15
+KPX rcommaaccent gcommaaccent -15
+KPX rcommaaccent hyphen -20
+KPX rcommaaccent o -20
+KPX rcommaaccent oacute -20
+KPX rcommaaccent ocircumflex -20
+KPX rcommaaccent odieresis -20
+KPX rcommaaccent ograve -20
+KPX rcommaaccent ohungarumlaut -20
+KPX rcommaaccent omacron -20
+KPX rcommaaccent oslash -20
+KPX rcommaaccent otilde -20
+KPX rcommaaccent period -60
+KPX rcommaaccent q -20
+KPX rcommaaccent s -15
+KPX rcommaaccent sacute -15
+KPX rcommaaccent scaron -15
+KPX rcommaaccent scedilla -15
+KPX rcommaaccent scommaaccent -15
+KPX rcommaaccent t 20
+KPX rcommaaccent tcommaaccent 20
+KPX rcommaaccent v 10
+KPX rcommaaccent y 10
+KPX rcommaaccent yacute 10
+KPX rcommaaccent ydieresis 10
+KPX s w -15
+KPX sacute w -15
+KPX scaron w -15
+KPX scedilla w -15
+KPX scommaaccent w -15
+KPX semicolon space -40
+KPX space T -100
+KPX space Tcaron -100
+KPX space Tcommaaccent -100
+KPX space V -80
+KPX space W -80
+KPX space Y -120
+KPX space Yacute -120
+KPX space Ydieresis -120
+KPX space quotedblleft -80
+KPX space quoteleft -60
+KPX v a -20
+KPX v aacute -20
+KPX v abreve -20
+KPX v acircumflex -20
+KPX v adieresis -20
+KPX v agrave -20
+KPX v amacron -20
+KPX v aogonek -20
+KPX v aring -20
+KPX v atilde -20
+KPX v comma -80
+KPX v o -30
+KPX v oacute -30
+KPX v ocircumflex -30
+KPX v odieresis -30
+KPX v ograve -30
+KPX v ohungarumlaut -30
+KPX v omacron -30
+KPX v oslash -30
+KPX v otilde -30
+KPX v period -80
+KPX w comma -40
+KPX w o -20
+KPX w oacute -20
+KPX w ocircumflex -20
+KPX w odieresis -20
+KPX w ograve -20
+KPX w ohungarumlaut -20
+KPX w omacron -20
+KPX w oslash -20
+KPX w otilde -20
+KPX w period -40
+KPX x e -10
+KPX x eacute -10
+KPX x ecaron -10
+KPX x ecircumflex -10
+KPX x edieresis -10
+KPX x edotaccent -10
+KPX x egrave -10
+KPX x emacron -10
+KPX x eogonek -10
+KPX y a -30
+KPX y aacute -30
+KPX y abreve -30
+KPX y acircumflex -30
+KPX y adieresis -30
+KPX y agrave -30
+KPX y amacron -30
+KPX y aogonek -30
+KPX y aring -30
+KPX y atilde -30
+KPX y comma -80
+KPX y e -10
+KPX y eacute -10
+KPX y ecaron -10
+KPX y ecircumflex -10
+KPX y edieresis -10
+KPX y edotaccent -10
+KPX y egrave -10
+KPX y emacron -10
+KPX y eogonek -10
+KPX y o -25
+KPX y oacute -25
+KPX y ocircumflex -25
+KPX y odieresis -25
+KPX y ograve -25
+KPX y ohungarumlaut -25
+KPX y omacron -25
+KPX y oslash -25
+KPX y otilde -25
+KPX y period -80
+KPX yacute a -30
+KPX yacute aacute -30
+KPX yacute abreve -30
+KPX yacute acircumflex -30
+KPX yacute adieresis -30
+KPX yacute agrave -30
+KPX yacute amacron -30
+KPX yacute aogonek -30
+KPX yacute aring -30
+KPX yacute atilde -30
+KPX yacute comma -80
+KPX yacute e -10
+KPX yacute eacute -10
+KPX yacute ecaron -10
+KPX yacute ecircumflex -10
+KPX yacute edieresis -10
+KPX yacute edotaccent -10
+KPX yacute egrave -10
+KPX yacute emacron -10
+KPX yacute eogonek -10
+KPX yacute o -25
+KPX yacute oacute -25
+KPX yacute ocircumflex -25
+KPX yacute odieresis -25
+KPX yacute ograve -25
+KPX yacute ohungarumlaut -25
+KPX yacute omacron -25
+KPX yacute oslash -25
+KPX yacute otilde -25
+KPX yacute period -80
+KPX ydieresis a -30
+KPX ydieresis aacute -30
+KPX ydieresis abreve -30
+KPX ydieresis acircumflex -30
+KPX ydieresis adieresis -30
+KPX ydieresis agrave -30
+KPX ydieresis amacron -30
+KPX ydieresis aogonek -30
+KPX ydieresis aring -30
+KPX ydieresis atilde -30
+KPX ydieresis comma -80
+KPX ydieresis e -10
+KPX ydieresis eacute -10
+KPX ydieresis ecaron -10
+KPX ydieresis ecircumflex -10
+KPX ydieresis edieresis -10
+KPX ydieresis edotaccent -10
+KPX ydieresis egrave -10
+KPX ydieresis emacron -10
+KPX ydieresis eogonek -10
+KPX ydieresis o -25
+KPX ydieresis oacute -25
+KPX ydieresis ocircumflex -25
+KPX ydieresis odieresis -25
+KPX ydieresis ograve -25
+KPX ydieresis ohungarumlaut -25
+KPX ydieresis omacron -25
+KPX ydieresis oslash -25
+KPX ydieresis otilde -25
+KPX ydieresis period -80
+KPX z e 10
+KPX z eacute 10
+KPX z ecaron 10
+KPX z ecircumflex 10
+KPX z edieresis 10
+KPX z edotaccent 10
+KPX z egrave 10
+KPX z emacron 10
+KPX z eogonek 10
+KPX zacute e 10
+KPX zacute eacute 10
+KPX zacute ecaron 10
+KPX zacute ecircumflex 10
+KPX zacute edieresis 10
+KPX zacute edotaccent 10
+KPX zacute egrave 10
+KPX zacute emacron 10
+KPX zacute eogonek 10
+KPX zcaron e 10
+KPX zcaron eacute 10
+KPX zcaron ecaron 10
+KPX zcaron ecircumflex 10
+KPX zcaron edieresis 10
+KPX zcaron edotaccent 10
+KPX zcaron egrave 10
+KPX zcaron emacron 10
+KPX zcaron eogonek 10
+KPX zdotaccent e 10
+KPX zdotaccent eacute 10
+KPX zdotaccent ecaron 10
+KPX zdotaccent ecircumflex 10
+KPX zdotaccent edieresis 10
+KPX zdotaccent edotaccent 10
+KPX zdotaccent egrave 10
+KPX zdotaccent emacron 10
+KPX zdotaccent eogonek 10
+EndKernPairs
+EndKernData
+EndFontMetrics
diff --git a/php/extras/fonts/ps/Helvetica-Oblique.afm b/php/extras/fonts/ps/Helvetica-Oblique.afm
new file mode 100644
index 000000000..7a7af0017
--- /dev/null
+++ b/php/extras/fonts/ps/Helvetica-Oblique.afm
@@ -0,0 +1,3051 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Thu May 1 12:44:31 1997
+Comment UniqueID 43055
+Comment VMusage 14960 69346
+FontName Helvetica-Oblique
+FullName Helvetica Oblique
+FamilyName Helvetica
+Weight Medium
+ItalicAngle -12
+IsFixedPitch false
+CharacterSet ExtendedRoman
+FontBBox -170 -225 1116 931
+UnderlinePosition -100
+UnderlineThickness 50
+Version 002.000
+Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries.
+EncodingScheme AdobeStandardEncoding
+CapHeight 718
+XHeight 523
+Ascender 718
+Descender -207
+StdHW 76
+StdVW 88
+StartCharMetrics 315
+C 32 ; WX 278 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 278 ; N exclam ; B 90 0 340 718 ;
+C 34 ; WX 355 ; N quotedbl ; B 168 463 438 718 ;
+C 35 ; WX 556 ; N numbersign ; B 73 0 631 688 ;
+C 36 ; WX 556 ; N dollar ; B 69 -115 617 775 ;
+C 37 ; WX 889 ; N percent ; B 147 -19 889 703 ;
+C 38 ; WX 667 ; N ampersand ; B 77 -15 647 718 ;
+C 39 ; WX 222 ; N quoteright ; B 151 463 310 718 ;
+C 40 ; WX 333 ; N parenleft ; B 108 -207 454 733 ;
+C 41 ; WX 333 ; N parenright ; B -9 -207 337 733 ;
+C 42 ; WX 389 ; N asterisk ; B 165 431 475 718 ;
+C 43 ; WX 584 ; N plus ; B 85 0 606 505 ;
+C 44 ; WX 278 ; N comma ; B 56 -147 214 106 ;
+C 45 ; WX 333 ; N hyphen ; B 93 232 357 322 ;
+C 46 ; WX 278 ; N period ; B 87 0 214 106 ;
+C 47 ; WX 278 ; N slash ; B -21 -19 452 737 ;
+C 48 ; WX 556 ; N zero ; B 93 -19 608 703 ;
+C 49 ; WX 556 ; N one ; B 207 0 508 703 ;
+C 50 ; WX 556 ; N two ; B 26 0 617 703 ;
+C 51 ; WX 556 ; N three ; B 75 -19 610 703 ;
+C 52 ; WX 556 ; N four ; B 61 0 576 703 ;
+C 53 ; WX 556 ; N five ; B 68 -19 621 688 ;
+C 54 ; WX 556 ; N six ; B 91 -19 615 703 ;
+C 55 ; WX 556 ; N seven ; B 137 0 669 688 ;
+C 56 ; WX 556 ; N eight ; B 74 -19 607 703 ;
+C 57 ; WX 556 ; N nine ; B 82 -19 609 703 ;
+C 58 ; WX 278 ; N colon ; B 87 0 301 516 ;
+C 59 ; WX 278 ; N semicolon ; B 56 -147 301 516 ;
+C 60 ; WX 584 ; N less ; B 94 11 641 495 ;
+C 61 ; WX 584 ; N equal ; B 63 115 628 390 ;
+C 62 ; WX 584 ; N greater ; B 50 11 597 495 ;
+C 63 ; WX 556 ; N question ; B 161 0 610 727 ;
+C 64 ; WX 1015 ; N at ; B 215 -19 965 737 ;
+C 65 ; WX 667 ; N A ; B 14 0 654 718 ;
+C 66 ; WX 667 ; N B ; B 74 0 712 718 ;
+C 67 ; WX 722 ; N C ; B 108 -19 782 737 ;
+C 68 ; WX 722 ; N D ; B 81 0 764 718 ;
+C 69 ; WX 667 ; N E ; B 86 0 762 718 ;
+C 70 ; WX 611 ; N F ; B 86 0 736 718 ;
+C 71 ; WX 778 ; N G ; B 111 -19 799 737 ;
+C 72 ; WX 722 ; N H ; B 77 0 799 718 ;
+C 73 ; WX 278 ; N I ; B 91 0 341 718 ;
+C 74 ; WX 500 ; N J ; B 47 -19 581 718 ;
+C 75 ; WX 667 ; N K ; B 76 0 808 718 ;
+C 76 ; WX 556 ; N L ; B 76 0 555 718 ;
+C 77 ; WX 833 ; N M ; B 73 0 914 718 ;
+C 78 ; WX 722 ; N N ; B 76 0 799 718 ;
+C 79 ; WX 778 ; N O ; B 105 -19 826 737 ;
+C 80 ; WX 667 ; N P ; B 86 0 737 718 ;
+C 81 ; WX 778 ; N Q ; B 105 -56 826 737 ;
+C 82 ; WX 722 ; N R ; B 88 0 773 718 ;
+C 83 ; WX 667 ; N S ; B 90 -19 713 737 ;
+C 84 ; WX 611 ; N T ; B 148 0 750 718 ;
+C 85 ; WX 722 ; N U ; B 123 -19 797 718 ;
+C 86 ; WX 667 ; N V ; B 173 0 800 718 ;
+C 87 ; WX 944 ; N W ; B 169 0 1081 718 ;
+C 88 ; WX 667 ; N X ; B 19 0 790 718 ;
+C 89 ; WX 667 ; N Y ; B 167 0 806 718 ;
+C 90 ; WX 611 ; N Z ; B 23 0 741 718 ;
+C 91 ; WX 278 ; N bracketleft ; B 21 -196 403 722 ;
+C 92 ; WX 278 ; N backslash ; B 140 -19 291 737 ;
+C 93 ; WX 278 ; N bracketright ; B -14 -196 368 722 ;
+C 94 ; WX 469 ; N asciicircum ; B 42 264 539 688 ;
+C 95 ; WX 556 ; N underscore ; B -27 -125 540 -75 ;
+C 96 ; WX 222 ; N quoteleft ; B 165 470 323 725 ;
+C 97 ; WX 556 ; N a ; B 61 -15 559 538 ;
+C 98 ; WX 556 ; N b ; B 58 -15 584 718 ;
+C 99 ; WX 500 ; N c ; B 74 -15 553 538 ;
+C 100 ; WX 556 ; N d ; B 84 -15 652 718 ;
+C 101 ; WX 556 ; N e ; B 84 -15 578 538 ;
+C 102 ; WX 278 ; N f ; B 86 0 416 728 ; L i fi ; L l fl ;
+C 103 ; WX 556 ; N g ; B 42 -220 610 538 ;
+C 104 ; WX 556 ; N h ; B 65 0 573 718 ;
+C 105 ; WX 222 ; N i ; B 67 0 308 718 ;
+C 106 ; WX 222 ; N j ; B -60 -210 308 718 ;
+C 107 ; WX 500 ; N k ; B 67 0 600 718 ;
+C 108 ; WX 222 ; N l ; B 67 0 308 718 ;
+C 109 ; WX 833 ; N m ; B 65 0 852 538 ;
+C 110 ; WX 556 ; N n ; B 65 0 573 538 ;
+C 111 ; WX 556 ; N o ; B 83 -14 585 538 ;
+C 112 ; WX 556 ; N p ; B 14 -207 584 538 ;
+C 113 ; WX 556 ; N q ; B 84 -207 605 538 ;
+C 114 ; WX 333 ; N r ; B 77 0 446 538 ;
+C 115 ; WX 500 ; N s ; B 63 -15 529 538 ;
+C 116 ; WX 278 ; N t ; B 102 -7 368 669 ;
+C 117 ; WX 556 ; N u ; B 94 -15 600 523 ;
+C 118 ; WX 500 ; N v ; B 119 0 603 523 ;
+C 119 ; WX 722 ; N w ; B 125 0 820 523 ;
+C 120 ; WX 500 ; N x ; B 11 0 594 523 ;
+C 121 ; WX 500 ; N y ; B 15 -214 600 523 ;
+C 122 ; WX 500 ; N z ; B 31 0 571 523 ;
+C 123 ; WX 334 ; N braceleft ; B 92 -196 445 722 ;
+C 124 ; WX 260 ; N bar ; B 46 -225 332 775 ;
+C 125 ; WX 334 ; N braceright ; B 0 -196 354 722 ;
+C 126 ; WX 584 ; N asciitilde ; B 111 180 580 326 ;
+C 161 ; WX 333 ; N exclamdown ; B 77 -195 326 523 ;
+C 162 ; WX 556 ; N cent ; B 95 -115 584 623 ;
+C 163 ; WX 556 ; N sterling ; B 49 -16 634 718 ;
+C 164 ; WX 167 ; N fraction ; B -170 -19 482 703 ;
+C 165 ; WX 556 ; N yen ; B 81 0 699 688 ;
+C 166 ; WX 556 ; N florin ; B -52 -207 654 737 ;
+C 167 ; WX 556 ; N section ; B 76 -191 584 737 ;
+C 168 ; WX 556 ; N currency ; B 60 99 646 603 ;
+C 169 ; WX 191 ; N quotesingle ; B 157 463 285 718 ;
+C 170 ; WX 333 ; N quotedblleft ; B 138 470 461 725 ;
+C 171 ; WX 556 ; N guillemotleft ; B 146 108 554 446 ;
+C 172 ; WX 333 ; N guilsinglleft ; B 137 108 340 446 ;
+C 173 ; WX 333 ; N guilsinglright ; B 111 108 314 446 ;
+C 174 ; WX 500 ; N fi ; B 86 0 587 728 ;
+C 175 ; WX 500 ; N fl ; B 86 0 585 728 ;
+C 177 ; WX 556 ; N endash ; B 51 240 623 313 ;
+C 178 ; WX 556 ; N dagger ; B 135 -159 622 718 ;
+C 179 ; WX 556 ; N daggerdbl ; B 52 -159 623 718 ;
+C 180 ; WX 278 ; N periodcentered ; B 129 190 257 315 ;
+C 182 ; WX 537 ; N paragraph ; B 126 -173 650 718 ;
+C 183 ; WX 350 ; N bullet ; B 91 202 413 517 ;
+C 184 ; WX 222 ; N quotesinglbase ; B 21 -149 180 106 ;
+C 185 ; WX 333 ; N quotedblbase ; B -6 -149 318 106 ;
+C 186 ; WX 333 ; N quotedblright ; B 124 463 448 718 ;
+C 187 ; WX 556 ; N guillemotright ; B 120 108 528 446 ;
+C 188 ; WX 1000 ; N ellipsis ; B 115 0 908 106 ;
+C 189 ; WX 1000 ; N perthousand ; B 88 -19 1029 703 ;
+C 191 ; WX 611 ; N questiondown ; B 85 -201 534 525 ;
+C 193 ; WX 333 ; N grave ; B 170 593 337 734 ;
+C 194 ; WX 333 ; N acute ; B 248 593 475 734 ;
+C 195 ; WX 333 ; N circumflex ; B 147 593 438 734 ;
+C 196 ; WX 333 ; N tilde ; B 125 606 490 722 ;
+C 197 ; WX 333 ; N macron ; B 143 627 468 684 ;
+C 198 ; WX 333 ; N breve ; B 167 595 476 731 ;
+C 199 ; WX 333 ; N dotaccent ; B 249 604 362 706 ;
+C 200 ; WX 333 ; N dieresis ; B 168 604 443 706 ;
+C 202 ; WX 333 ; N ring ; B 214 572 402 756 ;
+C 203 ; WX 333 ; N cedilla ; B 2 -225 232 0 ;
+C 205 ; WX 333 ; N hungarumlaut ; B 157 593 565 734 ;
+C 206 ; WX 333 ; N ogonek ; B 43 -225 249 0 ;
+C 207 ; WX 333 ; N caron ; B 177 593 468 734 ;
+C 208 ; WX 1000 ; N emdash ; B 51 240 1067 313 ;
+C 225 ; WX 1000 ; N AE ; B 8 0 1097 718 ;
+C 227 ; WX 370 ; N ordfeminine ; B 127 405 449 737 ;
+C 232 ; WX 556 ; N Lslash ; B 41 0 555 718 ;
+C 233 ; WX 778 ; N Oslash ; B 43 -19 890 737 ;
+C 234 ; WX 1000 ; N OE ; B 98 -19 1116 737 ;
+C 235 ; WX 365 ; N ordmasculine ; B 141 405 468 737 ;
+C 241 ; WX 889 ; N ae ; B 61 -15 909 538 ;
+C 245 ; WX 278 ; N dotlessi ; B 95 0 294 523 ;
+C 248 ; WX 222 ; N lslash ; B 41 0 347 718 ;
+C 249 ; WX 611 ; N oslash ; B 29 -22 647 545 ;
+C 250 ; WX 944 ; N oe ; B 83 -15 964 538 ;
+C 251 ; WX 611 ; N germandbls ; B 67 -15 658 728 ;
+C -1 ; WX 278 ; N Idieresis ; B 91 0 458 901 ;
+C -1 ; WX 556 ; N eacute ; B 84 -15 587 734 ;
+C -1 ; WX 556 ; N abreve ; B 61 -15 578 731 ;
+C -1 ; WX 556 ; N uhungarumlaut ; B 94 -15 677 734 ;
+C -1 ; WX 556 ; N ecaron ; B 84 -15 580 734 ;
+C -1 ; WX 667 ; N Ydieresis ; B 167 0 806 901 ;
+C -1 ; WX 584 ; N divide ; B 85 -19 606 524 ;
+C -1 ; WX 667 ; N Yacute ; B 167 0 806 929 ;
+C -1 ; WX 667 ; N Acircumflex ; B 14 0 654 929 ;
+C -1 ; WX 556 ; N aacute ; B 61 -15 587 734 ;
+C -1 ; WX 722 ; N Ucircumflex ; B 123 -19 797 929 ;
+C -1 ; WX 500 ; N yacute ; B 15 -214 600 734 ;
+C -1 ; WX 500 ; N scommaaccent ; B 63 -225 529 538 ;
+C -1 ; WX 556 ; N ecircumflex ; B 84 -15 578 734 ;
+C -1 ; WX 722 ; N Uring ; B 123 -19 797 931 ;
+C -1 ; WX 722 ; N Udieresis ; B 123 -19 797 901 ;
+C -1 ; WX 556 ; N aogonek ; B 61 -220 559 538 ;
+C -1 ; WX 722 ; N Uacute ; B 123 -19 797 929 ;
+C -1 ; WX 556 ; N uogonek ; B 94 -225 600 523 ;
+C -1 ; WX 667 ; N Edieresis ; B 86 0 762 901 ;
+C -1 ; WX 722 ; N Dcroat ; B 69 0 764 718 ;
+C -1 ; WX 250 ; N commaaccent ; B 39 -225 172 -40 ;
+C -1 ; WX 737 ; N copyright ; B 54 -19 837 737 ;
+C -1 ; WX 667 ; N Emacron ; B 86 0 762 879 ;
+C -1 ; WX 500 ; N ccaron ; B 74 -15 553 734 ;
+C -1 ; WX 556 ; N aring ; B 61 -15 559 756 ;
+C -1 ; WX 722 ; N Ncommaaccent ; B 76 -225 799 718 ;
+C -1 ; WX 222 ; N lacute ; B 67 0 461 929 ;
+C -1 ; WX 556 ; N agrave ; B 61 -15 559 734 ;
+C -1 ; WX 611 ; N Tcommaaccent ; B 148 -225 750 718 ;
+C -1 ; WX 722 ; N Cacute ; B 108 -19 782 929 ;
+C -1 ; WX 556 ; N atilde ; B 61 -15 592 722 ;
+C -1 ; WX 667 ; N Edotaccent ; B 86 0 762 901 ;
+C -1 ; WX 500 ; N scaron ; B 63 -15 552 734 ;
+C -1 ; WX 500 ; N scedilla ; B 63 -225 529 538 ;
+C -1 ; WX 278 ; N iacute ; B 95 0 448 734 ;
+C -1 ; WX 471 ; N lozenge ; B 88 0 540 728 ;
+C -1 ; WX 722 ; N Rcaron ; B 88 0 773 929 ;
+C -1 ; WX 778 ; N Gcommaaccent ; B 111 -225 799 737 ;
+C -1 ; WX 556 ; N ucircumflex ; B 94 -15 600 734 ;
+C -1 ; WX 556 ; N acircumflex ; B 61 -15 559 734 ;
+C -1 ; WX 667 ; N Amacron ; B 14 0 677 879 ;
+C -1 ; WX 333 ; N rcaron ; B 77 0 508 734 ;
+C -1 ; WX 500 ; N ccedilla ; B 74 -225 553 538 ;
+C -1 ; WX 611 ; N Zdotaccent ; B 23 0 741 901 ;
+C -1 ; WX 667 ; N Thorn ; B 86 0 712 718 ;
+C -1 ; WX 778 ; N Omacron ; B 105 -19 826 879 ;
+C -1 ; WX 722 ; N Racute ; B 88 0 773 929 ;
+C -1 ; WX 667 ; N Sacute ; B 90 -19 713 929 ;
+C -1 ; WX 643 ; N dcaron ; B 84 -15 808 718 ;
+C -1 ; WX 722 ; N Umacron ; B 123 -19 797 879 ;
+C -1 ; WX 556 ; N uring ; B 94 -15 600 756 ;
+C -1 ; WX 333 ; N threesuperior ; B 90 270 436 703 ;
+C -1 ; WX 778 ; N Ograve ; B 105 -19 826 929 ;
+C -1 ; WX 667 ; N Agrave ; B 14 0 654 929 ;
+C -1 ; WX 667 ; N Abreve ; B 14 0 685 926 ;
+C -1 ; WX 584 ; N multiply ; B 50 0 642 506 ;
+C -1 ; WX 556 ; N uacute ; B 94 -15 600 734 ;
+C -1 ; WX 611 ; N Tcaron ; B 148 0 750 929 ;
+C -1 ; WX 476 ; N partialdiff ; B 41 -38 550 714 ;
+C -1 ; WX 500 ; N ydieresis ; B 15 -214 600 706 ;
+C -1 ; WX 722 ; N Nacute ; B 76 0 799 929 ;
+C -1 ; WX 278 ; N icircumflex ; B 95 0 411 734 ;
+C -1 ; WX 667 ; N Ecircumflex ; B 86 0 762 929 ;
+C -1 ; WX 556 ; N adieresis ; B 61 -15 559 706 ;
+C -1 ; WX 556 ; N edieresis ; B 84 -15 578 706 ;
+C -1 ; WX 500 ; N cacute ; B 74 -15 559 734 ;
+C -1 ; WX 556 ; N nacute ; B 65 0 587 734 ;
+C -1 ; WX 556 ; N umacron ; B 94 -15 600 684 ;
+C -1 ; WX 722 ; N Ncaron ; B 76 0 799 929 ;
+C -1 ; WX 278 ; N Iacute ; B 91 0 489 929 ;
+C -1 ; WX 584 ; N plusminus ; B 39 0 618 506 ;
+C -1 ; WX 260 ; N brokenbar ; B 62 -150 316 700 ;
+C -1 ; WX 737 ; N registered ; B 54 -19 837 737 ;
+C -1 ; WX 778 ; N Gbreve ; B 111 -19 799 926 ;
+C -1 ; WX 278 ; N Idotaccent ; B 91 0 377 901 ;
+C -1 ; WX 600 ; N summation ; B 15 -10 671 706 ;
+C -1 ; WX 667 ; N Egrave ; B 86 0 762 929 ;
+C -1 ; WX 333 ; N racute ; B 77 0 475 734 ;
+C -1 ; WX 556 ; N omacron ; B 83 -14 585 684 ;
+C -1 ; WX 611 ; N Zacute ; B 23 0 741 929 ;
+C -1 ; WX 611 ; N Zcaron ; B 23 0 741 929 ;
+C -1 ; WX 549 ; N greaterequal ; B 26 0 620 674 ;
+C -1 ; WX 722 ; N Eth ; B 69 0 764 718 ;
+C -1 ; WX 722 ; N Ccedilla ; B 108 -225 782 737 ;
+C -1 ; WX 222 ; N lcommaaccent ; B 25 -225 308 718 ;
+C -1 ; WX 317 ; N tcaron ; B 102 -7 501 808 ;
+C -1 ; WX 556 ; N eogonek ; B 84 -225 578 538 ;
+C -1 ; WX 722 ; N Uogonek ; B 123 -225 797 718 ;
+C -1 ; WX 667 ; N Aacute ; B 14 0 683 929 ;
+C -1 ; WX 667 ; N Adieresis ; B 14 0 654 901 ;
+C -1 ; WX 556 ; N egrave ; B 84 -15 578 734 ;
+C -1 ; WX 500 ; N zacute ; B 31 0 571 734 ;
+C -1 ; WX 222 ; N iogonek ; B -61 -225 308 718 ;
+C -1 ; WX 778 ; N Oacute ; B 105 -19 826 929 ;
+C -1 ; WX 556 ; N oacute ; B 83 -14 587 734 ;
+C -1 ; WX 556 ; N amacron ; B 61 -15 580 684 ;
+C -1 ; WX 500 ; N sacute ; B 63 -15 559 734 ;
+C -1 ; WX 278 ; N idieresis ; B 95 0 416 706 ;
+C -1 ; WX 778 ; N Ocircumflex ; B 105 -19 826 929 ;
+C -1 ; WX 722 ; N Ugrave ; B 123 -19 797 929 ;
+C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
+C -1 ; WX 556 ; N thorn ; B 14 -207 584 718 ;
+C -1 ; WX 333 ; N twosuperior ; B 64 281 449 703 ;
+C -1 ; WX 778 ; N Odieresis ; B 105 -19 826 901 ;
+C -1 ; WX 556 ; N mu ; B 24 -207 600 523 ;
+C -1 ; WX 278 ; N igrave ; B 95 0 310 734 ;
+C -1 ; WX 556 ; N ohungarumlaut ; B 83 -14 677 734 ;
+C -1 ; WX 667 ; N Eogonek ; B 86 -220 762 718 ;
+C -1 ; WX 556 ; N dcroat ; B 84 -15 689 718 ;
+C -1 ; WX 834 ; N threequarters ; B 130 -19 861 703 ;
+C -1 ; WX 667 ; N Scedilla ; B 90 -225 713 737 ;
+C -1 ; WX 299 ; N lcaron ; B 67 0 464 718 ;
+C -1 ; WX 667 ; N Kcommaaccent ; B 76 -225 808 718 ;
+C -1 ; WX 556 ; N Lacute ; B 76 0 555 929 ;
+C -1 ; WX 1000 ; N trademark ; B 186 306 1056 718 ;
+C -1 ; WX 556 ; N edotaccent ; B 84 -15 578 706 ;
+C -1 ; WX 278 ; N Igrave ; B 91 0 351 929 ;
+C -1 ; WX 278 ; N Imacron ; B 91 0 483 879 ;
+C -1 ; WX 556 ; N Lcaron ; B 76 0 570 718 ;
+C -1 ; WX 834 ; N onehalf ; B 114 -19 839 703 ;
+C -1 ; WX 549 ; N lessequal ; B 26 0 666 674 ;
+C -1 ; WX 556 ; N ocircumflex ; B 83 -14 585 734 ;
+C -1 ; WX 556 ; N ntilde ; B 65 0 592 722 ;
+C -1 ; WX 722 ; N Uhungarumlaut ; B 123 -19 801 929 ;
+C -1 ; WX 667 ; N Eacute ; B 86 0 762 929 ;
+C -1 ; WX 556 ; N emacron ; B 84 -15 580 684 ;
+C -1 ; WX 556 ; N gbreve ; B 42 -220 610 731 ;
+C -1 ; WX 834 ; N onequarter ; B 150 -19 802 703 ;
+C -1 ; WX 667 ; N Scaron ; B 90 -19 713 929 ;
+C -1 ; WX 667 ; N Scommaaccent ; B 90 -225 713 737 ;
+C -1 ; WX 778 ; N Ohungarumlaut ; B 105 -19 829 929 ;
+C -1 ; WX 400 ; N degree ; B 169 411 468 703 ;
+C -1 ; WX 556 ; N ograve ; B 83 -14 585 734 ;
+C -1 ; WX 722 ; N Ccaron ; B 108 -19 782 929 ;
+C -1 ; WX 556 ; N ugrave ; B 94 -15 600 734 ;
+C -1 ; WX 453 ; N radical ; B 79 -80 617 762 ;
+C -1 ; WX 722 ; N Dcaron ; B 81 0 764 929 ;
+C -1 ; WX 333 ; N rcommaaccent ; B 30 -225 446 538 ;
+C -1 ; WX 722 ; N Ntilde ; B 76 0 799 917 ;
+C -1 ; WX 556 ; N otilde ; B 83 -14 602 722 ;
+C -1 ; WX 722 ; N Rcommaaccent ; B 88 -225 773 718 ;
+C -1 ; WX 556 ; N Lcommaaccent ; B 76 -225 555 718 ;
+C -1 ; WX 667 ; N Atilde ; B 14 0 699 917 ;
+C -1 ; WX 667 ; N Aogonek ; B 14 -225 654 718 ;
+C -1 ; WX 667 ; N Aring ; B 14 0 654 931 ;
+C -1 ; WX 778 ; N Otilde ; B 105 -19 826 917 ;
+C -1 ; WX 500 ; N zdotaccent ; B 31 0 571 706 ;
+C -1 ; WX 667 ; N Ecaron ; B 86 0 762 929 ;
+C -1 ; WX 278 ; N Iogonek ; B -33 -225 341 718 ;
+C -1 ; WX 500 ; N kcommaaccent ; B 67 -225 600 718 ;
+C -1 ; WX 584 ; N minus ; B 85 216 606 289 ;
+C -1 ; WX 278 ; N Icircumflex ; B 91 0 452 929 ;
+C -1 ; WX 556 ; N ncaron ; B 65 0 580 734 ;
+C -1 ; WX 278 ; N tcommaaccent ; B 63 -225 368 669 ;
+C -1 ; WX 584 ; N logicalnot ; B 106 108 628 390 ;
+C -1 ; WX 556 ; N odieresis ; B 83 -14 585 706 ;
+C -1 ; WX 556 ; N udieresis ; B 94 -15 600 706 ;
+C -1 ; WX 549 ; N notequal ; B 34 -35 623 551 ;
+C -1 ; WX 556 ; N gcommaaccent ; B 42 -220 610 822 ;
+C -1 ; WX 556 ; N eth ; B 81 -15 617 737 ;
+C -1 ; WX 500 ; N zcaron ; B 31 0 571 734 ;
+C -1 ; WX 556 ; N ncommaaccent ; B 65 -225 573 538 ;
+C -1 ; WX 333 ; N onesuperior ; B 166 281 371 703 ;
+C -1 ; WX 278 ; N imacron ; B 95 0 417 684 ;
+C -1 ; WX 556 ; N Euro ; B 0 0 0 0 ;
+EndCharMetrics
+StartKernData
+StartKernPairs 2705
+KPX A C -30
+KPX A Cacute -30
+KPX A Ccaron -30
+KPX A Ccedilla -30
+KPX A G -30
+KPX A Gbreve -30
+KPX A Gcommaaccent -30
+KPX A O -30
+KPX A Oacute -30
+KPX A Ocircumflex -30
+KPX A Odieresis -30
+KPX A Ograve -30
+KPX A Ohungarumlaut -30
+KPX A Omacron -30
+KPX A Oslash -30
+KPX A Otilde -30
+KPX A Q -30
+KPX A T -120
+KPX A Tcaron -120
+KPX A Tcommaaccent -120
+KPX A U -50
+KPX A Uacute -50
+KPX A Ucircumflex -50
+KPX A Udieresis -50
+KPX A Ugrave -50
+KPX A Uhungarumlaut -50
+KPX A Umacron -50
+KPX A Uogonek -50
+KPX A Uring -50
+KPX A V -70
+KPX A W -50
+KPX A Y -100
+KPX A Yacute -100
+KPX A Ydieresis -100
+KPX A u -30
+KPX A uacute -30
+KPX A ucircumflex -30
+KPX A udieresis -30
+KPX A ugrave -30
+KPX A uhungarumlaut -30
+KPX A umacron -30
+KPX A uogonek -30
+KPX A uring -30
+KPX A v -40
+KPX A w -40
+KPX A y -40
+KPX A yacute -40
+KPX A ydieresis -40
+KPX Aacute C -30
+KPX Aacute Cacute -30
+KPX Aacute Ccaron -30
+KPX Aacute Ccedilla -30
+KPX Aacute G -30
+KPX Aacute Gbreve -30
+KPX Aacute Gcommaaccent -30
+KPX Aacute O -30
+KPX Aacute Oacute -30
+KPX Aacute Ocircumflex -30
+KPX Aacute Odieresis -30
+KPX Aacute Ograve -30
+KPX Aacute Ohungarumlaut -30
+KPX Aacute Omacron -30
+KPX Aacute Oslash -30
+KPX Aacute Otilde -30
+KPX Aacute Q -30
+KPX Aacute T -120
+KPX Aacute Tcaron -120
+KPX Aacute Tcommaaccent -120
+KPX Aacute U -50
+KPX Aacute Uacute -50
+KPX Aacute Ucircumflex -50
+KPX Aacute Udieresis -50
+KPX Aacute Ugrave -50
+KPX Aacute Uhungarumlaut -50
+KPX Aacute Umacron -50
+KPX Aacute Uogonek -50
+KPX Aacute Uring -50
+KPX Aacute V -70
+KPX Aacute W -50
+KPX Aacute Y -100
+KPX Aacute Yacute -100
+KPX Aacute Ydieresis -100
+KPX Aacute u -30
+KPX Aacute uacute -30
+KPX Aacute ucircumflex -30
+KPX Aacute udieresis -30
+KPX Aacute ugrave -30
+KPX Aacute uhungarumlaut -30
+KPX Aacute umacron -30
+KPX Aacute uogonek -30
+KPX Aacute uring -30
+KPX Aacute v -40
+KPX Aacute w -40
+KPX Aacute y -40
+KPX Aacute yacute -40
+KPX Aacute ydieresis -40
+KPX Abreve C -30
+KPX Abreve Cacute -30
+KPX Abreve Ccaron -30
+KPX Abreve Ccedilla -30
+KPX Abreve G -30
+KPX Abreve Gbreve -30
+KPX Abreve Gcommaaccent -30
+KPX Abreve O -30
+KPX Abreve Oacute -30
+KPX Abreve Ocircumflex -30
+KPX Abreve Odieresis -30
+KPX Abreve Ograve -30
+KPX Abreve Ohungarumlaut -30
+KPX Abreve Omacron -30
+KPX Abreve Oslash -30
+KPX Abreve Otilde -30
+KPX Abreve Q -30
+KPX Abreve T -120
+KPX Abreve Tcaron -120
+KPX Abreve Tcommaaccent -120
+KPX Abreve U -50
+KPX Abreve Uacute -50
+KPX Abreve Ucircumflex -50
+KPX Abreve Udieresis -50
+KPX Abreve Ugrave -50
+KPX Abreve Uhungarumlaut -50
+KPX Abreve Umacron -50
+KPX Abreve Uogonek -50
+KPX Abreve Uring -50
+KPX Abreve V -70
+KPX Abreve W -50
+KPX Abreve Y -100
+KPX Abreve Yacute -100
+KPX Abreve Ydieresis -100
+KPX Abreve u -30
+KPX Abreve uacute -30
+KPX Abreve ucircumflex -30
+KPX Abreve udieresis -30
+KPX Abreve ugrave -30
+KPX Abreve uhungarumlaut -30
+KPX Abreve umacron -30
+KPX Abreve uogonek -30
+KPX Abreve uring -30
+KPX Abreve v -40
+KPX Abreve w -40
+KPX Abreve y -40
+KPX Abreve yacute -40
+KPX Abreve ydieresis -40
+KPX Acircumflex C -30
+KPX Acircumflex Cacute -30
+KPX Acircumflex Ccaron -30
+KPX Acircumflex Ccedilla -30
+KPX Acircumflex G -30
+KPX Acircumflex Gbreve -30
+KPX Acircumflex Gcommaaccent -30
+KPX Acircumflex O -30
+KPX Acircumflex Oacute -30
+KPX Acircumflex Ocircumflex -30
+KPX Acircumflex Odieresis -30
+KPX Acircumflex Ograve -30
+KPX Acircumflex Ohungarumlaut -30
+KPX Acircumflex Omacron -30
+KPX Acircumflex Oslash -30
+KPX Acircumflex Otilde -30
+KPX Acircumflex Q -30
+KPX Acircumflex T -120
+KPX Acircumflex Tcaron -120
+KPX Acircumflex Tcommaaccent -120
+KPX Acircumflex U -50
+KPX Acircumflex Uacute -50
+KPX Acircumflex Ucircumflex -50
+KPX Acircumflex Udieresis -50
+KPX Acircumflex Ugrave -50
+KPX Acircumflex Uhungarumlaut -50
+KPX Acircumflex Umacron -50
+KPX Acircumflex Uogonek -50
+KPX Acircumflex Uring -50
+KPX Acircumflex V -70
+KPX Acircumflex W -50
+KPX Acircumflex Y -100
+KPX Acircumflex Yacute -100
+KPX Acircumflex Ydieresis -100
+KPX Acircumflex u -30
+KPX Acircumflex uacute -30
+KPX Acircumflex ucircumflex -30
+KPX Acircumflex udieresis -30
+KPX Acircumflex ugrave -30
+KPX Acircumflex uhungarumlaut -30
+KPX Acircumflex umacron -30
+KPX Acircumflex uogonek -30
+KPX Acircumflex uring -30
+KPX Acircumflex v -40
+KPX Acircumflex w -40
+KPX Acircumflex y -40
+KPX Acircumflex yacute -40
+KPX Acircumflex ydieresis -40
+KPX Adieresis C -30
+KPX Adieresis Cacute -30
+KPX Adieresis Ccaron -30
+KPX Adieresis Ccedilla -30
+KPX Adieresis G -30
+KPX Adieresis Gbreve -30
+KPX Adieresis Gcommaaccent -30
+KPX Adieresis O -30
+KPX Adieresis Oacute -30
+KPX Adieresis Ocircumflex -30
+KPX Adieresis Odieresis -30
+KPX Adieresis Ograve -30
+KPX Adieresis Ohungarumlaut -30
+KPX Adieresis Omacron -30
+KPX Adieresis Oslash -30
+KPX Adieresis Otilde -30
+KPX Adieresis Q -30
+KPX Adieresis T -120
+KPX Adieresis Tcaron -120
+KPX Adieresis Tcommaaccent -120
+KPX Adieresis U -50
+KPX Adieresis Uacute -50
+KPX Adieresis Ucircumflex -50
+KPX Adieresis Udieresis -50
+KPX Adieresis Ugrave -50
+KPX Adieresis Uhungarumlaut -50
+KPX Adieresis Umacron -50
+KPX Adieresis Uogonek -50
+KPX Adieresis Uring -50
+KPX Adieresis V -70
+KPX Adieresis W -50
+KPX Adieresis Y -100
+KPX Adieresis Yacute -100
+KPX Adieresis Ydieresis -100
+KPX Adieresis u -30
+KPX Adieresis uacute -30
+KPX Adieresis ucircumflex -30
+KPX Adieresis udieresis -30
+KPX Adieresis ugrave -30
+KPX Adieresis uhungarumlaut -30
+KPX Adieresis umacron -30
+KPX Adieresis uogonek -30
+KPX Adieresis uring -30
+KPX Adieresis v -40
+KPX Adieresis w -40
+KPX Adieresis y -40
+KPX Adieresis yacute -40
+KPX Adieresis ydieresis -40
+KPX Agrave C -30
+KPX Agrave Cacute -30
+KPX Agrave Ccaron -30
+KPX Agrave Ccedilla -30
+KPX Agrave G -30
+KPX Agrave Gbreve -30
+KPX Agrave Gcommaaccent -30
+KPX Agrave O -30
+KPX Agrave Oacute -30
+KPX Agrave Ocircumflex -30
+KPX Agrave Odieresis -30
+KPX Agrave Ograve -30
+KPX Agrave Ohungarumlaut -30
+KPX Agrave Omacron -30
+KPX Agrave Oslash -30
+KPX Agrave Otilde -30
+KPX Agrave Q -30
+KPX Agrave T -120
+KPX Agrave Tcaron -120
+KPX Agrave Tcommaaccent -120
+KPX Agrave U -50
+KPX Agrave Uacute -50
+KPX Agrave Ucircumflex -50
+KPX Agrave Udieresis -50
+KPX Agrave Ugrave -50
+KPX Agrave Uhungarumlaut -50
+KPX Agrave Umacron -50
+KPX Agrave Uogonek -50
+KPX Agrave Uring -50
+KPX Agrave V -70
+KPX Agrave W -50
+KPX Agrave Y -100
+KPX Agrave Yacute -100
+KPX Agrave Ydieresis -100
+KPX Agrave u -30
+KPX Agrave uacute -30
+KPX Agrave ucircumflex -30
+KPX Agrave udieresis -30
+KPX Agrave ugrave -30
+KPX Agrave uhungarumlaut -30
+KPX Agrave umacron -30
+KPX Agrave uogonek -30
+KPX Agrave uring -30
+KPX Agrave v -40
+KPX Agrave w -40
+KPX Agrave y -40
+KPX Agrave yacute -40
+KPX Agrave ydieresis -40
+KPX Amacron C -30
+KPX Amacron Cacute -30
+KPX Amacron Ccaron -30
+KPX Amacron Ccedilla -30
+KPX Amacron G -30
+KPX Amacron Gbreve -30
+KPX Amacron Gcommaaccent -30
+KPX Amacron O -30
+KPX Amacron Oacute -30
+KPX Amacron Ocircumflex -30
+KPX Amacron Odieresis -30
+KPX Amacron Ograve -30
+KPX Amacron Ohungarumlaut -30
+KPX Amacron Omacron -30
+KPX Amacron Oslash -30
+KPX Amacron Otilde -30
+KPX Amacron Q -30
+KPX Amacron T -120
+KPX Amacron Tcaron -120
+KPX Amacron Tcommaaccent -120
+KPX Amacron U -50
+KPX Amacron Uacute -50
+KPX Amacron Ucircumflex -50
+KPX Amacron Udieresis -50
+KPX Amacron Ugrave -50
+KPX Amacron Uhungarumlaut -50
+KPX Amacron Umacron -50
+KPX Amacron Uogonek -50
+KPX Amacron Uring -50
+KPX Amacron V -70
+KPX Amacron W -50
+KPX Amacron Y -100
+KPX Amacron Yacute -100
+KPX Amacron Ydieresis -100
+KPX Amacron u -30
+KPX Amacron uacute -30
+KPX Amacron ucircumflex -30
+KPX Amacron udieresis -30
+KPX Amacron ugrave -30
+KPX Amacron uhungarumlaut -30
+KPX Amacron umacron -30
+KPX Amacron uogonek -30
+KPX Amacron uring -30
+KPX Amacron v -40
+KPX Amacron w -40
+KPX Amacron y -40
+KPX Amacron yacute -40
+KPX Amacron ydieresis -40
+KPX Aogonek C -30
+KPX Aogonek Cacute -30
+KPX Aogonek Ccaron -30
+KPX Aogonek Ccedilla -30
+KPX Aogonek G -30
+KPX Aogonek Gbreve -30
+KPX Aogonek Gcommaaccent -30
+KPX Aogonek O -30
+KPX Aogonek Oacute -30
+KPX Aogonek Ocircumflex -30
+KPX Aogonek Odieresis -30
+KPX Aogonek Ograve -30
+KPX Aogonek Ohungarumlaut -30
+KPX Aogonek Omacron -30
+KPX Aogonek Oslash -30
+KPX Aogonek Otilde -30
+KPX Aogonek Q -30
+KPX Aogonek T -120
+KPX Aogonek Tcaron -120
+KPX Aogonek Tcommaaccent -120
+KPX Aogonek U -50
+KPX Aogonek Uacute -50
+KPX Aogonek Ucircumflex -50
+KPX Aogonek Udieresis -50
+KPX Aogonek Ugrave -50
+KPX Aogonek Uhungarumlaut -50
+KPX Aogonek Umacron -50
+KPX Aogonek Uogonek -50
+KPX Aogonek Uring -50
+KPX Aogonek V -70
+KPX Aogonek W -50
+KPX Aogonek Y -100
+KPX Aogonek Yacute -100
+KPX Aogonek Ydieresis -100
+KPX Aogonek u -30
+KPX Aogonek uacute -30
+KPX Aogonek ucircumflex -30
+KPX Aogonek udieresis -30
+KPX Aogonek ugrave -30
+KPX Aogonek uhungarumlaut -30
+KPX Aogonek umacron -30
+KPX Aogonek uogonek -30
+KPX Aogonek uring -30
+KPX Aogonek v -40
+KPX Aogonek w -40
+KPX Aogonek y -40
+KPX Aogonek yacute -40
+KPX Aogonek ydieresis -40
+KPX Aring C -30
+KPX Aring Cacute -30
+KPX Aring Ccaron -30
+KPX Aring Ccedilla -30
+KPX Aring G -30
+KPX Aring Gbreve -30
+KPX Aring Gcommaaccent -30
+KPX Aring O -30
+KPX Aring Oacute -30
+KPX Aring Ocircumflex -30
+KPX Aring Odieresis -30
+KPX Aring Ograve -30
+KPX Aring Ohungarumlaut -30
+KPX Aring Omacron -30
+KPX Aring Oslash -30
+KPX Aring Otilde -30
+KPX Aring Q -30
+KPX Aring T -120
+KPX Aring Tcaron -120
+KPX Aring Tcommaaccent -120
+KPX Aring U -50
+KPX Aring Uacute -50
+KPX Aring Ucircumflex -50
+KPX Aring Udieresis -50
+KPX Aring Ugrave -50
+KPX Aring Uhungarumlaut -50
+KPX Aring Umacron -50
+KPX Aring Uogonek -50
+KPX Aring Uring -50
+KPX Aring V -70
+KPX Aring W -50
+KPX Aring Y -100
+KPX Aring Yacute -100
+KPX Aring Ydieresis -100
+KPX Aring u -30
+KPX Aring uacute -30
+KPX Aring ucircumflex -30
+KPX Aring udieresis -30
+KPX Aring ugrave -30
+KPX Aring uhungarumlaut -30
+KPX Aring umacron -30
+KPX Aring uogonek -30
+KPX Aring uring -30
+KPX Aring v -40
+KPX Aring w -40
+KPX Aring y -40
+KPX Aring yacute -40
+KPX Aring ydieresis -40
+KPX Atilde C -30
+KPX Atilde Cacute -30
+KPX Atilde Ccaron -30
+KPX Atilde Ccedilla -30
+KPX Atilde G -30
+KPX Atilde Gbreve -30
+KPX Atilde Gcommaaccent -30
+KPX Atilde O -30
+KPX Atilde Oacute -30
+KPX Atilde Ocircumflex -30
+KPX Atilde Odieresis -30
+KPX Atilde Ograve -30
+KPX Atilde Ohungarumlaut -30
+KPX Atilde Omacron -30
+KPX Atilde Oslash -30
+KPX Atilde Otilde -30
+KPX Atilde Q -30
+KPX Atilde T -120
+KPX Atilde Tcaron -120
+KPX Atilde Tcommaaccent -120
+KPX Atilde U -50
+KPX Atilde Uacute -50
+KPX Atilde Ucircumflex -50
+KPX Atilde Udieresis -50
+KPX Atilde Ugrave -50
+KPX Atilde Uhungarumlaut -50
+KPX Atilde Umacron -50
+KPX Atilde Uogonek -50
+KPX Atilde Uring -50
+KPX Atilde V -70
+KPX Atilde W -50
+KPX Atilde Y -100
+KPX Atilde Yacute -100
+KPX Atilde Ydieresis -100
+KPX Atilde u -30
+KPX Atilde uacute -30
+KPX Atilde ucircumflex -30
+KPX Atilde udieresis -30
+KPX Atilde ugrave -30
+KPX Atilde uhungarumlaut -30
+KPX Atilde umacron -30
+KPX Atilde uogonek -30
+KPX Atilde uring -30
+KPX Atilde v -40
+KPX Atilde w -40
+KPX Atilde y -40
+KPX Atilde yacute -40
+KPX Atilde ydieresis -40
+KPX B U -10
+KPX B Uacute -10
+KPX B Ucircumflex -10
+KPX B Udieresis -10
+KPX B Ugrave -10
+KPX B Uhungarumlaut -10
+KPX B Umacron -10
+KPX B Uogonek -10
+KPX B Uring -10
+KPX B comma -20
+KPX B period -20
+KPX C comma -30
+KPX C period -30
+KPX Cacute comma -30
+KPX Cacute period -30
+KPX Ccaron comma -30
+KPX Ccaron period -30
+KPX Ccedilla comma -30
+KPX Ccedilla period -30
+KPX D A -40
+KPX D Aacute -40
+KPX D Abreve -40
+KPX D Acircumflex -40
+KPX D Adieresis -40
+KPX D Agrave -40
+KPX D Amacron -40
+KPX D Aogonek -40
+KPX D Aring -40
+KPX D Atilde -40
+KPX D V -70
+KPX D W -40
+KPX D Y -90
+KPX D Yacute -90
+KPX D Ydieresis -90
+KPX D comma -70
+KPX D period -70
+KPX Dcaron A -40
+KPX Dcaron Aacute -40
+KPX Dcaron Abreve -40
+KPX Dcaron Acircumflex -40
+KPX Dcaron Adieresis -40
+KPX Dcaron Agrave -40
+KPX Dcaron Amacron -40
+KPX Dcaron Aogonek -40
+KPX Dcaron Aring -40
+KPX Dcaron Atilde -40
+KPX Dcaron V -70
+KPX Dcaron W -40
+KPX Dcaron Y -90
+KPX Dcaron Yacute -90
+KPX Dcaron Ydieresis -90
+KPX Dcaron comma -70
+KPX Dcaron period -70
+KPX Dcroat A -40
+KPX Dcroat Aacute -40
+KPX Dcroat Abreve -40
+KPX Dcroat Acircumflex -40
+KPX Dcroat Adieresis -40
+KPX Dcroat Agrave -40
+KPX Dcroat Amacron -40
+KPX Dcroat Aogonek -40
+KPX Dcroat Aring -40
+KPX Dcroat Atilde -40
+KPX Dcroat V -70
+KPX Dcroat W -40
+KPX Dcroat Y -90
+KPX Dcroat Yacute -90
+KPX Dcroat Ydieresis -90
+KPX Dcroat comma -70
+KPX Dcroat period -70
+KPX F A -80
+KPX F Aacute -80
+KPX F Abreve -80
+KPX F Acircumflex -80
+KPX F Adieresis -80
+KPX F Agrave -80
+KPX F Amacron -80
+KPX F Aogonek -80
+KPX F Aring -80
+KPX F Atilde -80
+KPX F a -50
+KPX F aacute -50
+KPX F abreve -50
+KPX F acircumflex -50
+KPX F adieresis -50
+KPX F agrave -50
+KPX F amacron -50
+KPX F aogonek -50
+KPX F aring -50
+KPX F atilde -50
+KPX F comma -150
+KPX F e -30
+KPX F eacute -30
+KPX F ecaron -30
+KPX F ecircumflex -30
+KPX F edieresis -30
+KPX F edotaccent -30
+KPX F egrave -30
+KPX F emacron -30
+KPX F eogonek -30
+KPX F o -30
+KPX F oacute -30
+KPX F ocircumflex -30
+KPX F odieresis -30
+KPX F ograve -30
+KPX F ohungarumlaut -30
+KPX F omacron -30
+KPX F oslash -30
+KPX F otilde -30
+KPX F period -150
+KPX F r -45
+KPX F racute -45
+KPX F rcaron -45
+KPX F rcommaaccent -45
+KPX J A -20
+KPX J Aacute -20
+KPX J Abreve -20
+KPX J Acircumflex -20
+KPX J Adieresis -20
+KPX J Agrave -20
+KPX J Amacron -20
+KPX J Aogonek -20
+KPX J Aring -20
+KPX J Atilde -20
+KPX J a -20
+KPX J aacute -20
+KPX J abreve -20
+KPX J acircumflex -20
+KPX J adieresis -20
+KPX J agrave -20
+KPX J amacron -20
+KPX J aogonek -20
+KPX J aring -20
+KPX J atilde -20
+KPX J comma -30
+KPX J period -30
+KPX J u -20
+KPX J uacute -20
+KPX J ucircumflex -20
+KPX J udieresis -20
+KPX J ugrave -20
+KPX J uhungarumlaut -20
+KPX J umacron -20
+KPX J uogonek -20
+KPX J uring -20
+KPX K O -50
+KPX K Oacute -50
+KPX K Ocircumflex -50
+KPX K Odieresis -50
+KPX K Ograve -50
+KPX K Ohungarumlaut -50
+KPX K Omacron -50
+KPX K Oslash -50
+KPX K Otilde -50
+KPX K e -40
+KPX K eacute -40
+KPX K ecaron -40
+KPX K ecircumflex -40
+KPX K edieresis -40
+KPX K edotaccent -40
+KPX K egrave -40
+KPX K emacron -40
+KPX K eogonek -40
+KPX K o -40
+KPX K oacute -40
+KPX K ocircumflex -40
+KPX K odieresis -40
+KPX K ograve -40
+KPX K ohungarumlaut -40
+KPX K omacron -40
+KPX K oslash -40
+KPX K otilde -40
+KPX K u -30
+KPX K uacute -30
+KPX K ucircumflex -30
+KPX K udieresis -30
+KPX K ugrave -30
+KPX K uhungarumlaut -30
+KPX K umacron -30
+KPX K uogonek -30
+KPX K uring -30
+KPX K y -50
+KPX K yacute -50
+KPX K ydieresis -50
+KPX Kcommaaccent O -50
+KPX Kcommaaccent Oacute -50
+KPX Kcommaaccent Ocircumflex -50
+KPX Kcommaaccent Odieresis -50
+KPX Kcommaaccent Ograve -50
+KPX Kcommaaccent Ohungarumlaut -50
+KPX Kcommaaccent Omacron -50
+KPX Kcommaaccent Oslash -50
+KPX Kcommaaccent Otilde -50
+KPX Kcommaaccent e -40
+KPX Kcommaaccent eacute -40
+KPX Kcommaaccent ecaron -40
+KPX Kcommaaccent ecircumflex -40
+KPX Kcommaaccent edieresis -40
+KPX Kcommaaccent edotaccent -40
+KPX Kcommaaccent egrave -40
+KPX Kcommaaccent emacron -40
+KPX Kcommaaccent eogonek -40
+KPX Kcommaaccent o -40
+KPX Kcommaaccent oacute -40
+KPX Kcommaaccent ocircumflex -40
+KPX Kcommaaccent odieresis -40
+KPX Kcommaaccent ograve -40
+KPX Kcommaaccent ohungarumlaut -40
+KPX Kcommaaccent omacron -40
+KPX Kcommaaccent oslash -40
+KPX Kcommaaccent otilde -40
+KPX Kcommaaccent u -30
+KPX Kcommaaccent uacute -30
+KPX Kcommaaccent ucircumflex -30
+KPX Kcommaaccent udieresis -30
+KPX Kcommaaccent ugrave -30
+KPX Kcommaaccent uhungarumlaut -30
+KPX Kcommaaccent umacron -30
+KPX Kcommaaccent uogonek -30
+KPX Kcommaaccent uring -30
+KPX Kcommaaccent y -50
+KPX Kcommaaccent yacute -50
+KPX Kcommaaccent ydieresis -50
+KPX L T -110
+KPX L Tcaron -110
+KPX L Tcommaaccent -110
+KPX L V -110
+KPX L W -70
+KPX L Y -140
+KPX L Yacute -140
+KPX L Ydieresis -140
+KPX L quotedblright -140
+KPX L quoteright -160
+KPX L y -30
+KPX L yacute -30
+KPX L ydieresis -30
+KPX Lacute T -110
+KPX Lacute Tcaron -110
+KPX Lacute Tcommaaccent -110
+KPX Lacute V -110
+KPX Lacute W -70
+KPX Lacute Y -140
+KPX Lacute Yacute -140
+KPX Lacute Ydieresis -140
+KPX Lacute quotedblright -140
+KPX Lacute quoteright -160
+KPX Lacute y -30
+KPX Lacute yacute -30
+KPX Lacute ydieresis -30
+KPX Lcaron T -110
+KPX Lcaron Tcaron -110
+KPX Lcaron Tcommaaccent -110
+KPX Lcaron V -110
+KPX Lcaron W -70
+KPX Lcaron Y -140
+KPX Lcaron Yacute -140
+KPX Lcaron Ydieresis -140
+KPX Lcaron quotedblright -140
+KPX Lcaron quoteright -160
+KPX Lcaron y -30
+KPX Lcaron yacute -30
+KPX Lcaron ydieresis -30
+KPX Lcommaaccent T -110
+KPX Lcommaaccent Tcaron -110
+KPX Lcommaaccent Tcommaaccent -110
+KPX Lcommaaccent V -110
+KPX Lcommaaccent W -70
+KPX Lcommaaccent Y -140
+KPX Lcommaaccent Yacute -140
+KPX Lcommaaccent Ydieresis -140
+KPX Lcommaaccent quotedblright -140
+KPX Lcommaaccent quoteright -160
+KPX Lcommaaccent y -30
+KPX Lcommaaccent yacute -30
+KPX Lcommaaccent ydieresis -30
+KPX Lslash T -110
+KPX Lslash Tcaron -110
+KPX Lslash Tcommaaccent -110
+KPX Lslash V -110
+KPX Lslash W -70
+KPX Lslash Y -140
+KPX Lslash Yacute -140
+KPX Lslash Ydieresis -140
+KPX Lslash quotedblright -140
+KPX Lslash quoteright -160
+KPX Lslash y -30
+KPX Lslash yacute -30
+KPX Lslash ydieresis -30
+KPX O A -20
+KPX O Aacute -20
+KPX O Abreve -20
+KPX O Acircumflex -20
+KPX O Adieresis -20
+KPX O Agrave -20
+KPX O Amacron -20
+KPX O Aogonek -20
+KPX O Aring -20
+KPX O Atilde -20
+KPX O T -40
+KPX O Tcaron -40
+KPX O Tcommaaccent -40
+KPX O V -50
+KPX O W -30
+KPX O X -60
+KPX O Y -70
+KPX O Yacute -70
+KPX O Ydieresis -70
+KPX O comma -40
+KPX O period -40
+KPX Oacute A -20
+KPX Oacute Aacute -20
+KPX Oacute Abreve -20
+KPX Oacute Acircumflex -20
+KPX Oacute Adieresis -20
+KPX Oacute Agrave -20
+KPX Oacute Amacron -20
+KPX Oacute Aogonek -20
+KPX Oacute Aring -20
+KPX Oacute Atilde -20
+KPX Oacute T -40
+KPX Oacute Tcaron -40
+KPX Oacute Tcommaaccent -40
+KPX Oacute V -50
+KPX Oacute W -30
+KPX Oacute X -60
+KPX Oacute Y -70
+KPX Oacute Yacute -70
+KPX Oacute Ydieresis -70
+KPX Oacute comma -40
+KPX Oacute period -40
+KPX Ocircumflex A -20
+KPX Ocircumflex Aacute -20
+KPX Ocircumflex Abreve -20
+KPX Ocircumflex Acircumflex -20
+KPX Ocircumflex Adieresis -20
+KPX Ocircumflex Agrave -20
+KPX Ocircumflex Amacron -20
+KPX Ocircumflex Aogonek -20
+KPX Ocircumflex Aring -20
+KPX Ocircumflex Atilde -20
+KPX Ocircumflex T -40
+KPX Ocircumflex Tcaron -40
+KPX Ocircumflex Tcommaaccent -40
+KPX Ocircumflex V -50
+KPX Ocircumflex W -30
+KPX Ocircumflex X -60
+KPX Ocircumflex Y -70
+KPX Ocircumflex Yacute -70
+KPX Ocircumflex Ydieresis -70
+KPX Ocircumflex comma -40
+KPX Ocircumflex period -40
+KPX Odieresis A -20
+KPX Odieresis Aacute -20
+KPX Odieresis Abreve -20
+KPX Odieresis Acircumflex -20
+KPX Odieresis Adieresis -20
+KPX Odieresis Agrave -20
+KPX Odieresis Amacron -20
+KPX Odieresis Aogonek -20
+KPX Odieresis Aring -20
+KPX Odieresis Atilde -20
+KPX Odieresis T -40
+KPX Odieresis Tcaron -40
+KPX Odieresis Tcommaaccent -40
+KPX Odieresis V -50
+KPX Odieresis W -30
+KPX Odieresis X -60
+KPX Odieresis Y -70
+KPX Odieresis Yacute -70
+KPX Odieresis Ydieresis -70
+KPX Odieresis comma -40
+KPX Odieresis period -40
+KPX Ograve A -20
+KPX Ograve Aacute -20
+KPX Ograve Abreve -20
+KPX Ograve Acircumflex -20
+KPX Ograve Adieresis -20
+KPX Ograve Agrave -20
+KPX Ograve Amacron -20
+KPX Ograve Aogonek -20
+KPX Ograve Aring -20
+KPX Ograve Atilde -20
+KPX Ograve T -40
+KPX Ograve Tcaron -40
+KPX Ograve Tcommaaccent -40
+KPX Ograve V -50
+KPX Ograve W -30
+KPX Ograve X -60
+KPX Ograve Y -70
+KPX Ograve Yacute -70
+KPX Ograve Ydieresis -70
+KPX Ograve comma -40
+KPX Ograve period -40
+KPX Ohungarumlaut A -20
+KPX Ohungarumlaut Aacute -20
+KPX Ohungarumlaut Abreve -20
+KPX Ohungarumlaut Acircumflex -20
+KPX Ohungarumlaut Adieresis -20
+KPX Ohungarumlaut Agrave -20
+KPX Ohungarumlaut Amacron -20
+KPX Ohungarumlaut Aogonek -20
+KPX Ohungarumlaut Aring -20
+KPX Ohungarumlaut Atilde -20
+KPX Ohungarumlaut T -40
+KPX Ohungarumlaut Tcaron -40
+KPX Ohungarumlaut Tcommaaccent -40
+KPX Ohungarumlaut V -50
+KPX Ohungarumlaut W -30
+KPX Ohungarumlaut X -60
+KPX Ohungarumlaut Y -70
+KPX Ohungarumlaut Yacute -70
+KPX Ohungarumlaut Ydieresis -70
+KPX Ohungarumlaut comma -40
+KPX Ohungarumlaut period -40
+KPX Omacron A -20
+KPX Omacron Aacute -20
+KPX Omacron Abreve -20
+KPX Omacron Acircumflex -20
+KPX Omacron Adieresis -20
+KPX Omacron Agrave -20
+KPX Omacron Amacron -20
+KPX Omacron Aogonek -20
+KPX Omacron Aring -20
+KPX Omacron Atilde -20
+KPX Omacron T -40
+KPX Omacron Tcaron -40
+KPX Omacron Tcommaaccent -40
+KPX Omacron V -50
+KPX Omacron W -30
+KPX Omacron X -60
+KPX Omacron Y -70
+KPX Omacron Yacute -70
+KPX Omacron Ydieresis -70
+KPX Omacron comma -40
+KPX Omacron period -40
+KPX Oslash A -20
+KPX Oslash Aacute -20
+KPX Oslash Abreve -20
+KPX Oslash Acircumflex -20
+KPX Oslash Adieresis -20
+KPX Oslash Agrave -20
+KPX Oslash Amacron -20
+KPX Oslash Aogonek -20
+KPX Oslash Aring -20
+KPX Oslash Atilde -20
+KPX Oslash T -40
+KPX Oslash Tcaron -40
+KPX Oslash Tcommaaccent -40
+KPX Oslash V -50
+KPX Oslash W -30
+KPX Oslash X -60
+KPX Oslash Y -70
+KPX Oslash Yacute -70
+KPX Oslash Ydieresis -70
+KPX Oslash comma -40
+KPX Oslash period -40
+KPX Otilde A -20
+KPX Otilde Aacute -20
+KPX Otilde Abreve -20
+KPX Otilde Acircumflex -20
+KPX Otilde Adieresis -20
+KPX Otilde Agrave -20
+KPX Otilde Amacron -20
+KPX Otilde Aogonek -20
+KPX Otilde Aring -20
+KPX Otilde Atilde -20
+KPX Otilde T -40
+KPX Otilde Tcaron -40
+KPX Otilde Tcommaaccent -40
+KPX Otilde V -50
+KPX Otilde W -30
+KPX Otilde X -60
+KPX Otilde Y -70
+KPX Otilde Yacute -70
+KPX Otilde Ydieresis -70
+KPX Otilde comma -40
+KPX Otilde period -40
+KPX P A -120
+KPX P Aacute -120
+KPX P Abreve -120
+KPX P Acircumflex -120
+KPX P Adieresis -120
+KPX P Agrave -120
+KPX P Amacron -120
+KPX P Aogonek -120
+KPX P Aring -120
+KPX P Atilde -120
+KPX P a -40
+KPX P aacute -40
+KPX P abreve -40
+KPX P acircumflex -40
+KPX P adieresis -40
+KPX P agrave -40
+KPX P amacron -40
+KPX P aogonek -40
+KPX P aring -40
+KPX P atilde -40
+KPX P comma -180
+KPX P e -50
+KPX P eacute -50
+KPX P ecaron -50
+KPX P ecircumflex -50
+KPX P edieresis -50
+KPX P edotaccent -50
+KPX P egrave -50
+KPX P emacron -50
+KPX P eogonek -50
+KPX P o -50
+KPX P oacute -50
+KPX P ocircumflex -50
+KPX P odieresis -50
+KPX P ograve -50
+KPX P ohungarumlaut -50
+KPX P omacron -50
+KPX P oslash -50
+KPX P otilde -50
+KPX P period -180
+KPX Q U -10
+KPX Q Uacute -10
+KPX Q Ucircumflex -10
+KPX Q Udieresis -10
+KPX Q Ugrave -10
+KPX Q Uhungarumlaut -10
+KPX Q Umacron -10
+KPX Q Uogonek -10
+KPX Q Uring -10
+KPX R O -20
+KPX R Oacute -20
+KPX R Ocircumflex -20
+KPX R Odieresis -20
+KPX R Ograve -20
+KPX R Ohungarumlaut -20
+KPX R Omacron -20
+KPX R Oslash -20
+KPX R Otilde -20
+KPX R T -30
+KPX R Tcaron -30
+KPX R Tcommaaccent -30
+KPX R U -40
+KPX R Uacute -40
+KPX R Ucircumflex -40
+KPX R Udieresis -40
+KPX R Ugrave -40
+KPX R Uhungarumlaut -40
+KPX R Umacron -40
+KPX R Uogonek -40
+KPX R Uring -40
+KPX R V -50
+KPX R W -30
+KPX R Y -50
+KPX R Yacute -50
+KPX R Ydieresis -50
+KPX Racute O -20
+KPX Racute Oacute -20
+KPX Racute Ocircumflex -20
+KPX Racute Odieresis -20
+KPX Racute Ograve -20
+KPX Racute Ohungarumlaut -20
+KPX Racute Omacron -20
+KPX Racute Oslash -20
+KPX Racute Otilde -20
+KPX Racute T -30
+KPX Racute Tcaron -30
+KPX Racute Tcommaaccent -30
+KPX Racute U -40
+KPX Racute Uacute -40
+KPX Racute Ucircumflex -40
+KPX Racute Udieresis -40
+KPX Racute Ugrave -40
+KPX Racute Uhungarumlaut -40
+KPX Racute Umacron -40
+KPX Racute Uogonek -40
+KPX Racute Uring -40
+KPX Racute V -50
+KPX Racute W -30
+KPX Racute Y -50
+KPX Racute Yacute -50
+KPX Racute Ydieresis -50
+KPX Rcaron O -20
+KPX Rcaron Oacute -20
+KPX Rcaron Ocircumflex -20
+KPX Rcaron Odieresis -20
+KPX Rcaron Ograve -20
+KPX Rcaron Ohungarumlaut -20
+KPX Rcaron Omacron -20
+KPX Rcaron Oslash -20
+KPX Rcaron Otilde -20
+KPX Rcaron T -30
+KPX Rcaron Tcaron -30
+KPX Rcaron Tcommaaccent -30
+KPX Rcaron U -40
+KPX Rcaron Uacute -40
+KPX Rcaron Ucircumflex -40
+KPX Rcaron Udieresis -40
+KPX Rcaron Ugrave -40
+KPX Rcaron Uhungarumlaut -40
+KPX Rcaron Umacron -40
+KPX Rcaron Uogonek -40
+KPX Rcaron Uring -40
+KPX Rcaron V -50
+KPX Rcaron W -30
+KPX Rcaron Y -50
+KPX Rcaron Yacute -50
+KPX Rcaron Ydieresis -50
+KPX Rcommaaccent O -20
+KPX Rcommaaccent Oacute -20
+KPX Rcommaaccent Ocircumflex -20
+KPX Rcommaaccent Odieresis -20
+KPX Rcommaaccent Ograve -20
+KPX Rcommaaccent Ohungarumlaut -20
+KPX Rcommaaccent Omacron -20
+KPX Rcommaaccent Oslash -20
+KPX Rcommaaccent Otilde -20
+KPX Rcommaaccent T -30
+KPX Rcommaaccent Tcaron -30
+KPX Rcommaaccent Tcommaaccent -30
+KPX Rcommaaccent U -40
+KPX Rcommaaccent Uacute -40
+KPX Rcommaaccent Ucircumflex -40
+KPX Rcommaaccent Udieresis -40
+KPX Rcommaaccent Ugrave -40
+KPX Rcommaaccent Uhungarumlaut -40
+KPX Rcommaaccent Umacron -40
+KPX Rcommaaccent Uogonek -40
+KPX Rcommaaccent Uring -40
+KPX Rcommaaccent V -50
+KPX Rcommaaccent W -30
+KPX Rcommaaccent Y -50
+KPX Rcommaaccent Yacute -50
+KPX Rcommaaccent Ydieresis -50
+KPX S comma -20
+KPX S period -20
+KPX Sacute comma -20
+KPX Sacute period -20
+KPX Scaron comma -20
+KPX Scaron period -20
+KPX Scedilla comma -20
+KPX Scedilla period -20
+KPX Scommaaccent comma -20
+KPX Scommaaccent period -20
+KPX T A -120
+KPX T Aacute -120
+KPX T Abreve -120
+KPX T Acircumflex -120
+KPX T Adieresis -120
+KPX T Agrave -120
+KPX T Amacron -120
+KPX T Aogonek -120
+KPX T Aring -120
+KPX T Atilde -120
+KPX T O -40
+KPX T Oacute -40
+KPX T Ocircumflex -40
+KPX T Odieresis -40
+KPX T Ograve -40
+KPX T Ohungarumlaut -40
+KPX T Omacron -40
+KPX T Oslash -40
+KPX T Otilde -40
+KPX T a -120
+KPX T aacute -120
+KPX T abreve -60
+KPX T acircumflex -120
+KPX T adieresis -120
+KPX T agrave -120
+KPX T amacron -60
+KPX T aogonek -120
+KPX T aring -120
+KPX T atilde -60
+KPX T colon -20
+KPX T comma -120
+KPX T e -120
+KPX T eacute -120
+KPX T ecaron -120
+KPX T ecircumflex -120
+KPX T edieresis -120
+KPX T edotaccent -120
+KPX T egrave -60
+KPX T emacron -60
+KPX T eogonek -120
+KPX T hyphen -140
+KPX T o -120
+KPX T oacute -120
+KPX T ocircumflex -120
+KPX T odieresis -120
+KPX T ograve -120
+KPX T ohungarumlaut -120
+KPX T omacron -60
+KPX T oslash -120
+KPX T otilde -60
+KPX T period -120
+KPX T r -120
+KPX T racute -120
+KPX T rcaron -120
+KPX T rcommaaccent -120
+KPX T semicolon -20
+KPX T u -120
+KPX T uacute -120
+KPX T ucircumflex -120
+KPX T udieresis -120
+KPX T ugrave -120
+KPX T uhungarumlaut -120
+KPX T umacron -60
+KPX T uogonek -120
+KPX T uring -120
+KPX T w -120
+KPX T y -120
+KPX T yacute -120
+KPX T ydieresis -60
+KPX Tcaron A -120
+KPX Tcaron Aacute -120
+KPX Tcaron Abreve -120
+KPX Tcaron Acircumflex -120
+KPX Tcaron Adieresis -120
+KPX Tcaron Agrave -120
+KPX Tcaron Amacron -120
+KPX Tcaron Aogonek -120
+KPX Tcaron Aring -120
+KPX Tcaron Atilde -120
+KPX Tcaron O -40
+KPX Tcaron Oacute -40
+KPX Tcaron Ocircumflex -40
+KPX Tcaron Odieresis -40
+KPX Tcaron Ograve -40
+KPX Tcaron Ohungarumlaut -40
+KPX Tcaron Omacron -40
+KPX Tcaron Oslash -40
+KPX Tcaron Otilde -40
+KPX Tcaron a -120
+KPX Tcaron aacute -120
+KPX Tcaron abreve -60
+KPX Tcaron acircumflex -120
+KPX Tcaron adieresis -120
+KPX Tcaron agrave -120
+KPX Tcaron amacron -60
+KPX Tcaron aogonek -120
+KPX Tcaron aring -120
+KPX Tcaron atilde -60
+KPX Tcaron colon -20
+KPX Tcaron comma -120
+KPX Tcaron e -120
+KPX Tcaron eacute -120
+KPX Tcaron ecaron -120
+KPX Tcaron ecircumflex -120
+KPX Tcaron edieresis -120
+KPX Tcaron edotaccent -120
+KPX Tcaron egrave -60
+KPX Tcaron emacron -60
+KPX Tcaron eogonek -120
+KPX Tcaron hyphen -140
+KPX Tcaron o -120
+KPX Tcaron oacute -120
+KPX Tcaron ocircumflex -120
+KPX Tcaron odieresis -120
+KPX Tcaron ograve -120
+KPX Tcaron ohungarumlaut -120
+KPX Tcaron omacron -60
+KPX Tcaron oslash -120
+KPX Tcaron otilde -60
+KPX Tcaron period -120
+KPX Tcaron r -120
+KPX Tcaron racute -120
+KPX Tcaron rcaron -120
+KPX Tcaron rcommaaccent -120
+KPX Tcaron semicolon -20
+KPX Tcaron u -120
+KPX Tcaron uacute -120
+KPX Tcaron ucircumflex -120
+KPX Tcaron udieresis -120
+KPX Tcaron ugrave -120
+KPX Tcaron uhungarumlaut -120
+KPX Tcaron umacron -60
+KPX Tcaron uogonek -120
+KPX Tcaron uring -120
+KPX Tcaron w -120
+KPX Tcaron y -120
+KPX Tcaron yacute -120
+KPX Tcaron ydieresis -60
+KPX Tcommaaccent A -120
+KPX Tcommaaccent Aacute -120
+KPX Tcommaaccent Abreve -120
+KPX Tcommaaccent Acircumflex -120
+KPX Tcommaaccent Adieresis -120
+KPX Tcommaaccent Agrave -120
+KPX Tcommaaccent Amacron -120
+KPX Tcommaaccent Aogonek -120
+KPX Tcommaaccent Aring -120
+KPX Tcommaaccent Atilde -120
+KPX Tcommaaccent O -40
+KPX Tcommaaccent Oacute -40
+KPX Tcommaaccent Ocircumflex -40
+KPX Tcommaaccent Odieresis -40
+KPX Tcommaaccent Ograve -40
+KPX Tcommaaccent Ohungarumlaut -40
+KPX Tcommaaccent Omacron -40
+KPX Tcommaaccent Oslash -40
+KPX Tcommaaccent Otilde -40
+KPX Tcommaaccent a -120
+KPX Tcommaaccent aacute -120
+KPX Tcommaaccent abreve -60
+KPX Tcommaaccent acircumflex -120
+KPX Tcommaaccent adieresis -120
+KPX Tcommaaccent agrave -120
+KPX Tcommaaccent amacron -60
+KPX Tcommaaccent aogonek -120
+KPX Tcommaaccent aring -120
+KPX Tcommaaccent atilde -60
+KPX Tcommaaccent colon -20
+KPX Tcommaaccent comma -120
+KPX Tcommaaccent e -120
+KPX Tcommaaccent eacute -120
+KPX Tcommaaccent ecaron -120
+KPX Tcommaaccent ecircumflex -120
+KPX Tcommaaccent edieresis -120
+KPX Tcommaaccent edotaccent -120
+KPX Tcommaaccent egrave -60
+KPX Tcommaaccent emacron -60
+KPX Tcommaaccent eogonek -120
+KPX Tcommaaccent hyphen -140
+KPX Tcommaaccent o -120
+KPX Tcommaaccent oacute -120
+KPX Tcommaaccent ocircumflex -120
+KPX Tcommaaccent odieresis -120
+KPX Tcommaaccent ograve -120
+KPX Tcommaaccent ohungarumlaut -120
+KPX Tcommaaccent omacron -60
+KPX Tcommaaccent oslash -120
+KPX Tcommaaccent otilde -60
+KPX Tcommaaccent period -120
+KPX Tcommaaccent r -120
+KPX Tcommaaccent racute -120
+KPX Tcommaaccent rcaron -120
+KPX Tcommaaccent rcommaaccent -120
+KPX Tcommaaccent semicolon -20
+KPX Tcommaaccent u -120
+KPX Tcommaaccent uacute -120
+KPX Tcommaaccent ucircumflex -120
+KPX Tcommaaccent udieresis -120
+KPX Tcommaaccent ugrave -120
+KPX Tcommaaccent uhungarumlaut -120
+KPX Tcommaaccent umacron -60
+KPX Tcommaaccent uogonek -120
+KPX Tcommaaccent uring -120
+KPX Tcommaaccent w -120
+KPX Tcommaaccent y -120
+KPX Tcommaaccent yacute -120
+KPX Tcommaaccent ydieresis -60
+KPX U A -40
+KPX U Aacute -40
+KPX U Abreve -40
+KPX U Acircumflex -40
+KPX U Adieresis -40
+KPX U Agrave -40
+KPX U Amacron -40
+KPX U Aogonek -40
+KPX U Aring -40
+KPX U Atilde -40
+KPX U comma -40
+KPX U period -40
+KPX Uacute A -40
+KPX Uacute Aacute -40
+KPX Uacute Abreve -40
+KPX Uacute Acircumflex -40
+KPX Uacute Adieresis -40
+KPX Uacute Agrave -40
+KPX Uacute Amacron -40
+KPX Uacute Aogonek -40
+KPX Uacute Aring -40
+KPX Uacute Atilde -40
+KPX Uacute comma -40
+KPX Uacute period -40
+KPX Ucircumflex A -40
+KPX Ucircumflex Aacute -40
+KPX Ucircumflex Abreve -40
+KPX Ucircumflex Acircumflex -40
+KPX Ucircumflex Adieresis -40
+KPX Ucircumflex Agrave -40
+KPX Ucircumflex Amacron -40
+KPX Ucircumflex Aogonek -40
+KPX Ucircumflex Aring -40
+KPX Ucircumflex Atilde -40
+KPX Ucircumflex comma -40
+KPX Ucircumflex period -40
+KPX Udieresis A -40
+KPX Udieresis Aacute -40
+KPX Udieresis Abreve -40
+KPX Udieresis Acircumflex -40
+KPX Udieresis Adieresis -40
+KPX Udieresis Agrave -40
+KPX Udieresis Amacron -40
+KPX Udieresis Aogonek -40
+KPX Udieresis Aring -40
+KPX Udieresis Atilde -40
+KPX Udieresis comma -40
+KPX Udieresis period -40
+KPX Ugrave A -40
+KPX Ugrave Aacute -40
+KPX Ugrave Abreve -40
+KPX Ugrave Acircumflex -40
+KPX Ugrave Adieresis -40
+KPX Ugrave Agrave -40
+KPX Ugrave Amacron -40
+KPX Ugrave Aogonek -40
+KPX Ugrave Aring -40
+KPX Ugrave Atilde -40
+KPX Ugrave comma -40
+KPX Ugrave period -40
+KPX Uhungarumlaut A -40
+KPX Uhungarumlaut Aacute -40
+KPX Uhungarumlaut Abreve -40
+KPX Uhungarumlaut Acircumflex -40
+KPX Uhungarumlaut Adieresis -40
+KPX Uhungarumlaut Agrave -40
+KPX Uhungarumlaut Amacron -40
+KPX Uhungarumlaut Aogonek -40
+KPX Uhungarumlaut Aring -40
+KPX Uhungarumlaut Atilde -40
+KPX Uhungarumlaut comma -40
+KPX Uhungarumlaut period -40
+KPX Umacron A -40
+KPX Umacron Aacute -40
+KPX Umacron Abreve -40
+KPX Umacron Acircumflex -40
+KPX Umacron Adieresis -40
+KPX Umacron Agrave -40
+KPX Umacron Amacron -40
+KPX Umacron Aogonek -40
+KPX Umacron Aring -40
+KPX Umacron Atilde -40
+KPX Umacron comma -40
+KPX Umacron period -40
+KPX Uogonek A -40
+KPX Uogonek Aacute -40
+KPX Uogonek Abreve -40
+KPX Uogonek Acircumflex -40
+KPX Uogonek Adieresis -40
+KPX Uogonek Agrave -40
+KPX Uogonek Amacron -40
+KPX Uogonek Aogonek -40
+KPX Uogonek Aring -40
+KPX Uogonek Atilde -40
+KPX Uogonek comma -40
+KPX Uogonek period -40
+KPX Uring A -40
+KPX Uring Aacute -40
+KPX Uring Abreve -40
+KPX Uring Acircumflex -40
+KPX Uring Adieresis -40
+KPX Uring Agrave -40
+KPX Uring Amacron -40
+KPX Uring Aogonek -40
+KPX Uring Aring -40
+KPX Uring Atilde -40
+KPX Uring comma -40
+KPX Uring period -40
+KPX V A -80
+KPX V Aacute -80
+KPX V Abreve -80
+KPX V Acircumflex -80
+KPX V Adieresis -80
+KPX V Agrave -80
+KPX V Amacron -80
+KPX V Aogonek -80
+KPX V Aring -80
+KPX V Atilde -80
+KPX V G -40
+KPX V Gbreve -40
+KPX V Gcommaaccent -40
+KPX V O -40
+KPX V Oacute -40
+KPX V Ocircumflex -40
+KPX V Odieresis -40
+KPX V Ograve -40
+KPX V Ohungarumlaut -40
+KPX V Omacron -40
+KPX V Oslash -40
+KPX V Otilde -40
+KPX V a -70
+KPX V aacute -70
+KPX V abreve -70
+KPX V acircumflex -70
+KPX V adieresis -70
+KPX V agrave -70
+KPX V amacron -70
+KPX V aogonek -70
+KPX V aring -70
+KPX V atilde -70
+KPX V colon -40
+KPX V comma -125
+KPX V e -80
+KPX V eacute -80
+KPX V ecaron -80
+KPX V ecircumflex -80
+KPX V edieresis -80
+KPX V edotaccent -80
+KPX V egrave -80
+KPX V emacron -80
+KPX V eogonek -80
+KPX V hyphen -80
+KPX V o -80
+KPX V oacute -80
+KPX V ocircumflex -80
+KPX V odieresis -80
+KPX V ograve -80
+KPX V ohungarumlaut -80
+KPX V omacron -80
+KPX V oslash -80
+KPX V otilde -80
+KPX V period -125
+KPX V semicolon -40
+KPX V u -70
+KPX V uacute -70
+KPX V ucircumflex -70
+KPX V udieresis -70
+KPX V ugrave -70
+KPX V uhungarumlaut -70
+KPX V umacron -70
+KPX V uogonek -70
+KPX V uring -70
+KPX W A -50
+KPX W Aacute -50
+KPX W Abreve -50
+KPX W Acircumflex -50
+KPX W Adieresis -50
+KPX W Agrave -50
+KPX W Amacron -50
+KPX W Aogonek -50
+KPX W Aring -50
+KPX W Atilde -50
+KPX W O -20
+KPX W Oacute -20
+KPX W Ocircumflex -20
+KPX W Odieresis -20
+KPX W Ograve -20
+KPX W Ohungarumlaut -20
+KPX W Omacron -20
+KPX W Oslash -20
+KPX W Otilde -20
+KPX W a -40
+KPX W aacute -40
+KPX W abreve -40
+KPX W acircumflex -40
+KPX W adieresis -40
+KPX W agrave -40
+KPX W amacron -40
+KPX W aogonek -40
+KPX W aring -40
+KPX W atilde -40
+KPX W comma -80
+KPX W e -30
+KPX W eacute -30
+KPX W ecaron -30
+KPX W ecircumflex -30
+KPX W edieresis -30
+KPX W edotaccent -30
+KPX W egrave -30
+KPX W emacron -30
+KPX W eogonek -30
+KPX W hyphen -40
+KPX W o -30
+KPX W oacute -30
+KPX W ocircumflex -30
+KPX W odieresis -30
+KPX W ograve -30
+KPX W ohungarumlaut -30
+KPX W omacron -30
+KPX W oslash -30
+KPX W otilde -30
+KPX W period -80
+KPX W u -30
+KPX W uacute -30
+KPX W ucircumflex -30
+KPX W udieresis -30
+KPX W ugrave -30
+KPX W uhungarumlaut -30
+KPX W umacron -30
+KPX W uogonek -30
+KPX W uring -30
+KPX W y -20
+KPX W yacute -20
+KPX W ydieresis -20
+KPX Y A -110
+KPX Y Aacute -110
+KPX Y Abreve -110
+KPX Y Acircumflex -110
+KPX Y Adieresis -110
+KPX Y Agrave -110
+KPX Y Amacron -110
+KPX Y Aogonek -110
+KPX Y Aring -110
+KPX Y Atilde -110
+KPX Y O -85
+KPX Y Oacute -85
+KPX Y Ocircumflex -85
+KPX Y Odieresis -85
+KPX Y Ograve -85
+KPX Y Ohungarumlaut -85
+KPX Y Omacron -85
+KPX Y Oslash -85
+KPX Y Otilde -85
+KPX Y a -140
+KPX Y aacute -140
+KPX Y abreve -70
+KPX Y acircumflex -140
+KPX Y adieresis -140
+KPX Y agrave -140
+KPX Y amacron -70
+KPX Y aogonek -140
+KPX Y aring -140
+KPX Y atilde -140
+KPX Y colon -60
+KPX Y comma -140
+KPX Y e -140
+KPX Y eacute -140
+KPX Y ecaron -140
+KPX Y ecircumflex -140
+KPX Y edieresis -140
+KPX Y edotaccent -140
+KPX Y egrave -140
+KPX Y emacron -70
+KPX Y eogonek -140
+KPX Y hyphen -140
+KPX Y i -20
+KPX Y iacute -20
+KPX Y iogonek -20
+KPX Y o -140
+KPX Y oacute -140
+KPX Y ocircumflex -140
+KPX Y odieresis -140
+KPX Y ograve -140
+KPX Y ohungarumlaut -140
+KPX Y omacron -140
+KPX Y oslash -140
+KPX Y otilde -140
+KPX Y period -140
+KPX Y semicolon -60
+KPX Y u -110
+KPX Y uacute -110
+KPX Y ucircumflex -110
+KPX Y udieresis -110
+KPX Y ugrave -110
+KPX Y uhungarumlaut -110
+KPX Y umacron -110
+KPX Y uogonek -110
+KPX Y uring -110
+KPX Yacute A -110
+KPX Yacute Aacute -110
+KPX Yacute Abreve -110
+KPX Yacute Acircumflex -110
+KPX Yacute Adieresis -110
+KPX Yacute Agrave -110
+KPX Yacute Amacron -110
+KPX Yacute Aogonek -110
+KPX Yacute Aring -110
+KPX Yacute Atilde -110
+KPX Yacute O -85
+KPX Yacute Oacute -85
+KPX Yacute Ocircumflex -85
+KPX Yacute Odieresis -85
+KPX Yacute Ograve -85
+KPX Yacute Ohungarumlaut -85
+KPX Yacute Omacron -85
+KPX Yacute Oslash -85
+KPX Yacute Otilde -85
+KPX Yacute a -140
+KPX Yacute aacute -140
+KPX Yacute abreve -70
+KPX Yacute acircumflex -140
+KPX Yacute adieresis -140
+KPX Yacute agrave -140
+KPX Yacute amacron -70
+KPX Yacute aogonek -140
+KPX Yacute aring -140
+KPX Yacute atilde -70
+KPX Yacute colon -60
+KPX Yacute comma -140
+KPX Yacute e -140
+KPX Yacute eacute -140
+KPX Yacute ecaron -140
+KPX Yacute ecircumflex -140
+KPX Yacute edieresis -140
+KPX Yacute edotaccent -140
+KPX Yacute egrave -140
+KPX Yacute emacron -70
+KPX Yacute eogonek -140
+KPX Yacute hyphen -140
+KPX Yacute i -20
+KPX Yacute iacute -20
+KPX Yacute iogonek -20
+KPX Yacute o -140
+KPX Yacute oacute -140
+KPX Yacute ocircumflex -140
+KPX Yacute odieresis -140
+KPX Yacute ograve -140
+KPX Yacute ohungarumlaut -140
+KPX Yacute omacron -70
+KPX Yacute oslash -140
+KPX Yacute otilde -140
+KPX Yacute period -140
+KPX Yacute semicolon -60
+KPX Yacute u -110
+KPX Yacute uacute -110
+KPX Yacute ucircumflex -110
+KPX Yacute udieresis -110
+KPX Yacute ugrave -110
+KPX Yacute uhungarumlaut -110
+KPX Yacute umacron -110
+KPX Yacute uogonek -110
+KPX Yacute uring -110
+KPX Ydieresis A -110
+KPX Ydieresis Aacute -110
+KPX Ydieresis Abreve -110
+KPX Ydieresis Acircumflex -110
+KPX Ydieresis Adieresis -110
+KPX Ydieresis Agrave -110
+KPX Ydieresis Amacron -110
+KPX Ydieresis Aogonek -110
+KPX Ydieresis Aring -110
+KPX Ydieresis Atilde -110
+KPX Ydieresis O -85
+KPX Ydieresis Oacute -85
+KPX Ydieresis Ocircumflex -85
+KPX Ydieresis Odieresis -85
+KPX Ydieresis Ograve -85
+KPX Ydieresis Ohungarumlaut -85
+KPX Ydieresis Omacron -85
+KPX Ydieresis Oslash -85
+KPX Ydieresis Otilde -85
+KPX Ydieresis a -140
+KPX Ydieresis aacute -140
+KPX Ydieresis abreve -70
+KPX Ydieresis acircumflex -140
+KPX Ydieresis adieresis -140
+KPX Ydieresis agrave -140
+KPX Ydieresis amacron -70
+KPX Ydieresis aogonek -140
+KPX Ydieresis aring -140
+KPX Ydieresis atilde -70
+KPX Ydieresis colon -60
+KPX Ydieresis comma -140
+KPX Ydieresis e -140
+KPX Ydieresis eacute -140
+KPX Ydieresis ecaron -140
+KPX Ydieresis ecircumflex -140
+KPX Ydieresis edieresis -140
+KPX Ydieresis edotaccent -140
+KPX Ydieresis egrave -140
+KPX Ydieresis emacron -70
+KPX Ydieresis eogonek -140
+KPX Ydieresis hyphen -140
+KPX Ydieresis i -20
+KPX Ydieresis iacute -20
+KPX Ydieresis iogonek -20
+KPX Ydieresis o -140
+KPX Ydieresis oacute -140
+KPX Ydieresis ocircumflex -140
+KPX Ydieresis odieresis -140
+KPX Ydieresis ograve -140
+KPX Ydieresis ohungarumlaut -140
+KPX Ydieresis omacron -140
+KPX Ydieresis oslash -140
+KPX Ydieresis otilde -140
+KPX Ydieresis period -140
+KPX Ydieresis semicolon -60
+KPX Ydieresis u -110
+KPX Ydieresis uacute -110
+KPX Ydieresis ucircumflex -110
+KPX Ydieresis udieresis -110
+KPX Ydieresis ugrave -110
+KPX Ydieresis uhungarumlaut -110
+KPX Ydieresis umacron -110
+KPX Ydieresis uogonek -110
+KPX Ydieresis uring -110
+KPX a v -20
+KPX a w -20
+KPX a y -30
+KPX a yacute -30
+KPX a ydieresis -30
+KPX aacute v -20
+KPX aacute w -20
+KPX aacute y -30
+KPX aacute yacute -30
+KPX aacute ydieresis -30
+KPX abreve v -20
+KPX abreve w -20
+KPX abreve y -30
+KPX abreve yacute -30
+KPX abreve ydieresis -30
+KPX acircumflex v -20
+KPX acircumflex w -20
+KPX acircumflex y -30
+KPX acircumflex yacute -30
+KPX acircumflex ydieresis -30
+KPX adieresis v -20
+KPX adieresis w -20
+KPX adieresis y -30
+KPX adieresis yacute -30
+KPX adieresis ydieresis -30
+KPX agrave v -20
+KPX agrave w -20
+KPX agrave y -30
+KPX agrave yacute -30
+KPX agrave ydieresis -30
+KPX amacron v -20
+KPX amacron w -20
+KPX amacron y -30
+KPX amacron yacute -30
+KPX amacron ydieresis -30
+KPX aogonek v -20
+KPX aogonek w -20
+KPX aogonek y -30
+KPX aogonek yacute -30
+KPX aogonek ydieresis -30
+KPX aring v -20
+KPX aring w -20
+KPX aring y -30
+KPX aring yacute -30
+KPX aring ydieresis -30
+KPX atilde v -20
+KPX atilde w -20
+KPX atilde y -30
+KPX atilde yacute -30
+KPX atilde ydieresis -30
+KPX b b -10
+KPX b comma -40
+KPX b l -20
+KPX b lacute -20
+KPX b lcommaaccent -20
+KPX b lslash -20
+KPX b period -40
+KPX b u -20
+KPX b uacute -20
+KPX b ucircumflex -20
+KPX b udieresis -20
+KPX b ugrave -20
+KPX b uhungarumlaut -20
+KPX b umacron -20
+KPX b uogonek -20
+KPX b uring -20
+KPX b v -20
+KPX b y -20
+KPX b yacute -20
+KPX b ydieresis -20
+KPX c comma -15
+KPX c k -20
+KPX c kcommaaccent -20
+KPX cacute comma -15
+KPX cacute k -20
+KPX cacute kcommaaccent -20
+KPX ccaron comma -15
+KPX ccaron k -20
+KPX ccaron kcommaaccent -20
+KPX ccedilla comma -15
+KPX ccedilla k -20
+KPX ccedilla kcommaaccent -20
+KPX colon space -50
+KPX comma quotedblright -100
+KPX comma quoteright -100
+KPX e comma -15
+KPX e period -15
+KPX e v -30
+KPX e w -20
+KPX e x -30
+KPX e y -20
+KPX e yacute -20
+KPX e ydieresis -20
+KPX eacute comma -15
+KPX eacute period -15
+KPX eacute v -30
+KPX eacute w -20
+KPX eacute x -30
+KPX eacute y -20
+KPX eacute yacute -20
+KPX eacute ydieresis -20
+KPX ecaron comma -15
+KPX ecaron period -15
+KPX ecaron v -30
+KPX ecaron w -20
+KPX ecaron x -30
+KPX ecaron y -20
+KPX ecaron yacute -20
+KPX ecaron ydieresis -20
+KPX ecircumflex comma -15
+KPX ecircumflex period -15
+KPX ecircumflex v -30
+KPX ecircumflex w -20
+KPX ecircumflex x -30
+KPX ecircumflex y -20
+KPX ecircumflex yacute -20
+KPX ecircumflex ydieresis -20
+KPX edieresis comma -15
+KPX edieresis period -15
+KPX edieresis v -30
+KPX edieresis w -20
+KPX edieresis x -30
+KPX edieresis y -20
+KPX edieresis yacute -20
+KPX edieresis ydieresis -20
+KPX edotaccent comma -15
+KPX edotaccent period -15
+KPX edotaccent v -30
+KPX edotaccent w -20
+KPX edotaccent x -30
+KPX edotaccent y -20
+KPX edotaccent yacute -20
+KPX edotaccent ydieresis -20
+KPX egrave comma -15
+KPX egrave period -15
+KPX egrave v -30
+KPX egrave w -20
+KPX egrave x -30
+KPX egrave y -20
+KPX egrave yacute -20
+KPX egrave ydieresis -20
+KPX emacron comma -15
+KPX emacron period -15
+KPX emacron v -30
+KPX emacron w -20
+KPX emacron x -30
+KPX emacron y -20
+KPX emacron yacute -20
+KPX emacron ydieresis -20
+KPX eogonek comma -15
+KPX eogonek period -15
+KPX eogonek v -30
+KPX eogonek w -20
+KPX eogonek x -30
+KPX eogonek y -20
+KPX eogonek yacute -20
+KPX eogonek ydieresis -20
+KPX f a -30
+KPX f aacute -30
+KPX f abreve -30
+KPX f acircumflex -30
+KPX f adieresis -30
+KPX f agrave -30
+KPX f amacron -30
+KPX f aogonek -30
+KPX f aring -30
+KPX f atilde -30
+KPX f comma -30
+KPX f dotlessi -28
+KPX f e -30
+KPX f eacute -30
+KPX f ecaron -30
+KPX f ecircumflex -30
+KPX f edieresis -30
+KPX f edotaccent -30
+KPX f egrave -30
+KPX f emacron -30
+KPX f eogonek -30
+KPX f o -30
+KPX f oacute -30
+KPX f ocircumflex -30
+KPX f odieresis -30
+KPX f ograve -30
+KPX f ohungarumlaut -30
+KPX f omacron -30
+KPX f oslash -30
+KPX f otilde -30
+KPX f period -30
+KPX f quotedblright 60
+KPX f quoteright 50
+KPX g r -10
+KPX g racute -10
+KPX g rcaron -10
+KPX g rcommaaccent -10
+KPX gbreve r -10
+KPX gbreve racute -10
+KPX gbreve rcaron -10
+KPX gbreve rcommaaccent -10
+KPX gcommaaccent r -10
+KPX gcommaaccent racute -10
+KPX gcommaaccent rcaron -10
+KPX gcommaaccent rcommaaccent -10
+KPX h y -30
+KPX h yacute -30
+KPX h ydieresis -30
+KPX k e -20
+KPX k eacute -20
+KPX k ecaron -20
+KPX k ecircumflex -20
+KPX k edieresis -20
+KPX k edotaccent -20
+KPX k egrave -20
+KPX k emacron -20
+KPX k eogonek -20
+KPX k o -20
+KPX k oacute -20
+KPX k ocircumflex -20
+KPX k odieresis -20
+KPX k ograve -20
+KPX k ohungarumlaut -20
+KPX k omacron -20
+KPX k oslash -20
+KPX k otilde -20
+KPX kcommaaccent e -20
+KPX kcommaaccent eacute -20
+KPX kcommaaccent ecaron -20
+KPX kcommaaccent ecircumflex -20
+KPX kcommaaccent edieresis -20
+KPX kcommaaccent edotaccent -20
+KPX kcommaaccent egrave -20
+KPX kcommaaccent emacron -20
+KPX kcommaaccent eogonek -20
+KPX kcommaaccent o -20
+KPX kcommaaccent oacute -20
+KPX kcommaaccent ocircumflex -20
+KPX kcommaaccent odieresis -20
+KPX kcommaaccent ograve -20
+KPX kcommaaccent ohungarumlaut -20
+KPX kcommaaccent omacron -20
+KPX kcommaaccent oslash -20
+KPX kcommaaccent otilde -20
+KPX m u -10
+KPX m uacute -10
+KPX m ucircumflex -10
+KPX m udieresis -10
+KPX m ugrave -10
+KPX m uhungarumlaut -10
+KPX m umacron -10
+KPX m uogonek -10
+KPX m uring -10
+KPX m y -15
+KPX m yacute -15
+KPX m ydieresis -15
+KPX n u -10
+KPX n uacute -10
+KPX n ucircumflex -10
+KPX n udieresis -10
+KPX n ugrave -10
+KPX n uhungarumlaut -10
+KPX n umacron -10
+KPX n uogonek -10
+KPX n uring -10
+KPX n v -20
+KPX n y -15
+KPX n yacute -15
+KPX n ydieresis -15
+KPX nacute u -10
+KPX nacute uacute -10
+KPX nacute ucircumflex -10
+KPX nacute udieresis -10
+KPX nacute ugrave -10
+KPX nacute uhungarumlaut -10
+KPX nacute umacron -10
+KPX nacute uogonek -10
+KPX nacute uring -10
+KPX nacute v -20
+KPX nacute y -15
+KPX nacute yacute -15
+KPX nacute ydieresis -15
+KPX ncaron u -10
+KPX ncaron uacute -10
+KPX ncaron ucircumflex -10
+KPX ncaron udieresis -10
+KPX ncaron ugrave -10
+KPX ncaron uhungarumlaut -10
+KPX ncaron umacron -10
+KPX ncaron uogonek -10
+KPX ncaron uring -10
+KPX ncaron v -20
+KPX ncaron y -15
+KPX ncaron yacute -15
+KPX ncaron ydieresis -15
+KPX ncommaaccent u -10
+KPX ncommaaccent uacute -10
+KPX ncommaaccent ucircumflex -10
+KPX ncommaaccent udieresis -10
+KPX ncommaaccent ugrave -10
+KPX ncommaaccent uhungarumlaut -10
+KPX ncommaaccent umacron -10
+KPX ncommaaccent uogonek -10
+KPX ncommaaccent uring -10
+KPX ncommaaccent v -20
+KPX ncommaaccent y -15
+KPX ncommaaccent yacute -15
+KPX ncommaaccent ydieresis -15
+KPX ntilde u -10
+KPX ntilde uacute -10
+KPX ntilde ucircumflex -10
+KPX ntilde udieresis -10
+KPX ntilde ugrave -10
+KPX ntilde uhungarumlaut -10
+KPX ntilde umacron -10
+KPX ntilde uogonek -10
+KPX ntilde uring -10
+KPX ntilde v -20
+KPX ntilde y -15
+KPX ntilde yacute -15
+KPX ntilde ydieresis -15
+KPX o comma -40
+KPX o period -40
+KPX o v -15
+KPX o w -15
+KPX o x -30
+KPX o y -30
+KPX o yacute -30
+KPX o ydieresis -30
+KPX oacute comma -40
+KPX oacute period -40
+KPX oacute v -15
+KPX oacute w -15
+KPX oacute x -30
+KPX oacute y -30
+KPX oacute yacute -30
+KPX oacute ydieresis -30
+KPX ocircumflex comma -40
+KPX ocircumflex period -40
+KPX ocircumflex v -15
+KPX ocircumflex w -15
+KPX ocircumflex x -30
+KPX ocircumflex y -30
+KPX ocircumflex yacute -30
+KPX ocircumflex ydieresis -30
+KPX odieresis comma -40
+KPX odieresis period -40
+KPX odieresis v -15
+KPX odieresis w -15
+KPX odieresis x -30
+KPX odieresis y -30
+KPX odieresis yacute -30
+KPX odieresis ydieresis -30
+KPX ograve comma -40
+KPX ograve period -40
+KPX ograve v -15
+KPX ograve w -15
+KPX ograve x -30
+KPX ograve y -30
+KPX ograve yacute -30
+KPX ograve ydieresis -30
+KPX ohungarumlaut comma -40
+KPX ohungarumlaut period -40
+KPX ohungarumlaut v -15
+KPX ohungarumlaut w -15
+KPX ohungarumlaut x -30
+KPX ohungarumlaut y -30
+KPX ohungarumlaut yacute -30
+KPX ohungarumlaut ydieresis -30
+KPX omacron comma -40
+KPX omacron period -40
+KPX omacron v -15
+KPX omacron w -15
+KPX omacron x -30
+KPX omacron y -30
+KPX omacron yacute -30
+KPX omacron ydieresis -30
+KPX oslash a -55
+KPX oslash aacute -55
+KPX oslash abreve -55
+KPX oslash acircumflex -55
+KPX oslash adieresis -55
+KPX oslash agrave -55
+KPX oslash amacron -55
+KPX oslash aogonek -55
+KPX oslash aring -55
+KPX oslash atilde -55
+KPX oslash b -55
+KPX oslash c -55
+KPX oslash cacute -55
+KPX oslash ccaron -55
+KPX oslash ccedilla -55
+KPX oslash comma -95
+KPX oslash d -55
+KPX oslash dcroat -55
+KPX oslash e -55
+KPX oslash eacute -55
+KPX oslash ecaron -55
+KPX oslash ecircumflex -55
+KPX oslash edieresis -55
+KPX oslash edotaccent -55
+KPX oslash egrave -55
+KPX oslash emacron -55
+KPX oslash eogonek -55
+KPX oslash f -55
+KPX oslash g -55
+KPX oslash gbreve -55
+KPX oslash gcommaaccent -55
+KPX oslash h -55
+KPX oslash i -55
+KPX oslash iacute -55
+KPX oslash icircumflex -55
+KPX oslash idieresis -55
+KPX oslash igrave -55
+KPX oslash imacron -55
+KPX oslash iogonek -55
+KPX oslash j -55
+KPX oslash k -55
+KPX oslash kcommaaccent -55
+KPX oslash l -55
+KPX oslash lacute -55
+KPX oslash lcommaaccent -55
+KPX oslash lslash -55
+KPX oslash m -55
+KPX oslash n -55
+KPX oslash nacute -55
+KPX oslash ncaron -55
+KPX oslash ncommaaccent -55
+KPX oslash ntilde -55
+KPX oslash o -55
+KPX oslash oacute -55
+KPX oslash ocircumflex -55
+KPX oslash odieresis -55
+KPX oslash ograve -55
+KPX oslash ohungarumlaut -55
+KPX oslash omacron -55
+KPX oslash oslash -55
+KPX oslash otilde -55
+KPX oslash p -55
+KPX oslash period -95
+KPX oslash q -55
+KPX oslash r -55
+KPX oslash racute -55
+KPX oslash rcaron -55
+KPX oslash rcommaaccent -55
+KPX oslash s -55
+KPX oslash sacute -55
+KPX oslash scaron -55
+KPX oslash scedilla -55
+KPX oslash scommaaccent -55
+KPX oslash t -55
+KPX oslash tcommaaccent -55
+KPX oslash u -55
+KPX oslash uacute -55
+KPX oslash ucircumflex -55
+KPX oslash udieresis -55
+KPX oslash ugrave -55
+KPX oslash uhungarumlaut -55
+KPX oslash umacron -55
+KPX oslash uogonek -55
+KPX oslash uring -55
+KPX oslash v -70
+KPX oslash w -70
+KPX oslash x -85
+KPX oslash y -70
+KPX oslash yacute -70
+KPX oslash ydieresis -70
+KPX oslash z -55
+KPX oslash zacute -55
+KPX oslash zcaron -55
+KPX oslash zdotaccent -55
+KPX otilde comma -40
+KPX otilde period -40
+KPX otilde v -15
+KPX otilde w -15
+KPX otilde x -30
+KPX otilde y -30
+KPX otilde yacute -30
+KPX otilde ydieresis -30
+KPX p comma -35
+KPX p period -35
+KPX p y -30
+KPX p yacute -30
+KPX p ydieresis -30
+KPX period quotedblright -100
+KPX period quoteright -100
+KPX period space -60
+KPX quotedblright space -40
+KPX quoteleft quoteleft -57
+KPX quoteright d -50
+KPX quoteright dcroat -50
+KPX quoteright quoteright -57
+KPX quoteright r -50
+KPX quoteright racute -50
+KPX quoteright rcaron -50
+KPX quoteright rcommaaccent -50
+KPX quoteright s -50
+KPX quoteright sacute -50
+KPX quoteright scaron -50
+KPX quoteright scedilla -50
+KPX quoteright scommaaccent -50
+KPX quoteright space -70
+KPX r a -10
+KPX r aacute -10
+KPX r abreve -10
+KPX r acircumflex -10
+KPX r adieresis -10
+KPX r agrave -10
+KPX r amacron -10
+KPX r aogonek -10
+KPX r aring -10
+KPX r atilde -10
+KPX r colon 30
+KPX r comma -50
+KPX r i 15
+KPX r iacute 15
+KPX r icircumflex 15
+KPX r idieresis 15
+KPX r igrave 15
+KPX r imacron 15
+KPX r iogonek 15
+KPX r k 15
+KPX r kcommaaccent 15
+KPX r l 15
+KPX r lacute 15
+KPX r lcommaaccent 15
+KPX r lslash 15
+KPX r m 25
+KPX r n 25
+KPX r nacute 25
+KPX r ncaron 25
+KPX r ncommaaccent 25
+KPX r ntilde 25
+KPX r p 30
+KPX r period -50
+KPX r semicolon 30
+KPX r t 40
+KPX r tcommaaccent 40
+KPX r u 15
+KPX r uacute 15
+KPX r ucircumflex 15
+KPX r udieresis 15
+KPX r ugrave 15
+KPX r uhungarumlaut 15
+KPX r umacron 15
+KPX r uogonek 15
+KPX r uring 15
+KPX r v 30
+KPX r y 30
+KPX r yacute 30
+KPX r ydieresis 30
+KPX racute a -10
+KPX racute aacute -10
+KPX racute abreve -10
+KPX racute acircumflex -10
+KPX racute adieresis -10
+KPX racute agrave -10
+KPX racute amacron -10
+KPX racute aogonek -10
+KPX racute aring -10
+KPX racute atilde -10
+KPX racute colon 30
+KPX racute comma -50
+KPX racute i 15
+KPX racute iacute 15
+KPX racute icircumflex 15
+KPX racute idieresis 15
+KPX racute igrave 15
+KPX racute imacron 15
+KPX racute iogonek 15
+KPX racute k 15
+KPX racute kcommaaccent 15
+KPX racute l 15
+KPX racute lacute 15
+KPX racute lcommaaccent 15
+KPX racute lslash 15
+KPX racute m 25
+KPX racute n 25
+KPX racute nacute 25
+KPX racute ncaron 25
+KPX racute ncommaaccent 25
+KPX racute ntilde 25
+KPX racute p 30
+KPX racute period -50
+KPX racute semicolon 30
+KPX racute t 40
+KPX racute tcommaaccent 40
+KPX racute u 15
+KPX racute uacute 15
+KPX racute ucircumflex 15
+KPX racute udieresis 15
+KPX racute ugrave 15
+KPX racute uhungarumlaut 15
+KPX racute umacron 15
+KPX racute uogonek 15
+KPX racute uring 15
+KPX racute v 30
+KPX racute y 30
+KPX racute yacute 30
+KPX racute ydieresis 30
+KPX rcaron a -10
+KPX rcaron aacute -10
+KPX rcaron abreve -10
+KPX rcaron acircumflex -10
+KPX rcaron adieresis -10
+KPX rcaron agrave -10
+KPX rcaron amacron -10
+KPX rcaron aogonek -10
+KPX rcaron aring -10
+KPX rcaron atilde -10
+KPX rcaron colon 30
+KPX rcaron comma -50
+KPX rcaron i 15
+KPX rcaron iacute 15
+KPX rcaron icircumflex 15
+KPX rcaron idieresis 15
+KPX rcaron igrave 15
+KPX rcaron imacron 15
+KPX rcaron iogonek 15
+KPX rcaron k 15
+KPX rcaron kcommaaccent 15
+KPX rcaron l 15
+KPX rcaron lacute 15
+KPX rcaron lcommaaccent 15
+KPX rcaron lslash 15
+KPX rcaron m 25
+KPX rcaron n 25
+KPX rcaron nacute 25
+KPX rcaron ncaron 25
+KPX rcaron ncommaaccent 25
+KPX rcaron ntilde 25
+KPX rcaron p 30
+KPX rcaron period -50
+KPX rcaron semicolon 30
+KPX rcaron t 40
+KPX rcaron tcommaaccent 40
+KPX rcaron u 15
+KPX rcaron uacute 15
+KPX rcaron ucircumflex 15
+KPX rcaron udieresis 15
+KPX rcaron ugrave 15
+KPX rcaron uhungarumlaut 15
+KPX rcaron umacron 15
+KPX rcaron uogonek 15
+KPX rcaron uring 15
+KPX rcaron v 30
+KPX rcaron y 30
+KPX rcaron yacute 30
+KPX rcaron ydieresis 30
+KPX rcommaaccent a -10
+KPX rcommaaccent aacute -10
+KPX rcommaaccent abreve -10
+KPX rcommaaccent acircumflex -10
+KPX rcommaaccent adieresis -10
+KPX rcommaaccent agrave -10
+KPX rcommaaccent amacron -10
+KPX rcommaaccent aogonek -10
+KPX rcommaaccent aring -10
+KPX rcommaaccent atilde -10
+KPX rcommaaccent colon 30
+KPX rcommaaccent comma -50
+KPX rcommaaccent i 15
+KPX rcommaaccent iacute 15
+KPX rcommaaccent icircumflex 15
+KPX rcommaaccent idieresis 15
+KPX rcommaaccent igrave 15
+KPX rcommaaccent imacron 15
+KPX rcommaaccent iogonek 15
+KPX rcommaaccent k 15
+KPX rcommaaccent kcommaaccent 15
+KPX rcommaaccent l 15
+KPX rcommaaccent lacute 15
+KPX rcommaaccent lcommaaccent 15
+KPX rcommaaccent lslash 15
+KPX rcommaaccent m 25
+KPX rcommaaccent n 25
+KPX rcommaaccent nacute 25
+KPX rcommaaccent ncaron 25
+KPX rcommaaccent ncommaaccent 25
+KPX rcommaaccent ntilde 25
+KPX rcommaaccent p 30
+KPX rcommaaccent period -50
+KPX rcommaaccent semicolon 30
+KPX rcommaaccent t 40
+KPX rcommaaccent tcommaaccent 40
+KPX rcommaaccent u 15
+KPX rcommaaccent uacute 15
+KPX rcommaaccent ucircumflex 15
+KPX rcommaaccent udieresis 15
+KPX rcommaaccent ugrave 15
+KPX rcommaaccent uhungarumlaut 15
+KPX rcommaaccent umacron 15
+KPX rcommaaccent uogonek 15
+KPX rcommaaccent uring 15
+KPX rcommaaccent v 30
+KPX rcommaaccent y 30
+KPX rcommaaccent yacute 30
+KPX rcommaaccent ydieresis 30
+KPX s comma -15
+KPX s period -15
+KPX s w -30
+KPX sacute comma -15
+KPX sacute period -15
+KPX sacute w -30
+KPX scaron comma -15
+KPX scaron period -15
+KPX scaron w -30
+KPX scedilla comma -15
+KPX scedilla period -15
+KPX scedilla w -30
+KPX scommaaccent comma -15
+KPX scommaaccent period -15
+KPX scommaaccent w -30
+KPX semicolon space -50
+KPX space T -50
+KPX space Tcaron -50
+KPX space Tcommaaccent -50
+KPX space V -50
+KPX space W -40
+KPX space Y -90
+KPX space Yacute -90
+KPX space Ydieresis -90
+KPX space quotedblleft -30
+KPX space quoteleft -60
+KPX v a -25
+KPX v aacute -25
+KPX v abreve -25
+KPX v acircumflex -25
+KPX v adieresis -25
+KPX v agrave -25
+KPX v amacron -25
+KPX v aogonek -25
+KPX v aring -25
+KPX v atilde -25
+KPX v comma -80
+KPX v e -25
+KPX v eacute -25
+KPX v ecaron -25
+KPX v ecircumflex -25
+KPX v edieresis -25
+KPX v edotaccent -25
+KPX v egrave -25
+KPX v emacron -25
+KPX v eogonek -25
+KPX v o -25
+KPX v oacute -25
+KPX v ocircumflex -25
+KPX v odieresis -25
+KPX v ograve -25
+KPX v ohungarumlaut -25
+KPX v omacron -25
+KPX v oslash -25
+KPX v otilde -25
+KPX v period -80
+KPX w a -15
+KPX w aacute -15
+KPX w abreve -15
+KPX w acircumflex -15
+KPX w adieresis -15
+KPX w agrave -15
+KPX w amacron -15
+KPX w aogonek -15
+KPX w aring -15
+KPX w atilde -15
+KPX w comma -60
+KPX w e -10
+KPX w eacute -10
+KPX w ecaron -10
+KPX w ecircumflex -10
+KPX w edieresis -10
+KPX w edotaccent -10
+KPX w egrave -10
+KPX w emacron -10
+KPX w eogonek -10
+KPX w o -10
+KPX w oacute -10
+KPX w ocircumflex -10
+KPX w odieresis -10
+KPX w ograve -10
+KPX w ohungarumlaut -10
+KPX w omacron -10
+KPX w oslash -10
+KPX w otilde -10
+KPX w period -60
+KPX x e -30
+KPX x eacute -30
+KPX x ecaron -30
+KPX x ecircumflex -30
+KPX x edieresis -30
+KPX x edotaccent -30
+KPX x egrave -30
+KPX x emacron -30
+KPX x eogonek -30
+KPX y a -20
+KPX y aacute -20
+KPX y abreve -20
+KPX y acircumflex -20
+KPX y adieresis -20
+KPX y agrave -20
+KPX y amacron -20
+KPX y aogonek -20
+KPX y aring -20
+KPX y atilde -20
+KPX y comma -100
+KPX y e -20
+KPX y eacute -20
+KPX y ecaron -20
+KPX y ecircumflex -20
+KPX y edieresis -20
+KPX y edotaccent -20
+KPX y egrave -20
+KPX y emacron -20
+KPX y eogonek -20
+KPX y o -20
+KPX y oacute -20
+KPX y ocircumflex -20
+KPX y odieresis -20
+KPX y ograve -20
+KPX y ohungarumlaut -20
+KPX y omacron -20
+KPX y oslash -20
+KPX y otilde -20
+KPX y period -100
+KPX yacute a -20
+KPX yacute aacute -20
+KPX yacute abreve -20
+KPX yacute acircumflex -20
+KPX yacute adieresis -20
+KPX yacute agrave -20
+KPX yacute amacron -20
+KPX yacute aogonek -20
+KPX yacute aring -20
+KPX yacute atilde -20
+KPX yacute comma -100
+KPX yacute e -20
+KPX yacute eacute -20
+KPX yacute ecaron -20
+KPX yacute ecircumflex -20
+KPX yacute edieresis -20
+KPX yacute edotaccent -20
+KPX yacute egrave -20
+KPX yacute emacron -20
+KPX yacute eogonek -20
+KPX yacute o -20
+KPX yacute oacute -20
+KPX yacute ocircumflex -20
+KPX yacute odieresis -20
+KPX yacute ograve -20
+KPX yacute ohungarumlaut -20
+KPX yacute omacron -20
+KPX yacute oslash -20
+KPX yacute otilde -20
+KPX yacute period -100
+KPX ydieresis a -20
+KPX ydieresis aacute -20
+KPX ydieresis abreve -20
+KPX ydieresis acircumflex -20
+KPX ydieresis adieresis -20
+KPX ydieresis agrave -20
+KPX ydieresis amacron -20
+KPX ydieresis aogonek -20
+KPX ydieresis aring -20
+KPX ydieresis atilde -20
+KPX ydieresis comma -100
+KPX ydieresis e -20
+KPX ydieresis eacute -20
+KPX ydieresis ecaron -20
+KPX ydieresis ecircumflex -20
+KPX ydieresis edieresis -20
+KPX ydieresis edotaccent -20
+KPX ydieresis egrave -20
+KPX ydieresis emacron -20
+KPX ydieresis eogonek -20
+KPX ydieresis o -20
+KPX ydieresis oacute -20
+KPX ydieresis ocircumflex -20
+KPX ydieresis odieresis -20
+KPX ydieresis ograve -20
+KPX ydieresis ohungarumlaut -20
+KPX ydieresis omacron -20
+KPX ydieresis oslash -20
+KPX ydieresis otilde -20
+KPX ydieresis period -100
+KPX z e -15
+KPX z eacute -15
+KPX z ecaron -15
+KPX z ecircumflex -15
+KPX z edieresis -15
+KPX z edotaccent -15
+KPX z egrave -15
+KPX z emacron -15
+KPX z eogonek -15
+KPX z o -15
+KPX z oacute -15
+KPX z ocircumflex -15
+KPX z odieresis -15
+KPX z ograve -15
+KPX z ohungarumlaut -15
+KPX z omacron -15
+KPX z oslash -15
+KPX z otilde -15
+KPX zacute e -15
+KPX zacute eacute -15
+KPX zacute ecaron -15
+KPX zacute ecircumflex -15
+KPX zacute edieresis -15
+KPX zacute edotaccent -15
+KPX zacute egrave -15
+KPX zacute emacron -15
+KPX zacute eogonek -15
+KPX zacute o -15
+KPX zacute oacute -15
+KPX zacute ocircumflex -15
+KPX zacute odieresis -15
+KPX zacute ograve -15
+KPX zacute ohungarumlaut -15
+KPX zacute omacron -15
+KPX zacute oslash -15
+KPX zacute otilde -15
+KPX zcaron e -15
+KPX zcaron eacute -15
+KPX zcaron ecaron -15
+KPX zcaron ecircumflex -15
+KPX zcaron edieresis -15
+KPX zcaron edotaccent -15
+KPX zcaron egrave -15
+KPX zcaron emacron -15
+KPX zcaron eogonek -15
+KPX zcaron o -15
+KPX zcaron oacute -15
+KPX zcaron ocircumflex -15
+KPX zcaron odieresis -15
+KPX zcaron ograve -15
+KPX zcaron ohungarumlaut -15
+KPX zcaron omacron -15
+KPX zcaron oslash -15
+KPX zcaron otilde -15
+KPX zdotaccent e -15
+KPX zdotaccent eacute -15
+KPX zdotaccent ecaron -15
+KPX zdotaccent ecircumflex -15
+KPX zdotaccent edieresis -15
+KPX zdotaccent edotaccent -15
+KPX zdotaccent egrave -15
+KPX zdotaccent emacron -15
+KPX zdotaccent eogonek -15
+KPX zdotaccent o -15
+KPX zdotaccent oacute -15
+KPX zdotaccent ocircumflex -15
+KPX zdotaccent odieresis -15
+KPX zdotaccent ograve -15
+KPX zdotaccent ohungarumlaut -15
+KPX zdotaccent omacron -15
+KPX zdotaccent oslash -15
+KPX zdotaccent otilde -15
+EndKernPairs
+EndKernData
+EndFontMetrics
diff --git a/php/extras/fonts/ps/Helvetica.afm b/php/extras/fonts/ps/Helvetica.afm
new file mode 100644
index 000000000..bd32af54d
--- /dev/null
+++ b/php/extras/fonts/ps/Helvetica.afm
@@ -0,0 +1,3051 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Thu May 1 12:38:23 1997
+Comment UniqueID 43054
+Comment VMusage 37069 48094
+FontName Helvetica
+FullName Helvetica
+FamilyName Helvetica
+Weight Medium
+ItalicAngle 0
+IsFixedPitch false
+CharacterSet ExtendedRoman
+FontBBox -166 -225 1000 931
+UnderlinePosition -100
+UnderlineThickness 50
+Version 002.000
+Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries.
+EncodingScheme AdobeStandardEncoding
+CapHeight 718
+XHeight 523
+Ascender 718
+Descender -207
+StdHW 76
+StdVW 88
+StartCharMetrics 315
+C 32 ; WX 278 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 278 ; N exclam ; B 90 0 187 718 ;
+C 34 ; WX 355 ; N quotedbl ; B 70 463 285 718 ;
+C 35 ; WX 556 ; N numbersign ; B 28 0 529 688 ;
+C 36 ; WX 556 ; N dollar ; B 32 -115 520 775 ;
+C 37 ; WX 889 ; N percent ; B 39 -19 850 703 ;
+C 38 ; WX 667 ; N ampersand ; B 44 -15 645 718 ;
+C 39 ; WX 222 ; N quoteright ; B 53 463 157 718 ;
+C 40 ; WX 333 ; N parenleft ; B 68 -207 299 733 ;
+C 41 ; WX 333 ; N parenright ; B 34 -207 265 733 ;
+C 42 ; WX 389 ; N asterisk ; B 39 431 349 718 ;
+C 43 ; WX 584 ; N plus ; B 39 0 545 505 ;
+C 44 ; WX 278 ; N comma ; B 87 -147 191 106 ;
+C 45 ; WX 333 ; N hyphen ; B 44 232 289 322 ;
+C 46 ; WX 278 ; N period ; B 87 0 191 106 ;
+C 47 ; WX 278 ; N slash ; B -17 -19 295 737 ;
+C 48 ; WX 556 ; N zero ; B 37 -19 519 703 ;
+C 49 ; WX 556 ; N one ; B 101 0 359 703 ;
+C 50 ; WX 556 ; N two ; B 26 0 507 703 ;
+C 51 ; WX 556 ; N three ; B 34 -19 522 703 ;
+C 52 ; WX 556 ; N four ; B 25 0 523 703 ;
+C 53 ; WX 556 ; N five ; B 32 -19 514 688 ;
+C 54 ; WX 556 ; N six ; B 38 -19 518 703 ;
+C 55 ; WX 556 ; N seven ; B 37 0 523 688 ;
+C 56 ; WX 556 ; N eight ; B 38 -19 517 703 ;
+C 57 ; WX 556 ; N nine ; B 42 -19 514 703 ;
+C 58 ; WX 278 ; N colon ; B 87 0 191 516 ;
+C 59 ; WX 278 ; N semicolon ; B 87 -147 191 516 ;
+C 60 ; WX 584 ; N less ; B 48 11 536 495 ;
+C 61 ; WX 584 ; N equal ; B 39 115 545 390 ;
+C 62 ; WX 584 ; N greater ; B 48 11 536 495 ;
+C 63 ; WX 556 ; N question ; B 56 0 492 727 ;
+C 64 ; WX 1015 ; N at ; B 147 -19 868 737 ;
+C 65 ; WX 667 ; N A ; B 14 0 654 718 ;
+C 66 ; WX 667 ; N B ; B 74 0 627 718 ;
+C 67 ; WX 722 ; N C ; B 44 -19 681 737 ;
+C 68 ; WX 722 ; N D ; B 81 0 674 718 ;
+C 69 ; WX 667 ; N E ; B 86 0 616 718 ;
+C 70 ; WX 611 ; N F ; B 86 0 583 718 ;
+C 71 ; WX 778 ; N G ; B 48 -19 704 737 ;
+C 72 ; WX 722 ; N H ; B 77 0 646 718 ;
+C 73 ; WX 278 ; N I ; B 91 0 188 718 ;
+C 74 ; WX 500 ; N J ; B 17 -19 428 718 ;
+C 75 ; WX 667 ; N K ; B 76 0 663 718 ;
+C 76 ; WX 556 ; N L ; B 76 0 537 718 ;
+C 77 ; WX 833 ; N M ; B 73 0 761 718 ;
+C 78 ; WX 722 ; N N ; B 76 0 646 718 ;
+C 79 ; WX 778 ; N O ; B 39 -19 739 737 ;
+C 80 ; WX 667 ; N P ; B 86 0 622 718 ;
+C 81 ; WX 778 ; N Q ; B 39 -56 739 737 ;
+C 82 ; WX 722 ; N R ; B 88 0 684 718 ;
+C 83 ; WX 667 ; N S ; B 49 -19 620 737 ;
+C 84 ; WX 611 ; N T ; B 14 0 597 718 ;
+C 85 ; WX 722 ; N U ; B 79 -19 644 718 ;
+C 86 ; WX 667 ; N V ; B 20 0 647 718 ;
+C 87 ; WX 944 ; N W ; B 16 0 928 718 ;
+C 88 ; WX 667 ; N X ; B 19 0 648 718 ;
+C 89 ; WX 667 ; N Y ; B 14 0 653 718 ;
+C 90 ; WX 611 ; N Z ; B 23 0 588 718 ;
+C 91 ; WX 278 ; N bracketleft ; B 63 -196 250 722 ;
+C 92 ; WX 278 ; N backslash ; B -17 -19 295 737 ;
+C 93 ; WX 278 ; N bracketright ; B 28 -196 215 722 ;
+C 94 ; WX 469 ; N asciicircum ; B -14 264 483 688 ;
+C 95 ; WX 556 ; N underscore ; B 0 -125 556 -75 ;
+C 96 ; WX 222 ; N quoteleft ; B 65 470 169 725 ;
+C 97 ; WX 556 ; N a ; B 36 -15 530 538 ;
+C 98 ; WX 556 ; N b ; B 58 -15 517 718 ;
+C 99 ; WX 500 ; N c ; B 30 -15 477 538 ;
+C 100 ; WX 556 ; N d ; B 35 -15 499 718 ;
+C 101 ; WX 556 ; N e ; B 40 -15 516 538 ;
+C 102 ; WX 278 ; N f ; B 14 0 262 728 ; L i fi ; L l fl ;
+C 103 ; WX 556 ; N g ; B 40 -220 499 538 ;
+C 104 ; WX 556 ; N h ; B 65 0 491 718 ;
+C 105 ; WX 222 ; N i ; B 67 0 155 718 ;
+C 106 ; WX 222 ; N j ; B -16 -210 155 718 ;
+C 107 ; WX 500 ; N k ; B 67 0 501 718 ;
+C 108 ; WX 222 ; N l ; B 67 0 155 718 ;
+C 109 ; WX 833 ; N m ; B 65 0 769 538 ;
+C 110 ; WX 556 ; N n ; B 65 0 491 538 ;
+C 111 ; WX 556 ; N o ; B 35 -14 521 538 ;
+C 112 ; WX 556 ; N p ; B 58 -207 517 538 ;
+C 113 ; WX 556 ; N q ; B 35 -207 494 538 ;
+C 114 ; WX 333 ; N r ; B 77 0 332 538 ;
+C 115 ; WX 500 ; N s ; B 32 -15 464 538 ;
+C 116 ; WX 278 ; N t ; B 14 -7 257 669 ;
+C 117 ; WX 556 ; N u ; B 68 -15 489 523 ;
+C 118 ; WX 500 ; N v ; B 8 0 492 523 ;
+C 119 ; WX 722 ; N w ; B 14 0 709 523 ;
+C 120 ; WX 500 ; N x ; B 11 0 490 523 ;
+C 121 ; WX 500 ; N y ; B 11 -214 489 523 ;
+C 122 ; WX 500 ; N z ; B 31 0 469 523 ;
+C 123 ; WX 334 ; N braceleft ; B 42 -196 292 722 ;
+C 124 ; WX 260 ; N bar ; B 94 -225 167 775 ;
+C 125 ; WX 334 ; N braceright ; B 42 -196 292 722 ;
+C 126 ; WX 584 ; N asciitilde ; B 61 180 523 326 ;
+C 161 ; WX 333 ; N exclamdown ; B 118 -195 215 523 ;
+C 162 ; WX 556 ; N cent ; B 51 -115 513 623 ;
+C 163 ; WX 556 ; N sterling ; B 33 -16 539 718 ;
+C 164 ; WX 167 ; N fraction ; B -166 -19 333 703 ;
+C 165 ; WX 556 ; N yen ; B 3 0 553 688 ;
+C 166 ; WX 556 ; N florin ; B -11 -207 501 737 ;
+C 167 ; WX 556 ; N section ; B 43 -191 512 737 ;
+C 168 ; WX 556 ; N currency ; B 28 99 528 603 ;
+C 169 ; WX 191 ; N quotesingle ; B 59 463 132 718 ;
+C 170 ; WX 333 ; N quotedblleft ; B 38 470 307 725 ;
+C 171 ; WX 556 ; N guillemotleft ; B 97 108 459 446 ;
+C 172 ; WX 333 ; N guilsinglleft ; B 88 108 245 446 ;
+C 173 ; WX 333 ; N guilsinglright ; B 88 108 245 446 ;
+C 174 ; WX 500 ; N fi ; B 14 0 434 728 ;
+C 175 ; WX 500 ; N fl ; B 14 0 432 728 ;
+C 177 ; WX 556 ; N endash ; B 0 240 556 313 ;
+C 178 ; WX 556 ; N dagger ; B 43 -159 514 718 ;
+C 179 ; WX 556 ; N daggerdbl ; B 43 -159 514 718 ;
+C 180 ; WX 278 ; N periodcentered ; B 77 190 202 315 ;
+C 182 ; WX 537 ; N paragraph ; B 18 -173 497 718 ;
+C 183 ; WX 350 ; N bullet ; B 18 202 333 517 ;
+C 184 ; WX 222 ; N quotesinglbase ; B 53 -149 157 106 ;
+C 185 ; WX 333 ; N quotedblbase ; B 26 -149 295 106 ;
+C 186 ; WX 333 ; N quotedblright ; B 26 463 295 718 ;
+C 187 ; WX 556 ; N guillemotright ; B 97 108 459 446 ;
+C 188 ; WX 1000 ; N ellipsis ; B 115 0 885 106 ;
+C 189 ; WX 1000 ; N perthousand ; B 7 -19 994 703 ;
+C 191 ; WX 611 ; N questiondown ; B 91 -201 527 525 ;
+C 193 ; WX 333 ; N grave ; B 14 593 211 734 ;
+C 194 ; WX 333 ; N acute ; B 122 593 319 734 ;
+C 195 ; WX 333 ; N circumflex ; B 21 593 312 734 ;
+C 196 ; WX 333 ; N tilde ; B -4 606 337 722 ;
+C 197 ; WX 333 ; N macron ; B 10 627 323 684 ;
+C 198 ; WX 333 ; N breve ; B 13 595 321 731 ;
+C 199 ; WX 333 ; N dotaccent ; B 121 604 212 706 ;
+C 200 ; WX 333 ; N dieresis ; B 40 604 293 706 ;
+C 202 ; WX 333 ; N ring ; B 75 572 259 756 ;
+C 203 ; WX 333 ; N cedilla ; B 45 -225 259 0 ;
+C 205 ; WX 333 ; N hungarumlaut ; B 31 593 409 734 ;
+C 206 ; WX 333 ; N ogonek ; B 73 -225 287 0 ;
+C 207 ; WX 333 ; N caron ; B 21 593 312 734 ;
+C 208 ; WX 1000 ; N emdash ; B 0 240 1000 313 ;
+C 225 ; WX 1000 ; N AE ; B 8 0 951 718 ;
+C 227 ; WX 370 ; N ordfeminine ; B 24 405 346 737 ;
+C 232 ; WX 556 ; N Lslash ; B -20 0 537 718 ;
+C 233 ; WX 778 ; N Oslash ; B 39 -19 740 737 ;
+C 234 ; WX 1000 ; N OE ; B 36 -19 965 737 ;
+C 235 ; WX 365 ; N ordmasculine ; B 25 405 341 737 ;
+C 241 ; WX 889 ; N ae ; B 36 -15 847 538 ;
+C 245 ; WX 278 ; N dotlessi ; B 95 0 183 523 ;
+C 248 ; WX 222 ; N lslash ; B -20 0 242 718 ;
+C 249 ; WX 611 ; N oslash ; B 28 -22 537 545 ;
+C 250 ; WX 944 ; N oe ; B 35 -15 902 538 ;
+C 251 ; WX 611 ; N germandbls ; B 67 -15 571 728 ;
+C -1 ; WX 278 ; N Idieresis ; B 13 0 266 901 ;
+C -1 ; WX 556 ; N eacute ; B 40 -15 516 734 ;
+C -1 ; WX 556 ; N abreve ; B 36 -15 530 731 ;
+C -1 ; WX 556 ; N uhungarumlaut ; B 68 -15 521 734 ;
+C -1 ; WX 556 ; N ecaron ; B 40 -15 516 734 ;
+C -1 ; WX 667 ; N Ydieresis ; B 14 0 653 901 ;
+C -1 ; WX 584 ; N divide ; B 39 -19 545 524 ;
+C -1 ; WX 667 ; N Yacute ; B 14 0 653 929 ;
+C -1 ; WX 667 ; N Acircumflex ; B 14 0 654 929 ;
+C -1 ; WX 556 ; N aacute ; B 36 -15 530 734 ;
+C -1 ; WX 722 ; N Ucircumflex ; B 79 -19 644 929 ;
+C -1 ; WX 500 ; N yacute ; B 11 -214 489 734 ;
+C -1 ; WX 500 ; N scommaaccent ; B 32 -225 464 538 ;
+C -1 ; WX 556 ; N ecircumflex ; B 40 -15 516 734 ;
+C -1 ; WX 722 ; N Uring ; B 79 -19 644 931 ;
+C -1 ; WX 722 ; N Udieresis ; B 79 -19 644 901 ;
+C -1 ; WX 556 ; N aogonek ; B 36 -220 547 538 ;
+C -1 ; WX 722 ; N Uacute ; B 79 -19 644 929 ;
+C -1 ; WX 556 ; N uogonek ; B 68 -225 519 523 ;
+C -1 ; WX 667 ; N Edieresis ; B 86 0 616 901 ;
+C -1 ; WX 722 ; N Dcroat ; B 0 0 674 718 ;
+C -1 ; WX 250 ; N commaaccent ; B 87 -225 181 -40 ;
+C -1 ; WX 737 ; N copyright ; B -14 -19 752 737 ;
+C -1 ; WX 667 ; N Emacron ; B 86 0 616 879 ;
+C -1 ; WX 500 ; N ccaron ; B 30 -15 477 734 ;
+C -1 ; WX 556 ; N aring ; B 36 -15 530 756 ;
+C -1 ; WX 722 ; N Ncommaaccent ; B 76 -225 646 718 ;
+C -1 ; WX 222 ; N lacute ; B 67 0 264 929 ;
+C -1 ; WX 556 ; N agrave ; B 36 -15 530 734 ;
+C -1 ; WX 611 ; N Tcommaaccent ; B 14 -225 597 718 ;
+C -1 ; WX 722 ; N Cacute ; B 44 -19 681 929 ;
+C -1 ; WX 556 ; N atilde ; B 36 -15 530 722 ;
+C -1 ; WX 667 ; N Edotaccent ; B 86 0 616 901 ;
+C -1 ; WX 500 ; N scaron ; B 32 -15 464 734 ;
+C -1 ; WX 500 ; N scedilla ; B 32 -225 464 538 ;
+C -1 ; WX 278 ; N iacute ; B 95 0 292 734 ;
+C -1 ; WX 471 ; N lozenge ; B 10 0 462 728 ;
+C -1 ; WX 722 ; N Rcaron ; B 88 0 684 929 ;
+C -1 ; WX 778 ; N Gcommaaccent ; B 48 -225 704 737 ;
+C -1 ; WX 556 ; N ucircumflex ; B 68 -15 489 734 ;
+C -1 ; WX 556 ; N acircumflex ; B 36 -15 530 734 ;
+C -1 ; WX 667 ; N Amacron ; B 14 0 654 879 ;
+C -1 ; WX 333 ; N rcaron ; B 61 0 352 734 ;
+C -1 ; WX 500 ; N ccedilla ; B 30 -225 477 538 ;
+C -1 ; WX 611 ; N Zdotaccent ; B 23 0 588 901 ;
+C -1 ; WX 667 ; N Thorn ; B 86 0 622 718 ;
+C -1 ; WX 778 ; N Omacron ; B 39 -19 739 879 ;
+C -1 ; WX 722 ; N Racute ; B 88 0 684 929 ;
+C -1 ; WX 667 ; N Sacute ; B 49 -19 620 929 ;
+C -1 ; WX 643 ; N dcaron ; B 35 -15 655 718 ;
+C -1 ; WX 722 ; N Umacron ; B 79 -19 644 879 ;
+C -1 ; WX 556 ; N uring ; B 68 -15 489 756 ;
+C -1 ; WX 333 ; N threesuperior ; B 5 270 325 703 ;
+C -1 ; WX 778 ; N Ograve ; B 39 -19 739 929 ;
+C -1 ; WX 667 ; N Agrave ; B 14 0 654 929 ;
+C -1 ; WX 667 ; N Abreve ; B 14 0 654 926 ;
+C -1 ; WX 584 ; N multiply ; B 39 0 545 506 ;
+C -1 ; WX 556 ; N uacute ; B 68 -15 489 734 ;
+C -1 ; WX 611 ; N Tcaron ; B 14 0 597 929 ;
+C -1 ; WX 476 ; N partialdiff ; B 13 -38 463 714 ;
+C -1 ; WX 500 ; N ydieresis ; B 11 -214 489 706 ;
+C -1 ; WX 722 ; N Nacute ; B 76 0 646 929 ;
+C -1 ; WX 278 ; N icircumflex ; B -6 0 285 734 ;
+C -1 ; WX 667 ; N Ecircumflex ; B 86 0 616 929 ;
+C -1 ; WX 556 ; N adieresis ; B 36 -15 530 706 ;
+C -1 ; WX 556 ; N edieresis ; B 40 -15 516 706 ;
+C -1 ; WX 500 ; N cacute ; B 30 -15 477 734 ;
+C -1 ; WX 556 ; N nacute ; B 65 0 491 734 ;
+C -1 ; WX 556 ; N umacron ; B 68 -15 489 684 ;
+C -1 ; WX 722 ; N Ncaron ; B 76 0 646 929 ;
+C -1 ; WX 278 ; N Iacute ; B 91 0 292 929 ;
+C -1 ; WX 584 ; N plusminus ; B 39 0 545 506 ;
+C -1 ; WX 260 ; N brokenbar ; B 94 -150 167 700 ;
+C -1 ; WX 737 ; N registered ; B -14 -19 752 737 ;
+C -1 ; WX 778 ; N Gbreve ; B 48 -19 704 926 ;
+C -1 ; WX 278 ; N Idotaccent ; B 91 0 188 901 ;
+C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ;
+C -1 ; WX 667 ; N Egrave ; B 86 0 616 929 ;
+C -1 ; WX 333 ; N racute ; B 77 0 332 734 ;
+C -1 ; WX 556 ; N omacron ; B 35 -14 521 684 ;
+C -1 ; WX 611 ; N Zacute ; B 23 0 588 929 ;
+C -1 ; WX 611 ; N Zcaron ; B 23 0 588 929 ;
+C -1 ; WX 549 ; N greaterequal ; B 26 0 523 674 ;
+C -1 ; WX 722 ; N Eth ; B 0 0 674 718 ;
+C -1 ; WX 722 ; N Ccedilla ; B 44 -225 681 737 ;
+C -1 ; WX 222 ; N lcommaaccent ; B 67 -225 167 718 ;
+C -1 ; WX 317 ; N tcaron ; B 14 -7 329 808 ;
+C -1 ; WX 556 ; N eogonek ; B 40 -225 516 538 ;
+C -1 ; WX 722 ; N Uogonek ; B 79 -225 644 718 ;
+C -1 ; WX 667 ; N Aacute ; B 14 0 654 929 ;
+C -1 ; WX 667 ; N Adieresis ; B 14 0 654 901 ;
+C -1 ; WX 556 ; N egrave ; B 40 -15 516 734 ;
+C -1 ; WX 500 ; N zacute ; B 31 0 469 734 ;
+C -1 ; WX 222 ; N iogonek ; B -31 -225 183 718 ;
+C -1 ; WX 778 ; N Oacute ; B 39 -19 739 929 ;
+C -1 ; WX 556 ; N oacute ; B 35 -14 521 734 ;
+C -1 ; WX 556 ; N amacron ; B 36 -15 530 684 ;
+C -1 ; WX 500 ; N sacute ; B 32 -15 464 734 ;
+C -1 ; WX 278 ; N idieresis ; B 13 0 266 706 ;
+C -1 ; WX 778 ; N Ocircumflex ; B 39 -19 739 929 ;
+C -1 ; WX 722 ; N Ugrave ; B 79 -19 644 929 ;
+C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
+C -1 ; WX 556 ; N thorn ; B 58 -207 517 718 ;
+C -1 ; WX 333 ; N twosuperior ; B 4 281 323 703 ;
+C -1 ; WX 778 ; N Odieresis ; B 39 -19 739 901 ;
+C -1 ; WX 556 ; N mu ; B 68 -207 489 523 ;
+C -1 ; WX 278 ; N igrave ; B -13 0 184 734 ;
+C -1 ; WX 556 ; N ohungarumlaut ; B 35 -14 521 734 ;
+C -1 ; WX 667 ; N Eogonek ; B 86 -220 633 718 ;
+C -1 ; WX 556 ; N dcroat ; B 35 -15 550 718 ;
+C -1 ; WX 834 ; N threequarters ; B 45 -19 810 703 ;
+C -1 ; WX 667 ; N Scedilla ; B 49 -225 620 737 ;
+C -1 ; WX 299 ; N lcaron ; B 67 0 311 718 ;
+C -1 ; WX 667 ; N Kcommaaccent ; B 76 -225 663 718 ;
+C -1 ; WX 556 ; N Lacute ; B 76 0 537 929 ;
+C -1 ; WX 1000 ; N trademark ; B 46 306 903 718 ;
+C -1 ; WX 556 ; N edotaccent ; B 40 -15 516 706 ;
+C -1 ; WX 278 ; N Igrave ; B -13 0 188 929 ;
+C -1 ; WX 278 ; N Imacron ; B -17 0 296 879 ;
+C -1 ; WX 556 ; N Lcaron ; B 76 0 537 718 ;
+C -1 ; WX 834 ; N onehalf ; B 43 -19 773 703 ;
+C -1 ; WX 549 ; N lessequal ; B 26 0 523 674 ;
+C -1 ; WX 556 ; N ocircumflex ; B 35 -14 521 734 ;
+C -1 ; WX 556 ; N ntilde ; B 65 0 491 722 ;
+C -1 ; WX 722 ; N Uhungarumlaut ; B 79 -19 644 929 ;
+C -1 ; WX 667 ; N Eacute ; B 86 0 616 929 ;
+C -1 ; WX 556 ; N emacron ; B 40 -15 516 684 ;
+C -1 ; WX 556 ; N gbreve ; B 40 -220 499 731 ;
+C -1 ; WX 834 ; N onequarter ; B 73 -19 756 703 ;
+C -1 ; WX 667 ; N Scaron ; B 49 -19 620 929 ;
+C -1 ; WX 667 ; N Scommaaccent ; B 49 -225 620 737 ;
+C -1 ; WX 778 ; N Ohungarumlaut ; B 39 -19 739 929 ;
+C -1 ; WX 400 ; N degree ; B 54 411 346 703 ;
+C -1 ; WX 556 ; N ograve ; B 35 -14 521 734 ;
+C -1 ; WX 722 ; N Ccaron ; B 44 -19 681 929 ;
+C -1 ; WX 556 ; N ugrave ; B 68 -15 489 734 ;
+C -1 ; WX 453 ; N radical ; B -4 -80 458 762 ;
+C -1 ; WX 722 ; N Dcaron ; B 81 0 674 929 ;
+C -1 ; WX 333 ; N rcommaaccent ; B 77 -225 332 538 ;
+C -1 ; WX 722 ; N Ntilde ; B 76 0 646 917 ;
+C -1 ; WX 556 ; N otilde ; B 35 -14 521 722 ;
+C -1 ; WX 722 ; N Rcommaaccent ; B 88 -225 684 718 ;
+C -1 ; WX 556 ; N Lcommaaccent ; B 76 -225 537 718 ;
+C -1 ; WX 667 ; N Atilde ; B 14 0 654 917 ;
+C -1 ; WX 667 ; N Aogonek ; B 14 -225 654 718 ;
+C -1 ; WX 667 ; N Aring ; B 14 0 654 931 ;
+C -1 ; WX 778 ; N Otilde ; B 39 -19 739 917 ;
+C -1 ; WX 500 ; N zdotaccent ; B 31 0 469 706 ;
+C -1 ; WX 667 ; N Ecaron ; B 86 0 616 929 ;
+C -1 ; WX 278 ; N Iogonek ; B -3 -225 211 718 ;
+C -1 ; WX 500 ; N kcommaaccent ; B 67 -225 501 718 ;
+C -1 ; WX 584 ; N minus ; B 39 216 545 289 ;
+C -1 ; WX 278 ; N Icircumflex ; B -6 0 285 929 ;
+C -1 ; WX 556 ; N ncaron ; B 65 0 491 734 ;
+C -1 ; WX 278 ; N tcommaaccent ; B 14 -225 257 669 ;
+C -1 ; WX 584 ; N logicalnot ; B 39 108 545 390 ;
+C -1 ; WX 556 ; N odieresis ; B 35 -14 521 706 ;
+C -1 ; WX 556 ; N udieresis ; B 68 -15 489 706 ;
+C -1 ; WX 549 ; N notequal ; B 12 -35 537 551 ;
+C -1 ; WX 556 ; N gcommaaccent ; B 40 -220 499 822 ;
+C -1 ; WX 556 ; N eth ; B 35 -15 522 737 ;
+C -1 ; WX 500 ; N zcaron ; B 31 0 469 734 ;
+C -1 ; WX 556 ; N ncommaaccent ; B 65 -225 491 538 ;
+C -1 ; WX 333 ; N onesuperior ; B 43 281 222 703 ;
+C -1 ; WX 278 ; N imacron ; B 5 0 272 684 ;
+C -1 ; WX 556 ; N Euro ; B 0 0 0 0 ;
+EndCharMetrics
+StartKernData
+StartKernPairs 2705
+KPX A C -30
+KPX A Cacute -30
+KPX A Ccaron -30
+KPX A Ccedilla -30
+KPX A G -30
+KPX A Gbreve -30
+KPX A Gcommaaccent -30
+KPX A O -30
+KPX A Oacute -30
+KPX A Ocircumflex -30
+KPX A Odieresis -30
+KPX A Ograve -30
+KPX A Ohungarumlaut -30
+KPX A Omacron -30
+KPX A Oslash -30
+KPX A Otilde -30
+KPX A Q -30
+KPX A T -120
+KPX A Tcaron -120
+KPX A Tcommaaccent -120
+KPX A U -50
+KPX A Uacute -50
+KPX A Ucircumflex -50
+KPX A Udieresis -50
+KPX A Ugrave -50
+KPX A Uhungarumlaut -50
+KPX A Umacron -50
+KPX A Uogonek -50
+KPX A Uring -50
+KPX A V -70
+KPX A W -50
+KPX A Y -100
+KPX A Yacute -100
+KPX A Ydieresis -100
+KPX A u -30
+KPX A uacute -30
+KPX A ucircumflex -30
+KPX A udieresis -30
+KPX A ugrave -30
+KPX A uhungarumlaut -30
+KPX A umacron -30
+KPX A uogonek -30
+KPX A uring -30
+KPX A v -40
+KPX A w -40
+KPX A y -40
+KPX A yacute -40
+KPX A ydieresis -40
+KPX Aacute C -30
+KPX Aacute Cacute -30
+KPX Aacute Ccaron -30
+KPX Aacute Ccedilla -30
+KPX Aacute G -30
+KPX Aacute Gbreve -30
+KPX Aacute Gcommaaccent -30
+KPX Aacute O -30
+KPX Aacute Oacute -30
+KPX Aacute Ocircumflex -30
+KPX Aacute Odieresis -30
+KPX Aacute Ograve -30
+KPX Aacute Ohungarumlaut -30
+KPX Aacute Omacron -30
+KPX Aacute Oslash -30
+KPX Aacute Otilde -30
+KPX Aacute Q -30
+KPX Aacute T -120
+KPX Aacute Tcaron -120
+KPX Aacute Tcommaaccent -120
+KPX Aacute U -50
+KPX Aacute Uacute -50
+KPX Aacute Ucircumflex -50
+KPX Aacute Udieresis -50
+KPX Aacute Ugrave -50
+KPX Aacute Uhungarumlaut -50
+KPX Aacute Umacron -50
+KPX Aacute Uogonek -50
+KPX Aacute Uring -50
+KPX Aacute V -70
+KPX Aacute W -50
+KPX Aacute Y -100
+KPX Aacute Yacute -100
+KPX Aacute Ydieresis -100
+KPX Aacute u -30
+KPX Aacute uacute -30
+KPX Aacute ucircumflex -30
+KPX Aacute udieresis -30
+KPX Aacute ugrave -30
+KPX Aacute uhungarumlaut -30
+KPX Aacute umacron -30
+KPX Aacute uogonek -30
+KPX Aacute uring -30
+KPX Aacute v -40
+KPX Aacute w -40
+KPX Aacute y -40
+KPX Aacute yacute -40
+KPX Aacute ydieresis -40
+KPX Abreve C -30
+KPX Abreve Cacute -30
+KPX Abreve Ccaron -30
+KPX Abreve Ccedilla -30
+KPX Abreve G -30
+KPX Abreve Gbreve -30
+KPX Abreve Gcommaaccent -30
+KPX Abreve O -30
+KPX Abreve Oacute -30
+KPX Abreve Ocircumflex -30
+KPX Abreve Odieresis -30
+KPX Abreve Ograve -30
+KPX Abreve Ohungarumlaut -30
+KPX Abreve Omacron -30
+KPX Abreve Oslash -30
+KPX Abreve Otilde -30
+KPX Abreve Q -30
+KPX Abreve T -120
+KPX Abreve Tcaron -120
+KPX Abreve Tcommaaccent -120
+KPX Abreve U -50
+KPX Abreve Uacute -50
+KPX Abreve Ucircumflex -50
+KPX Abreve Udieresis -50
+KPX Abreve Ugrave -50
+KPX Abreve Uhungarumlaut -50
+KPX Abreve Umacron -50
+KPX Abreve Uogonek -50
+KPX Abreve Uring -50
+KPX Abreve V -70
+KPX Abreve W -50
+KPX Abreve Y -100
+KPX Abreve Yacute -100
+KPX Abreve Ydieresis -100
+KPX Abreve u -30
+KPX Abreve uacute -30
+KPX Abreve ucircumflex -30
+KPX Abreve udieresis -30
+KPX Abreve ugrave -30
+KPX Abreve uhungarumlaut -30
+KPX Abreve umacron -30
+KPX Abreve uogonek -30
+KPX Abreve uring -30
+KPX Abreve v -40
+KPX Abreve w -40
+KPX Abreve y -40
+KPX Abreve yacute -40
+KPX Abreve ydieresis -40
+KPX Acircumflex C -30
+KPX Acircumflex Cacute -30
+KPX Acircumflex Ccaron -30
+KPX Acircumflex Ccedilla -30
+KPX Acircumflex G -30
+KPX Acircumflex Gbreve -30
+KPX Acircumflex Gcommaaccent -30
+KPX Acircumflex O -30
+KPX Acircumflex Oacute -30
+KPX Acircumflex Ocircumflex -30
+KPX Acircumflex Odieresis -30
+KPX Acircumflex Ograve -30
+KPX Acircumflex Ohungarumlaut -30
+KPX Acircumflex Omacron -30
+KPX Acircumflex Oslash -30
+KPX Acircumflex Otilde -30
+KPX Acircumflex Q -30
+KPX Acircumflex T -120
+KPX Acircumflex Tcaron -120
+KPX Acircumflex Tcommaaccent -120
+KPX Acircumflex U -50
+KPX Acircumflex Uacute -50
+KPX Acircumflex Ucircumflex -50
+KPX Acircumflex Udieresis -50
+KPX Acircumflex Ugrave -50
+KPX Acircumflex Uhungarumlaut -50
+KPX Acircumflex Umacron -50
+KPX Acircumflex Uogonek -50
+KPX Acircumflex Uring -50
+KPX Acircumflex V -70
+KPX Acircumflex W -50
+KPX Acircumflex Y -100
+KPX Acircumflex Yacute -100
+KPX Acircumflex Ydieresis -100
+KPX Acircumflex u -30
+KPX Acircumflex uacute -30
+KPX Acircumflex ucircumflex -30
+KPX Acircumflex udieresis -30
+KPX Acircumflex ugrave -30
+KPX Acircumflex uhungarumlaut -30
+KPX Acircumflex umacron -30
+KPX Acircumflex uogonek -30
+KPX Acircumflex uring -30
+KPX Acircumflex v -40
+KPX Acircumflex w -40
+KPX Acircumflex y -40
+KPX Acircumflex yacute -40
+KPX Acircumflex ydieresis -40
+KPX Adieresis C -30
+KPX Adieresis Cacute -30
+KPX Adieresis Ccaron -30
+KPX Adieresis Ccedilla -30
+KPX Adieresis G -30
+KPX Adieresis Gbreve -30
+KPX Adieresis Gcommaaccent -30
+KPX Adieresis O -30
+KPX Adieresis Oacute -30
+KPX Adieresis Ocircumflex -30
+KPX Adieresis Odieresis -30
+KPX Adieresis Ograve -30
+KPX Adieresis Ohungarumlaut -30
+KPX Adieresis Omacron -30
+KPX Adieresis Oslash -30
+KPX Adieresis Otilde -30
+KPX Adieresis Q -30
+KPX Adieresis T -120
+KPX Adieresis Tcaron -120
+KPX Adieresis Tcommaaccent -120
+KPX Adieresis U -50
+KPX Adieresis Uacute -50
+KPX Adieresis Ucircumflex -50
+KPX Adieresis Udieresis -50
+KPX Adieresis Ugrave -50
+KPX Adieresis Uhungarumlaut -50
+KPX Adieresis Umacron -50
+KPX Adieresis Uogonek -50
+KPX Adieresis Uring -50
+KPX Adieresis V -70
+KPX Adieresis W -50
+KPX Adieresis Y -100
+KPX Adieresis Yacute -100
+KPX Adieresis Ydieresis -100
+KPX Adieresis u -30
+KPX Adieresis uacute -30
+KPX Adieresis ucircumflex -30
+KPX Adieresis udieresis -30
+KPX Adieresis ugrave -30
+KPX Adieresis uhungarumlaut -30
+KPX Adieresis umacron -30
+KPX Adieresis uogonek -30
+KPX Adieresis uring -30
+KPX Adieresis v -40
+KPX Adieresis w -40
+KPX Adieresis y -40
+KPX Adieresis yacute -40
+KPX Adieresis ydieresis -40
+KPX Agrave C -30
+KPX Agrave Cacute -30
+KPX Agrave Ccaron -30
+KPX Agrave Ccedilla -30
+KPX Agrave G -30
+KPX Agrave Gbreve -30
+KPX Agrave Gcommaaccent -30
+KPX Agrave O -30
+KPX Agrave Oacute -30
+KPX Agrave Ocircumflex -30
+KPX Agrave Odieresis -30
+KPX Agrave Ograve -30
+KPX Agrave Ohungarumlaut -30
+KPX Agrave Omacron -30
+KPX Agrave Oslash -30
+KPX Agrave Otilde -30
+KPX Agrave Q -30
+KPX Agrave T -120
+KPX Agrave Tcaron -120
+KPX Agrave Tcommaaccent -120
+KPX Agrave U -50
+KPX Agrave Uacute -50
+KPX Agrave Ucircumflex -50
+KPX Agrave Udieresis -50
+KPX Agrave Ugrave -50
+KPX Agrave Uhungarumlaut -50
+KPX Agrave Umacron -50
+KPX Agrave Uogonek -50
+KPX Agrave Uring -50
+KPX Agrave V -70
+KPX Agrave W -50
+KPX Agrave Y -100
+KPX Agrave Yacute -100
+KPX Agrave Ydieresis -100
+KPX Agrave u -30
+KPX Agrave uacute -30
+KPX Agrave ucircumflex -30
+KPX Agrave udieresis -30
+KPX Agrave ugrave -30
+KPX Agrave uhungarumlaut -30
+KPX Agrave umacron -30
+KPX Agrave uogonek -30
+KPX Agrave uring -30
+KPX Agrave v -40
+KPX Agrave w -40
+KPX Agrave y -40
+KPX Agrave yacute -40
+KPX Agrave ydieresis -40
+KPX Amacron C -30
+KPX Amacron Cacute -30
+KPX Amacron Ccaron -30
+KPX Amacron Ccedilla -30
+KPX Amacron G -30
+KPX Amacron Gbreve -30
+KPX Amacron Gcommaaccent -30
+KPX Amacron O -30
+KPX Amacron Oacute -30
+KPX Amacron Ocircumflex -30
+KPX Amacron Odieresis -30
+KPX Amacron Ograve -30
+KPX Amacron Ohungarumlaut -30
+KPX Amacron Omacron -30
+KPX Amacron Oslash -30
+KPX Amacron Otilde -30
+KPX Amacron Q -30
+KPX Amacron T -120
+KPX Amacron Tcaron -120
+KPX Amacron Tcommaaccent -120
+KPX Amacron U -50
+KPX Amacron Uacute -50
+KPX Amacron Ucircumflex -50
+KPX Amacron Udieresis -50
+KPX Amacron Ugrave -50
+KPX Amacron Uhungarumlaut -50
+KPX Amacron Umacron -50
+KPX Amacron Uogonek -50
+KPX Amacron Uring -50
+KPX Amacron V -70
+KPX Amacron W -50
+KPX Amacron Y -100
+KPX Amacron Yacute -100
+KPX Amacron Ydieresis -100
+KPX Amacron u -30
+KPX Amacron uacute -30
+KPX Amacron ucircumflex -30
+KPX Amacron udieresis -30
+KPX Amacron ugrave -30
+KPX Amacron uhungarumlaut -30
+KPX Amacron umacron -30
+KPX Amacron uogonek -30
+KPX Amacron uring -30
+KPX Amacron v -40
+KPX Amacron w -40
+KPX Amacron y -40
+KPX Amacron yacute -40
+KPX Amacron ydieresis -40
+KPX Aogonek C -30
+KPX Aogonek Cacute -30
+KPX Aogonek Ccaron -30
+KPX Aogonek Ccedilla -30
+KPX Aogonek G -30
+KPX Aogonek Gbreve -30
+KPX Aogonek Gcommaaccent -30
+KPX Aogonek O -30
+KPX Aogonek Oacute -30
+KPX Aogonek Ocircumflex -30
+KPX Aogonek Odieresis -30
+KPX Aogonek Ograve -30
+KPX Aogonek Ohungarumlaut -30
+KPX Aogonek Omacron -30
+KPX Aogonek Oslash -30
+KPX Aogonek Otilde -30
+KPX Aogonek Q -30
+KPX Aogonek T -120
+KPX Aogonek Tcaron -120
+KPX Aogonek Tcommaaccent -120
+KPX Aogonek U -50
+KPX Aogonek Uacute -50
+KPX Aogonek Ucircumflex -50
+KPX Aogonek Udieresis -50
+KPX Aogonek Ugrave -50
+KPX Aogonek Uhungarumlaut -50
+KPX Aogonek Umacron -50
+KPX Aogonek Uogonek -50
+KPX Aogonek Uring -50
+KPX Aogonek V -70
+KPX Aogonek W -50
+KPX Aogonek Y -100
+KPX Aogonek Yacute -100
+KPX Aogonek Ydieresis -100
+KPX Aogonek u -30
+KPX Aogonek uacute -30
+KPX Aogonek ucircumflex -30
+KPX Aogonek udieresis -30
+KPX Aogonek ugrave -30
+KPX Aogonek uhungarumlaut -30
+KPX Aogonek umacron -30
+KPX Aogonek uogonek -30
+KPX Aogonek uring -30
+KPX Aogonek v -40
+KPX Aogonek w -40
+KPX Aogonek y -40
+KPX Aogonek yacute -40
+KPX Aogonek ydieresis -40
+KPX Aring C -30
+KPX Aring Cacute -30
+KPX Aring Ccaron -30
+KPX Aring Ccedilla -30
+KPX Aring G -30
+KPX Aring Gbreve -30
+KPX Aring Gcommaaccent -30
+KPX Aring O -30
+KPX Aring Oacute -30
+KPX Aring Ocircumflex -30
+KPX Aring Odieresis -30
+KPX Aring Ograve -30
+KPX Aring Ohungarumlaut -30
+KPX Aring Omacron -30
+KPX Aring Oslash -30
+KPX Aring Otilde -30
+KPX Aring Q -30
+KPX Aring T -120
+KPX Aring Tcaron -120
+KPX Aring Tcommaaccent -120
+KPX Aring U -50
+KPX Aring Uacute -50
+KPX Aring Ucircumflex -50
+KPX Aring Udieresis -50
+KPX Aring Ugrave -50
+KPX Aring Uhungarumlaut -50
+KPX Aring Umacron -50
+KPX Aring Uogonek -50
+KPX Aring Uring -50
+KPX Aring V -70
+KPX Aring W -50
+KPX Aring Y -100
+KPX Aring Yacute -100
+KPX Aring Ydieresis -100
+KPX Aring u -30
+KPX Aring uacute -30
+KPX Aring ucircumflex -30
+KPX Aring udieresis -30
+KPX Aring ugrave -30
+KPX Aring uhungarumlaut -30
+KPX Aring umacron -30
+KPX Aring uogonek -30
+KPX Aring uring -30
+KPX Aring v -40
+KPX Aring w -40
+KPX Aring y -40
+KPX Aring yacute -40
+KPX Aring ydieresis -40
+KPX Atilde C -30
+KPX Atilde Cacute -30
+KPX Atilde Ccaron -30
+KPX Atilde Ccedilla -30
+KPX Atilde G -30
+KPX Atilde Gbreve -30
+KPX Atilde Gcommaaccent -30
+KPX Atilde O -30
+KPX Atilde Oacute -30
+KPX Atilde Ocircumflex -30
+KPX Atilde Odieresis -30
+KPX Atilde Ograve -30
+KPX Atilde Ohungarumlaut -30
+KPX Atilde Omacron -30
+KPX Atilde Oslash -30
+KPX Atilde Otilde -30
+KPX Atilde Q -30
+KPX Atilde T -120
+KPX Atilde Tcaron -120
+KPX Atilde Tcommaaccent -120
+KPX Atilde U -50
+KPX Atilde Uacute -50
+KPX Atilde Ucircumflex -50
+KPX Atilde Udieresis -50
+KPX Atilde Ugrave -50
+KPX Atilde Uhungarumlaut -50
+KPX Atilde Umacron -50
+KPX Atilde Uogonek -50
+KPX Atilde Uring -50
+KPX Atilde V -70
+KPX Atilde W -50
+KPX Atilde Y -100
+KPX Atilde Yacute -100
+KPX Atilde Ydieresis -100
+KPX Atilde u -30
+KPX Atilde uacute -30
+KPX Atilde ucircumflex -30
+KPX Atilde udieresis -30
+KPX Atilde ugrave -30
+KPX Atilde uhungarumlaut -30
+KPX Atilde umacron -30
+KPX Atilde uogonek -30
+KPX Atilde uring -30
+KPX Atilde v -40
+KPX Atilde w -40
+KPX Atilde y -40
+KPX Atilde yacute -40
+KPX Atilde ydieresis -40
+KPX B U -10
+KPX B Uacute -10
+KPX B Ucircumflex -10
+KPX B Udieresis -10
+KPX B Ugrave -10
+KPX B Uhungarumlaut -10
+KPX B Umacron -10
+KPX B Uogonek -10
+KPX B Uring -10
+KPX B comma -20
+KPX B period -20
+KPX C comma -30
+KPX C period -30
+KPX Cacute comma -30
+KPX Cacute period -30
+KPX Ccaron comma -30
+KPX Ccaron period -30
+KPX Ccedilla comma -30
+KPX Ccedilla period -30
+KPX D A -40
+KPX D Aacute -40
+KPX D Abreve -40
+KPX D Acircumflex -40
+KPX D Adieresis -40
+KPX D Agrave -40
+KPX D Amacron -40
+KPX D Aogonek -40
+KPX D Aring -40
+KPX D Atilde -40
+KPX D V -70
+KPX D W -40
+KPX D Y -90
+KPX D Yacute -90
+KPX D Ydieresis -90
+KPX D comma -70
+KPX D period -70
+KPX Dcaron A -40
+KPX Dcaron Aacute -40
+KPX Dcaron Abreve -40
+KPX Dcaron Acircumflex -40
+KPX Dcaron Adieresis -40
+KPX Dcaron Agrave -40
+KPX Dcaron Amacron -40
+KPX Dcaron Aogonek -40
+KPX Dcaron Aring -40
+KPX Dcaron Atilde -40
+KPX Dcaron V -70
+KPX Dcaron W -40
+KPX Dcaron Y -90
+KPX Dcaron Yacute -90
+KPX Dcaron Ydieresis -90
+KPX Dcaron comma -70
+KPX Dcaron period -70
+KPX Dcroat A -40
+KPX Dcroat Aacute -40
+KPX Dcroat Abreve -40
+KPX Dcroat Acircumflex -40
+KPX Dcroat Adieresis -40
+KPX Dcroat Agrave -40
+KPX Dcroat Amacron -40
+KPX Dcroat Aogonek -40
+KPX Dcroat Aring -40
+KPX Dcroat Atilde -40
+KPX Dcroat V -70
+KPX Dcroat W -40
+KPX Dcroat Y -90
+KPX Dcroat Yacute -90
+KPX Dcroat Ydieresis -90
+KPX Dcroat comma -70
+KPX Dcroat period -70
+KPX F A -80
+KPX F Aacute -80
+KPX F Abreve -80
+KPX F Acircumflex -80
+KPX F Adieresis -80
+KPX F Agrave -80
+KPX F Amacron -80
+KPX F Aogonek -80
+KPX F Aring -80
+KPX F Atilde -80
+KPX F a -50
+KPX F aacute -50
+KPX F abreve -50
+KPX F acircumflex -50
+KPX F adieresis -50
+KPX F agrave -50
+KPX F amacron -50
+KPX F aogonek -50
+KPX F aring -50
+KPX F atilde -50
+KPX F comma -150
+KPX F e -30
+KPX F eacute -30
+KPX F ecaron -30
+KPX F ecircumflex -30
+KPX F edieresis -30
+KPX F edotaccent -30
+KPX F egrave -30
+KPX F emacron -30
+KPX F eogonek -30
+KPX F o -30
+KPX F oacute -30
+KPX F ocircumflex -30
+KPX F odieresis -30
+KPX F ograve -30
+KPX F ohungarumlaut -30
+KPX F omacron -30
+KPX F oslash -30
+KPX F otilde -30
+KPX F period -150
+KPX F r -45
+KPX F racute -45
+KPX F rcaron -45
+KPX F rcommaaccent -45
+KPX J A -20
+KPX J Aacute -20
+KPX J Abreve -20
+KPX J Acircumflex -20
+KPX J Adieresis -20
+KPX J Agrave -20
+KPX J Amacron -20
+KPX J Aogonek -20
+KPX J Aring -20
+KPX J Atilde -20
+KPX J a -20
+KPX J aacute -20
+KPX J abreve -20
+KPX J acircumflex -20
+KPX J adieresis -20
+KPX J agrave -20
+KPX J amacron -20
+KPX J aogonek -20
+KPX J aring -20
+KPX J atilde -20
+KPX J comma -30
+KPX J period -30
+KPX J u -20
+KPX J uacute -20
+KPX J ucircumflex -20
+KPX J udieresis -20
+KPX J ugrave -20
+KPX J uhungarumlaut -20
+KPX J umacron -20
+KPX J uogonek -20
+KPX J uring -20
+KPX K O -50
+KPX K Oacute -50
+KPX K Ocircumflex -50
+KPX K Odieresis -50
+KPX K Ograve -50
+KPX K Ohungarumlaut -50
+KPX K Omacron -50
+KPX K Oslash -50
+KPX K Otilde -50
+KPX K e -40
+KPX K eacute -40
+KPX K ecaron -40
+KPX K ecircumflex -40
+KPX K edieresis -40
+KPX K edotaccent -40
+KPX K egrave -40
+KPX K emacron -40
+KPX K eogonek -40
+KPX K o -40
+KPX K oacute -40
+KPX K ocircumflex -40
+KPX K odieresis -40
+KPX K ograve -40
+KPX K ohungarumlaut -40
+KPX K omacron -40
+KPX K oslash -40
+KPX K otilde -40
+KPX K u -30
+KPX K uacute -30
+KPX K ucircumflex -30
+KPX K udieresis -30
+KPX K ugrave -30
+KPX K uhungarumlaut -30
+KPX K umacron -30
+KPX K uogonek -30
+KPX K uring -30
+KPX K y -50
+KPX K yacute -50
+KPX K ydieresis -50
+KPX Kcommaaccent O -50
+KPX Kcommaaccent Oacute -50
+KPX Kcommaaccent Ocircumflex -50
+KPX Kcommaaccent Odieresis -50
+KPX Kcommaaccent Ograve -50
+KPX Kcommaaccent Ohungarumlaut -50
+KPX Kcommaaccent Omacron -50
+KPX Kcommaaccent Oslash -50
+KPX Kcommaaccent Otilde -50
+KPX Kcommaaccent e -40
+KPX Kcommaaccent eacute -40
+KPX Kcommaaccent ecaron -40
+KPX Kcommaaccent ecircumflex -40
+KPX Kcommaaccent edieresis -40
+KPX Kcommaaccent edotaccent -40
+KPX Kcommaaccent egrave -40
+KPX Kcommaaccent emacron -40
+KPX Kcommaaccent eogonek -40
+KPX Kcommaaccent o -40
+KPX Kcommaaccent oacute -40
+KPX Kcommaaccent ocircumflex -40
+KPX Kcommaaccent odieresis -40
+KPX Kcommaaccent ograve -40
+KPX Kcommaaccent ohungarumlaut -40
+KPX Kcommaaccent omacron -40
+KPX Kcommaaccent oslash -40
+KPX Kcommaaccent otilde -40
+KPX Kcommaaccent u -30
+KPX Kcommaaccent uacute -30
+KPX Kcommaaccent ucircumflex -30
+KPX Kcommaaccent udieresis -30
+KPX Kcommaaccent ugrave -30
+KPX Kcommaaccent uhungarumlaut -30
+KPX Kcommaaccent umacron -30
+KPX Kcommaaccent uogonek -30
+KPX Kcommaaccent uring -30
+KPX Kcommaaccent y -50
+KPX Kcommaaccent yacute -50
+KPX Kcommaaccent ydieresis -50
+KPX L T -110
+KPX L Tcaron -110
+KPX L Tcommaaccent -110
+KPX L V -110
+KPX L W -70
+KPX L Y -140
+KPX L Yacute -140
+KPX L Ydieresis -140
+KPX L quotedblright -140
+KPX L quoteright -160
+KPX L y -30
+KPX L yacute -30
+KPX L ydieresis -30
+KPX Lacute T -110
+KPX Lacute Tcaron -110
+KPX Lacute Tcommaaccent -110
+KPX Lacute V -110
+KPX Lacute W -70
+KPX Lacute Y -140
+KPX Lacute Yacute -140
+KPX Lacute Ydieresis -140
+KPX Lacute quotedblright -140
+KPX Lacute quoteright -160
+KPX Lacute y -30
+KPX Lacute yacute -30
+KPX Lacute ydieresis -30
+KPX Lcaron T -110
+KPX Lcaron Tcaron -110
+KPX Lcaron Tcommaaccent -110
+KPX Lcaron V -110
+KPX Lcaron W -70
+KPX Lcaron Y -140
+KPX Lcaron Yacute -140
+KPX Lcaron Ydieresis -140
+KPX Lcaron quotedblright -140
+KPX Lcaron quoteright -160
+KPX Lcaron y -30
+KPX Lcaron yacute -30
+KPX Lcaron ydieresis -30
+KPX Lcommaaccent T -110
+KPX Lcommaaccent Tcaron -110
+KPX Lcommaaccent Tcommaaccent -110
+KPX Lcommaaccent V -110
+KPX Lcommaaccent W -70
+KPX Lcommaaccent Y -140
+KPX Lcommaaccent Yacute -140
+KPX Lcommaaccent Ydieresis -140
+KPX Lcommaaccent quotedblright -140
+KPX Lcommaaccent quoteright -160
+KPX Lcommaaccent y -30
+KPX Lcommaaccent yacute -30
+KPX Lcommaaccent ydieresis -30
+KPX Lslash T -110
+KPX Lslash Tcaron -110
+KPX Lslash Tcommaaccent -110
+KPX Lslash V -110
+KPX Lslash W -70
+KPX Lslash Y -140
+KPX Lslash Yacute -140
+KPX Lslash Ydieresis -140
+KPX Lslash quotedblright -140
+KPX Lslash quoteright -160
+KPX Lslash y -30
+KPX Lslash yacute -30
+KPX Lslash ydieresis -30
+KPX O A -20
+KPX O Aacute -20
+KPX O Abreve -20
+KPX O Acircumflex -20
+KPX O Adieresis -20
+KPX O Agrave -20
+KPX O Amacron -20
+KPX O Aogonek -20
+KPX O Aring -20
+KPX O Atilde -20
+KPX O T -40
+KPX O Tcaron -40
+KPX O Tcommaaccent -40
+KPX O V -50
+KPX O W -30
+KPX O X -60
+KPX O Y -70
+KPX O Yacute -70
+KPX O Ydieresis -70
+KPX O comma -40
+KPX O period -40
+KPX Oacute A -20
+KPX Oacute Aacute -20
+KPX Oacute Abreve -20
+KPX Oacute Acircumflex -20
+KPX Oacute Adieresis -20
+KPX Oacute Agrave -20
+KPX Oacute Amacron -20
+KPX Oacute Aogonek -20
+KPX Oacute Aring -20
+KPX Oacute Atilde -20
+KPX Oacute T -40
+KPX Oacute Tcaron -40
+KPX Oacute Tcommaaccent -40
+KPX Oacute V -50
+KPX Oacute W -30
+KPX Oacute X -60
+KPX Oacute Y -70
+KPX Oacute Yacute -70
+KPX Oacute Ydieresis -70
+KPX Oacute comma -40
+KPX Oacute period -40
+KPX Ocircumflex A -20
+KPX Ocircumflex Aacute -20
+KPX Ocircumflex Abreve -20
+KPX Ocircumflex Acircumflex -20
+KPX Ocircumflex Adieresis -20
+KPX Ocircumflex Agrave -20
+KPX Ocircumflex Amacron -20
+KPX Ocircumflex Aogonek -20
+KPX Ocircumflex Aring -20
+KPX Ocircumflex Atilde -20
+KPX Ocircumflex T -40
+KPX Ocircumflex Tcaron -40
+KPX Ocircumflex Tcommaaccent -40
+KPX Ocircumflex V -50
+KPX Ocircumflex W -30
+KPX Ocircumflex X -60
+KPX Ocircumflex Y -70
+KPX Ocircumflex Yacute -70
+KPX Ocircumflex Ydieresis -70
+KPX Ocircumflex comma -40
+KPX Ocircumflex period -40
+KPX Odieresis A -20
+KPX Odieresis Aacute -20
+KPX Odieresis Abreve -20
+KPX Odieresis Acircumflex -20
+KPX Odieresis Adieresis -20
+KPX Odieresis Agrave -20
+KPX Odieresis Amacron -20
+KPX Odieresis Aogonek -20
+KPX Odieresis Aring -20
+KPX Odieresis Atilde -20
+KPX Odieresis T -40
+KPX Odieresis Tcaron -40
+KPX Odieresis Tcommaaccent -40
+KPX Odieresis V -50
+KPX Odieresis W -30
+KPX Odieresis X -60
+KPX Odieresis Y -70
+KPX Odieresis Yacute -70
+KPX Odieresis Ydieresis -70
+KPX Odieresis comma -40
+KPX Odieresis period -40
+KPX Ograve A -20
+KPX Ograve Aacute -20
+KPX Ograve Abreve -20
+KPX Ograve Acircumflex -20
+KPX Ograve Adieresis -20
+KPX Ograve Agrave -20
+KPX Ograve Amacron -20
+KPX Ograve Aogonek -20
+KPX Ograve Aring -20
+KPX Ograve Atilde -20
+KPX Ograve T -40
+KPX Ograve Tcaron -40
+KPX Ograve Tcommaaccent -40
+KPX Ograve V -50
+KPX Ograve W -30
+KPX Ograve X -60
+KPX Ograve Y -70
+KPX Ograve Yacute -70
+KPX Ograve Ydieresis -70
+KPX Ograve comma -40
+KPX Ograve period -40
+KPX Ohungarumlaut A -20
+KPX Ohungarumlaut Aacute -20
+KPX Ohungarumlaut Abreve -20
+KPX Ohungarumlaut Acircumflex -20
+KPX Ohungarumlaut Adieresis -20
+KPX Ohungarumlaut Agrave -20
+KPX Ohungarumlaut Amacron -20
+KPX Ohungarumlaut Aogonek -20
+KPX Ohungarumlaut Aring -20
+KPX Ohungarumlaut Atilde -20
+KPX Ohungarumlaut T -40
+KPX Ohungarumlaut Tcaron -40
+KPX Ohungarumlaut Tcommaaccent -40
+KPX Ohungarumlaut V -50
+KPX Ohungarumlaut W -30
+KPX Ohungarumlaut X -60
+KPX Ohungarumlaut Y -70
+KPX Ohungarumlaut Yacute -70
+KPX Ohungarumlaut Ydieresis -70
+KPX Ohungarumlaut comma -40
+KPX Ohungarumlaut period -40
+KPX Omacron A -20
+KPX Omacron Aacute -20
+KPX Omacron Abreve -20
+KPX Omacron Acircumflex -20
+KPX Omacron Adieresis -20
+KPX Omacron Agrave -20
+KPX Omacron Amacron -20
+KPX Omacron Aogonek -20
+KPX Omacron Aring -20
+KPX Omacron Atilde -20
+KPX Omacron T -40
+KPX Omacron Tcaron -40
+KPX Omacron Tcommaaccent -40
+KPX Omacron V -50
+KPX Omacron W -30
+KPX Omacron X -60
+KPX Omacron Y -70
+KPX Omacron Yacute -70
+KPX Omacron Ydieresis -70
+KPX Omacron comma -40
+KPX Omacron period -40
+KPX Oslash A -20
+KPX Oslash Aacute -20
+KPX Oslash Abreve -20
+KPX Oslash Acircumflex -20
+KPX Oslash Adieresis -20
+KPX Oslash Agrave -20
+KPX Oslash Amacron -20
+KPX Oslash Aogonek -20
+KPX Oslash Aring -20
+KPX Oslash Atilde -20
+KPX Oslash T -40
+KPX Oslash Tcaron -40
+KPX Oslash Tcommaaccent -40
+KPX Oslash V -50
+KPX Oslash W -30
+KPX Oslash X -60
+KPX Oslash Y -70
+KPX Oslash Yacute -70
+KPX Oslash Ydieresis -70
+KPX Oslash comma -40
+KPX Oslash period -40
+KPX Otilde A -20
+KPX Otilde Aacute -20
+KPX Otilde Abreve -20
+KPX Otilde Acircumflex -20
+KPX Otilde Adieresis -20
+KPX Otilde Agrave -20
+KPX Otilde Amacron -20
+KPX Otilde Aogonek -20
+KPX Otilde Aring -20
+KPX Otilde Atilde -20
+KPX Otilde T -40
+KPX Otilde Tcaron -40
+KPX Otilde Tcommaaccent -40
+KPX Otilde V -50
+KPX Otilde W -30
+KPX Otilde X -60
+KPX Otilde Y -70
+KPX Otilde Yacute -70
+KPX Otilde Ydieresis -70
+KPX Otilde comma -40
+KPX Otilde period -40
+KPX P A -120
+KPX P Aacute -120
+KPX P Abreve -120
+KPX P Acircumflex -120
+KPX P Adieresis -120
+KPX P Agrave -120
+KPX P Amacron -120
+KPX P Aogonek -120
+KPX P Aring -120
+KPX P Atilde -120
+KPX P a -40
+KPX P aacute -40
+KPX P abreve -40
+KPX P acircumflex -40
+KPX P adieresis -40
+KPX P agrave -40
+KPX P amacron -40
+KPX P aogonek -40
+KPX P aring -40
+KPX P atilde -40
+KPX P comma -180
+KPX P e -50
+KPX P eacute -50
+KPX P ecaron -50
+KPX P ecircumflex -50
+KPX P edieresis -50
+KPX P edotaccent -50
+KPX P egrave -50
+KPX P emacron -50
+KPX P eogonek -50
+KPX P o -50
+KPX P oacute -50
+KPX P ocircumflex -50
+KPX P odieresis -50
+KPX P ograve -50
+KPX P ohungarumlaut -50
+KPX P omacron -50
+KPX P oslash -50
+KPX P otilde -50
+KPX P period -180
+KPX Q U -10
+KPX Q Uacute -10
+KPX Q Ucircumflex -10
+KPX Q Udieresis -10
+KPX Q Ugrave -10
+KPX Q Uhungarumlaut -10
+KPX Q Umacron -10
+KPX Q Uogonek -10
+KPX Q Uring -10
+KPX R O -20
+KPX R Oacute -20
+KPX R Ocircumflex -20
+KPX R Odieresis -20
+KPX R Ograve -20
+KPX R Ohungarumlaut -20
+KPX R Omacron -20
+KPX R Oslash -20
+KPX R Otilde -20
+KPX R T -30
+KPX R Tcaron -30
+KPX R Tcommaaccent -30
+KPX R U -40
+KPX R Uacute -40
+KPX R Ucircumflex -40
+KPX R Udieresis -40
+KPX R Ugrave -40
+KPX R Uhungarumlaut -40
+KPX R Umacron -40
+KPX R Uogonek -40
+KPX R Uring -40
+KPX R V -50
+KPX R W -30
+KPX R Y -50
+KPX R Yacute -50
+KPX R Ydieresis -50
+KPX Racute O -20
+KPX Racute Oacute -20
+KPX Racute Ocircumflex -20
+KPX Racute Odieresis -20
+KPX Racute Ograve -20
+KPX Racute Ohungarumlaut -20
+KPX Racute Omacron -20
+KPX Racute Oslash -20
+KPX Racute Otilde -20
+KPX Racute T -30
+KPX Racute Tcaron -30
+KPX Racute Tcommaaccent -30
+KPX Racute U -40
+KPX Racute Uacute -40
+KPX Racute Ucircumflex -40
+KPX Racute Udieresis -40
+KPX Racute Ugrave -40
+KPX Racute Uhungarumlaut -40
+KPX Racute Umacron -40
+KPX Racute Uogonek -40
+KPX Racute Uring -40
+KPX Racute V -50
+KPX Racute W -30
+KPX Racute Y -50
+KPX Racute Yacute -50
+KPX Racute Ydieresis -50
+KPX Rcaron O -20
+KPX Rcaron Oacute -20
+KPX Rcaron Ocircumflex -20
+KPX Rcaron Odieresis -20
+KPX Rcaron Ograve -20
+KPX Rcaron Ohungarumlaut -20
+KPX Rcaron Omacron -20
+KPX Rcaron Oslash -20
+KPX Rcaron Otilde -20
+KPX Rcaron T -30
+KPX Rcaron Tcaron -30
+KPX Rcaron Tcommaaccent -30
+KPX Rcaron U -40
+KPX Rcaron Uacute -40
+KPX Rcaron Ucircumflex -40
+KPX Rcaron Udieresis -40
+KPX Rcaron Ugrave -40
+KPX Rcaron Uhungarumlaut -40
+KPX Rcaron Umacron -40
+KPX Rcaron Uogonek -40
+KPX Rcaron Uring -40
+KPX Rcaron V -50
+KPX Rcaron W -30
+KPX Rcaron Y -50
+KPX Rcaron Yacute -50
+KPX Rcaron Ydieresis -50
+KPX Rcommaaccent O -20
+KPX Rcommaaccent Oacute -20
+KPX Rcommaaccent Ocircumflex -20
+KPX Rcommaaccent Odieresis -20
+KPX Rcommaaccent Ograve -20
+KPX Rcommaaccent Ohungarumlaut -20
+KPX Rcommaaccent Omacron -20
+KPX Rcommaaccent Oslash -20
+KPX Rcommaaccent Otilde -20
+KPX Rcommaaccent T -30
+KPX Rcommaaccent Tcaron -30
+KPX Rcommaaccent Tcommaaccent -30
+KPX Rcommaaccent U -40
+KPX Rcommaaccent Uacute -40
+KPX Rcommaaccent Ucircumflex -40
+KPX Rcommaaccent Udieresis -40
+KPX Rcommaaccent Ugrave -40
+KPX Rcommaaccent Uhungarumlaut -40
+KPX Rcommaaccent Umacron -40
+KPX Rcommaaccent Uogonek -40
+KPX Rcommaaccent Uring -40
+KPX Rcommaaccent V -50
+KPX Rcommaaccent W -30
+KPX Rcommaaccent Y -50
+KPX Rcommaaccent Yacute -50
+KPX Rcommaaccent Ydieresis -50
+KPX S comma -20
+KPX S period -20
+KPX Sacute comma -20
+KPX Sacute period -20
+KPX Scaron comma -20
+KPX Scaron period -20
+KPX Scedilla comma -20
+KPX Scedilla period -20
+KPX Scommaaccent comma -20
+KPX Scommaaccent period -20
+KPX T A -120
+KPX T Aacute -120
+KPX T Abreve -120
+KPX T Acircumflex -120
+KPX T Adieresis -120
+KPX T Agrave -120
+KPX T Amacron -120
+KPX T Aogonek -120
+KPX T Aring -120
+KPX T Atilde -120
+KPX T O -40
+KPX T Oacute -40
+KPX T Ocircumflex -40
+KPX T Odieresis -40
+KPX T Ograve -40
+KPX T Ohungarumlaut -40
+KPX T Omacron -40
+KPX T Oslash -40
+KPX T Otilde -40
+KPX T a -120
+KPX T aacute -120
+KPX T abreve -60
+KPX T acircumflex -120
+KPX T adieresis -120
+KPX T agrave -120
+KPX T amacron -60
+KPX T aogonek -120
+KPX T aring -120
+KPX T atilde -60
+KPX T colon -20
+KPX T comma -120
+KPX T e -120
+KPX T eacute -120
+KPX T ecaron -120
+KPX T ecircumflex -120
+KPX T edieresis -120
+KPX T edotaccent -120
+KPX T egrave -60
+KPX T emacron -60
+KPX T eogonek -120
+KPX T hyphen -140
+KPX T o -120
+KPX T oacute -120
+KPX T ocircumflex -120
+KPX T odieresis -120
+KPX T ograve -120
+KPX T ohungarumlaut -120
+KPX T omacron -60
+KPX T oslash -120
+KPX T otilde -60
+KPX T period -120
+KPX T r -120
+KPX T racute -120
+KPX T rcaron -120
+KPX T rcommaaccent -120
+KPX T semicolon -20
+KPX T u -120
+KPX T uacute -120
+KPX T ucircumflex -120
+KPX T udieresis -120
+KPX T ugrave -120
+KPX T uhungarumlaut -120
+KPX T umacron -60
+KPX T uogonek -120
+KPX T uring -120
+KPX T w -120
+KPX T y -120
+KPX T yacute -120
+KPX T ydieresis -60
+KPX Tcaron A -120
+KPX Tcaron Aacute -120
+KPX Tcaron Abreve -120
+KPX Tcaron Acircumflex -120
+KPX Tcaron Adieresis -120
+KPX Tcaron Agrave -120
+KPX Tcaron Amacron -120
+KPX Tcaron Aogonek -120
+KPX Tcaron Aring -120
+KPX Tcaron Atilde -120
+KPX Tcaron O -40
+KPX Tcaron Oacute -40
+KPX Tcaron Ocircumflex -40
+KPX Tcaron Odieresis -40
+KPX Tcaron Ograve -40
+KPX Tcaron Ohungarumlaut -40
+KPX Tcaron Omacron -40
+KPX Tcaron Oslash -40
+KPX Tcaron Otilde -40
+KPX Tcaron a -120
+KPX Tcaron aacute -120
+KPX Tcaron abreve -60
+KPX Tcaron acircumflex -120
+KPX Tcaron adieresis -120
+KPX Tcaron agrave -120
+KPX Tcaron amacron -60
+KPX Tcaron aogonek -120
+KPX Tcaron aring -120
+KPX Tcaron atilde -60
+KPX Tcaron colon -20
+KPX Tcaron comma -120
+KPX Tcaron e -120
+KPX Tcaron eacute -120
+KPX Tcaron ecaron -120
+KPX Tcaron ecircumflex -120
+KPX Tcaron edieresis -120
+KPX Tcaron edotaccent -120
+KPX Tcaron egrave -60
+KPX Tcaron emacron -60
+KPX Tcaron eogonek -120
+KPX Tcaron hyphen -140
+KPX Tcaron o -120
+KPX Tcaron oacute -120
+KPX Tcaron ocircumflex -120
+KPX Tcaron odieresis -120
+KPX Tcaron ograve -120
+KPX Tcaron ohungarumlaut -120
+KPX Tcaron omacron -60
+KPX Tcaron oslash -120
+KPX Tcaron otilde -60
+KPX Tcaron period -120
+KPX Tcaron r -120
+KPX Tcaron racute -120
+KPX Tcaron rcaron -120
+KPX Tcaron rcommaaccent -120
+KPX Tcaron semicolon -20
+KPX Tcaron u -120
+KPX Tcaron uacute -120
+KPX Tcaron ucircumflex -120
+KPX Tcaron udieresis -120
+KPX Tcaron ugrave -120
+KPX Tcaron uhungarumlaut -120
+KPX Tcaron umacron -60
+KPX Tcaron uogonek -120
+KPX Tcaron uring -120
+KPX Tcaron w -120
+KPX Tcaron y -120
+KPX Tcaron yacute -120
+KPX Tcaron ydieresis -60
+KPX Tcommaaccent A -120
+KPX Tcommaaccent Aacute -120
+KPX Tcommaaccent Abreve -120
+KPX Tcommaaccent Acircumflex -120
+KPX Tcommaaccent Adieresis -120
+KPX Tcommaaccent Agrave -120
+KPX Tcommaaccent Amacron -120
+KPX Tcommaaccent Aogonek -120
+KPX Tcommaaccent Aring -120
+KPX Tcommaaccent Atilde -120
+KPX Tcommaaccent O -40
+KPX Tcommaaccent Oacute -40
+KPX Tcommaaccent Ocircumflex -40
+KPX Tcommaaccent Odieresis -40
+KPX Tcommaaccent Ograve -40
+KPX Tcommaaccent Ohungarumlaut -40
+KPX Tcommaaccent Omacron -40
+KPX Tcommaaccent Oslash -40
+KPX Tcommaaccent Otilde -40
+KPX Tcommaaccent a -120
+KPX Tcommaaccent aacute -120
+KPX Tcommaaccent abreve -60
+KPX Tcommaaccent acircumflex -120
+KPX Tcommaaccent adieresis -120
+KPX Tcommaaccent agrave -120
+KPX Tcommaaccent amacron -60
+KPX Tcommaaccent aogonek -120
+KPX Tcommaaccent aring -120
+KPX Tcommaaccent atilde -60
+KPX Tcommaaccent colon -20
+KPX Tcommaaccent comma -120
+KPX Tcommaaccent e -120
+KPX Tcommaaccent eacute -120
+KPX Tcommaaccent ecaron -120
+KPX Tcommaaccent ecircumflex -120
+KPX Tcommaaccent edieresis -120
+KPX Tcommaaccent edotaccent -120
+KPX Tcommaaccent egrave -60
+KPX Tcommaaccent emacron -60
+KPX Tcommaaccent eogonek -120
+KPX Tcommaaccent hyphen -140
+KPX Tcommaaccent o -120
+KPX Tcommaaccent oacute -120
+KPX Tcommaaccent ocircumflex -120
+KPX Tcommaaccent odieresis -120
+KPX Tcommaaccent ograve -120
+KPX Tcommaaccent ohungarumlaut -120
+KPX Tcommaaccent omacron -60
+KPX Tcommaaccent oslash -120
+KPX Tcommaaccent otilde -60
+KPX Tcommaaccent period -120
+KPX Tcommaaccent r -120
+KPX Tcommaaccent racute -120
+KPX Tcommaaccent rcaron -120
+KPX Tcommaaccent rcommaaccent -120
+KPX Tcommaaccent semicolon -20
+KPX Tcommaaccent u -120
+KPX Tcommaaccent uacute -120
+KPX Tcommaaccent ucircumflex -120
+KPX Tcommaaccent udieresis -120
+KPX Tcommaaccent ugrave -120
+KPX Tcommaaccent uhungarumlaut -120
+KPX Tcommaaccent umacron -60
+KPX Tcommaaccent uogonek -120
+KPX Tcommaaccent uring -120
+KPX Tcommaaccent w -120
+KPX Tcommaaccent y -120
+KPX Tcommaaccent yacute -120
+KPX Tcommaaccent ydieresis -60
+KPX U A -40
+KPX U Aacute -40
+KPX U Abreve -40
+KPX U Acircumflex -40
+KPX U Adieresis -40
+KPX U Agrave -40
+KPX U Amacron -40
+KPX U Aogonek -40
+KPX U Aring -40
+KPX U Atilde -40
+KPX U comma -40
+KPX U period -40
+KPX Uacute A -40
+KPX Uacute Aacute -40
+KPX Uacute Abreve -40
+KPX Uacute Acircumflex -40
+KPX Uacute Adieresis -40
+KPX Uacute Agrave -40
+KPX Uacute Amacron -40
+KPX Uacute Aogonek -40
+KPX Uacute Aring -40
+KPX Uacute Atilde -40
+KPX Uacute comma -40
+KPX Uacute period -40
+KPX Ucircumflex A -40
+KPX Ucircumflex Aacute -40
+KPX Ucircumflex Abreve -40
+KPX Ucircumflex Acircumflex -40
+KPX Ucircumflex Adieresis -40
+KPX Ucircumflex Agrave -40
+KPX Ucircumflex Amacron -40
+KPX Ucircumflex Aogonek -40
+KPX Ucircumflex Aring -40
+KPX Ucircumflex Atilde -40
+KPX Ucircumflex comma -40
+KPX Ucircumflex period -40
+KPX Udieresis A -40
+KPX Udieresis Aacute -40
+KPX Udieresis Abreve -40
+KPX Udieresis Acircumflex -40
+KPX Udieresis Adieresis -40
+KPX Udieresis Agrave -40
+KPX Udieresis Amacron -40
+KPX Udieresis Aogonek -40
+KPX Udieresis Aring -40
+KPX Udieresis Atilde -40
+KPX Udieresis comma -40
+KPX Udieresis period -40
+KPX Ugrave A -40
+KPX Ugrave Aacute -40
+KPX Ugrave Abreve -40
+KPX Ugrave Acircumflex -40
+KPX Ugrave Adieresis -40
+KPX Ugrave Agrave -40
+KPX Ugrave Amacron -40
+KPX Ugrave Aogonek -40
+KPX Ugrave Aring -40
+KPX Ugrave Atilde -40
+KPX Ugrave comma -40
+KPX Ugrave period -40
+KPX Uhungarumlaut A -40
+KPX Uhungarumlaut Aacute -40
+KPX Uhungarumlaut Abreve -40
+KPX Uhungarumlaut Acircumflex -40
+KPX Uhungarumlaut Adieresis -40
+KPX Uhungarumlaut Agrave -40
+KPX Uhungarumlaut Amacron -40
+KPX Uhungarumlaut Aogonek -40
+KPX Uhungarumlaut Aring -40
+KPX Uhungarumlaut Atilde -40
+KPX Uhungarumlaut comma -40
+KPX Uhungarumlaut period -40
+KPX Umacron A -40
+KPX Umacron Aacute -40
+KPX Umacron Abreve -40
+KPX Umacron Acircumflex -40
+KPX Umacron Adieresis -40
+KPX Umacron Agrave -40
+KPX Umacron Amacron -40
+KPX Umacron Aogonek -40
+KPX Umacron Aring -40
+KPX Umacron Atilde -40
+KPX Umacron comma -40
+KPX Umacron period -40
+KPX Uogonek A -40
+KPX Uogonek Aacute -40
+KPX Uogonek Abreve -40
+KPX Uogonek Acircumflex -40
+KPX Uogonek Adieresis -40
+KPX Uogonek Agrave -40
+KPX Uogonek Amacron -40
+KPX Uogonek Aogonek -40
+KPX Uogonek Aring -40
+KPX Uogonek Atilde -40
+KPX Uogonek comma -40
+KPX Uogonek period -40
+KPX Uring A -40
+KPX Uring Aacute -40
+KPX Uring Abreve -40
+KPX Uring Acircumflex -40
+KPX Uring Adieresis -40
+KPX Uring Agrave -40
+KPX Uring Amacron -40
+KPX Uring Aogonek -40
+KPX Uring Aring -40
+KPX Uring Atilde -40
+KPX Uring comma -40
+KPX Uring period -40
+KPX V A -80
+KPX V Aacute -80
+KPX V Abreve -80
+KPX V Acircumflex -80
+KPX V Adieresis -80
+KPX V Agrave -80
+KPX V Amacron -80
+KPX V Aogonek -80
+KPX V Aring -80
+KPX V Atilde -80
+KPX V G -40
+KPX V Gbreve -40
+KPX V Gcommaaccent -40
+KPX V O -40
+KPX V Oacute -40
+KPX V Ocircumflex -40
+KPX V Odieresis -40
+KPX V Ograve -40
+KPX V Ohungarumlaut -40
+KPX V Omacron -40
+KPX V Oslash -40
+KPX V Otilde -40
+KPX V a -70
+KPX V aacute -70
+KPX V abreve -70
+KPX V acircumflex -70
+KPX V adieresis -70
+KPX V agrave -70
+KPX V amacron -70
+KPX V aogonek -70
+KPX V aring -70
+KPX V atilde -70
+KPX V colon -40
+KPX V comma -125
+KPX V e -80
+KPX V eacute -80
+KPX V ecaron -80
+KPX V ecircumflex -80
+KPX V edieresis -80
+KPX V edotaccent -80
+KPX V egrave -80
+KPX V emacron -80
+KPX V eogonek -80
+KPX V hyphen -80
+KPX V o -80
+KPX V oacute -80
+KPX V ocircumflex -80
+KPX V odieresis -80
+KPX V ograve -80
+KPX V ohungarumlaut -80
+KPX V omacron -80
+KPX V oslash -80
+KPX V otilde -80
+KPX V period -125
+KPX V semicolon -40
+KPX V u -70
+KPX V uacute -70
+KPX V ucircumflex -70
+KPX V udieresis -70
+KPX V ugrave -70
+KPX V uhungarumlaut -70
+KPX V umacron -70
+KPX V uogonek -70
+KPX V uring -70
+KPX W A -50
+KPX W Aacute -50
+KPX W Abreve -50
+KPX W Acircumflex -50
+KPX W Adieresis -50
+KPX W Agrave -50
+KPX W Amacron -50
+KPX W Aogonek -50
+KPX W Aring -50
+KPX W Atilde -50
+KPX W O -20
+KPX W Oacute -20
+KPX W Ocircumflex -20
+KPX W Odieresis -20
+KPX W Ograve -20
+KPX W Ohungarumlaut -20
+KPX W Omacron -20
+KPX W Oslash -20
+KPX W Otilde -20
+KPX W a -40
+KPX W aacute -40
+KPX W abreve -40
+KPX W acircumflex -40
+KPX W adieresis -40
+KPX W agrave -40
+KPX W amacron -40
+KPX W aogonek -40
+KPX W aring -40
+KPX W atilde -40
+KPX W comma -80
+KPX W e -30
+KPX W eacute -30
+KPX W ecaron -30
+KPX W ecircumflex -30
+KPX W edieresis -30
+KPX W edotaccent -30
+KPX W egrave -30
+KPX W emacron -30
+KPX W eogonek -30
+KPX W hyphen -40
+KPX W o -30
+KPX W oacute -30
+KPX W ocircumflex -30
+KPX W odieresis -30
+KPX W ograve -30
+KPX W ohungarumlaut -30
+KPX W omacron -30
+KPX W oslash -30
+KPX W otilde -30
+KPX W period -80
+KPX W u -30
+KPX W uacute -30
+KPX W ucircumflex -30
+KPX W udieresis -30
+KPX W ugrave -30
+KPX W uhungarumlaut -30
+KPX W umacron -30
+KPX W uogonek -30
+KPX W uring -30
+KPX W y -20
+KPX W yacute -20
+KPX W ydieresis -20
+KPX Y A -110
+KPX Y Aacute -110
+KPX Y Abreve -110
+KPX Y Acircumflex -110
+KPX Y Adieresis -110
+KPX Y Agrave -110
+KPX Y Amacron -110
+KPX Y Aogonek -110
+KPX Y Aring -110
+KPX Y Atilde -110
+KPX Y O -85
+KPX Y Oacute -85
+KPX Y Ocircumflex -85
+KPX Y Odieresis -85
+KPX Y Ograve -85
+KPX Y Ohungarumlaut -85
+KPX Y Omacron -85
+KPX Y Oslash -85
+KPX Y Otilde -85
+KPX Y a -140
+KPX Y aacute -140
+KPX Y abreve -70
+KPX Y acircumflex -140
+KPX Y adieresis -140
+KPX Y agrave -140
+KPX Y amacron -70
+KPX Y aogonek -140
+KPX Y aring -140
+KPX Y atilde -140
+KPX Y colon -60
+KPX Y comma -140
+KPX Y e -140
+KPX Y eacute -140
+KPX Y ecaron -140
+KPX Y ecircumflex -140
+KPX Y edieresis -140
+KPX Y edotaccent -140
+KPX Y egrave -140
+KPX Y emacron -70
+KPX Y eogonek -140
+KPX Y hyphen -140
+KPX Y i -20
+KPX Y iacute -20
+KPX Y iogonek -20
+KPX Y o -140
+KPX Y oacute -140
+KPX Y ocircumflex -140
+KPX Y odieresis -140
+KPX Y ograve -140
+KPX Y ohungarumlaut -140
+KPX Y omacron -140
+KPX Y oslash -140
+KPX Y otilde -140
+KPX Y period -140
+KPX Y semicolon -60
+KPX Y u -110
+KPX Y uacute -110
+KPX Y ucircumflex -110
+KPX Y udieresis -110
+KPX Y ugrave -110
+KPX Y uhungarumlaut -110
+KPX Y umacron -110
+KPX Y uogonek -110
+KPX Y uring -110
+KPX Yacute A -110
+KPX Yacute Aacute -110
+KPX Yacute Abreve -110
+KPX Yacute Acircumflex -110
+KPX Yacute Adieresis -110
+KPX Yacute Agrave -110
+KPX Yacute Amacron -110
+KPX Yacute Aogonek -110
+KPX Yacute Aring -110
+KPX Yacute Atilde -110
+KPX Yacute O -85
+KPX Yacute Oacute -85
+KPX Yacute Ocircumflex -85
+KPX Yacute Odieresis -85
+KPX Yacute Ograve -85
+KPX Yacute Ohungarumlaut -85
+KPX Yacute Omacron -85
+KPX Yacute Oslash -85
+KPX Yacute Otilde -85
+KPX Yacute a -140
+KPX Yacute aacute -140
+KPX Yacute abreve -70
+KPX Yacute acircumflex -140
+KPX Yacute adieresis -140
+KPX Yacute agrave -140
+KPX Yacute amacron -70
+KPX Yacute aogonek -140
+KPX Yacute aring -140
+KPX Yacute atilde -70
+KPX Yacute colon -60
+KPX Yacute comma -140
+KPX Yacute e -140
+KPX Yacute eacute -140
+KPX Yacute ecaron -140
+KPX Yacute ecircumflex -140
+KPX Yacute edieresis -140
+KPX Yacute edotaccent -140
+KPX Yacute egrave -140
+KPX Yacute emacron -70
+KPX Yacute eogonek -140
+KPX Yacute hyphen -140
+KPX Yacute i -20
+KPX Yacute iacute -20
+KPX Yacute iogonek -20
+KPX Yacute o -140
+KPX Yacute oacute -140
+KPX Yacute ocircumflex -140
+KPX Yacute odieresis -140
+KPX Yacute ograve -140
+KPX Yacute ohungarumlaut -140
+KPX Yacute omacron -70
+KPX Yacute oslash -140
+KPX Yacute otilde -140
+KPX Yacute period -140
+KPX Yacute semicolon -60
+KPX Yacute u -110
+KPX Yacute uacute -110
+KPX Yacute ucircumflex -110
+KPX Yacute udieresis -110
+KPX Yacute ugrave -110
+KPX Yacute uhungarumlaut -110
+KPX Yacute umacron -110
+KPX Yacute uogonek -110
+KPX Yacute uring -110
+KPX Ydieresis A -110
+KPX Ydieresis Aacute -110
+KPX Ydieresis Abreve -110
+KPX Ydieresis Acircumflex -110
+KPX Ydieresis Adieresis -110
+KPX Ydieresis Agrave -110
+KPX Ydieresis Amacron -110
+KPX Ydieresis Aogonek -110
+KPX Ydieresis Aring -110
+KPX Ydieresis Atilde -110
+KPX Ydieresis O -85
+KPX Ydieresis Oacute -85
+KPX Ydieresis Ocircumflex -85
+KPX Ydieresis Odieresis -85
+KPX Ydieresis Ograve -85
+KPX Ydieresis Ohungarumlaut -85
+KPX Ydieresis Omacron -85
+KPX Ydieresis Oslash -85
+KPX Ydieresis Otilde -85
+KPX Ydieresis a -140
+KPX Ydieresis aacute -140
+KPX Ydieresis abreve -70
+KPX Ydieresis acircumflex -140
+KPX Ydieresis adieresis -140
+KPX Ydieresis agrave -140
+KPX Ydieresis amacron -70
+KPX Ydieresis aogonek -140
+KPX Ydieresis aring -140
+KPX Ydieresis atilde -70
+KPX Ydieresis colon -60
+KPX Ydieresis comma -140
+KPX Ydieresis e -140
+KPX Ydieresis eacute -140
+KPX Ydieresis ecaron -140
+KPX Ydieresis ecircumflex -140
+KPX Ydieresis edieresis -140
+KPX Ydieresis edotaccent -140
+KPX Ydieresis egrave -140
+KPX Ydieresis emacron -70
+KPX Ydieresis eogonek -140
+KPX Ydieresis hyphen -140
+KPX Ydieresis i -20
+KPX Ydieresis iacute -20
+KPX Ydieresis iogonek -20
+KPX Ydieresis o -140
+KPX Ydieresis oacute -140
+KPX Ydieresis ocircumflex -140
+KPX Ydieresis odieresis -140
+KPX Ydieresis ograve -140
+KPX Ydieresis ohungarumlaut -140
+KPX Ydieresis omacron -140
+KPX Ydieresis oslash -140
+KPX Ydieresis otilde -140
+KPX Ydieresis period -140
+KPX Ydieresis semicolon -60
+KPX Ydieresis u -110
+KPX Ydieresis uacute -110
+KPX Ydieresis ucircumflex -110
+KPX Ydieresis udieresis -110
+KPX Ydieresis ugrave -110
+KPX Ydieresis uhungarumlaut -110
+KPX Ydieresis umacron -110
+KPX Ydieresis uogonek -110
+KPX Ydieresis uring -110
+KPX a v -20
+KPX a w -20
+KPX a y -30
+KPX a yacute -30
+KPX a ydieresis -30
+KPX aacute v -20
+KPX aacute w -20
+KPX aacute y -30
+KPX aacute yacute -30
+KPX aacute ydieresis -30
+KPX abreve v -20
+KPX abreve w -20
+KPX abreve y -30
+KPX abreve yacute -30
+KPX abreve ydieresis -30
+KPX acircumflex v -20
+KPX acircumflex w -20
+KPX acircumflex y -30
+KPX acircumflex yacute -30
+KPX acircumflex ydieresis -30
+KPX adieresis v -20
+KPX adieresis w -20
+KPX adieresis y -30
+KPX adieresis yacute -30
+KPX adieresis ydieresis -30
+KPX agrave v -20
+KPX agrave w -20
+KPX agrave y -30
+KPX agrave yacute -30
+KPX agrave ydieresis -30
+KPX amacron v -20
+KPX amacron w -20
+KPX amacron y -30
+KPX amacron yacute -30
+KPX amacron ydieresis -30
+KPX aogonek v -20
+KPX aogonek w -20
+KPX aogonek y -30
+KPX aogonek yacute -30
+KPX aogonek ydieresis -30
+KPX aring v -20
+KPX aring w -20
+KPX aring y -30
+KPX aring yacute -30
+KPX aring ydieresis -30
+KPX atilde v -20
+KPX atilde w -20
+KPX atilde y -30
+KPX atilde yacute -30
+KPX atilde ydieresis -30
+KPX b b -10
+KPX b comma -40
+KPX b l -20
+KPX b lacute -20
+KPX b lcommaaccent -20
+KPX b lslash -20
+KPX b period -40
+KPX b u -20
+KPX b uacute -20
+KPX b ucircumflex -20
+KPX b udieresis -20
+KPX b ugrave -20
+KPX b uhungarumlaut -20
+KPX b umacron -20
+KPX b uogonek -20
+KPX b uring -20
+KPX b v -20
+KPX b y -20
+KPX b yacute -20
+KPX b ydieresis -20
+KPX c comma -15
+KPX c k -20
+KPX c kcommaaccent -20
+KPX cacute comma -15
+KPX cacute k -20
+KPX cacute kcommaaccent -20
+KPX ccaron comma -15
+KPX ccaron k -20
+KPX ccaron kcommaaccent -20
+KPX ccedilla comma -15
+KPX ccedilla k -20
+KPX ccedilla kcommaaccent -20
+KPX colon space -50
+KPX comma quotedblright -100
+KPX comma quoteright -100
+KPX e comma -15
+KPX e period -15
+KPX e v -30
+KPX e w -20
+KPX e x -30
+KPX e y -20
+KPX e yacute -20
+KPX e ydieresis -20
+KPX eacute comma -15
+KPX eacute period -15
+KPX eacute v -30
+KPX eacute w -20
+KPX eacute x -30
+KPX eacute y -20
+KPX eacute yacute -20
+KPX eacute ydieresis -20
+KPX ecaron comma -15
+KPX ecaron period -15
+KPX ecaron v -30
+KPX ecaron w -20
+KPX ecaron x -30
+KPX ecaron y -20
+KPX ecaron yacute -20
+KPX ecaron ydieresis -20
+KPX ecircumflex comma -15
+KPX ecircumflex period -15
+KPX ecircumflex v -30
+KPX ecircumflex w -20
+KPX ecircumflex x -30
+KPX ecircumflex y -20
+KPX ecircumflex yacute -20
+KPX ecircumflex ydieresis -20
+KPX edieresis comma -15
+KPX edieresis period -15
+KPX edieresis v -30
+KPX edieresis w -20
+KPX edieresis x -30
+KPX edieresis y -20
+KPX edieresis yacute -20
+KPX edieresis ydieresis -20
+KPX edotaccent comma -15
+KPX edotaccent period -15
+KPX edotaccent v -30
+KPX edotaccent w -20
+KPX edotaccent x -30
+KPX edotaccent y -20
+KPX edotaccent yacute -20
+KPX edotaccent ydieresis -20
+KPX egrave comma -15
+KPX egrave period -15
+KPX egrave v -30
+KPX egrave w -20
+KPX egrave x -30
+KPX egrave y -20
+KPX egrave yacute -20
+KPX egrave ydieresis -20
+KPX emacron comma -15
+KPX emacron period -15
+KPX emacron v -30
+KPX emacron w -20
+KPX emacron x -30
+KPX emacron y -20
+KPX emacron yacute -20
+KPX emacron ydieresis -20
+KPX eogonek comma -15
+KPX eogonek period -15
+KPX eogonek v -30
+KPX eogonek w -20
+KPX eogonek x -30
+KPX eogonek y -20
+KPX eogonek yacute -20
+KPX eogonek ydieresis -20
+KPX f a -30
+KPX f aacute -30
+KPX f abreve -30
+KPX f acircumflex -30
+KPX f adieresis -30
+KPX f agrave -30
+KPX f amacron -30
+KPX f aogonek -30
+KPX f aring -30
+KPX f atilde -30
+KPX f comma -30
+KPX f dotlessi -28
+KPX f e -30
+KPX f eacute -30
+KPX f ecaron -30
+KPX f ecircumflex -30
+KPX f edieresis -30
+KPX f edotaccent -30
+KPX f egrave -30
+KPX f emacron -30
+KPX f eogonek -30
+KPX f o -30
+KPX f oacute -30
+KPX f ocircumflex -30
+KPX f odieresis -30
+KPX f ograve -30
+KPX f ohungarumlaut -30
+KPX f omacron -30
+KPX f oslash -30
+KPX f otilde -30
+KPX f period -30
+KPX f quotedblright 60
+KPX f quoteright 50
+KPX g r -10
+KPX g racute -10
+KPX g rcaron -10
+KPX g rcommaaccent -10
+KPX gbreve r -10
+KPX gbreve racute -10
+KPX gbreve rcaron -10
+KPX gbreve rcommaaccent -10
+KPX gcommaaccent r -10
+KPX gcommaaccent racute -10
+KPX gcommaaccent rcaron -10
+KPX gcommaaccent rcommaaccent -10
+KPX h y -30
+KPX h yacute -30
+KPX h ydieresis -30
+KPX k e -20
+KPX k eacute -20
+KPX k ecaron -20
+KPX k ecircumflex -20
+KPX k edieresis -20
+KPX k edotaccent -20
+KPX k egrave -20
+KPX k emacron -20
+KPX k eogonek -20
+KPX k o -20
+KPX k oacute -20
+KPX k ocircumflex -20
+KPX k odieresis -20
+KPX k ograve -20
+KPX k ohungarumlaut -20
+KPX k omacron -20
+KPX k oslash -20
+KPX k otilde -20
+KPX kcommaaccent e -20
+KPX kcommaaccent eacute -20
+KPX kcommaaccent ecaron -20
+KPX kcommaaccent ecircumflex -20
+KPX kcommaaccent edieresis -20
+KPX kcommaaccent edotaccent -20
+KPX kcommaaccent egrave -20
+KPX kcommaaccent emacron -20
+KPX kcommaaccent eogonek -20
+KPX kcommaaccent o -20
+KPX kcommaaccent oacute -20
+KPX kcommaaccent ocircumflex -20
+KPX kcommaaccent odieresis -20
+KPX kcommaaccent ograve -20
+KPX kcommaaccent ohungarumlaut -20
+KPX kcommaaccent omacron -20
+KPX kcommaaccent oslash -20
+KPX kcommaaccent otilde -20
+KPX m u -10
+KPX m uacute -10
+KPX m ucircumflex -10
+KPX m udieresis -10
+KPX m ugrave -10
+KPX m uhungarumlaut -10
+KPX m umacron -10
+KPX m uogonek -10
+KPX m uring -10
+KPX m y -15
+KPX m yacute -15
+KPX m ydieresis -15
+KPX n u -10
+KPX n uacute -10
+KPX n ucircumflex -10
+KPX n udieresis -10
+KPX n ugrave -10
+KPX n uhungarumlaut -10
+KPX n umacron -10
+KPX n uogonek -10
+KPX n uring -10
+KPX n v -20
+KPX n y -15
+KPX n yacute -15
+KPX n ydieresis -15
+KPX nacute u -10
+KPX nacute uacute -10
+KPX nacute ucircumflex -10
+KPX nacute udieresis -10
+KPX nacute ugrave -10
+KPX nacute uhungarumlaut -10
+KPX nacute umacron -10
+KPX nacute uogonek -10
+KPX nacute uring -10
+KPX nacute v -20
+KPX nacute y -15
+KPX nacute yacute -15
+KPX nacute ydieresis -15
+KPX ncaron u -10
+KPX ncaron uacute -10
+KPX ncaron ucircumflex -10
+KPX ncaron udieresis -10
+KPX ncaron ugrave -10
+KPX ncaron uhungarumlaut -10
+KPX ncaron umacron -10
+KPX ncaron uogonek -10
+KPX ncaron uring -10
+KPX ncaron v -20
+KPX ncaron y -15
+KPX ncaron yacute -15
+KPX ncaron ydieresis -15
+KPX ncommaaccent u -10
+KPX ncommaaccent uacute -10
+KPX ncommaaccent ucircumflex -10
+KPX ncommaaccent udieresis -10
+KPX ncommaaccent ugrave -10
+KPX ncommaaccent uhungarumlaut -10
+KPX ncommaaccent umacron -10
+KPX ncommaaccent uogonek -10
+KPX ncommaaccent uring -10
+KPX ncommaaccent v -20
+KPX ncommaaccent y -15
+KPX ncommaaccent yacute -15
+KPX ncommaaccent ydieresis -15
+KPX ntilde u -10
+KPX ntilde uacute -10
+KPX ntilde ucircumflex -10
+KPX ntilde udieresis -10
+KPX ntilde ugrave -10
+KPX ntilde uhungarumlaut -10
+KPX ntilde umacron -10
+KPX ntilde uogonek -10
+KPX ntilde uring -10
+KPX ntilde v -20
+KPX ntilde y -15
+KPX ntilde yacute -15
+KPX ntilde ydieresis -15
+KPX o comma -40
+KPX o period -40
+KPX o v -15
+KPX o w -15
+KPX o x -30
+KPX o y -30
+KPX o yacute -30
+KPX o ydieresis -30
+KPX oacute comma -40
+KPX oacute period -40
+KPX oacute v -15
+KPX oacute w -15
+KPX oacute x -30
+KPX oacute y -30
+KPX oacute yacute -30
+KPX oacute ydieresis -30
+KPX ocircumflex comma -40
+KPX ocircumflex period -40
+KPX ocircumflex v -15
+KPX ocircumflex w -15
+KPX ocircumflex x -30
+KPX ocircumflex y -30
+KPX ocircumflex yacute -30
+KPX ocircumflex ydieresis -30
+KPX odieresis comma -40
+KPX odieresis period -40
+KPX odieresis v -15
+KPX odieresis w -15
+KPX odieresis x -30
+KPX odieresis y -30
+KPX odieresis yacute -30
+KPX odieresis ydieresis -30
+KPX ograve comma -40
+KPX ograve period -40
+KPX ograve v -15
+KPX ograve w -15
+KPX ograve x -30
+KPX ograve y -30
+KPX ograve yacute -30
+KPX ograve ydieresis -30
+KPX ohungarumlaut comma -40
+KPX ohungarumlaut period -40
+KPX ohungarumlaut v -15
+KPX ohungarumlaut w -15
+KPX ohungarumlaut x -30
+KPX ohungarumlaut y -30
+KPX ohungarumlaut yacute -30
+KPX ohungarumlaut ydieresis -30
+KPX omacron comma -40
+KPX omacron period -40
+KPX omacron v -15
+KPX omacron w -15
+KPX omacron x -30
+KPX omacron y -30
+KPX omacron yacute -30
+KPX omacron ydieresis -30
+KPX oslash a -55
+KPX oslash aacute -55
+KPX oslash abreve -55
+KPX oslash acircumflex -55
+KPX oslash adieresis -55
+KPX oslash agrave -55
+KPX oslash amacron -55
+KPX oslash aogonek -55
+KPX oslash aring -55
+KPX oslash atilde -55
+KPX oslash b -55
+KPX oslash c -55
+KPX oslash cacute -55
+KPX oslash ccaron -55
+KPX oslash ccedilla -55
+KPX oslash comma -95
+KPX oslash d -55
+KPX oslash dcroat -55
+KPX oslash e -55
+KPX oslash eacute -55
+KPX oslash ecaron -55
+KPX oslash ecircumflex -55
+KPX oslash edieresis -55
+KPX oslash edotaccent -55
+KPX oslash egrave -55
+KPX oslash emacron -55
+KPX oslash eogonek -55
+KPX oslash f -55
+KPX oslash g -55
+KPX oslash gbreve -55
+KPX oslash gcommaaccent -55
+KPX oslash h -55
+KPX oslash i -55
+KPX oslash iacute -55
+KPX oslash icircumflex -55
+KPX oslash idieresis -55
+KPX oslash igrave -55
+KPX oslash imacron -55
+KPX oslash iogonek -55
+KPX oslash j -55
+KPX oslash k -55
+KPX oslash kcommaaccent -55
+KPX oslash l -55
+KPX oslash lacute -55
+KPX oslash lcommaaccent -55
+KPX oslash lslash -55
+KPX oslash m -55
+KPX oslash n -55
+KPX oslash nacute -55
+KPX oslash ncaron -55
+KPX oslash ncommaaccent -55
+KPX oslash ntilde -55
+KPX oslash o -55
+KPX oslash oacute -55
+KPX oslash ocircumflex -55
+KPX oslash odieresis -55
+KPX oslash ograve -55
+KPX oslash ohungarumlaut -55
+KPX oslash omacron -55
+KPX oslash oslash -55
+KPX oslash otilde -55
+KPX oslash p -55
+KPX oslash period -95
+KPX oslash q -55
+KPX oslash r -55
+KPX oslash racute -55
+KPX oslash rcaron -55
+KPX oslash rcommaaccent -55
+KPX oslash s -55
+KPX oslash sacute -55
+KPX oslash scaron -55
+KPX oslash scedilla -55
+KPX oslash scommaaccent -55
+KPX oslash t -55
+KPX oslash tcommaaccent -55
+KPX oslash u -55
+KPX oslash uacute -55
+KPX oslash ucircumflex -55
+KPX oslash udieresis -55
+KPX oslash ugrave -55
+KPX oslash uhungarumlaut -55
+KPX oslash umacron -55
+KPX oslash uogonek -55
+KPX oslash uring -55
+KPX oslash v -70
+KPX oslash w -70
+KPX oslash x -85
+KPX oslash y -70
+KPX oslash yacute -70
+KPX oslash ydieresis -70
+KPX oslash z -55
+KPX oslash zacute -55
+KPX oslash zcaron -55
+KPX oslash zdotaccent -55
+KPX otilde comma -40
+KPX otilde period -40
+KPX otilde v -15
+KPX otilde w -15
+KPX otilde x -30
+KPX otilde y -30
+KPX otilde yacute -30
+KPX otilde ydieresis -30
+KPX p comma -35
+KPX p period -35
+KPX p y -30
+KPX p yacute -30
+KPX p ydieresis -30
+KPX period quotedblright -100
+KPX period quoteright -100
+KPX period space -60
+KPX quotedblright space -40
+KPX quoteleft quoteleft -57
+KPX quoteright d -50
+KPX quoteright dcroat -50
+KPX quoteright quoteright -57
+KPX quoteright r -50
+KPX quoteright racute -50
+KPX quoteright rcaron -50
+KPX quoteright rcommaaccent -50
+KPX quoteright s -50
+KPX quoteright sacute -50
+KPX quoteright scaron -50
+KPX quoteright scedilla -50
+KPX quoteright scommaaccent -50
+KPX quoteright space -70
+KPX r a -10
+KPX r aacute -10
+KPX r abreve -10
+KPX r acircumflex -10
+KPX r adieresis -10
+KPX r agrave -10
+KPX r amacron -10
+KPX r aogonek -10
+KPX r aring -10
+KPX r atilde -10
+KPX r colon 30
+KPX r comma -50
+KPX r i 15
+KPX r iacute 15
+KPX r icircumflex 15
+KPX r idieresis 15
+KPX r igrave 15
+KPX r imacron 15
+KPX r iogonek 15
+KPX r k 15
+KPX r kcommaaccent 15
+KPX r l 15
+KPX r lacute 15
+KPX r lcommaaccent 15
+KPX r lslash 15
+KPX r m 25
+KPX r n 25
+KPX r nacute 25
+KPX r ncaron 25
+KPX r ncommaaccent 25
+KPX r ntilde 25
+KPX r p 30
+KPX r period -50
+KPX r semicolon 30
+KPX r t 40
+KPX r tcommaaccent 40
+KPX r u 15
+KPX r uacute 15
+KPX r ucircumflex 15
+KPX r udieresis 15
+KPX r ugrave 15
+KPX r uhungarumlaut 15
+KPX r umacron 15
+KPX r uogonek 15
+KPX r uring 15
+KPX r v 30
+KPX r y 30
+KPX r yacute 30
+KPX r ydieresis 30
+KPX racute a -10
+KPX racute aacute -10
+KPX racute abreve -10
+KPX racute acircumflex -10
+KPX racute adieresis -10
+KPX racute agrave -10
+KPX racute amacron -10
+KPX racute aogonek -10
+KPX racute aring -10
+KPX racute atilde -10
+KPX racute colon 30
+KPX racute comma -50
+KPX racute i 15
+KPX racute iacute 15
+KPX racute icircumflex 15
+KPX racute idieresis 15
+KPX racute igrave 15
+KPX racute imacron 15
+KPX racute iogonek 15
+KPX racute k 15
+KPX racute kcommaaccent 15
+KPX racute l 15
+KPX racute lacute 15
+KPX racute lcommaaccent 15
+KPX racute lslash 15
+KPX racute m 25
+KPX racute n 25
+KPX racute nacute 25
+KPX racute ncaron 25
+KPX racute ncommaaccent 25
+KPX racute ntilde 25
+KPX racute p 30
+KPX racute period -50
+KPX racute semicolon 30
+KPX racute t 40
+KPX racute tcommaaccent 40
+KPX racute u 15
+KPX racute uacute 15
+KPX racute ucircumflex 15
+KPX racute udieresis 15
+KPX racute ugrave 15
+KPX racute uhungarumlaut 15
+KPX racute umacron 15
+KPX racute uogonek 15
+KPX racute uring 15
+KPX racute v 30
+KPX racute y 30
+KPX racute yacute 30
+KPX racute ydieresis 30
+KPX rcaron a -10
+KPX rcaron aacute -10
+KPX rcaron abreve -10
+KPX rcaron acircumflex -10
+KPX rcaron adieresis -10
+KPX rcaron agrave -10
+KPX rcaron amacron -10
+KPX rcaron aogonek -10
+KPX rcaron aring -10
+KPX rcaron atilde -10
+KPX rcaron colon 30
+KPX rcaron comma -50
+KPX rcaron i 15
+KPX rcaron iacute 15
+KPX rcaron icircumflex 15
+KPX rcaron idieresis 15
+KPX rcaron igrave 15
+KPX rcaron imacron 15
+KPX rcaron iogonek 15
+KPX rcaron k 15
+KPX rcaron kcommaaccent 15
+KPX rcaron l 15
+KPX rcaron lacute 15
+KPX rcaron lcommaaccent 15
+KPX rcaron lslash 15
+KPX rcaron m 25
+KPX rcaron n 25
+KPX rcaron nacute 25
+KPX rcaron ncaron 25
+KPX rcaron ncommaaccent 25
+KPX rcaron ntilde 25
+KPX rcaron p 30
+KPX rcaron period -50
+KPX rcaron semicolon 30
+KPX rcaron t 40
+KPX rcaron tcommaaccent 40
+KPX rcaron u 15
+KPX rcaron uacute 15
+KPX rcaron ucircumflex 15
+KPX rcaron udieresis 15
+KPX rcaron ugrave 15
+KPX rcaron uhungarumlaut 15
+KPX rcaron umacron 15
+KPX rcaron uogonek 15
+KPX rcaron uring 15
+KPX rcaron v 30
+KPX rcaron y 30
+KPX rcaron yacute 30
+KPX rcaron ydieresis 30
+KPX rcommaaccent a -10
+KPX rcommaaccent aacute -10
+KPX rcommaaccent abreve -10
+KPX rcommaaccent acircumflex -10
+KPX rcommaaccent adieresis -10
+KPX rcommaaccent agrave -10
+KPX rcommaaccent amacron -10
+KPX rcommaaccent aogonek -10
+KPX rcommaaccent aring -10
+KPX rcommaaccent atilde -10
+KPX rcommaaccent colon 30
+KPX rcommaaccent comma -50
+KPX rcommaaccent i 15
+KPX rcommaaccent iacute 15
+KPX rcommaaccent icircumflex 15
+KPX rcommaaccent idieresis 15
+KPX rcommaaccent igrave 15
+KPX rcommaaccent imacron 15
+KPX rcommaaccent iogonek 15
+KPX rcommaaccent k 15
+KPX rcommaaccent kcommaaccent 15
+KPX rcommaaccent l 15
+KPX rcommaaccent lacute 15
+KPX rcommaaccent lcommaaccent 15
+KPX rcommaaccent lslash 15
+KPX rcommaaccent m 25
+KPX rcommaaccent n 25
+KPX rcommaaccent nacute 25
+KPX rcommaaccent ncaron 25
+KPX rcommaaccent ncommaaccent 25
+KPX rcommaaccent ntilde 25
+KPX rcommaaccent p 30
+KPX rcommaaccent period -50
+KPX rcommaaccent semicolon 30
+KPX rcommaaccent t 40
+KPX rcommaaccent tcommaaccent 40
+KPX rcommaaccent u 15
+KPX rcommaaccent uacute 15
+KPX rcommaaccent ucircumflex 15
+KPX rcommaaccent udieresis 15
+KPX rcommaaccent ugrave 15
+KPX rcommaaccent uhungarumlaut 15
+KPX rcommaaccent umacron 15
+KPX rcommaaccent uogonek 15
+KPX rcommaaccent uring 15
+KPX rcommaaccent v 30
+KPX rcommaaccent y 30
+KPX rcommaaccent yacute 30
+KPX rcommaaccent ydieresis 30
+KPX s comma -15
+KPX s period -15
+KPX s w -30
+KPX sacute comma -15
+KPX sacute period -15
+KPX sacute w -30
+KPX scaron comma -15
+KPX scaron period -15
+KPX scaron w -30
+KPX scedilla comma -15
+KPX scedilla period -15
+KPX scedilla w -30
+KPX scommaaccent comma -15
+KPX scommaaccent period -15
+KPX scommaaccent w -30
+KPX semicolon space -50
+KPX space T -50
+KPX space Tcaron -50
+KPX space Tcommaaccent -50
+KPX space V -50
+KPX space W -40
+KPX space Y -90
+KPX space Yacute -90
+KPX space Ydieresis -90
+KPX space quotedblleft -30
+KPX space quoteleft -60
+KPX v a -25
+KPX v aacute -25
+KPX v abreve -25
+KPX v acircumflex -25
+KPX v adieresis -25
+KPX v agrave -25
+KPX v amacron -25
+KPX v aogonek -25
+KPX v aring -25
+KPX v atilde -25
+KPX v comma -80
+KPX v e -25
+KPX v eacute -25
+KPX v ecaron -25
+KPX v ecircumflex -25
+KPX v edieresis -25
+KPX v edotaccent -25
+KPX v egrave -25
+KPX v emacron -25
+KPX v eogonek -25
+KPX v o -25
+KPX v oacute -25
+KPX v ocircumflex -25
+KPX v odieresis -25
+KPX v ograve -25
+KPX v ohungarumlaut -25
+KPX v omacron -25
+KPX v oslash -25
+KPX v otilde -25
+KPX v period -80
+KPX w a -15
+KPX w aacute -15
+KPX w abreve -15
+KPX w acircumflex -15
+KPX w adieresis -15
+KPX w agrave -15
+KPX w amacron -15
+KPX w aogonek -15
+KPX w aring -15
+KPX w atilde -15
+KPX w comma -60
+KPX w e -10
+KPX w eacute -10
+KPX w ecaron -10
+KPX w ecircumflex -10
+KPX w edieresis -10
+KPX w edotaccent -10
+KPX w egrave -10
+KPX w emacron -10
+KPX w eogonek -10
+KPX w o -10
+KPX w oacute -10
+KPX w ocircumflex -10
+KPX w odieresis -10
+KPX w ograve -10
+KPX w ohungarumlaut -10
+KPX w omacron -10
+KPX w oslash -10
+KPX w otilde -10
+KPX w period -60
+KPX x e -30
+KPX x eacute -30
+KPX x ecaron -30
+KPX x ecircumflex -30
+KPX x edieresis -30
+KPX x edotaccent -30
+KPX x egrave -30
+KPX x emacron -30
+KPX x eogonek -30
+KPX y a -20
+KPX y aacute -20
+KPX y abreve -20
+KPX y acircumflex -20
+KPX y adieresis -20
+KPX y agrave -20
+KPX y amacron -20
+KPX y aogonek -20
+KPX y aring -20
+KPX y atilde -20
+KPX y comma -100
+KPX y e -20
+KPX y eacute -20
+KPX y ecaron -20
+KPX y ecircumflex -20
+KPX y edieresis -20
+KPX y edotaccent -20
+KPX y egrave -20
+KPX y emacron -20
+KPX y eogonek -20
+KPX y o -20
+KPX y oacute -20
+KPX y ocircumflex -20
+KPX y odieresis -20
+KPX y ograve -20
+KPX y ohungarumlaut -20
+KPX y omacron -20
+KPX y oslash -20
+KPX y otilde -20
+KPX y period -100
+KPX yacute a -20
+KPX yacute aacute -20
+KPX yacute abreve -20
+KPX yacute acircumflex -20
+KPX yacute adieresis -20
+KPX yacute agrave -20
+KPX yacute amacron -20
+KPX yacute aogonek -20
+KPX yacute aring -20
+KPX yacute atilde -20
+KPX yacute comma -100
+KPX yacute e -20
+KPX yacute eacute -20
+KPX yacute ecaron -20
+KPX yacute ecircumflex -20
+KPX yacute edieresis -20
+KPX yacute edotaccent -20
+KPX yacute egrave -20
+KPX yacute emacron -20
+KPX yacute eogonek -20
+KPX yacute o -20
+KPX yacute oacute -20
+KPX yacute ocircumflex -20
+KPX yacute odieresis -20
+KPX yacute ograve -20
+KPX yacute ohungarumlaut -20
+KPX yacute omacron -20
+KPX yacute oslash -20
+KPX yacute otilde -20
+KPX yacute period -100
+KPX ydieresis a -20
+KPX ydieresis aacute -20
+KPX ydieresis abreve -20
+KPX ydieresis acircumflex -20
+KPX ydieresis adieresis -20
+KPX ydieresis agrave -20
+KPX ydieresis amacron -20
+KPX ydieresis aogonek -20
+KPX ydieresis aring -20
+KPX ydieresis atilde -20
+KPX ydieresis comma -100
+KPX ydieresis e -20
+KPX ydieresis eacute -20
+KPX ydieresis ecaron -20
+KPX ydieresis ecircumflex -20
+KPX ydieresis edieresis -20
+KPX ydieresis edotaccent -20
+KPX ydieresis egrave -20
+KPX ydieresis emacron -20
+KPX ydieresis eogonek -20
+KPX ydieresis o -20
+KPX ydieresis oacute -20
+KPX ydieresis ocircumflex -20
+KPX ydieresis odieresis -20
+KPX ydieresis ograve -20
+KPX ydieresis ohungarumlaut -20
+KPX ydieresis omacron -20
+KPX ydieresis oslash -20
+KPX ydieresis otilde -20
+KPX ydieresis period -100
+KPX z e -15
+KPX z eacute -15
+KPX z ecaron -15
+KPX z ecircumflex -15
+KPX z edieresis -15
+KPX z edotaccent -15
+KPX z egrave -15
+KPX z emacron -15
+KPX z eogonek -15
+KPX z o -15
+KPX z oacute -15
+KPX z ocircumflex -15
+KPX z odieresis -15
+KPX z ograve -15
+KPX z ohungarumlaut -15
+KPX z omacron -15
+KPX z oslash -15
+KPX z otilde -15
+KPX zacute e -15
+KPX zacute eacute -15
+KPX zacute ecaron -15
+KPX zacute ecircumflex -15
+KPX zacute edieresis -15
+KPX zacute edotaccent -15
+KPX zacute egrave -15
+KPX zacute emacron -15
+KPX zacute eogonek -15
+KPX zacute o -15
+KPX zacute oacute -15
+KPX zacute ocircumflex -15
+KPX zacute odieresis -15
+KPX zacute ograve -15
+KPX zacute ohungarumlaut -15
+KPX zacute omacron -15
+KPX zacute oslash -15
+KPX zacute otilde -15
+KPX zcaron e -15
+KPX zcaron eacute -15
+KPX zcaron ecaron -15
+KPX zcaron ecircumflex -15
+KPX zcaron edieresis -15
+KPX zcaron edotaccent -15
+KPX zcaron egrave -15
+KPX zcaron emacron -15
+KPX zcaron eogonek -15
+KPX zcaron o -15
+KPX zcaron oacute -15
+KPX zcaron ocircumflex -15
+KPX zcaron odieresis -15
+KPX zcaron ograve -15
+KPX zcaron ohungarumlaut -15
+KPX zcaron omacron -15
+KPX zcaron oslash -15
+KPX zcaron otilde -15
+KPX zdotaccent e -15
+KPX zdotaccent eacute -15
+KPX zdotaccent ecaron -15
+KPX zdotaccent ecircumflex -15
+KPX zdotaccent edieresis -15
+KPX zdotaccent edotaccent -15
+KPX zdotaccent egrave -15
+KPX zdotaccent emacron -15
+KPX zdotaccent eogonek -15
+KPX zdotaccent o -15
+KPX zdotaccent oacute -15
+KPX zdotaccent ocircumflex -15
+KPX zdotaccent odieresis -15
+KPX zdotaccent ograve -15
+KPX zdotaccent ohungarumlaut -15
+KPX zdotaccent omacron -15
+KPX zdotaccent oslash -15
+KPX zdotaccent otilde -15
+EndKernPairs
+EndKernData
+EndFontMetrics
diff --git a/php/extras/fonts/ps/Symbol.afm b/php/extras/fonts/ps/Symbol.afm
new file mode 100644
index 000000000..6a5386a91
--- /dev/null
+++ b/php/extras/fonts/ps/Symbol.afm
@@ -0,0 +1,213 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All rights reserved.
+Comment Creation Date: Thu May 1 15:12:25 1997
+Comment UniqueID 43064
+Comment VMusage 30820 39997
+FontName Symbol
+FullName Symbol
+FamilyName Symbol
+Weight Medium
+ItalicAngle 0
+IsFixedPitch false
+CharacterSet Special
+FontBBox -180 -293 1090 1010
+UnderlinePosition -100
+UnderlineThickness 50
+Version 001.008
+Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All rights reserved.
+EncodingScheme FontSpecific
+StdHW 92
+StdVW 85
+StartCharMetrics 190
+C 32 ; WX 250 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 333 ; N exclam ; B 128 -17 240 672 ;
+C 34 ; WX 713 ; N universal ; B 31 0 681 705 ;
+C 35 ; WX 500 ; N numbersign ; B 20 -16 481 673 ;
+C 36 ; WX 549 ; N existential ; B 25 0 478 707 ;
+C 37 ; WX 833 ; N percent ; B 63 -36 771 655 ;
+C 38 ; WX 778 ; N ampersand ; B 41 -18 750 661 ;
+C 39 ; WX 439 ; N suchthat ; B 48 -17 414 500 ;
+C 40 ; WX 333 ; N parenleft ; B 53 -191 300 673 ;
+C 41 ; WX 333 ; N parenright ; B 30 -191 277 673 ;
+C 42 ; WX 500 ; N asteriskmath ; B 65 134 427 551 ;
+C 43 ; WX 549 ; N plus ; B 10 0 539 533 ;
+C 44 ; WX 250 ; N comma ; B 56 -152 194 104 ;
+C 45 ; WX 549 ; N minus ; B 11 233 535 288 ;
+C 46 ; WX 250 ; N period ; B 69 -17 181 95 ;
+C 47 ; WX 278 ; N slash ; B 0 -18 254 646 ;
+C 48 ; WX 500 ; N zero ; B 24 -14 476 685 ;
+C 49 ; WX 500 ; N one ; B 117 0 390 673 ;
+C 50 ; WX 500 ; N two ; B 25 0 475 685 ;
+C 51 ; WX 500 ; N three ; B 43 -14 435 685 ;
+C 52 ; WX 500 ; N four ; B 15 0 469 685 ;
+C 53 ; WX 500 ; N five ; B 32 -14 445 690 ;
+C 54 ; WX 500 ; N six ; B 34 -14 468 685 ;
+C 55 ; WX 500 ; N seven ; B 24 -16 448 673 ;
+C 56 ; WX 500 ; N eight ; B 56 -14 445 685 ;
+C 57 ; WX 500 ; N nine ; B 30 -18 459 685 ;
+C 58 ; WX 278 ; N colon ; B 81 -17 193 460 ;
+C 59 ; WX 278 ; N semicolon ; B 83 -152 221 460 ;
+C 60 ; WX 549 ; N less ; B 26 0 523 522 ;
+C 61 ; WX 549 ; N equal ; B 11 141 537 390 ;
+C 62 ; WX 549 ; N greater ; B 26 0 523 522 ;
+C 63 ; WX 444 ; N question ; B 70 -17 412 686 ;
+C 64 ; WX 549 ; N congruent ; B 11 0 537 475 ;
+C 65 ; WX 722 ; N Alpha ; B 4 0 684 673 ;
+C 66 ; WX 667 ; N Beta ; B 29 0 592 673 ;
+C 67 ; WX 722 ; N Chi ; B -9 0 704 673 ;
+C 68 ; WX 612 ; N Delta ; B 6 0 608 688 ;
+C 69 ; WX 611 ; N Epsilon ; B 32 0 617 673 ;
+C 70 ; WX 763 ; N Phi ; B 26 0 741 673 ;
+C 71 ; WX 603 ; N Gamma ; B 24 0 609 673 ;
+C 72 ; WX 722 ; N Eta ; B 39 0 729 673 ;
+C 73 ; WX 333 ; N Iota ; B 32 0 316 673 ;
+C 74 ; WX 631 ; N theta1 ; B 18 -18 623 689 ;
+C 75 ; WX 722 ; N Kappa ; B 35 0 722 673 ;
+C 76 ; WX 686 ; N Lambda ; B 6 0 680 688 ;
+C 77 ; WX 889 ; N Mu ; B 28 0 887 673 ;
+C 78 ; WX 722 ; N Nu ; B 29 -8 720 673 ;
+C 79 ; WX 722 ; N Omicron ; B 41 -17 715 685 ;
+C 80 ; WX 768 ; N Pi ; B 25 0 745 673 ;
+C 81 ; WX 741 ; N Theta ; B 41 -17 715 685 ;
+C 82 ; WX 556 ; N Rho ; B 28 0 563 673 ;
+C 83 ; WX 592 ; N Sigma ; B 5 0 589 673 ;
+C 84 ; WX 611 ; N Tau ; B 33 0 607 673 ;
+C 85 ; WX 690 ; N Upsilon ; B -8 0 694 673 ;
+C 86 ; WX 439 ; N sigma1 ; B 40 -233 436 500 ;
+C 87 ; WX 768 ; N Omega ; B 34 0 736 688 ;
+C 88 ; WX 645 ; N Xi ; B 40 0 599 673 ;
+C 89 ; WX 795 ; N Psi ; B 15 0 781 684 ;
+C 90 ; WX 611 ; N Zeta ; B 44 0 636 673 ;
+C 91 ; WX 333 ; N bracketleft ; B 86 -155 299 674 ;
+C 92 ; WX 863 ; N therefore ; B 163 0 701 487 ;
+C 93 ; WX 333 ; N bracketright ; B 33 -155 246 674 ;
+C 94 ; WX 658 ; N perpendicular ; B 15 0 652 674 ;
+C 95 ; WX 500 ; N underscore ; B -2 -125 502 -75 ;
+C 96 ; WX 500 ; N radicalex ; B 480 881 1090 917 ;
+C 97 ; WX 631 ; N alpha ; B 41 -18 622 500 ;
+C 98 ; WX 549 ; N beta ; B 61 -223 515 741 ;
+C 99 ; WX 549 ; N chi ; B 12 -231 522 499 ;
+C 100 ; WX 494 ; N delta ; B 40 -19 481 740 ;
+C 101 ; WX 439 ; N epsilon ; B 22 -19 427 502 ;
+C 102 ; WX 521 ; N phi ; B 28 -224 492 673 ;
+C 103 ; WX 411 ; N gamma ; B 5 -225 484 499 ;
+C 104 ; WX 603 ; N eta ; B 0 -202 527 514 ;
+C 105 ; WX 329 ; N iota ; B 0 -17 301 503 ;
+C 106 ; WX 603 ; N phi1 ; B 36 -224 587 499 ;
+C 107 ; WX 549 ; N kappa ; B 33 0 558 501 ;
+C 108 ; WX 549 ; N lambda ; B 24 -17 548 739 ;
+C 109 ; WX 576 ; N mu ; B 33 -223 567 500 ;
+C 110 ; WX 521 ; N nu ; B -9 -16 475 507 ;
+C 111 ; WX 549 ; N omicron ; B 35 -19 501 499 ;
+C 112 ; WX 549 ; N pi ; B 10 -19 530 487 ;
+C 113 ; WX 521 ; N theta ; B 43 -17 485 690 ;
+C 114 ; WX 549 ; N rho ; B 50 -230 490 499 ;
+C 115 ; WX 603 ; N sigma ; B 30 -21 588 500 ;
+C 116 ; WX 439 ; N tau ; B 10 -19 418 500 ;
+C 117 ; WX 576 ; N upsilon ; B 7 -18 535 507 ;
+C 118 ; WX 713 ; N omega1 ; B 12 -18 671 583 ;
+C 119 ; WX 686 ; N omega ; B 42 -17 684 500 ;
+C 120 ; WX 493 ; N xi ; B 27 -224 469 766 ;
+C 121 ; WX 686 ; N psi ; B 12 -228 701 500 ;
+C 122 ; WX 494 ; N zeta ; B 60 -225 467 756 ;
+C 123 ; WX 480 ; N braceleft ; B 58 -183 397 673 ;
+C 124 ; WX 200 ; N bar ; B 65 -293 135 707 ;
+C 125 ; WX 480 ; N braceright ; B 79 -183 418 673 ;
+C 126 ; WX 549 ; N similar ; B 17 203 529 307 ;
+C 160 ; WX 750 ; N Euro ; B 20 -12 714 685 ;
+C 161 ; WX 620 ; N Upsilon1 ; B -2 0 610 685 ;
+C 162 ; WX 247 ; N minute ; B 27 459 228 735 ;
+C 163 ; WX 549 ; N lessequal ; B 29 0 526 639 ;
+C 164 ; WX 167 ; N fraction ; B -180 -12 340 677 ;
+C 165 ; WX 713 ; N infinity ; B 26 124 688 404 ;
+C 166 ; WX 500 ; N florin ; B 2 -193 494 686 ;
+C 167 ; WX 753 ; N club ; B 86 -26 660 533 ;
+C 168 ; WX 753 ; N diamond ; B 142 -36 600 550 ;
+C 169 ; WX 753 ; N heart ; B 117 -33 631 532 ;
+C 170 ; WX 753 ; N spade ; B 113 -36 629 548 ;
+C 171 ; WX 1042 ; N arrowboth ; B 24 -15 1024 511 ;
+C 172 ; WX 987 ; N arrowleft ; B 32 -15 942 511 ;
+C 173 ; WX 603 ; N arrowup ; B 45 0 571 910 ;
+C 174 ; WX 987 ; N arrowright ; B 49 -15 959 511 ;
+C 175 ; WX 603 ; N arrowdown ; B 45 -22 571 888 ;
+C 176 ; WX 400 ; N degree ; B 50 385 350 685 ;
+C 177 ; WX 549 ; N plusminus ; B 10 0 539 645 ;
+C 178 ; WX 411 ; N second ; B 20 459 413 737 ;
+C 179 ; WX 549 ; N greaterequal ; B 29 0 526 639 ;
+C 180 ; WX 549 ; N multiply ; B 17 8 533 524 ;
+C 181 ; WX 713 ; N proportional ; B 27 123 639 404 ;
+C 182 ; WX 494 ; N partialdiff ; B 26 -20 462 746 ;
+C 183 ; WX 460 ; N bullet ; B 50 113 410 473 ;
+C 184 ; WX 549 ; N divide ; B 10 71 536 456 ;
+C 185 ; WX 549 ; N notequal ; B 15 -25 540 549 ;
+C 186 ; WX 549 ; N equivalence ; B 14 82 538 443 ;
+C 187 ; WX 549 ; N approxequal ; B 14 135 527 394 ;
+C 188 ; WX 1000 ; N ellipsis ; B 111 -17 889 95 ;
+C 189 ; WX 603 ; N arrowvertex ; B 280 -120 336 1010 ;
+C 190 ; WX 1000 ; N arrowhorizex ; B -60 220 1050 276 ;
+C 191 ; WX 658 ; N carriagereturn ; B 15 -16 602 629 ;
+C 192 ; WX 823 ; N aleph ; B 175 -18 661 658 ;
+C 193 ; WX 686 ; N Ifraktur ; B 10 -53 578 740 ;
+C 194 ; WX 795 ; N Rfraktur ; B 26 -15 759 734 ;
+C 195 ; WX 987 ; N weierstrass ; B 159 -211 870 573 ;
+C 196 ; WX 768 ; N circlemultiply ; B 43 -17 733 673 ;
+C 197 ; WX 768 ; N circleplus ; B 43 -15 733 675 ;
+C 198 ; WX 823 ; N emptyset ; B 39 -24 781 719 ;
+C 199 ; WX 768 ; N intersection ; B 40 0 732 509 ;
+C 200 ; WX 768 ; N union ; B 40 -17 732 492 ;
+C 201 ; WX 713 ; N propersuperset ; B 20 0 673 470 ;
+C 202 ; WX 713 ; N reflexsuperset ; B 20 -125 673 470 ;
+C 203 ; WX 713 ; N notsubset ; B 36 -70 690 540 ;
+C 204 ; WX 713 ; N propersubset ; B 37 0 690 470 ;
+C 205 ; WX 713 ; N reflexsubset ; B 37 -125 690 470 ;
+C 206 ; WX 713 ; N element ; B 45 0 505 468 ;
+C 207 ; WX 713 ; N notelement ; B 45 -58 505 555 ;
+C 208 ; WX 768 ; N angle ; B 26 0 738 673 ;
+C 209 ; WX 713 ; N gradient ; B 36 -19 681 718 ;
+C 210 ; WX 790 ; N registerserif ; B 50 -17 740 673 ;
+C 211 ; WX 790 ; N copyrightserif ; B 51 -15 741 675 ;
+C 212 ; WX 890 ; N trademarkserif ; B 18 293 855 673 ;
+C 213 ; WX 823 ; N product ; B 25 -101 803 751 ;
+C 214 ; WX 549 ; N radical ; B 10 -38 515 917 ;
+C 215 ; WX 250 ; N dotmath ; B 69 210 169 310 ;
+C 216 ; WX 713 ; N logicalnot ; B 15 0 680 288 ;
+C 217 ; WX 603 ; N logicaland ; B 23 0 583 454 ;
+C 218 ; WX 603 ; N logicalor ; B 30 0 578 477 ;
+C 219 ; WX 1042 ; N arrowdblboth ; B 27 -20 1023 510 ;
+C 220 ; WX 987 ; N arrowdblleft ; B 30 -15 939 513 ;
+C 221 ; WX 603 ; N arrowdblup ; B 39 2 567 911 ;
+C 222 ; WX 987 ; N arrowdblright ; B 45 -20 954 508 ;
+C 223 ; WX 603 ; N arrowdbldown ; B 44 -19 572 890 ;
+C 224 ; WX 494 ; N lozenge ; B 18 0 466 745 ;
+C 225 ; WX 329 ; N angleleft ; B 25 -198 306 746 ;
+C 226 ; WX 790 ; N registersans ; B 50 -20 740 670 ;
+C 227 ; WX 790 ; N copyrightsans ; B 49 -15 739 675 ;
+C 228 ; WX 786 ; N trademarksans ; B 5 293 725 673 ;
+C 229 ; WX 713 ; N summation ; B 14 -108 695 752 ;
+C 230 ; WX 384 ; N parenlefttp ; B 24 -293 436 926 ;
+C 231 ; WX 384 ; N parenleftex ; B 24 -85 108 925 ;
+C 232 ; WX 384 ; N parenleftbt ; B 24 -293 436 926 ;
+C 233 ; WX 384 ; N bracketlefttp ; B 0 -80 349 926 ;
+C 234 ; WX 384 ; N bracketleftex ; B 0 -79 77 925 ;
+C 235 ; WX 384 ; N bracketleftbt ; B 0 -80 349 926 ;
+C 236 ; WX 494 ; N bracelefttp ; B 209 -85 445 925 ;
+C 237 ; WX 494 ; N braceleftmid ; B 20 -85 284 935 ;
+C 238 ; WX 494 ; N braceleftbt ; B 209 -75 445 935 ;
+C 239 ; WX 494 ; N braceex ; B 209 -85 284 935 ;
+C 241 ; WX 329 ; N angleright ; B 21 -198 302 746 ;
+C 242 ; WX 274 ; N integral ; B 2 -107 291 916 ;
+C 243 ; WX 686 ; N integraltp ; B 308 -88 675 920 ;
+C 244 ; WX 686 ; N integralex ; B 308 -88 378 975 ;
+C 245 ; WX 686 ; N integralbt ; B 11 -87 378 921 ;
+C 246 ; WX 384 ; N parenrighttp ; B 54 -293 466 926 ;
+C 247 ; WX 384 ; N parenrightex ; B 382 -85 466 925 ;
+C 248 ; WX 384 ; N parenrightbt ; B 54 -293 466 926 ;
+C 249 ; WX 384 ; N bracketrighttp ; B 22 -80 371 926 ;
+C 250 ; WX 384 ; N bracketrightex ; B 294 -79 371 925 ;
+C 251 ; WX 384 ; N bracketrightbt ; B 22 -80 371 926 ;
+C 252 ; WX 494 ; N bracerighttp ; B 48 -85 284 925 ;
+C 253 ; WX 494 ; N bracerightmid ; B 209 -85 473 935 ;
+C 254 ; WX 494 ; N bracerightbt ; B 48 -75 284 935 ;
+C -1 ; WX 790 ; N apple ; B 56 -3 733 808 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/php/extras/fonts/ps/Times-Bold.afm b/php/extras/fonts/ps/Times-Bold.afm
new file mode 100644
index 000000000..559ebaeb6
--- /dev/null
+++ b/php/extras/fonts/ps/Times-Bold.afm
@@ -0,0 +1,2588 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Thu May 1 12:52:56 1997
+Comment UniqueID 43065
+Comment VMusage 41636 52661
+FontName Times-Bold
+FullName Times Bold
+FamilyName Times
+Weight Bold
+ItalicAngle 0
+IsFixedPitch false
+CharacterSet ExtendedRoman
+FontBBox -168 -218 1000 935
+UnderlinePosition -100
+UnderlineThickness 50
+Version 002.000
+Notice Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries.
+EncodingScheme AdobeStandardEncoding
+CapHeight 676
+XHeight 461
+Ascender 683
+Descender -217
+StdHW 44
+StdVW 139
+StartCharMetrics 315
+C 32 ; WX 250 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 333 ; N exclam ; B 81 -13 251 691 ;
+C 34 ; WX 555 ; N quotedbl ; B 83 404 472 691 ;
+C 35 ; WX 500 ; N numbersign ; B 4 0 496 700 ;
+C 36 ; WX 500 ; N dollar ; B 29 -99 472 750 ;
+C 37 ; WX 1000 ; N percent ; B 124 -14 877 692 ;
+C 38 ; WX 833 ; N ampersand ; B 62 -16 787 691 ;
+C 39 ; WX 333 ; N quoteright ; B 79 356 263 691 ;
+C 40 ; WX 333 ; N parenleft ; B 46 -168 306 694 ;
+C 41 ; WX 333 ; N parenright ; B 27 -168 287 694 ;
+C 42 ; WX 500 ; N asterisk ; B 56 255 447 691 ;
+C 43 ; WX 570 ; N plus ; B 33 0 537 506 ;
+C 44 ; WX 250 ; N comma ; B 39 -180 223 155 ;
+C 45 ; WX 333 ; N hyphen ; B 44 171 287 287 ;
+C 46 ; WX 250 ; N period ; B 41 -13 210 156 ;
+C 47 ; WX 278 ; N slash ; B -24 -19 302 691 ;
+C 48 ; WX 500 ; N zero ; B 24 -13 476 688 ;
+C 49 ; WX 500 ; N one ; B 65 0 442 688 ;
+C 50 ; WX 500 ; N two ; B 17 0 478 688 ;
+C 51 ; WX 500 ; N three ; B 16 -14 468 688 ;
+C 52 ; WX 500 ; N four ; B 19 0 475 688 ;
+C 53 ; WX 500 ; N five ; B 22 -8 470 676 ;
+C 54 ; WX 500 ; N six ; B 28 -13 475 688 ;
+C 55 ; WX 500 ; N seven ; B 17 0 477 676 ;
+C 56 ; WX 500 ; N eight ; B 28 -13 472 688 ;
+C 57 ; WX 500 ; N nine ; B 26 -13 473 688 ;
+C 58 ; WX 333 ; N colon ; B 82 -13 251 472 ;
+C 59 ; WX 333 ; N semicolon ; B 82 -180 266 472 ;
+C 60 ; WX 570 ; N less ; B 31 -8 539 514 ;
+C 61 ; WX 570 ; N equal ; B 33 107 537 399 ;
+C 62 ; WX 570 ; N greater ; B 31 -8 539 514 ;
+C 63 ; WX 500 ; N question ; B 57 -13 445 689 ;
+C 64 ; WX 930 ; N at ; B 108 -19 822 691 ;
+C 65 ; WX 722 ; N A ; B 9 0 689 690 ;
+C 66 ; WX 667 ; N B ; B 16 0 619 676 ;
+C 67 ; WX 722 ; N C ; B 49 -19 687 691 ;
+C 68 ; WX 722 ; N D ; B 14 0 690 676 ;
+C 69 ; WX 667 ; N E ; B 16 0 641 676 ;
+C 70 ; WX 611 ; N F ; B 16 0 583 676 ;
+C 71 ; WX 778 ; N G ; B 37 -19 755 691 ;
+C 72 ; WX 778 ; N H ; B 21 0 759 676 ;
+C 73 ; WX 389 ; N I ; B 20 0 370 676 ;
+C 74 ; WX 500 ; N J ; B 3 -96 479 676 ;
+C 75 ; WX 778 ; N K ; B 30 0 769 676 ;
+C 76 ; WX 667 ; N L ; B 19 0 638 676 ;
+C 77 ; WX 944 ; N M ; B 14 0 921 676 ;
+C 78 ; WX 722 ; N N ; B 16 -18 701 676 ;
+C 79 ; WX 778 ; N O ; B 35 -19 743 691 ;
+C 80 ; WX 611 ; N P ; B 16 0 600 676 ;
+C 81 ; WX 778 ; N Q ; B 35 -176 743 691 ;
+C 82 ; WX 722 ; N R ; B 26 0 715 676 ;
+C 83 ; WX 556 ; N S ; B 35 -19 513 692 ;
+C 84 ; WX 667 ; N T ; B 31 0 636 676 ;
+C 85 ; WX 722 ; N U ; B 16 -19 701 676 ;
+C 86 ; WX 722 ; N V ; B 16 -18 701 676 ;
+C 87 ; WX 1000 ; N W ; B 19 -15 981 676 ;
+C 88 ; WX 722 ; N X ; B 16 0 699 676 ;
+C 89 ; WX 722 ; N Y ; B 15 0 699 676 ;
+C 90 ; WX 667 ; N Z ; B 28 0 634 676 ;
+C 91 ; WX 333 ; N bracketleft ; B 67 -149 301 678 ;
+C 92 ; WX 278 ; N backslash ; B -25 -19 303 691 ;
+C 93 ; WX 333 ; N bracketright ; B 32 -149 266 678 ;
+C 94 ; WX 581 ; N asciicircum ; B 73 311 509 676 ;
+C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ;
+C 96 ; WX 333 ; N quoteleft ; B 70 356 254 691 ;
+C 97 ; WX 500 ; N a ; B 25 -14 488 473 ;
+C 98 ; WX 556 ; N b ; B 17 -14 521 676 ;
+C 99 ; WX 444 ; N c ; B 25 -14 430 473 ;
+C 100 ; WX 556 ; N d ; B 25 -14 534 676 ;
+C 101 ; WX 444 ; N e ; B 25 -14 426 473 ;
+C 102 ; WX 333 ; N f ; B 14 0 389 691 ; L i fi ; L l fl ;
+C 103 ; WX 500 ; N g ; B 28 -206 483 473 ;
+C 104 ; WX 556 ; N h ; B 16 0 534 676 ;
+C 105 ; WX 278 ; N i ; B 16 0 255 691 ;
+C 106 ; WX 333 ; N j ; B -57 -203 263 691 ;
+C 107 ; WX 556 ; N k ; B 22 0 543 676 ;
+C 108 ; WX 278 ; N l ; B 16 0 255 676 ;
+C 109 ; WX 833 ; N m ; B 16 0 814 473 ;
+C 110 ; WX 556 ; N n ; B 21 0 539 473 ;
+C 111 ; WX 500 ; N o ; B 25 -14 476 473 ;
+C 112 ; WX 556 ; N p ; B 19 -205 524 473 ;
+C 113 ; WX 556 ; N q ; B 34 -205 536 473 ;
+C 114 ; WX 444 ; N r ; B 29 0 434 473 ;
+C 115 ; WX 389 ; N s ; B 25 -14 361 473 ;
+C 116 ; WX 333 ; N t ; B 20 -12 332 630 ;
+C 117 ; WX 556 ; N u ; B 16 -14 537 461 ;
+C 118 ; WX 500 ; N v ; B 21 -14 485 461 ;
+C 119 ; WX 722 ; N w ; B 23 -14 707 461 ;
+C 120 ; WX 500 ; N x ; B 12 0 484 461 ;
+C 121 ; WX 500 ; N y ; B 16 -205 480 461 ;
+C 122 ; WX 444 ; N z ; B 21 0 420 461 ;
+C 123 ; WX 394 ; N braceleft ; B 22 -175 340 698 ;
+C 124 ; WX 220 ; N bar ; B 66 -218 154 782 ;
+C 125 ; WX 394 ; N braceright ; B 54 -175 372 698 ;
+C 126 ; WX 520 ; N asciitilde ; B 29 173 491 333 ;
+C 161 ; WX 333 ; N exclamdown ; B 82 -203 252 501 ;
+C 162 ; WX 500 ; N cent ; B 53 -140 458 588 ;
+C 163 ; WX 500 ; N sterling ; B 21 -14 477 684 ;
+C 164 ; WX 167 ; N fraction ; B -168 -12 329 688 ;
+C 165 ; WX 500 ; N yen ; B -64 0 547 676 ;
+C 166 ; WX 500 ; N florin ; B 0 -155 498 706 ;
+C 167 ; WX 500 ; N section ; B 57 -132 443 691 ;
+C 168 ; WX 500 ; N currency ; B -26 61 526 613 ;
+C 169 ; WX 278 ; N quotesingle ; B 75 404 204 691 ;
+C 170 ; WX 500 ; N quotedblleft ; B 32 356 486 691 ;
+C 171 ; WX 500 ; N guillemotleft ; B 23 36 473 415 ;
+C 172 ; WX 333 ; N guilsinglleft ; B 51 36 305 415 ;
+C 173 ; WX 333 ; N guilsinglright ; B 28 36 282 415 ;
+C 174 ; WX 556 ; N fi ; B 14 0 536 691 ;
+C 175 ; WX 556 ; N fl ; B 14 0 536 691 ;
+C 177 ; WX 500 ; N endash ; B 0 181 500 271 ;
+C 178 ; WX 500 ; N dagger ; B 47 -134 453 691 ;
+C 179 ; WX 500 ; N daggerdbl ; B 45 -132 456 691 ;
+C 180 ; WX 250 ; N periodcentered ; B 41 248 210 417 ;
+C 182 ; WX 540 ; N paragraph ; B 0 -186 519 676 ;
+C 183 ; WX 350 ; N bullet ; B 35 198 315 478 ;
+C 184 ; WX 333 ; N quotesinglbase ; B 79 -180 263 155 ;
+C 185 ; WX 500 ; N quotedblbase ; B 14 -180 468 155 ;
+C 186 ; WX 500 ; N quotedblright ; B 14 356 468 691 ;
+C 187 ; WX 500 ; N guillemotright ; B 27 36 477 415 ;
+C 188 ; WX 1000 ; N ellipsis ; B 82 -13 917 156 ;
+C 189 ; WX 1000 ; N perthousand ; B 7 -29 995 706 ;
+C 191 ; WX 500 ; N questiondown ; B 55 -201 443 501 ;
+C 193 ; WX 333 ; N grave ; B 8 528 246 713 ;
+C 194 ; WX 333 ; N acute ; B 86 528 324 713 ;
+C 195 ; WX 333 ; N circumflex ; B -2 528 335 704 ;
+C 196 ; WX 333 ; N tilde ; B -16 547 349 674 ;
+C 197 ; WX 333 ; N macron ; B 1 565 331 637 ;
+C 198 ; WX 333 ; N breve ; B 15 528 318 691 ;
+C 199 ; WX 333 ; N dotaccent ; B 103 536 258 691 ;
+C 200 ; WX 333 ; N dieresis ; B -2 537 335 667 ;
+C 202 ; WX 333 ; N ring ; B 60 527 273 740 ;
+C 203 ; WX 333 ; N cedilla ; B 68 -218 294 0 ;
+C 205 ; WX 333 ; N hungarumlaut ; B -13 528 425 713 ;
+C 206 ; WX 333 ; N ogonek ; B 90 -193 319 24 ;
+C 207 ; WX 333 ; N caron ; B -2 528 335 704 ;
+C 208 ; WX 1000 ; N emdash ; B 0 181 1000 271 ;
+C 225 ; WX 1000 ; N AE ; B 4 0 951 676 ;
+C 227 ; WX 300 ; N ordfeminine ; B -1 397 301 688 ;
+C 232 ; WX 667 ; N Lslash ; B 19 0 638 676 ;
+C 233 ; WX 778 ; N Oslash ; B 35 -74 743 737 ;
+C 234 ; WX 1000 ; N OE ; B 22 -5 981 684 ;
+C 235 ; WX 330 ; N ordmasculine ; B 18 397 312 688 ;
+C 241 ; WX 722 ; N ae ; B 33 -14 693 473 ;
+C 245 ; WX 278 ; N dotlessi ; B 16 0 255 461 ;
+C 248 ; WX 278 ; N lslash ; B -22 0 303 676 ;
+C 249 ; WX 500 ; N oslash ; B 25 -92 476 549 ;
+C 250 ; WX 722 ; N oe ; B 22 -14 696 473 ;
+C 251 ; WX 556 ; N germandbls ; B 19 -12 517 691 ;
+C -1 ; WX 389 ; N Idieresis ; B 20 0 370 877 ;
+C -1 ; WX 444 ; N eacute ; B 25 -14 426 713 ;
+C -1 ; WX 500 ; N abreve ; B 25 -14 488 691 ;
+C -1 ; WX 556 ; N uhungarumlaut ; B 16 -14 557 713 ;
+C -1 ; WX 444 ; N ecaron ; B 25 -14 426 704 ;
+C -1 ; WX 722 ; N Ydieresis ; B 15 0 699 877 ;
+C -1 ; WX 570 ; N divide ; B 33 -31 537 537 ;
+C -1 ; WX 722 ; N Yacute ; B 15 0 699 923 ;
+C -1 ; WX 722 ; N Acircumflex ; B 9 0 689 914 ;
+C -1 ; WX 500 ; N aacute ; B 25 -14 488 713 ;
+C -1 ; WX 722 ; N Ucircumflex ; B 16 -19 701 914 ;
+C -1 ; WX 500 ; N yacute ; B 16 -205 480 713 ;
+C -1 ; WX 389 ; N scommaaccent ; B 25 -218 361 473 ;
+C -1 ; WX 444 ; N ecircumflex ; B 25 -14 426 704 ;
+C -1 ; WX 722 ; N Uring ; B 16 -19 701 935 ;
+C -1 ; WX 722 ; N Udieresis ; B 16 -19 701 877 ;
+C -1 ; WX 500 ; N aogonek ; B 25 -193 504 473 ;
+C -1 ; WX 722 ; N Uacute ; B 16 -19 701 923 ;
+C -1 ; WX 556 ; N uogonek ; B 16 -193 539 461 ;
+C -1 ; WX 667 ; N Edieresis ; B 16 0 641 877 ;
+C -1 ; WX 722 ; N Dcroat ; B 6 0 690 676 ;
+C -1 ; WX 250 ; N commaaccent ; B 47 -218 203 -50 ;
+C -1 ; WX 747 ; N copyright ; B 26 -19 721 691 ;
+C -1 ; WX 667 ; N Emacron ; B 16 0 641 847 ;
+C -1 ; WX 444 ; N ccaron ; B 25 -14 430 704 ;
+C -1 ; WX 500 ; N aring ; B 25 -14 488 740 ;
+C -1 ; WX 722 ; N Ncommaaccent ; B 16 -188 701 676 ;
+C -1 ; WX 278 ; N lacute ; B 16 0 297 923 ;
+C -1 ; WX 500 ; N agrave ; B 25 -14 488 713 ;
+C -1 ; WX 667 ; N Tcommaaccent ; B 31 -218 636 676 ;
+C -1 ; WX 722 ; N Cacute ; B 49 -19 687 923 ;
+C -1 ; WX 500 ; N atilde ; B 25 -14 488 674 ;
+C -1 ; WX 667 ; N Edotaccent ; B 16 0 641 901 ;
+C -1 ; WX 389 ; N scaron ; B 25 -14 363 704 ;
+C -1 ; WX 389 ; N scedilla ; B 25 -218 361 473 ;
+C -1 ; WX 278 ; N iacute ; B 16 0 289 713 ;
+C -1 ; WX 494 ; N lozenge ; B 10 0 484 745 ;
+C -1 ; WX 722 ; N Rcaron ; B 26 0 715 914 ;
+C -1 ; WX 778 ; N Gcommaaccent ; B 37 -218 755 691 ;
+C -1 ; WX 556 ; N ucircumflex ; B 16 -14 537 704 ;
+C -1 ; WX 500 ; N acircumflex ; B 25 -14 488 704 ;
+C -1 ; WX 722 ; N Amacron ; B 9 0 689 847 ;
+C -1 ; WX 444 ; N rcaron ; B 29 0 434 704 ;
+C -1 ; WX 444 ; N ccedilla ; B 25 -218 430 473 ;
+C -1 ; WX 667 ; N Zdotaccent ; B 28 0 634 901 ;
+C -1 ; WX 611 ; N Thorn ; B 16 0 600 676 ;
+C -1 ; WX 778 ; N Omacron ; B 35 -19 743 847 ;
+C -1 ; WX 722 ; N Racute ; B 26 0 715 923 ;
+C -1 ; WX 556 ; N Sacute ; B 35 -19 513 923 ;
+C -1 ; WX 672 ; N dcaron ; B 25 -14 681 682 ;
+C -1 ; WX 722 ; N Umacron ; B 16 -19 701 847 ;
+C -1 ; WX 556 ; N uring ; B 16 -14 537 740 ;
+C -1 ; WX 300 ; N threesuperior ; B 3 268 297 688 ;
+C -1 ; WX 778 ; N Ograve ; B 35 -19 743 923 ;
+C -1 ; WX 722 ; N Agrave ; B 9 0 689 923 ;
+C -1 ; WX 722 ; N Abreve ; B 9 0 689 901 ;
+C -1 ; WX 570 ; N multiply ; B 48 16 522 490 ;
+C -1 ; WX 556 ; N uacute ; B 16 -14 537 713 ;
+C -1 ; WX 667 ; N Tcaron ; B 31 0 636 914 ;
+C -1 ; WX 494 ; N partialdiff ; B 11 -21 494 750 ;
+C -1 ; WX 500 ; N ydieresis ; B 16 -205 480 667 ;
+C -1 ; WX 722 ; N Nacute ; B 16 -18 701 923 ;
+C -1 ; WX 278 ; N icircumflex ; B -37 0 300 704 ;
+C -1 ; WX 667 ; N Ecircumflex ; B 16 0 641 914 ;
+C -1 ; WX 500 ; N adieresis ; B 25 -14 488 667 ;
+C -1 ; WX 444 ; N edieresis ; B 25 -14 426 667 ;
+C -1 ; WX 444 ; N cacute ; B 25 -14 430 713 ;
+C -1 ; WX 556 ; N nacute ; B 21 0 539 713 ;
+C -1 ; WX 556 ; N umacron ; B 16 -14 537 637 ;
+C -1 ; WX 722 ; N Ncaron ; B 16 -18 701 914 ;
+C -1 ; WX 389 ; N Iacute ; B 20 0 370 923 ;
+C -1 ; WX 570 ; N plusminus ; B 33 0 537 506 ;
+C -1 ; WX 220 ; N brokenbar ; B 66 -143 154 707 ;
+C -1 ; WX 747 ; N registered ; B 26 -19 721 691 ;
+C -1 ; WX 778 ; N Gbreve ; B 37 -19 755 901 ;
+C -1 ; WX 389 ; N Idotaccent ; B 20 0 370 901 ;
+C -1 ; WX 600 ; N summation ; B 14 -10 585 706 ;
+C -1 ; WX 667 ; N Egrave ; B 16 0 641 923 ;
+C -1 ; WX 444 ; N racute ; B 29 0 434 713 ;
+C -1 ; WX 500 ; N omacron ; B 25 -14 476 637 ;
+C -1 ; WX 667 ; N Zacute ; B 28 0 634 923 ;
+C -1 ; WX 667 ; N Zcaron ; B 28 0 634 914 ;
+C -1 ; WX 549 ; N greaterequal ; B 26 0 523 704 ;
+C -1 ; WX 722 ; N Eth ; B 6 0 690 676 ;
+C -1 ; WX 722 ; N Ccedilla ; B 49 -218 687 691 ;
+C -1 ; WX 278 ; N lcommaaccent ; B 16 -218 255 676 ;
+C -1 ; WX 416 ; N tcaron ; B 20 -12 425 815 ;
+C -1 ; WX 444 ; N eogonek ; B 25 -193 426 473 ;
+C -1 ; WX 722 ; N Uogonek ; B 16 -193 701 676 ;
+C -1 ; WX 722 ; N Aacute ; B 9 0 689 923 ;
+C -1 ; WX 722 ; N Adieresis ; B 9 0 689 877 ;
+C -1 ; WX 444 ; N egrave ; B 25 -14 426 713 ;
+C -1 ; WX 444 ; N zacute ; B 21 0 420 713 ;
+C -1 ; WX 278 ; N iogonek ; B 16 -193 274 691 ;
+C -1 ; WX 778 ; N Oacute ; B 35 -19 743 923 ;
+C -1 ; WX 500 ; N oacute ; B 25 -14 476 713 ;
+C -1 ; WX 500 ; N amacron ; B 25 -14 488 637 ;
+C -1 ; WX 389 ; N sacute ; B 25 -14 361 713 ;
+C -1 ; WX 278 ; N idieresis ; B -37 0 300 667 ;
+C -1 ; WX 778 ; N Ocircumflex ; B 35 -19 743 914 ;
+C -1 ; WX 722 ; N Ugrave ; B 16 -19 701 923 ;
+C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
+C -1 ; WX 556 ; N thorn ; B 19 -205 524 676 ;
+C -1 ; WX 300 ; N twosuperior ; B 0 275 300 688 ;
+C -1 ; WX 778 ; N Odieresis ; B 35 -19 743 877 ;
+C -1 ; WX 556 ; N mu ; B 33 -206 536 461 ;
+C -1 ; WX 278 ; N igrave ; B -27 0 255 713 ;
+C -1 ; WX 500 ; N ohungarumlaut ; B 25 -14 529 713 ;
+C -1 ; WX 667 ; N Eogonek ; B 16 -193 644 676 ;
+C -1 ; WX 556 ; N dcroat ; B 25 -14 534 676 ;
+C -1 ; WX 750 ; N threequarters ; B 23 -12 733 688 ;
+C -1 ; WX 556 ; N Scedilla ; B 35 -218 513 692 ;
+C -1 ; WX 394 ; N lcaron ; B 16 0 412 682 ;
+C -1 ; WX 778 ; N Kcommaaccent ; B 30 -218 769 676 ;
+C -1 ; WX 667 ; N Lacute ; B 19 0 638 923 ;
+C -1 ; WX 1000 ; N trademark ; B 24 271 977 676 ;
+C -1 ; WX 444 ; N edotaccent ; B 25 -14 426 691 ;
+C -1 ; WX 389 ; N Igrave ; B 20 0 370 923 ;
+C -1 ; WX 389 ; N Imacron ; B 20 0 370 847 ;
+C -1 ; WX 667 ; N Lcaron ; B 19 0 652 682 ;
+C -1 ; WX 750 ; N onehalf ; B -7 -12 775 688 ;
+C -1 ; WX 549 ; N lessequal ; B 29 0 526 704 ;
+C -1 ; WX 500 ; N ocircumflex ; B 25 -14 476 704 ;
+C -1 ; WX 556 ; N ntilde ; B 21 0 539 674 ;
+C -1 ; WX 722 ; N Uhungarumlaut ; B 16 -19 701 923 ;
+C -1 ; WX 667 ; N Eacute ; B 16 0 641 923 ;
+C -1 ; WX 444 ; N emacron ; B 25 -14 426 637 ;
+C -1 ; WX 500 ; N gbreve ; B 28 -206 483 691 ;
+C -1 ; WX 750 ; N onequarter ; B 28 -12 743 688 ;
+C -1 ; WX 556 ; N Scaron ; B 35 -19 513 914 ;
+C -1 ; WX 556 ; N Scommaaccent ; B 35 -218 513 692 ;
+C -1 ; WX 778 ; N Ohungarumlaut ; B 35 -19 743 923 ;
+C -1 ; WX 400 ; N degree ; B 57 402 343 688 ;
+C -1 ; WX 500 ; N ograve ; B 25 -14 476 713 ;
+C -1 ; WX 722 ; N Ccaron ; B 49 -19 687 914 ;
+C -1 ; WX 556 ; N ugrave ; B 16 -14 537 713 ;
+C -1 ; WX 549 ; N radical ; B 10 -46 512 850 ;
+C -1 ; WX 722 ; N Dcaron ; B 14 0 690 914 ;
+C -1 ; WX 444 ; N rcommaaccent ; B 29 -218 434 473 ;
+C -1 ; WX 722 ; N Ntilde ; B 16 -18 701 884 ;
+C -1 ; WX 500 ; N otilde ; B 25 -14 476 674 ;
+C -1 ; WX 722 ; N Rcommaaccent ; B 26 -218 715 676 ;
+C -1 ; WX 667 ; N Lcommaaccent ; B 19 -218 638 676 ;
+C -1 ; WX 722 ; N Atilde ; B 9 0 689 884 ;
+C -1 ; WX 722 ; N Aogonek ; B 9 -193 699 690 ;
+C -1 ; WX 722 ; N Aring ; B 9 0 689 935 ;
+C -1 ; WX 778 ; N Otilde ; B 35 -19 743 884 ;
+C -1 ; WX 444 ; N zdotaccent ; B 21 0 420 691 ;
+C -1 ; WX 667 ; N Ecaron ; B 16 0 641 914 ;
+C -1 ; WX 389 ; N Iogonek ; B 20 -193 370 676 ;
+C -1 ; WX 556 ; N kcommaaccent ; B 22 -218 543 676 ;
+C -1 ; WX 570 ; N minus ; B 33 209 537 297 ;
+C -1 ; WX 389 ; N Icircumflex ; B 20 0 370 914 ;
+C -1 ; WX 556 ; N ncaron ; B 21 0 539 704 ;
+C -1 ; WX 333 ; N tcommaaccent ; B 20 -218 332 630 ;
+C -1 ; WX 570 ; N logicalnot ; B 33 108 537 399 ;
+C -1 ; WX 500 ; N odieresis ; B 25 -14 476 667 ;
+C -1 ; WX 556 ; N udieresis ; B 16 -14 537 667 ;
+C -1 ; WX 549 ; N notequal ; B 15 -49 540 570 ;
+C -1 ; WX 500 ; N gcommaaccent ; B 28 -206 483 829 ;
+C -1 ; WX 500 ; N eth ; B 25 -14 476 691 ;
+C -1 ; WX 444 ; N zcaron ; B 21 0 420 704 ;
+C -1 ; WX 556 ; N ncommaaccent ; B 21 -218 539 473 ;
+C -1 ; WX 300 ; N onesuperior ; B 28 275 273 688 ;
+C -1 ; WX 278 ; N imacron ; B -8 0 272 637 ;
+C -1 ; WX 500 ; N Euro ; B 0 0 0 0 ;
+EndCharMetrics
+StartKernData
+StartKernPairs 2242
+KPX A C -55
+KPX A Cacute -55
+KPX A Ccaron -55
+KPX A Ccedilla -55
+KPX A G -55
+KPX A Gbreve -55
+KPX A Gcommaaccent -55
+KPX A O -45
+KPX A Oacute -45
+KPX A Ocircumflex -45
+KPX A Odieresis -45
+KPX A Ograve -45
+KPX A Ohungarumlaut -45
+KPX A Omacron -45
+KPX A Oslash -45
+KPX A Otilde -45
+KPX A Q -45
+KPX A T -95
+KPX A Tcaron -95
+KPX A Tcommaaccent -95
+KPX A U -50
+KPX A Uacute -50
+KPX A Ucircumflex -50
+KPX A Udieresis -50
+KPX A Ugrave -50
+KPX A Uhungarumlaut -50
+KPX A Umacron -50
+KPX A Uogonek -50
+KPX A Uring -50
+KPX A V -145
+KPX A W -130
+KPX A Y -100
+KPX A Yacute -100
+KPX A Ydieresis -100
+KPX A p -25
+KPX A quoteright -74
+KPX A u -50
+KPX A uacute -50
+KPX A ucircumflex -50
+KPX A udieresis -50
+KPX A ugrave -50
+KPX A uhungarumlaut -50
+KPX A umacron -50
+KPX A uogonek -50
+KPX A uring -50
+KPX A v -100
+KPX A w -90
+KPX A y -74
+KPX A yacute -74
+KPX A ydieresis -74
+KPX Aacute C -55
+KPX Aacute Cacute -55
+KPX Aacute Ccaron -55
+KPX Aacute Ccedilla -55
+KPX Aacute G -55
+KPX Aacute Gbreve -55
+KPX Aacute Gcommaaccent -55
+KPX Aacute O -45
+KPX Aacute Oacute -45
+KPX Aacute Ocircumflex -45
+KPX Aacute Odieresis -45
+KPX Aacute Ograve -45
+KPX Aacute Ohungarumlaut -45
+KPX Aacute Omacron -45
+KPX Aacute Oslash -45
+KPX Aacute Otilde -45
+KPX Aacute Q -45
+KPX Aacute T -95
+KPX Aacute Tcaron -95
+KPX Aacute Tcommaaccent -95
+KPX Aacute U -50
+KPX Aacute Uacute -50
+KPX Aacute Ucircumflex -50
+KPX Aacute Udieresis -50
+KPX Aacute Ugrave -50
+KPX Aacute Uhungarumlaut -50
+KPX Aacute Umacron -50
+KPX Aacute Uogonek -50
+KPX Aacute Uring -50
+KPX Aacute V -145
+KPX Aacute W -130
+KPX Aacute Y -100
+KPX Aacute Yacute -100
+KPX Aacute Ydieresis -100
+KPX Aacute p -25
+KPX Aacute quoteright -74
+KPX Aacute u -50
+KPX Aacute uacute -50
+KPX Aacute ucircumflex -50
+KPX Aacute udieresis -50
+KPX Aacute ugrave -50
+KPX Aacute uhungarumlaut -50
+KPX Aacute umacron -50
+KPX Aacute uogonek -50
+KPX Aacute uring -50
+KPX Aacute v -100
+KPX Aacute w -90
+KPX Aacute y -74
+KPX Aacute yacute -74
+KPX Aacute ydieresis -74
+KPX Abreve C -55
+KPX Abreve Cacute -55
+KPX Abreve Ccaron -55
+KPX Abreve Ccedilla -55
+KPX Abreve G -55
+KPX Abreve Gbreve -55
+KPX Abreve Gcommaaccent -55
+KPX Abreve O -45
+KPX Abreve Oacute -45
+KPX Abreve Ocircumflex -45
+KPX Abreve Odieresis -45
+KPX Abreve Ograve -45
+KPX Abreve Ohungarumlaut -45
+KPX Abreve Omacron -45
+KPX Abreve Oslash -45
+KPX Abreve Otilde -45
+KPX Abreve Q -45
+KPX Abreve T -95
+KPX Abreve Tcaron -95
+KPX Abreve Tcommaaccent -95
+KPX Abreve U -50
+KPX Abreve Uacute -50
+KPX Abreve Ucircumflex -50
+KPX Abreve Udieresis -50
+KPX Abreve Ugrave -50
+KPX Abreve Uhungarumlaut -50
+KPX Abreve Umacron -50
+KPX Abreve Uogonek -50
+KPX Abreve Uring -50
+KPX Abreve V -145
+KPX Abreve W -130
+KPX Abreve Y -100
+KPX Abreve Yacute -100
+KPX Abreve Ydieresis -100
+KPX Abreve p -25
+KPX Abreve quoteright -74
+KPX Abreve u -50
+KPX Abreve uacute -50
+KPX Abreve ucircumflex -50
+KPX Abreve udieresis -50
+KPX Abreve ugrave -50
+KPX Abreve uhungarumlaut -50
+KPX Abreve umacron -50
+KPX Abreve uogonek -50
+KPX Abreve uring -50
+KPX Abreve v -100
+KPX Abreve w -90
+KPX Abreve y -74
+KPX Abreve yacute -74
+KPX Abreve ydieresis -74
+KPX Acircumflex C -55
+KPX Acircumflex Cacute -55
+KPX Acircumflex Ccaron -55
+KPX Acircumflex Ccedilla -55
+KPX Acircumflex G -55
+KPX Acircumflex Gbreve -55
+KPX Acircumflex Gcommaaccent -55
+KPX Acircumflex O -45
+KPX Acircumflex Oacute -45
+KPX Acircumflex Ocircumflex -45
+KPX Acircumflex Odieresis -45
+KPX Acircumflex Ograve -45
+KPX Acircumflex Ohungarumlaut -45
+KPX Acircumflex Omacron -45
+KPX Acircumflex Oslash -45
+KPX Acircumflex Otilde -45
+KPX Acircumflex Q -45
+KPX Acircumflex T -95
+KPX Acircumflex Tcaron -95
+KPX Acircumflex Tcommaaccent -95
+KPX Acircumflex U -50
+KPX Acircumflex Uacute -50
+KPX Acircumflex Ucircumflex -50
+KPX Acircumflex Udieresis -50
+KPX Acircumflex Ugrave -50
+KPX Acircumflex Uhungarumlaut -50
+KPX Acircumflex Umacron -50
+KPX Acircumflex Uogonek -50
+KPX Acircumflex Uring -50
+KPX Acircumflex V -145
+KPX Acircumflex W -130
+KPX Acircumflex Y -100
+KPX Acircumflex Yacute -100
+KPX Acircumflex Ydieresis -100
+KPX Acircumflex p -25
+KPX Acircumflex quoteright -74
+KPX Acircumflex u -50
+KPX Acircumflex uacute -50
+KPX Acircumflex ucircumflex -50
+KPX Acircumflex udieresis -50
+KPX Acircumflex ugrave -50
+KPX Acircumflex uhungarumlaut -50
+KPX Acircumflex umacron -50
+KPX Acircumflex uogonek -50
+KPX Acircumflex uring -50
+KPX Acircumflex v -100
+KPX Acircumflex w -90
+KPX Acircumflex y -74
+KPX Acircumflex yacute -74
+KPX Acircumflex ydieresis -74
+KPX Adieresis C -55
+KPX Adieresis Cacute -55
+KPX Adieresis Ccaron -55
+KPX Adieresis Ccedilla -55
+KPX Adieresis G -55
+KPX Adieresis Gbreve -55
+KPX Adieresis Gcommaaccent -55
+KPX Adieresis O -45
+KPX Adieresis Oacute -45
+KPX Adieresis Ocircumflex -45
+KPX Adieresis Odieresis -45
+KPX Adieresis Ograve -45
+KPX Adieresis Ohungarumlaut -45
+KPX Adieresis Omacron -45
+KPX Adieresis Oslash -45
+KPX Adieresis Otilde -45
+KPX Adieresis Q -45
+KPX Adieresis T -95
+KPX Adieresis Tcaron -95
+KPX Adieresis Tcommaaccent -95
+KPX Adieresis U -50
+KPX Adieresis Uacute -50
+KPX Adieresis Ucircumflex -50
+KPX Adieresis Udieresis -50
+KPX Adieresis Ugrave -50
+KPX Adieresis Uhungarumlaut -50
+KPX Adieresis Umacron -50
+KPX Adieresis Uogonek -50
+KPX Adieresis Uring -50
+KPX Adieresis V -145
+KPX Adieresis W -130
+KPX Adieresis Y -100
+KPX Adieresis Yacute -100
+KPX Adieresis Ydieresis -100
+KPX Adieresis p -25
+KPX Adieresis quoteright -74
+KPX Adieresis u -50
+KPX Adieresis uacute -50
+KPX Adieresis ucircumflex -50
+KPX Adieresis udieresis -50
+KPX Adieresis ugrave -50
+KPX Adieresis uhungarumlaut -50
+KPX Adieresis umacron -50
+KPX Adieresis uogonek -50
+KPX Adieresis uring -50
+KPX Adieresis v -100
+KPX Adieresis w -90
+KPX Adieresis y -74
+KPX Adieresis yacute -74
+KPX Adieresis ydieresis -74
+KPX Agrave C -55
+KPX Agrave Cacute -55
+KPX Agrave Ccaron -55
+KPX Agrave Ccedilla -55
+KPX Agrave G -55
+KPX Agrave Gbreve -55
+KPX Agrave Gcommaaccent -55
+KPX Agrave O -45
+KPX Agrave Oacute -45
+KPX Agrave Ocircumflex -45
+KPX Agrave Odieresis -45
+KPX Agrave Ograve -45
+KPX Agrave Ohungarumlaut -45
+KPX Agrave Omacron -45
+KPX Agrave Oslash -45
+KPX Agrave Otilde -45
+KPX Agrave Q -45
+KPX Agrave T -95
+KPX Agrave Tcaron -95
+KPX Agrave Tcommaaccent -95
+KPX Agrave U -50
+KPX Agrave Uacute -50
+KPX Agrave Ucircumflex -50
+KPX Agrave Udieresis -50
+KPX Agrave Ugrave -50
+KPX Agrave Uhungarumlaut -50
+KPX Agrave Umacron -50
+KPX Agrave Uogonek -50
+KPX Agrave Uring -50
+KPX Agrave V -145
+KPX Agrave W -130
+KPX Agrave Y -100
+KPX Agrave Yacute -100
+KPX Agrave Ydieresis -100
+KPX Agrave p -25
+KPX Agrave quoteright -74
+KPX Agrave u -50
+KPX Agrave uacute -50
+KPX Agrave ucircumflex -50
+KPX Agrave udieresis -50
+KPX Agrave ugrave -50
+KPX Agrave uhungarumlaut -50
+KPX Agrave umacron -50
+KPX Agrave uogonek -50
+KPX Agrave uring -50
+KPX Agrave v -100
+KPX Agrave w -90
+KPX Agrave y -74
+KPX Agrave yacute -74
+KPX Agrave ydieresis -74
+KPX Amacron C -55
+KPX Amacron Cacute -55
+KPX Amacron Ccaron -55
+KPX Amacron Ccedilla -55
+KPX Amacron G -55
+KPX Amacron Gbreve -55
+KPX Amacron Gcommaaccent -55
+KPX Amacron O -45
+KPX Amacron Oacute -45
+KPX Amacron Ocircumflex -45
+KPX Amacron Odieresis -45
+KPX Amacron Ograve -45
+KPX Amacron Ohungarumlaut -45
+KPX Amacron Omacron -45
+KPX Amacron Oslash -45
+KPX Amacron Otilde -45
+KPX Amacron Q -45
+KPX Amacron T -95
+KPX Amacron Tcaron -95
+KPX Amacron Tcommaaccent -95
+KPX Amacron U -50
+KPX Amacron Uacute -50
+KPX Amacron Ucircumflex -50
+KPX Amacron Udieresis -50
+KPX Amacron Ugrave -50
+KPX Amacron Uhungarumlaut -50
+KPX Amacron Umacron -50
+KPX Amacron Uogonek -50
+KPX Amacron Uring -50
+KPX Amacron V -145
+KPX Amacron W -130
+KPX Amacron Y -100
+KPX Amacron Yacute -100
+KPX Amacron Ydieresis -100
+KPX Amacron p -25
+KPX Amacron quoteright -74
+KPX Amacron u -50
+KPX Amacron uacute -50
+KPX Amacron ucircumflex -50
+KPX Amacron udieresis -50
+KPX Amacron ugrave -50
+KPX Amacron uhungarumlaut -50
+KPX Amacron umacron -50
+KPX Amacron uogonek -50
+KPX Amacron uring -50
+KPX Amacron v -100
+KPX Amacron w -90
+KPX Amacron y -74
+KPX Amacron yacute -74
+KPX Amacron ydieresis -74
+KPX Aogonek C -55
+KPX Aogonek Cacute -55
+KPX Aogonek Ccaron -55
+KPX Aogonek Ccedilla -55
+KPX Aogonek G -55
+KPX Aogonek Gbreve -55
+KPX Aogonek Gcommaaccent -55
+KPX Aogonek O -45
+KPX Aogonek Oacute -45
+KPX Aogonek Ocircumflex -45
+KPX Aogonek Odieresis -45
+KPX Aogonek Ograve -45
+KPX Aogonek Ohungarumlaut -45
+KPX Aogonek Omacron -45
+KPX Aogonek Oslash -45
+KPX Aogonek Otilde -45
+KPX Aogonek Q -45
+KPX Aogonek T -95
+KPX Aogonek Tcaron -95
+KPX Aogonek Tcommaaccent -95
+KPX Aogonek U -50
+KPX Aogonek Uacute -50
+KPX Aogonek Ucircumflex -50
+KPX Aogonek Udieresis -50
+KPX Aogonek Ugrave -50
+KPX Aogonek Uhungarumlaut -50
+KPX Aogonek Umacron -50
+KPX Aogonek Uogonek -50
+KPX Aogonek Uring -50
+KPX Aogonek V -145
+KPX Aogonek W -130
+KPX Aogonek Y -100
+KPX Aogonek Yacute -100
+KPX Aogonek Ydieresis -100
+KPX Aogonek p -25
+KPX Aogonek quoteright -74
+KPX Aogonek u -50
+KPX Aogonek uacute -50
+KPX Aogonek ucircumflex -50
+KPX Aogonek udieresis -50
+KPX Aogonek ugrave -50
+KPX Aogonek uhungarumlaut -50
+KPX Aogonek umacron -50
+KPX Aogonek uogonek -50
+KPX Aogonek uring -50
+KPX Aogonek v -100
+KPX Aogonek w -90
+KPX Aogonek y -34
+KPX Aogonek yacute -34
+KPX Aogonek ydieresis -34
+KPX Aring C -55
+KPX Aring Cacute -55
+KPX Aring Ccaron -55
+KPX Aring Ccedilla -55
+KPX Aring G -55
+KPX Aring Gbreve -55
+KPX Aring Gcommaaccent -55
+KPX Aring O -45
+KPX Aring Oacute -45
+KPX Aring Ocircumflex -45
+KPX Aring Odieresis -45
+KPX Aring Ograve -45
+KPX Aring Ohungarumlaut -45
+KPX Aring Omacron -45
+KPX Aring Oslash -45
+KPX Aring Otilde -45
+KPX Aring Q -45
+KPX Aring T -95
+KPX Aring Tcaron -95
+KPX Aring Tcommaaccent -95
+KPX Aring U -50
+KPX Aring Uacute -50
+KPX Aring Ucircumflex -50
+KPX Aring Udieresis -50
+KPX Aring Ugrave -50
+KPX Aring Uhungarumlaut -50
+KPX Aring Umacron -50
+KPX Aring Uogonek -50
+KPX Aring Uring -50
+KPX Aring V -145
+KPX Aring W -130
+KPX Aring Y -100
+KPX Aring Yacute -100
+KPX Aring Ydieresis -100
+KPX Aring p -25
+KPX Aring quoteright -74
+KPX Aring u -50
+KPX Aring uacute -50
+KPX Aring ucircumflex -50
+KPX Aring udieresis -50
+KPX Aring ugrave -50
+KPX Aring uhungarumlaut -50
+KPX Aring umacron -50
+KPX Aring uogonek -50
+KPX Aring uring -50
+KPX Aring v -100
+KPX Aring w -90
+KPX Aring y -74
+KPX Aring yacute -74
+KPX Aring ydieresis -74
+KPX Atilde C -55
+KPX Atilde Cacute -55
+KPX Atilde Ccaron -55
+KPX Atilde Ccedilla -55
+KPX Atilde G -55
+KPX Atilde Gbreve -55
+KPX Atilde Gcommaaccent -55
+KPX Atilde O -45
+KPX Atilde Oacute -45
+KPX Atilde Ocircumflex -45
+KPX Atilde Odieresis -45
+KPX Atilde Ograve -45
+KPX Atilde Ohungarumlaut -45
+KPX Atilde Omacron -45
+KPX Atilde Oslash -45
+KPX Atilde Otilde -45
+KPX Atilde Q -45
+KPX Atilde T -95
+KPX Atilde Tcaron -95
+KPX Atilde Tcommaaccent -95
+KPX Atilde U -50
+KPX Atilde Uacute -50
+KPX Atilde Ucircumflex -50
+KPX Atilde Udieresis -50
+KPX Atilde Ugrave -50
+KPX Atilde Uhungarumlaut -50
+KPX Atilde Umacron -50
+KPX Atilde Uogonek -50
+KPX Atilde Uring -50
+KPX Atilde V -145
+KPX Atilde W -130
+KPX Atilde Y -100
+KPX Atilde Yacute -100
+KPX Atilde Ydieresis -100
+KPX Atilde p -25
+KPX Atilde quoteright -74
+KPX Atilde u -50
+KPX Atilde uacute -50
+KPX Atilde ucircumflex -50
+KPX Atilde udieresis -50
+KPX Atilde ugrave -50
+KPX Atilde uhungarumlaut -50
+KPX Atilde umacron -50
+KPX Atilde uogonek -50
+KPX Atilde uring -50
+KPX Atilde v -100
+KPX Atilde w -90
+KPX Atilde y -74
+KPX Atilde yacute -74
+KPX Atilde ydieresis -74
+KPX B A -30
+KPX B Aacute -30
+KPX B Abreve -30
+KPX B Acircumflex -30
+KPX B Adieresis -30
+KPX B Agrave -30
+KPX B Amacron -30
+KPX B Aogonek -30
+KPX B Aring -30
+KPX B Atilde -30
+KPX B U -10
+KPX B Uacute -10
+KPX B Ucircumflex -10
+KPX B Udieresis -10
+KPX B Ugrave -10
+KPX B Uhungarumlaut -10
+KPX B Umacron -10
+KPX B Uogonek -10
+KPX B Uring -10
+KPX D A -35
+KPX D Aacute -35
+KPX D Abreve -35
+KPX D Acircumflex -35
+KPX D Adieresis -35
+KPX D Agrave -35
+KPX D Amacron -35
+KPX D Aogonek -35
+KPX D Aring -35
+KPX D Atilde -35
+KPX D V -40
+KPX D W -40
+KPX D Y -40
+KPX D Yacute -40
+KPX D Ydieresis -40
+KPX D period -20
+KPX Dcaron A -35
+KPX Dcaron Aacute -35
+KPX Dcaron Abreve -35
+KPX Dcaron Acircumflex -35
+KPX Dcaron Adieresis -35
+KPX Dcaron Agrave -35
+KPX Dcaron Amacron -35
+KPX Dcaron Aogonek -35
+KPX Dcaron Aring -35
+KPX Dcaron Atilde -35
+KPX Dcaron V -40
+KPX Dcaron W -40
+KPX Dcaron Y -40
+KPX Dcaron Yacute -40
+KPX Dcaron Ydieresis -40
+KPX Dcaron period -20
+KPX Dcroat A -35
+KPX Dcroat Aacute -35
+KPX Dcroat Abreve -35
+KPX Dcroat Acircumflex -35
+KPX Dcroat Adieresis -35
+KPX Dcroat Agrave -35
+KPX Dcroat Amacron -35
+KPX Dcroat Aogonek -35
+KPX Dcroat Aring -35
+KPX Dcroat Atilde -35
+KPX Dcroat V -40
+KPX Dcroat W -40
+KPX Dcroat Y -40
+KPX Dcroat Yacute -40
+KPX Dcroat Ydieresis -40
+KPX Dcroat period -20
+KPX F A -90
+KPX F Aacute -90
+KPX F Abreve -90
+KPX F Acircumflex -90
+KPX F Adieresis -90
+KPX F Agrave -90
+KPX F Amacron -90
+KPX F Aogonek -90
+KPX F Aring -90
+KPX F Atilde -90
+KPX F a -25
+KPX F aacute -25
+KPX F abreve -25
+KPX F acircumflex -25
+KPX F adieresis -25
+KPX F agrave -25
+KPX F amacron -25
+KPX F aogonek -25
+KPX F aring -25
+KPX F atilde -25
+KPX F comma -92
+KPX F e -25
+KPX F eacute -25
+KPX F ecaron -25
+KPX F ecircumflex -25
+KPX F edieresis -25
+KPX F edotaccent -25
+KPX F egrave -25
+KPX F emacron -25
+KPX F eogonek -25
+KPX F o -25
+KPX F oacute -25
+KPX F ocircumflex -25
+KPX F odieresis -25
+KPX F ograve -25
+KPX F ohungarumlaut -25
+KPX F omacron -25
+KPX F oslash -25
+KPX F otilde -25
+KPX F period -110
+KPX J A -30
+KPX J Aacute -30
+KPX J Abreve -30
+KPX J Acircumflex -30
+KPX J Adieresis -30
+KPX J Agrave -30
+KPX J Amacron -30
+KPX J Aogonek -30
+KPX J Aring -30
+KPX J Atilde -30
+KPX J a -15
+KPX J aacute -15
+KPX J abreve -15
+KPX J acircumflex -15
+KPX J adieresis -15
+KPX J agrave -15
+KPX J amacron -15
+KPX J aogonek -15
+KPX J aring -15
+KPX J atilde -15
+KPX J e -15
+KPX J eacute -15
+KPX J ecaron -15
+KPX J ecircumflex -15
+KPX J edieresis -15
+KPX J edotaccent -15
+KPX J egrave -15
+KPX J emacron -15
+KPX J eogonek -15
+KPX J o -15
+KPX J oacute -15
+KPX J ocircumflex -15
+KPX J odieresis -15
+KPX J ograve -15
+KPX J ohungarumlaut -15
+KPX J omacron -15
+KPX J oslash -15
+KPX J otilde -15
+KPX J period -20
+KPX J u -15
+KPX J uacute -15
+KPX J ucircumflex -15
+KPX J udieresis -15
+KPX J ugrave -15
+KPX J uhungarumlaut -15
+KPX J umacron -15
+KPX J uogonek -15
+KPX J uring -15
+KPX K O -30
+KPX K Oacute -30
+KPX K Ocircumflex -30
+KPX K Odieresis -30
+KPX K Ograve -30
+KPX K Ohungarumlaut -30
+KPX K Omacron -30
+KPX K Oslash -30
+KPX K Otilde -30
+KPX K e -25
+KPX K eacute -25
+KPX K ecaron -25
+KPX K ecircumflex -25
+KPX K edieresis -25
+KPX K edotaccent -25
+KPX K egrave -25
+KPX K emacron -25
+KPX K eogonek -25
+KPX K o -25
+KPX K oacute -25
+KPX K ocircumflex -25
+KPX K odieresis -25
+KPX K ograve -25
+KPX K ohungarumlaut -25
+KPX K omacron -25
+KPX K oslash -25
+KPX K otilde -25
+KPX K u -15
+KPX K uacute -15
+KPX K ucircumflex -15
+KPX K udieresis -15
+KPX K ugrave -15
+KPX K uhungarumlaut -15
+KPX K umacron -15
+KPX K uogonek -15
+KPX K uring -15
+KPX K y -45
+KPX K yacute -45
+KPX K ydieresis -45
+KPX Kcommaaccent O -30
+KPX Kcommaaccent Oacute -30
+KPX Kcommaaccent Ocircumflex -30
+KPX Kcommaaccent Odieresis -30
+KPX Kcommaaccent Ograve -30
+KPX Kcommaaccent Ohungarumlaut -30
+KPX Kcommaaccent Omacron -30
+KPX Kcommaaccent Oslash -30
+KPX Kcommaaccent Otilde -30
+KPX Kcommaaccent e -25
+KPX Kcommaaccent eacute -25
+KPX Kcommaaccent ecaron -25
+KPX Kcommaaccent ecircumflex -25
+KPX Kcommaaccent edieresis -25
+KPX Kcommaaccent edotaccent -25
+KPX Kcommaaccent egrave -25
+KPX Kcommaaccent emacron -25
+KPX Kcommaaccent eogonek -25
+KPX Kcommaaccent o -25
+KPX Kcommaaccent oacute -25
+KPX Kcommaaccent ocircumflex -25
+KPX Kcommaaccent odieresis -25
+KPX Kcommaaccent ograve -25
+KPX Kcommaaccent ohungarumlaut -25
+KPX Kcommaaccent omacron -25
+KPX Kcommaaccent oslash -25
+KPX Kcommaaccent otilde -25
+KPX Kcommaaccent u -15
+KPX Kcommaaccent uacute -15
+KPX Kcommaaccent ucircumflex -15
+KPX Kcommaaccent udieresis -15
+KPX Kcommaaccent ugrave -15
+KPX Kcommaaccent uhungarumlaut -15
+KPX Kcommaaccent umacron -15
+KPX Kcommaaccent uogonek -15
+KPX Kcommaaccent uring -15
+KPX Kcommaaccent y -45
+KPX Kcommaaccent yacute -45
+KPX Kcommaaccent ydieresis -45
+KPX L T -92
+KPX L Tcaron -92
+KPX L Tcommaaccent -92
+KPX L V -92
+KPX L W -92
+KPX L Y -92
+KPX L Yacute -92
+KPX L Ydieresis -92
+KPX L quotedblright -20
+KPX L quoteright -110
+KPX L y -55
+KPX L yacute -55
+KPX L ydieresis -55
+KPX Lacute T -92
+KPX Lacute Tcaron -92
+KPX Lacute Tcommaaccent -92
+KPX Lacute V -92
+KPX Lacute W -92
+KPX Lacute Y -92
+KPX Lacute Yacute -92
+KPX Lacute Ydieresis -92
+KPX Lacute quotedblright -20
+KPX Lacute quoteright -110
+KPX Lacute y -55
+KPX Lacute yacute -55
+KPX Lacute ydieresis -55
+KPX Lcommaaccent T -92
+KPX Lcommaaccent Tcaron -92
+KPX Lcommaaccent Tcommaaccent -92
+KPX Lcommaaccent V -92
+KPX Lcommaaccent W -92
+KPX Lcommaaccent Y -92
+KPX Lcommaaccent Yacute -92
+KPX Lcommaaccent Ydieresis -92
+KPX Lcommaaccent quotedblright -20
+KPX Lcommaaccent quoteright -110
+KPX Lcommaaccent y -55
+KPX Lcommaaccent yacute -55
+KPX Lcommaaccent ydieresis -55
+KPX Lslash T -92
+KPX Lslash Tcaron -92
+KPX Lslash Tcommaaccent -92
+KPX Lslash V -92
+KPX Lslash W -92
+KPX Lslash Y -92
+KPX Lslash Yacute -92
+KPX Lslash Ydieresis -92
+KPX Lslash quotedblright -20
+KPX Lslash quoteright -110
+KPX Lslash y -55
+KPX Lslash yacute -55
+KPX Lslash ydieresis -55
+KPX N A -20
+KPX N Aacute -20
+KPX N Abreve -20
+KPX N Acircumflex -20
+KPX N Adieresis -20
+KPX N Agrave -20
+KPX N Amacron -20
+KPX N Aogonek -20
+KPX N Aring -20
+KPX N Atilde -20
+KPX Nacute A -20
+KPX Nacute Aacute -20
+KPX Nacute Abreve -20
+KPX Nacute Acircumflex -20
+KPX Nacute Adieresis -20
+KPX Nacute Agrave -20
+KPX Nacute Amacron -20
+KPX Nacute Aogonek -20
+KPX Nacute Aring -20
+KPX Nacute Atilde -20
+KPX Ncaron A -20
+KPX Ncaron Aacute -20
+KPX Ncaron Abreve -20
+KPX Ncaron Acircumflex -20
+KPX Ncaron Adieresis -20
+KPX Ncaron Agrave -20
+KPX Ncaron Amacron -20
+KPX Ncaron Aogonek -20
+KPX Ncaron Aring -20
+KPX Ncaron Atilde -20
+KPX Ncommaaccent A -20
+KPX Ncommaaccent Aacute -20
+KPX Ncommaaccent Abreve -20
+KPX Ncommaaccent Acircumflex -20
+KPX Ncommaaccent Adieresis -20
+KPX Ncommaaccent Agrave -20
+KPX Ncommaaccent Amacron -20
+KPX Ncommaaccent Aogonek -20
+KPX Ncommaaccent Aring -20
+KPX Ncommaaccent Atilde -20
+KPX Ntilde A -20
+KPX Ntilde Aacute -20
+KPX Ntilde Abreve -20
+KPX Ntilde Acircumflex -20
+KPX Ntilde Adieresis -20
+KPX Ntilde Agrave -20
+KPX Ntilde Amacron -20
+KPX Ntilde Aogonek -20
+KPX Ntilde Aring -20
+KPX Ntilde Atilde -20
+KPX O A -40
+KPX O Aacute -40
+KPX O Abreve -40
+KPX O Acircumflex -40
+KPX O Adieresis -40
+KPX O Agrave -40
+KPX O Amacron -40
+KPX O Aogonek -40
+KPX O Aring -40
+KPX O Atilde -40
+KPX O T -40
+KPX O Tcaron -40
+KPX O Tcommaaccent -40
+KPX O V -50
+KPX O W -50
+KPX O X -40
+KPX O Y -50
+KPX O Yacute -50
+KPX O Ydieresis -50
+KPX Oacute A -40
+KPX Oacute Aacute -40
+KPX Oacute Abreve -40
+KPX Oacute Acircumflex -40
+KPX Oacute Adieresis -40
+KPX Oacute Agrave -40
+KPX Oacute Amacron -40
+KPX Oacute Aogonek -40
+KPX Oacute Aring -40
+KPX Oacute Atilde -40
+KPX Oacute T -40
+KPX Oacute Tcaron -40
+KPX Oacute Tcommaaccent -40
+KPX Oacute V -50
+KPX Oacute W -50
+KPX Oacute X -40
+KPX Oacute Y -50
+KPX Oacute Yacute -50
+KPX Oacute Ydieresis -50
+KPX Ocircumflex A -40
+KPX Ocircumflex Aacute -40
+KPX Ocircumflex Abreve -40
+KPX Ocircumflex Acircumflex -40
+KPX Ocircumflex Adieresis -40
+KPX Ocircumflex Agrave -40
+KPX Ocircumflex Amacron -40
+KPX Ocircumflex Aogonek -40
+KPX Ocircumflex Aring -40
+KPX Ocircumflex Atilde -40
+KPX Ocircumflex T -40
+KPX Ocircumflex Tcaron -40
+KPX Ocircumflex Tcommaaccent -40
+KPX Ocircumflex V -50
+KPX Ocircumflex W -50
+KPX Ocircumflex X -40
+KPX Ocircumflex Y -50
+KPX Ocircumflex Yacute -50
+KPX Ocircumflex Ydieresis -50
+KPX Odieresis A -40
+KPX Odieresis Aacute -40
+KPX Odieresis Abreve -40
+KPX Odieresis Acircumflex -40
+KPX Odieresis Adieresis -40
+KPX Odieresis Agrave -40
+KPX Odieresis Amacron -40
+KPX Odieresis Aogonek -40
+KPX Odieresis Aring -40
+KPX Odieresis Atilde -40
+KPX Odieresis T -40
+KPX Odieresis Tcaron -40
+KPX Odieresis Tcommaaccent -40
+KPX Odieresis V -50
+KPX Odieresis W -50
+KPX Odieresis X -40
+KPX Odieresis Y -50
+KPX Odieresis Yacute -50
+KPX Odieresis Ydieresis -50
+KPX Ograve A -40
+KPX Ograve Aacute -40
+KPX Ograve Abreve -40
+KPX Ograve Acircumflex -40
+KPX Ograve Adieresis -40
+KPX Ograve Agrave -40
+KPX Ograve Amacron -40
+KPX Ograve Aogonek -40
+KPX Ograve Aring -40
+KPX Ograve Atilde -40
+KPX Ograve T -40
+KPX Ograve Tcaron -40
+KPX Ograve Tcommaaccent -40
+KPX Ograve V -50
+KPX Ograve W -50
+KPX Ograve X -40
+KPX Ograve Y -50
+KPX Ograve Yacute -50
+KPX Ograve Ydieresis -50
+KPX Ohungarumlaut A -40
+KPX Ohungarumlaut Aacute -40
+KPX Ohungarumlaut Abreve -40
+KPX Ohungarumlaut Acircumflex -40
+KPX Ohungarumlaut Adieresis -40
+KPX Ohungarumlaut Agrave -40
+KPX Ohungarumlaut Amacron -40
+KPX Ohungarumlaut Aogonek -40
+KPX Ohungarumlaut Aring -40
+KPX Ohungarumlaut Atilde -40
+KPX Ohungarumlaut T -40
+KPX Ohungarumlaut Tcaron -40
+KPX Ohungarumlaut Tcommaaccent -40
+KPX Ohungarumlaut V -50
+KPX Ohungarumlaut W -50
+KPX Ohungarumlaut X -40
+KPX Ohungarumlaut Y -50
+KPX Ohungarumlaut Yacute -50
+KPX Ohungarumlaut Ydieresis -50
+KPX Omacron A -40
+KPX Omacron Aacute -40
+KPX Omacron Abreve -40
+KPX Omacron Acircumflex -40
+KPX Omacron Adieresis -40
+KPX Omacron Agrave -40
+KPX Omacron Amacron -40
+KPX Omacron Aogonek -40
+KPX Omacron Aring -40
+KPX Omacron Atilde -40
+KPX Omacron T -40
+KPX Omacron Tcaron -40
+KPX Omacron Tcommaaccent -40
+KPX Omacron V -50
+KPX Omacron W -50
+KPX Omacron X -40
+KPX Omacron Y -50
+KPX Omacron Yacute -50
+KPX Omacron Ydieresis -50
+KPX Oslash A -40
+KPX Oslash Aacute -40
+KPX Oslash Abreve -40
+KPX Oslash Acircumflex -40
+KPX Oslash Adieresis -40
+KPX Oslash Agrave -40
+KPX Oslash Amacron -40
+KPX Oslash Aogonek -40
+KPX Oslash Aring -40
+KPX Oslash Atilde -40
+KPX Oslash T -40
+KPX Oslash Tcaron -40
+KPX Oslash Tcommaaccent -40
+KPX Oslash V -50
+KPX Oslash W -50
+KPX Oslash X -40
+KPX Oslash Y -50
+KPX Oslash Yacute -50
+KPX Oslash Ydieresis -50
+KPX Otilde A -40
+KPX Otilde Aacute -40
+KPX Otilde Abreve -40
+KPX Otilde Acircumflex -40
+KPX Otilde Adieresis -40
+KPX Otilde Agrave -40
+KPX Otilde Amacron -40
+KPX Otilde Aogonek -40
+KPX Otilde Aring -40
+KPX Otilde Atilde -40
+KPX Otilde T -40
+KPX Otilde Tcaron -40
+KPX Otilde Tcommaaccent -40
+KPX Otilde V -50
+KPX Otilde W -50
+KPX Otilde X -40
+KPX Otilde Y -50
+KPX Otilde Yacute -50
+KPX Otilde Ydieresis -50
+KPX P A -74
+KPX P Aacute -74
+KPX P Abreve -74
+KPX P Acircumflex -74
+KPX P Adieresis -74
+KPX P Agrave -74
+KPX P Amacron -74
+KPX P Aogonek -74
+KPX P Aring -74
+KPX P Atilde -74
+KPX P a -10
+KPX P aacute -10
+KPX P abreve -10
+KPX P acircumflex -10
+KPX P adieresis -10
+KPX P agrave -10
+KPX P amacron -10
+KPX P aogonek -10
+KPX P aring -10
+KPX P atilde -10
+KPX P comma -92
+KPX P e -20
+KPX P eacute -20
+KPX P ecaron -20
+KPX P ecircumflex -20
+KPX P edieresis -20
+KPX P edotaccent -20
+KPX P egrave -20
+KPX P emacron -20
+KPX P eogonek -20
+KPX P o -20
+KPX P oacute -20
+KPX P ocircumflex -20
+KPX P odieresis -20
+KPX P ograve -20
+KPX P ohungarumlaut -20
+KPX P omacron -20
+KPX P oslash -20
+KPX P otilde -20
+KPX P period -110
+KPX Q U -10
+KPX Q Uacute -10
+KPX Q Ucircumflex -10
+KPX Q Udieresis -10
+KPX Q Ugrave -10
+KPX Q Uhungarumlaut -10
+KPX Q Umacron -10
+KPX Q Uogonek -10
+KPX Q Uring -10
+KPX Q period -20
+KPX R O -30
+KPX R Oacute -30
+KPX R Ocircumflex -30
+KPX R Odieresis -30
+KPX R Ograve -30
+KPX R Ohungarumlaut -30
+KPX R Omacron -30
+KPX R Oslash -30
+KPX R Otilde -30
+KPX R T -40
+KPX R Tcaron -40
+KPX R Tcommaaccent -40
+KPX R U -30
+KPX R Uacute -30
+KPX R Ucircumflex -30
+KPX R Udieresis -30
+KPX R Ugrave -30
+KPX R Uhungarumlaut -30
+KPX R Umacron -30
+KPX R Uogonek -30
+KPX R Uring -30
+KPX R V -55
+KPX R W -35
+KPX R Y -35
+KPX R Yacute -35
+KPX R Ydieresis -35
+KPX Racute O -30
+KPX Racute Oacute -30
+KPX Racute Ocircumflex -30
+KPX Racute Odieresis -30
+KPX Racute Ograve -30
+KPX Racute Ohungarumlaut -30
+KPX Racute Omacron -30
+KPX Racute Oslash -30
+KPX Racute Otilde -30
+KPX Racute T -40
+KPX Racute Tcaron -40
+KPX Racute Tcommaaccent -40
+KPX Racute U -30
+KPX Racute Uacute -30
+KPX Racute Ucircumflex -30
+KPX Racute Udieresis -30
+KPX Racute Ugrave -30
+KPX Racute Uhungarumlaut -30
+KPX Racute Umacron -30
+KPX Racute Uogonek -30
+KPX Racute Uring -30
+KPX Racute V -55
+KPX Racute W -35
+KPX Racute Y -35
+KPX Racute Yacute -35
+KPX Racute Ydieresis -35
+KPX Rcaron O -30
+KPX Rcaron Oacute -30
+KPX Rcaron Ocircumflex -30
+KPX Rcaron Odieresis -30
+KPX Rcaron Ograve -30
+KPX Rcaron Ohungarumlaut -30
+KPX Rcaron Omacron -30
+KPX Rcaron Oslash -30
+KPX Rcaron Otilde -30
+KPX Rcaron T -40
+KPX Rcaron Tcaron -40
+KPX Rcaron Tcommaaccent -40
+KPX Rcaron U -30
+KPX Rcaron Uacute -30
+KPX Rcaron Ucircumflex -30
+KPX Rcaron Udieresis -30
+KPX Rcaron Ugrave -30
+KPX Rcaron Uhungarumlaut -30
+KPX Rcaron Umacron -30
+KPX Rcaron Uogonek -30
+KPX Rcaron Uring -30
+KPX Rcaron V -55
+KPX Rcaron W -35
+KPX Rcaron Y -35
+KPX Rcaron Yacute -35
+KPX Rcaron Ydieresis -35
+KPX Rcommaaccent O -30
+KPX Rcommaaccent Oacute -30
+KPX Rcommaaccent Ocircumflex -30
+KPX Rcommaaccent Odieresis -30
+KPX Rcommaaccent Ograve -30
+KPX Rcommaaccent Ohungarumlaut -30
+KPX Rcommaaccent Omacron -30
+KPX Rcommaaccent Oslash -30
+KPX Rcommaaccent Otilde -30
+KPX Rcommaaccent T -40
+KPX Rcommaaccent Tcaron -40
+KPX Rcommaaccent Tcommaaccent -40
+KPX Rcommaaccent U -30
+KPX Rcommaaccent Uacute -30
+KPX Rcommaaccent Ucircumflex -30
+KPX Rcommaaccent Udieresis -30
+KPX Rcommaaccent Ugrave -30
+KPX Rcommaaccent Uhungarumlaut -30
+KPX Rcommaaccent Umacron -30
+KPX Rcommaaccent Uogonek -30
+KPX Rcommaaccent Uring -30
+KPX Rcommaaccent V -55
+KPX Rcommaaccent W -35
+KPX Rcommaaccent Y -35
+KPX Rcommaaccent Yacute -35
+KPX Rcommaaccent Ydieresis -35
+KPX T A -90
+KPX T Aacute -90
+KPX T Abreve -90
+KPX T Acircumflex -90
+KPX T Adieresis -90
+KPX T Agrave -90
+KPX T Amacron -90
+KPX T Aogonek -90
+KPX T Aring -90
+KPX T Atilde -90
+KPX T O -18
+KPX T Oacute -18
+KPX T Ocircumflex -18
+KPX T Odieresis -18
+KPX T Ograve -18
+KPX T Ohungarumlaut -18
+KPX T Omacron -18
+KPX T Oslash -18
+KPX T Otilde -18
+KPX T a -92
+KPX T aacute -92
+KPX T abreve -52
+KPX T acircumflex -52
+KPX T adieresis -52
+KPX T agrave -52
+KPX T amacron -52
+KPX T aogonek -92
+KPX T aring -92
+KPX T atilde -52
+KPX T colon -74
+KPX T comma -74
+KPX T e -92
+KPX T eacute -92
+KPX T ecaron -92
+KPX T ecircumflex -92
+KPX T edieresis -52
+KPX T edotaccent -92
+KPX T egrave -52
+KPX T emacron -52
+KPX T eogonek -92
+KPX T hyphen -92
+KPX T i -18
+KPX T iacute -18
+KPX T iogonek -18
+KPX T o -92
+KPX T oacute -92
+KPX T ocircumflex -92
+KPX T odieresis -92
+KPX T ograve -92
+KPX T ohungarumlaut -92
+KPX T omacron -92
+KPX T oslash -92
+KPX T otilde -92
+KPX T period -90
+KPX T r -74
+KPX T racute -74
+KPX T rcaron -74
+KPX T rcommaaccent -74
+KPX T semicolon -74
+KPX T u -92
+KPX T uacute -92
+KPX T ucircumflex -92
+KPX T udieresis -92
+KPX T ugrave -92
+KPX T uhungarumlaut -92
+KPX T umacron -92
+KPX T uogonek -92
+KPX T uring -92
+KPX T w -74
+KPX T y -34
+KPX T yacute -34
+KPX T ydieresis -34
+KPX Tcaron A -90
+KPX Tcaron Aacute -90
+KPX Tcaron Abreve -90
+KPX Tcaron Acircumflex -90
+KPX Tcaron Adieresis -90
+KPX Tcaron Agrave -90
+KPX Tcaron Amacron -90
+KPX Tcaron Aogonek -90
+KPX Tcaron Aring -90
+KPX Tcaron Atilde -90
+KPX Tcaron O -18
+KPX Tcaron Oacute -18
+KPX Tcaron Ocircumflex -18
+KPX Tcaron Odieresis -18
+KPX Tcaron Ograve -18
+KPX Tcaron Ohungarumlaut -18
+KPX Tcaron Omacron -18
+KPX Tcaron Oslash -18
+KPX Tcaron Otilde -18
+KPX Tcaron a -92
+KPX Tcaron aacute -92
+KPX Tcaron abreve -52
+KPX Tcaron acircumflex -52
+KPX Tcaron adieresis -52
+KPX Tcaron agrave -52
+KPX Tcaron amacron -52
+KPX Tcaron aogonek -92
+KPX Tcaron aring -92
+KPX Tcaron atilde -52
+KPX Tcaron colon -74
+KPX Tcaron comma -74
+KPX Tcaron e -92
+KPX Tcaron eacute -92
+KPX Tcaron ecaron -92
+KPX Tcaron ecircumflex -92
+KPX Tcaron edieresis -52
+KPX Tcaron edotaccent -92
+KPX Tcaron egrave -52
+KPX Tcaron emacron -52
+KPX Tcaron eogonek -92
+KPX Tcaron hyphen -92
+KPX Tcaron i -18
+KPX Tcaron iacute -18
+KPX Tcaron iogonek -18
+KPX Tcaron o -92
+KPX Tcaron oacute -92
+KPX Tcaron ocircumflex -92
+KPX Tcaron odieresis -92
+KPX Tcaron ograve -92
+KPX Tcaron ohungarumlaut -92
+KPX Tcaron omacron -92
+KPX Tcaron oslash -92
+KPX Tcaron otilde -92
+KPX Tcaron period -90
+KPX Tcaron r -74
+KPX Tcaron racute -74
+KPX Tcaron rcaron -74
+KPX Tcaron rcommaaccent -74
+KPX Tcaron semicolon -74
+KPX Tcaron u -92
+KPX Tcaron uacute -92
+KPX Tcaron ucircumflex -92
+KPX Tcaron udieresis -92
+KPX Tcaron ugrave -92
+KPX Tcaron uhungarumlaut -92
+KPX Tcaron umacron -92
+KPX Tcaron uogonek -92
+KPX Tcaron uring -92
+KPX Tcaron w -74
+KPX Tcaron y -34
+KPX Tcaron yacute -34
+KPX Tcaron ydieresis -34
+KPX Tcommaaccent A -90
+KPX Tcommaaccent Aacute -90
+KPX Tcommaaccent Abreve -90
+KPX Tcommaaccent Acircumflex -90
+KPX Tcommaaccent Adieresis -90
+KPX Tcommaaccent Agrave -90
+KPX Tcommaaccent Amacron -90
+KPX Tcommaaccent Aogonek -90
+KPX Tcommaaccent Aring -90
+KPX Tcommaaccent Atilde -90
+KPX Tcommaaccent O -18
+KPX Tcommaaccent Oacute -18
+KPX Tcommaaccent Ocircumflex -18
+KPX Tcommaaccent Odieresis -18
+KPX Tcommaaccent Ograve -18
+KPX Tcommaaccent Ohungarumlaut -18
+KPX Tcommaaccent Omacron -18
+KPX Tcommaaccent Oslash -18
+KPX Tcommaaccent Otilde -18
+KPX Tcommaaccent a -92
+KPX Tcommaaccent aacute -92
+KPX Tcommaaccent abreve -52
+KPX Tcommaaccent acircumflex -52
+KPX Tcommaaccent adieresis -52
+KPX Tcommaaccent agrave -52
+KPX Tcommaaccent amacron -52
+KPX Tcommaaccent aogonek -92
+KPX Tcommaaccent aring -92
+KPX Tcommaaccent atilde -52
+KPX Tcommaaccent colon -74
+KPX Tcommaaccent comma -74
+KPX Tcommaaccent e -92
+KPX Tcommaaccent eacute -92
+KPX Tcommaaccent ecaron -92
+KPX Tcommaaccent ecircumflex -92
+KPX Tcommaaccent edieresis -52
+KPX Tcommaaccent edotaccent -92
+KPX Tcommaaccent egrave -52
+KPX Tcommaaccent emacron -52
+KPX Tcommaaccent eogonek -92
+KPX Tcommaaccent hyphen -92
+KPX Tcommaaccent i -18
+KPX Tcommaaccent iacute -18
+KPX Tcommaaccent iogonek -18
+KPX Tcommaaccent o -92
+KPX Tcommaaccent oacute -92
+KPX Tcommaaccent ocircumflex -92
+KPX Tcommaaccent odieresis -92
+KPX Tcommaaccent ograve -92
+KPX Tcommaaccent ohungarumlaut -92
+KPX Tcommaaccent omacron -92
+KPX Tcommaaccent oslash -92
+KPX Tcommaaccent otilde -92
+KPX Tcommaaccent period -90
+KPX Tcommaaccent r -74
+KPX Tcommaaccent racute -74
+KPX Tcommaaccent rcaron -74
+KPX Tcommaaccent rcommaaccent -74
+KPX Tcommaaccent semicolon -74
+KPX Tcommaaccent u -92
+KPX Tcommaaccent uacute -92
+KPX Tcommaaccent ucircumflex -92
+KPX Tcommaaccent udieresis -92
+KPX Tcommaaccent ugrave -92
+KPX Tcommaaccent uhungarumlaut -92
+KPX Tcommaaccent umacron -92
+KPX Tcommaaccent uogonek -92
+KPX Tcommaaccent uring -92
+KPX Tcommaaccent w -74
+KPX Tcommaaccent y -34
+KPX Tcommaaccent yacute -34
+KPX Tcommaaccent ydieresis -34
+KPX U A -60
+KPX U Aacute -60
+KPX U Abreve -60
+KPX U Acircumflex -60
+KPX U Adieresis -60
+KPX U Agrave -60
+KPX U Amacron -60
+KPX U Aogonek -60
+KPX U Aring -60
+KPX U Atilde -60
+KPX U comma -50
+KPX U period -50
+KPX Uacute A -60
+KPX Uacute Aacute -60
+KPX Uacute Abreve -60
+KPX Uacute Acircumflex -60
+KPX Uacute Adieresis -60
+KPX Uacute Agrave -60
+KPX Uacute Amacron -60
+KPX Uacute Aogonek -60
+KPX Uacute Aring -60
+KPX Uacute Atilde -60
+KPX Uacute comma -50
+KPX Uacute period -50
+KPX Ucircumflex A -60
+KPX Ucircumflex Aacute -60
+KPX Ucircumflex Abreve -60
+KPX Ucircumflex Acircumflex -60
+KPX Ucircumflex Adieresis -60
+KPX Ucircumflex Agrave -60
+KPX Ucircumflex Amacron -60
+KPX Ucircumflex Aogonek -60
+KPX Ucircumflex Aring -60
+KPX Ucircumflex Atilde -60
+KPX Ucircumflex comma -50
+KPX Ucircumflex period -50
+KPX Udieresis A -60
+KPX Udieresis Aacute -60
+KPX Udieresis Abreve -60
+KPX Udieresis Acircumflex -60
+KPX Udieresis Adieresis -60
+KPX Udieresis Agrave -60
+KPX Udieresis Amacron -60
+KPX Udieresis Aogonek -60
+KPX Udieresis Aring -60
+KPX Udieresis Atilde -60
+KPX Udieresis comma -50
+KPX Udieresis period -50
+KPX Ugrave A -60
+KPX Ugrave Aacute -60
+KPX Ugrave Abreve -60
+KPX Ugrave Acircumflex -60
+KPX Ugrave Adieresis -60
+KPX Ugrave Agrave -60
+KPX Ugrave Amacron -60
+KPX Ugrave Aogonek -60
+KPX Ugrave Aring -60
+KPX Ugrave Atilde -60
+KPX Ugrave comma -50
+KPX Ugrave period -50
+KPX Uhungarumlaut A -60
+KPX Uhungarumlaut Aacute -60
+KPX Uhungarumlaut Abreve -60
+KPX Uhungarumlaut Acircumflex -60
+KPX Uhungarumlaut Adieresis -60
+KPX Uhungarumlaut Agrave -60
+KPX Uhungarumlaut Amacron -60
+KPX Uhungarumlaut Aogonek -60
+KPX Uhungarumlaut Aring -60
+KPX Uhungarumlaut Atilde -60
+KPX Uhungarumlaut comma -50
+KPX Uhungarumlaut period -50
+KPX Umacron A -60
+KPX Umacron Aacute -60
+KPX Umacron Abreve -60
+KPX Umacron Acircumflex -60
+KPX Umacron Adieresis -60
+KPX Umacron Agrave -60
+KPX Umacron Amacron -60
+KPX Umacron Aogonek -60
+KPX Umacron Aring -60
+KPX Umacron Atilde -60
+KPX Umacron comma -50
+KPX Umacron period -50
+KPX Uogonek A -60
+KPX Uogonek Aacute -60
+KPX Uogonek Abreve -60
+KPX Uogonek Acircumflex -60
+KPX Uogonek Adieresis -60
+KPX Uogonek Agrave -60
+KPX Uogonek Amacron -60
+KPX Uogonek Aogonek -60
+KPX Uogonek Aring -60
+KPX Uogonek Atilde -60
+KPX Uogonek comma -50
+KPX Uogonek period -50
+KPX Uring A -60
+KPX Uring Aacute -60
+KPX Uring Abreve -60
+KPX Uring Acircumflex -60
+KPX Uring Adieresis -60
+KPX Uring Agrave -60
+KPX Uring Amacron -60
+KPX Uring Aogonek -60
+KPX Uring Aring -60
+KPX Uring Atilde -60
+KPX Uring comma -50
+KPX Uring period -50
+KPX V A -135
+KPX V Aacute -135
+KPX V Abreve -135
+KPX V Acircumflex -135
+KPX V Adieresis -135
+KPX V Agrave -135
+KPX V Amacron -135
+KPX V Aogonek -135
+KPX V Aring -135
+KPX V Atilde -135
+KPX V G -30
+KPX V Gbreve -30
+KPX V Gcommaaccent -30
+KPX V O -45
+KPX V Oacute -45
+KPX V Ocircumflex -45
+KPX V Odieresis -45
+KPX V Ograve -45
+KPX V Ohungarumlaut -45
+KPX V Omacron -45
+KPX V Oslash -45
+KPX V Otilde -45
+KPX V a -92
+KPX V aacute -92
+KPX V abreve -92
+KPX V acircumflex -92
+KPX V adieresis -92
+KPX V agrave -92
+KPX V amacron -92
+KPX V aogonek -92
+KPX V aring -92
+KPX V atilde -92
+KPX V colon -92
+KPX V comma -129
+KPX V e -100
+KPX V eacute -100
+KPX V ecaron -100
+KPX V ecircumflex -100
+KPX V edieresis -100
+KPX V edotaccent -100
+KPX V egrave -100
+KPX V emacron -100
+KPX V eogonek -100
+KPX V hyphen -74
+KPX V i -37
+KPX V iacute -37
+KPX V icircumflex -37
+KPX V idieresis -37
+KPX V igrave -37
+KPX V imacron -37
+KPX V iogonek -37
+KPX V o -100
+KPX V oacute -100
+KPX V ocircumflex -100
+KPX V odieresis -100
+KPX V ograve -100
+KPX V ohungarumlaut -100
+KPX V omacron -100
+KPX V oslash -100
+KPX V otilde -100
+KPX V period -145
+KPX V semicolon -92
+KPX V u -92
+KPX V uacute -92
+KPX V ucircumflex -92
+KPX V udieresis -92
+KPX V ugrave -92
+KPX V uhungarumlaut -92
+KPX V umacron -92
+KPX V uogonek -92
+KPX V uring -92
+KPX W A -120
+KPX W Aacute -120
+KPX W Abreve -120
+KPX W Acircumflex -120
+KPX W Adieresis -120
+KPX W Agrave -120
+KPX W Amacron -120
+KPX W Aogonek -120
+KPX W Aring -120
+KPX W Atilde -120
+KPX W O -10
+KPX W Oacute -10
+KPX W Ocircumflex -10
+KPX W Odieresis -10
+KPX W Ograve -10
+KPX W Ohungarumlaut -10
+KPX W Omacron -10
+KPX W Oslash -10
+KPX W Otilde -10
+KPX W a -65
+KPX W aacute -65
+KPX W abreve -65
+KPX W acircumflex -65
+KPX W adieresis -65
+KPX W agrave -65
+KPX W amacron -65
+KPX W aogonek -65
+KPX W aring -65
+KPX W atilde -65
+KPX W colon -55
+KPX W comma -92
+KPX W e -65
+KPX W eacute -65
+KPX W ecaron -65
+KPX W ecircumflex -65
+KPX W edieresis -65
+KPX W edotaccent -65
+KPX W egrave -65
+KPX W emacron -65
+KPX W eogonek -65
+KPX W hyphen -37
+KPX W i -18
+KPX W iacute -18
+KPX W iogonek -18
+KPX W o -75
+KPX W oacute -75
+KPX W ocircumflex -75
+KPX W odieresis -75
+KPX W ograve -75
+KPX W ohungarumlaut -75
+KPX W omacron -75
+KPX W oslash -75
+KPX W otilde -75
+KPX W period -92
+KPX W semicolon -55
+KPX W u -50
+KPX W uacute -50
+KPX W ucircumflex -50
+KPX W udieresis -50
+KPX W ugrave -50
+KPX W uhungarumlaut -50
+KPX W umacron -50
+KPX W uogonek -50
+KPX W uring -50
+KPX W y -60
+KPX W yacute -60
+KPX W ydieresis -60
+KPX Y A -110
+KPX Y Aacute -110
+KPX Y Abreve -110
+KPX Y Acircumflex -110
+KPX Y Adieresis -110
+KPX Y Agrave -110
+KPX Y Amacron -110
+KPX Y Aogonek -110
+KPX Y Aring -110
+KPX Y Atilde -110
+KPX Y O -35
+KPX Y Oacute -35
+KPX Y Ocircumflex -35
+KPX Y Odieresis -35
+KPX Y Ograve -35
+KPX Y Ohungarumlaut -35
+KPX Y Omacron -35
+KPX Y Oslash -35
+KPX Y Otilde -35
+KPX Y a -85
+KPX Y aacute -85
+KPX Y abreve -85
+KPX Y acircumflex -85
+KPX Y adieresis -85
+KPX Y agrave -85
+KPX Y amacron -85
+KPX Y aogonek -85
+KPX Y aring -85
+KPX Y atilde -85
+KPX Y colon -92
+KPX Y comma -92
+KPX Y e -111
+KPX Y eacute -111
+KPX Y ecaron -111
+KPX Y ecircumflex -111
+KPX Y edieresis -71
+KPX Y edotaccent -111
+KPX Y egrave -71
+KPX Y emacron -71
+KPX Y eogonek -111
+KPX Y hyphen -92
+KPX Y i -37
+KPX Y iacute -37
+KPX Y iogonek -37
+KPX Y o -111
+KPX Y oacute -111
+KPX Y ocircumflex -111
+KPX Y odieresis -111
+KPX Y ograve -111
+KPX Y ohungarumlaut -111
+KPX Y omacron -111
+KPX Y oslash -111
+KPX Y otilde -111
+KPX Y period -92
+KPX Y semicolon -92
+KPX Y u -92
+KPX Y uacute -92
+KPX Y ucircumflex -92
+KPX Y udieresis -92
+KPX Y ugrave -92
+KPX Y uhungarumlaut -92
+KPX Y umacron -92
+KPX Y uogonek -92
+KPX Y uring -92
+KPX Yacute A -110
+KPX Yacute Aacute -110
+KPX Yacute Abreve -110
+KPX Yacute Acircumflex -110
+KPX Yacute Adieresis -110
+KPX Yacute Agrave -110
+KPX Yacute Amacron -110
+KPX Yacute Aogonek -110
+KPX Yacute Aring -110
+KPX Yacute Atilde -110
+KPX Yacute O -35
+KPX Yacute Oacute -35
+KPX Yacute Ocircumflex -35
+KPX Yacute Odieresis -35
+KPX Yacute Ograve -35
+KPX Yacute Ohungarumlaut -35
+KPX Yacute Omacron -35
+KPX Yacute Oslash -35
+KPX Yacute Otilde -35
+KPX Yacute a -85
+KPX Yacute aacute -85
+KPX Yacute abreve -85
+KPX Yacute acircumflex -85
+KPX Yacute adieresis -85
+KPX Yacute agrave -85
+KPX Yacute amacron -85
+KPX Yacute aogonek -85
+KPX Yacute aring -85
+KPX Yacute atilde -85
+KPX Yacute colon -92
+KPX Yacute comma -92
+KPX Yacute e -111
+KPX Yacute eacute -111
+KPX Yacute ecaron -111
+KPX Yacute ecircumflex -111
+KPX Yacute edieresis -71
+KPX Yacute edotaccent -111
+KPX Yacute egrave -71
+KPX Yacute emacron -71
+KPX Yacute eogonek -111
+KPX Yacute hyphen -92
+KPX Yacute i -37
+KPX Yacute iacute -37
+KPX Yacute iogonek -37
+KPX Yacute o -111
+KPX Yacute oacute -111
+KPX Yacute ocircumflex -111
+KPX Yacute odieresis -111
+KPX Yacute ograve -111
+KPX Yacute ohungarumlaut -111
+KPX Yacute omacron -111
+KPX Yacute oslash -111
+KPX Yacute otilde -111
+KPX Yacute period -92
+KPX Yacute semicolon -92
+KPX Yacute u -92
+KPX Yacute uacute -92
+KPX Yacute ucircumflex -92
+KPX Yacute udieresis -92
+KPX Yacute ugrave -92
+KPX Yacute uhungarumlaut -92
+KPX Yacute umacron -92
+KPX Yacute uogonek -92
+KPX Yacute uring -92
+KPX Ydieresis A -110
+KPX Ydieresis Aacute -110
+KPX Ydieresis Abreve -110
+KPX Ydieresis Acircumflex -110
+KPX Ydieresis Adieresis -110
+KPX Ydieresis Agrave -110
+KPX Ydieresis Amacron -110
+KPX Ydieresis Aogonek -110
+KPX Ydieresis Aring -110
+KPX Ydieresis Atilde -110
+KPX Ydieresis O -35
+KPX Ydieresis Oacute -35
+KPX Ydieresis Ocircumflex -35
+KPX Ydieresis Odieresis -35
+KPX Ydieresis Ograve -35
+KPX Ydieresis Ohungarumlaut -35
+KPX Ydieresis Omacron -35
+KPX Ydieresis Oslash -35
+KPX Ydieresis Otilde -35
+KPX Ydieresis a -85
+KPX Ydieresis aacute -85
+KPX Ydieresis abreve -85
+KPX Ydieresis acircumflex -85
+KPX Ydieresis adieresis -85
+KPX Ydieresis agrave -85
+KPX Ydieresis amacron -85
+KPX Ydieresis aogonek -85
+KPX Ydieresis aring -85
+KPX Ydieresis atilde -85
+KPX Ydieresis colon -92
+KPX Ydieresis comma -92
+KPX Ydieresis e -111
+KPX Ydieresis eacute -111
+KPX Ydieresis ecaron -111
+KPX Ydieresis ecircumflex -111
+KPX Ydieresis edieresis -71
+KPX Ydieresis edotaccent -111
+KPX Ydieresis egrave -71
+KPX Ydieresis emacron -71
+KPX Ydieresis eogonek -111
+KPX Ydieresis hyphen -92
+KPX Ydieresis i -37
+KPX Ydieresis iacute -37
+KPX Ydieresis iogonek -37
+KPX Ydieresis o -111
+KPX Ydieresis oacute -111
+KPX Ydieresis ocircumflex -111
+KPX Ydieresis odieresis -111
+KPX Ydieresis ograve -111
+KPX Ydieresis ohungarumlaut -111
+KPX Ydieresis omacron -111
+KPX Ydieresis oslash -111
+KPX Ydieresis otilde -111
+KPX Ydieresis period -92
+KPX Ydieresis semicolon -92
+KPX Ydieresis u -92
+KPX Ydieresis uacute -92
+KPX Ydieresis ucircumflex -92
+KPX Ydieresis udieresis -92
+KPX Ydieresis ugrave -92
+KPX Ydieresis uhungarumlaut -92
+KPX Ydieresis umacron -92
+KPX Ydieresis uogonek -92
+KPX Ydieresis uring -92
+KPX a v -25
+KPX aacute v -25
+KPX abreve v -25
+KPX acircumflex v -25
+KPX adieresis v -25
+KPX agrave v -25
+KPX amacron v -25
+KPX aogonek v -25
+KPX aring v -25
+KPX atilde v -25
+KPX b b -10
+KPX b period -40
+KPX b u -20
+KPX b uacute -20
+KPX b ucircumflex -20
+KPX b udieresis -20
+KPX b ugrave -20
+KPX b uhungarumlaut -20
+KPX b umacron -20
+KPX b uogonek -20
+KPX b uring -20
+KPX b v -15
+KPX comma quotedblright -45
+KPX comma quoteright -55
+KPX d w -15
+KPX dcroat w -15
+KPX e v -15
+KPX eacute v -15
+KPX ecaron v -15
+KPX ecircumflex v -15
+KPX edieresis v -15
+KPX edotaccent v -15
+KPX egrave v -15
+KPX emacron v -15
+KPX eogonek v -15
+KPX f comma -15
+KPX f dotlessi -35
+KPX f i -25
+KPX f o -25
+KPX f oacute -25
+KPX f ocircumflex -25
+KPX f odieresis -25
+KPX f ograve -25
+KPX f ohungarumlaut -25
+KPX f omacron -25
+KPX f oslash -25
+KPX f otilde -25
+KPX f period -15
+KPX f quotedblright 50
+KPX f quoteright 55
+KPX g period -15
+KPX gbreve period -15
+KPX gcommaaccent period -15
+KPX h y -15
+KPX h yacute -15
+KPX h ydieresis -15
+KPX i v -10
+KPX iacute v -10
+KPX icircumflex v -10
+KPX idieresis v -10
+KPX igrave v -10
+KPX imacron v -10
+KPX iogonek v -10
+KPX k e -10
+KPX k eacute -10
+KPX k ecaron -10
+KPX k ecircumflex -10
+KPX k edieresis -10
+KPX k edotaccent -10
+KPX k egrave -10
+KPX k emacron -10
+KPX k eogonek -10
+KPX k o -15
+KPX k oacute -15
+KPX k ocircumflex -15
+KPX k odieresis -15
+KPX k ograve -15
+KPX k ohungarumlaut -15
+KPX k omacron -15
+KPX k oslash -15
+KPX k otilde -15
+KPX k y -15
+KPX k yacute -15
+KPX k ydieresis -15
+KPX kcommaaccent e -10
+KPX kcommaaccent eacute -10
+KPX kcommaaccent ecaron -10
+KPX kcommaaccent ecircumflex -10
+KPX kcommaaccent edieresis -10
+KPX kcommaaccent edotaccent -10
+KPX kcommaaccent egrave -10
+KPX kcommaaccent emacron -10
+KPX kcommaaccent eogonek -10
+KPX kcommaaccent o -15
+KPX kcommaaccent oacute -15
+KPX kcommaaccent ocircumflex -15
+KPX kcommaaccent odieresis -15
+KPX kcommaaccent ograve -15
+KPX kcommaaccent ohungarumlaut -15
+KPX kcommaaccent omacron -15
+KPX kcommaaccent oslash -15
+KPX kcommaaccent otilde -15
+KPX kcommaaccent y -15
+KPX kcommaaccent yacute -15
+KPX kcommaaccent ydieresis -15
+KPX n v -40
+KPX nacute v -40
+KPX ncaron v -40
+KPX ncommaaccent v -40
+KPX ntilde v -40
+KPX o v -10
+KPX o w -10
+KPX oacute v -10
+KPX oacute w -10
+KPX ocircumflex v -10
+KPX ocircumflex w -10
+KPX odieresis v -10
+KPX odieresis w -10
+KPX ograve v -10
+KPX ograve w -10
+KPX ohungarumlaut v -10
+KPX ohungarumlaut w -10
+KPX omacron v -10
+KPX omacron w -10
+KPX oslash v -10
+KPX oslash w -10
+KPX otilde v -10
+KPX otilde w -10
+KPX period quotedblright -55
+KPX period quoteright -55
+KPX quotedblleft A -10
+KPX quotedblleft Aacute -10
+KPX quotedblleft Abreve -10
+KPX quotedblleft Acircumflex -10
+KPX quotedblleft Adieresis -10
+KPX quotedblleft Agrave -10
+KPX quotedblleft Amacron -10
+KPX quotedblleft Aogonek -10
+KPX quotedblleft Aring -10
+KPX quotedblleft Atilde -10
+KPX quoteleft A -10
+KPX quoteleft Aacute -10
+KPX quoteleft Abreve -10
+KPX quoteleft Acircumflex -10
+KPX quoteleft Adieresis -10
+KPX quoteleft Agrave -10
+KPX quoteleft Amacron -10
+KPX quoteleft Aogonek -10
+KPX quoteleft Aring -10
+KPX quoteleft Atilde -10
+KPX quoteleft quoteleft -63
+KPX quoteright d -20
+KPX quoteright dcroat -20
+KPX quoteright quoteright -63
+KPX quoteright r -20
+KPX quoteright racute -20
+KPX quoteright rcaron -20
+KPX quoteright rcommaaccent -20
+KPX quoteright s -37
+KPX quoteright sacute -37
+KPX quoteright scaron -37
+KPX quoteright scedilla -37
+KPX quoteright scommaaccent -37
+KPX quoteright space -74
+KPX quoteright v -20
+KPX r c -18
+KPX r cacute -18
+KPX r ccaron -18
+KPX r ccedilla -18
+KPX r comma -92
+KPX r e -18
+KPX r eacute -18
+KPX r ecaron -18
+KPX r ecircumflex -18
+KPX r edieresis -18
+KPX r edotaccent -18
+KPX r egrave -18
+KPX r emacron -18
+KPX r eogonek -18
+KPX r g -10
+KPX r gbreve -10
+KPX r gcommaaccent -10
+KPX r hyphen -37
+KPX r n -15
+KPX r nacute -15
+KPX r ncaron -15
+KPX r ncommaaccent -15
+KPX r ntilde -15
+KPX r o -18
+KPX r oacute -18
+KPX r ocircumflex -18
+KPX r odieresis -18
+KPX r ograve -18
+KPX r ohungarumlaut -18
+KPX r omacron -18
+KPX r oslash -18
+KPX r otilde -18
+KPX r p -10
+KPX r period -100
+KPX r q -18
+KPX r v -10
+KPX racute c -18
+KPX racute cacute -18
+KPX racute ccaron -18
+KPX racute ccedilla -18
+KPX racute comma -92
+KPX racute e -18
+KPX racute eacute -18
+KPX racute ecaron -18
+KPX racute ecircumflex -18
+KPX racute edieresis -18
+KPX racute edotaccent -18
+KPX racute egrave -18
+KPX racute emacron -18
+KPX racute eogonek -18
+KPX racute g -10
+KPX racute gbreve -10
+KPX racute gcommaaccent -10
+KPX racute hyphen -37
+KPX racute n -15
+KPX racute nacute -15
+KPX racute ncaron -15
+KPX racute ncommaaccent -15
+KPX racute ntilde -15
+KPX racute o -18
+KPX racute oacute -18
+KPX racute ocircumflex -18
+KPX racute odieresis -18
+KPX racute ograve -18
+KPX racute ohungarumlaut -18
+KPX racute omacron -18
+KPX racute oslash -18
+KPX racute otilde -18
+KPX racute p -10
+KPX racute period -100
+KPX racute q -18
+KPX racute v -10
+KPX rcaron c -18
+KPX rcaron cacute -18
+KPX rcaron ccaron -18
+KPX rcaron ccedilla -18
+KPX rcaron comma -92
+KPX rcaron e -18
+KPX rcaron eacute -18
+KPX rcaron ecaron -18
+KPX rcaron ecircumflex -18
+KPX rcaron edieresis -18
+KPX rcaron edotaccent -18
+KPX rcaron egrave -18
+KPX rcaron emacron -18
+KPX rcaron eogonek -18
+KPX rcaron g -10
+KPX rcaron gbreve -10
+KPX rcaron gcommaaccent -10
+KPX rcaron hyphen -37
+KPX rcaron n -15
+KPX rcaron nacute -15
+KPX rcaron ncaron -15
+KPX rcaron ncommaaccent -15
+KPX rcaron ntilde -15
+KPX rcaron o -18
+KPX rcaron oacute -18
+KPX rcaron ocircumflex -18
+KPX rcaron odieresis -18
+KPX rcaron ograve -18
+KPX rcaron ohungarumlaut -18
+KPX rcaron omacron -18
+KPX rcaron oslash -18
+KPX rcaron otilde -18
+KPX rcaron p -10
+KPX rcaron period -100
+KPX rcaron q -18
+KPX rcaron v -10
+KPX rcommaaccent c -18
+KPX rcommaaccent cacute -18
+KPX rcommaaccent ccaron -18
+KPX rcommaaccent ccedilla -18
+KPX rcommaaccent comma -92
+KPX rcommaaccent e -18
+KPX rcommaaccent eacute -18
+KPX rcommaaccent ecaron -18
+KPX rcommaaccent ecircumflex -18
+KPX rcommaaccent edieresis -18
+KPX rcommaaccent edotaccent -18
+KPX rcommaaccent egrave -18
+KPX rcommaaccent emacron -18
+KPX rcommaaccent eogonek -18
+KPX rcommaaccent g -10
+KPX rcommaaccent gbreve -10
+KPX rcommaaccent gcommaaccent -10
+KPX rcommaaccent hyphen -37
+KPX rcommaaccent n -15
+KPX rcommaaccent nacute -15
+KPX rcommaaccent ncaron -15
+KPX rcommaaccent ncommaaccent -15
+KPX rcommaaccent ntilde -15
+KPX rcommaaccent o -18
+KPX rcommaaccent oacute -18
+KPX rcommaaccent ocircumflex -18
+KPX rcommaaccent odieresis -18
+KPX rcommaaccent ograve -18
+KPX rcommaaccent ohungarumlaut -18
+KPX rcommaaccent omacron -18
+KPX rcommaaccent oslash -18
+KPX rcommaaccent otilde -18
+KPX rcommaaccent p -10
+KPX rcommaaccent period -100
+KPX rcommaaccent q -18
+KPX rcommaaccent v -10
+KPX space A -55
+KPX space Aacute -55
+KPX space Abreve -55
+KPX space Acircumflex -55
+KPX space Adieresis -55
+KPX space Agrave -55
+KPX space Amacron -55
+KPX space Aogonek -55
+KPX space Aring -55
+KPX space Atilde -55
+KPX space T -30
+KPX space Tcaron -30
+KPX space Tcommaaccent -30
+KPX space V -45
+KPX space W -30
+KPX space Y -55
+KPX space Yacute -55
+KPX space Ydieresis -55
+KPX v a -10
+KPX v aacute -10
+KPX v abreve -10
+KPX v acircumflex -10
+KPX v adieresis -10
+KPX v agrave -10
+KPX v amacron -10
+KPX v aogonek -10
+KPX v aring -10
+KPX v atilde -10
+KPX v comma -55
+KPX v e -10
+KPX v eacute -10
+KPX v ecaron -10
+KPX v ecircumflex -10
+KPX v edieresis -10
+KPX v edotaccent -10
+KPX v egrave -10
+KPX v emacron -10
+KPX v eogonek -10
+KPX v o -10
+KPX v oacute -10
+KPX v ocircumflex -10
+KPX v odieresis -10
+KPX v ograve -10
+KPX v ohungarumlaut -10
+KPX v omacron -10
+KPX v oslash -10
+KPX v otilde -10
+KPX v period -70
+KPX w comma -55
+KPX w o -10
+KPX w oacute -10
+KPX w ocircumflex -10
+KPX w odieresis -10
+KPX w ograve -10
+KPX w ohungarumlaut -10
+KPX w omacron -10
+KPX w oslash -10
+KPX w otilde -10
+KPX w period -70
+KPX y comma -55
+KPX y e -10
+KPX y eacute -10
+KPX y ecaron -10
+KPX y ecircumflex -10
+KPX y edieresis -10
+KPX y edotaccent -10
+KPX y egrave -10
+KPX y emacron -10
+KPX y eogonek -10
+KPX y o -25
+KPX y oacute -25
+KPX y ocircumflex -25
+KPX y odieresis -25
+KPX y ograve -25
+KPX y ohungarumlaut -25
+KPX y omacron -25
+KPX y oslash -25
+KPX y otilde -25
+KPX y period -70
+KPX yacute comma -55
+KPX yacute e -10
+KPX yacute eacute -10
+KPX yacute ecaron -10
+KPX yacute ecircumflex -10
+KPX yacute edieresis -10
+KPX yacute edotaccent -10
+KPX yacute egrave -10
+KPX yacute emacron -10
+KPX yacute eogonek -10
+KPX yacute o -25
+KPX yacute oacute -25
+KPX yacute ocircumflex -25
+KPX yacute odieresis -25
+KPX yacute ograve -25
+KPX yacute ohungarumlaut -25
+KPX yacute omacron -25
+KPX yacute oslash -25
+KPX yacute otilde -25
+KPX yacute period -70
+KPX ydieresis comma -55
+KPX ydieresis e -10
+KPX ydieresis eacute -10
+KPX ydieresis ecaron -10
+KPX ydieresis ecircumflex -10
+KPX ydieresis edieresis -10
+KPX ydieresis edotaccent -10
+KPX ydieresis egrave -10
+KPX ydieresis emacron -10
+KPX ydieresis eogonek -10
+KPX ydieresis o -25
+KPX ydieresis oacute -25
+KPX ydieresis ocircumflex -25
+KPX ydieresis odieresis -25
+KPX ydieresis ograve -25
+KPX ydieresis ohungarumlaut -25
+KPX ydieresis omacron -25
+KPX ydieresis oslash -25
+KPX ydieresis otilde -25
+KPX ydieresis period -70
+EndKernPairs
+EndKernData
+EndFontMetrics
diff --git a/php/extras/fonts/ps/Times-BoldItalic.afm b/php/extras/fonts/ps/Times-BoldItalic.afm
new file mode 100644
index 000000000..2301dfd23
--- /dev/null
+++ b/php/extras/fonts/ps/Times-BoldItalic.afm
@@ -0,0 +1,2384 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Thu May 1 13:04:06 1997
+Comment UniqueID 43066
+Comment VMusage 45874 56899
+FontName Times-BoldItalic
+FullName Times Bold Italic
+FamilyName Times
+Weight Bold
+ItalicAngle -15
+IsFixedPitch false
+CharacterSet ExtendedRoman
+FontBBox -200 -218 996 921
+UnderlinePosition -100
+UnderlineThickness 50
+Version 002.000
+Notice Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries.
+EncodingScheme AdobeStandardEncoding
+CapHeight 669
+XHeight 462
+Ascender 683
+Descender -217
+StdHW 42
+StdVW 121
+StartCharMetrics 315
+C 32 ; WX 250 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 389 ; N exclam ; B 67 -13 370 684 ;
+C 34 ; WX 555 ; N quotedbl ; B 136 398 536 685 ;
+C 35 ; WX 500 ; N numbersign ; B -33 0 533 700 ;
+C 36 ; WX 500 ; N dollar ; B -20 -100 497 733 ;
+C 37 ; WX 833 ; N percent ; B 39 -10 793 692 ;
+C 38 ; WX 778 ; N ampersand ; B 5 -19 699 682 ;
+C 39 ; WX 333 ; N quoteright ; B 98 369 302 685 ;
+C 40 ; WX 333 ; N parenleft ; B 28 -179 344 685 ;
+C 41 ; WX 333 ; N parenright ; B -44 -179 271 685 ;
+C 42 ; WX 500 ; N asterisk ; B 65 249 456 685 ;
+C 43 ; WX 570 ; N plus ; B 33 0 537 506 ;
+C 44 ; WX 250 ; N comma ; B -60 -182 144 134 ;
+C 45 ; WX 333 ; N hyphen ; B 2 166 271 282 ;
+C 46 ; WX 250 ; N period ; B -9 -13 139 135 ;
+C 47 ; WX 278 ; N slash ; B -64 -18 342 685 ;
+C 48 ; WX 500 ; N zero ; B 17 -14 477 683 ;
+C 49 ; WX 500 ; N one ; B 5 0 419 683 ;
+C 50 ; WX 500 ; N two ; B -27 0 446 683 ;
+C 51 ; WX 500 ; N three ; B -15 -13 450 683 ;
+C 52 ; WX 500 ; N four ; B -15 0 503 683 ;
+C 53 ; WX 500 ; N five ; B -11 -13 487 669 ;
+C 54 ; WX 500 ; N six ; B 23 -15 509 679 ;
+C 55 ; WX 500 ; N seven ; B 52 0 525 669 ;
+C 56 ; WX 500 ; N eight ; B 3 -13 476 683 ;
+C 57 ; WX 500 ; N nine ; B -12 -10 475 683 ;
+C 58 ; WX 333 ; N colon ; B 23 -13 264 459 ;
+C 59 ; WX 333 ; N semicolon ; B -25 -183 264 459 ;
+C 60 ; WX 570 ; N less ; B 31 -8 539 514 ;
+C 61 ; WX 570 ; N equal ; B 33 107 537 399 ;
+C 62 ; WX 570 ; N greater ; B 31 -8 539 514 ;
+C 63 ; WX 500 ; N question ; B 79 -13 470 684 ;
+C 64 ; WX 832 ; N at ; B 63 -18 770 685 ;
+C 65 ; WX 667 ; N A ; B -67 0 593 683 ;
+C 66 ; WX 667 ; N B ; B -24 0 624 669 ;
+C 67 ; WX 667 ; N C ; B 32 -18 677 685 ;
+C 68 ; WX 722 ; N D ; B -46 0 685 669 ;
+C 69 ; WX 667 ; N E ; B -27 0 653 669 ;
+C 70 ; WX 667 ; N F ; B -13 0 660 669 ;
+C 71 ; WX 722 ; N G ; B 21 -18 706 685 ;
+C 72 ; WX 778 ; N H ; B -24 0 799 669 ;
+C 73 ; WX 389 ; N I ; B -32 0 406 669 ;
+C 74 ; WX 500 ; N J ; B -46 -99 524 669 ;
+C 75 ; WX 667 ; N K ; B -21 0 702 669 ;
+C 76 ; WX 611 ; N L ; B -22 0 590 669 ;
+C 77 ; WX 889 ; N M ; B -29 -12 917 669 ;
+C 78 ; WX 722 ; N N ; B -27 -15 748 669 ;
+C 79 ; WX 722 ; N O ; B 27 -18 691 685 ;
+C 80 ; WX 611 ; N P ; B -27 0 613 669 ;
+C 81 ; WX 722 ; N Q ; B 27 -208 691 685 ;
+C 82 ; WX 667 ; N R ; B -29 0 623 669 ;
+C 83 ; WX 556 ; N S ; B 2 -18 526 685 ;
+C 84 ; WX 611 ; N T ; B 50 0 650 669 ;
+C 85 ; WX 722 ; N U ; B 67 -18 744 669 ;
+C 86 ; WX 667 ; N V ; B 65 -18 715 669 ;
+C 87 ; WX 889 ; N W ; B 65 -18 940 669 ;
+C 88 ; WX 667 ; N X ; B -24 0 694 669 ;
+C 89 ; WX 611 ; N Y ; B 73 0 659 669 ;
+C 90 ; WX 611 ; N Z ; B -11 0 590 669 ;
+C 91 ; WX 333 ; N bracketleft ; B -37 -159 362 674 ;
+C 92 ; WX 278 ; N backslash ; B -1 -18 279 685 ;
+C 93 ; WX 333 ; N bracketright ; B -56 -157 343 674 ;
+C 94 ; WX 570 ; N asciicircum ; B 67 304 503 669 ;
+C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ;
+C 96 ; WX 333 ; N quoteleft ; B 128 369 332 685 ;
+C 97 ; WX 500 ; N a ; B -21 -14 455 462 ;
+C 98 ; WX 500 ; N b ; B -14 -13 444 699 ;
+C 99 ; WX 444 ; N c ; B -5 -13 392 462 ;
+C 100 ; WX 500 ; N d ; B -21 -13 517 699 ;
+C 101 ; WX 444 ; N e ; B 5 -13 398 462 ;
+C 102 ; WX 333 ; N f ; B -169 -205 446 698 ; L i fi ; L l fl ;
+C 103 ; WX 500 ; N g ; B -52 -203 478 462 ;
+C 104 ; WX 556 ; N h ; B -13 -9 498 699 ;
+C 105 ; WX 278 ; N i ; B 2 -9 263 684 ;
+C 106 ; WX 278 ; N j ; B -189 -207 279 684 ;
+C 107 ; WX 500 ; N k ; B -23 -8 483 699 ;
+C 108 ; WX 278 ; N l ; B 2 -9 290 699 ;
+C 109 ; WX 778 ; N m ; B -14 -9 722 462 ;
+C 110 ; WX 556 ; N n ; B -6 -9 493 462 ;
+C 111 ; WX 500 ; N o ; B -3 -13 441 462 ;
+C 112 ; WX 500 ; N p ; B -120 -205 446 462 ;
+C 113 ; WX 500 ; N q ; B 1 -205 471 462 ;
+C 114 ; WX 389 ; N r ; B -21 0 389 462 ;
+C 115 ; WX 389 ; N s ; B -19 -13 333 462 ;
+C 116 ; WX 278 ; N t ; B -11 -9 281 594 ;
+C 117 ; WX 556 ; N u ; B 15 -9 492 462 ;
+C 118 ; WX 444 ; N v ; B 16 -13 401 462 ;
+C 119 ; WX 667 ; N w ; B 16 -13 614 462 ;
+C 120 ; WX 500 ; N x ; B -46 -13 469 462 ;
+C 121 ; WX 444 ; N y ; B -94 -205 392 462 ;
+C 122 ; WX 389 ; N z ; B -43 -78 368 449 ;
+C 123 ; WX 348 ; N braceleft ; B 5 -187 436 686 ;
+C 124 ; WX 220 ; N bar ; B 66 -218 154 782 ;
+C 125 ; WX 348 ; N braceright ; B -129 -187 302 686 ;
+C 126 ; WX 570 ; N asciitilde ; B 54 173 516 333 ;
+C 161 ; WX 389 ; N exclamdown ; B 19 -205 322 492 ;
+C 162 ; WX 500 ; N cent ; B 42 -143 439 576 ;
+C 163 ; WX 500 ; N sterling ; B -32 -12 510 683 ;
+C 164 ; WX 167 ; N fraction ; B -169 -14 324 683 ;
+C 165 ; WX 500 ; N yen ; B 33 0 628 669 ;
+C 166 ; WX 500 ; N florin ; B -87 -156 537 707 ;
+C 167 ; WX 500 ; N section ; B 36 -143 459 685 ;
+C 168 ; WX 500 ; N currency ; B -26 34 526 586 ;
+C 169 ; WX 278 ; N quotesingle ; B 128 398 268 685 ;
+C 170 ; WX 500 ; N quotedblleft ; B 53 369 513 685 ;
+C 171 ; WX 500 ; N guillemotleft ; B 12 32 468 415 ;
+C 172 ; WX 333 ; N guilsinglleft ; B 32 32 303 415 ;
+C 173 ; WX 333 ; N guilsinglright ; B 10 32 281 415 ;
+C 174 ; WX 556 ; N fi ; B -188 -205 514 703 ;
+C 175 ; WX 556 ; N fl ; B -186 -205 553 704 ;
+C 177 ; WX 500 ; N endash ; B -40 178 477 269 ;
+C 178 ; WX 500 ; N dagger ; B 91 -145 494 685 ;
+C 179 ; WX 500 ; N daggerdbl ; B 10 -139 493 685 ;
+C 180 ; WX 250 ; N periodcentered ; B 51 257 199 405 ;
+C 182 ; WX 500 ; N paragraph ; B -57 -193 562 669 ;
+C 183 ; WX 350 ; N bullet ; B 0 175 350 525 ;
+C 184 ; WX 333 ; N quotesinglbase ; B -5 -182 199 134 ;
+C 185 ; WX 500 ; N quotedblbase ; B -57 -182 403 134 ;
+C 186 ; WX 500 ; N quotedblright ; B 53 369 513 685 ;
+C 187 ; WX 500 ; N guillemotright ; B 12 32 468 415 ;
+C 188 ; WX 1000 ; N ellipsis ; B 40 -13 852 135 ;
+C 189 ; WX 1000 ; N perthousand ; B 7 -29 996 706 ;
+C 191 ; WX 500 ; N questiondown ; B 30 -205 421 492 ;
+C 193 ; WX 333 ; N grave ; B 85 516 297 697 ;
+C 194 ; WX 333 ; N acute ; B 139 516 379 697 ;
+C 195 ; WX 333 ; N circumflex ; B 40 516 367 690 ;
+C 196 ; WX 333 ; N tilde ; B 48 536 407 655 ;
+C 197 ; WX 333 ; N macron ; B 51 553 393 623 ;
+C 198 ; WX 333 ; N breve ; B 71 516 387 678 ;
+C 199 ; WX 333 ; N dotaccent ; B 163 550 298 684 ;
+C 200 ; WX 333 ; N dieresis ; B 55 550 402 684 ;
+C 202 ; WX 333 ; N ring ; B 127 516 340 729 ;
+C 203 ; WX 333 ; N cedilla ; B -80 -218 156 5 ;
+C 205 ; WX 333 ; N hungarumlaut ; B 69 516 498 697 ;
+C 206 ; WX 333 ; N ogonek ; B 15 -183 244 34 ;
+C 207 ; WX 333 ; N caron ; B 79 516 411 690 ;
+C 208 ; WX 1000 ; N emdash ; B -40 178 977 269 ;
+C 225 ; WX 944 ; N AE ; B -64 0 918 669 ;
+C 227 ; WX 266 ; N ordfeminine ; B 16 399 330 685 ;
+C 232 ; WX 611 ; N Lslash ; B -22 0 590 669 ;
+C 233 ; WX 722 ; N Oslash ; B 27 -125 691 764 ;
+C 234 ; WX 944 ; N OE ; B 23 -8 946 677 ;
+C 235 ; WX 300 ; N ordmasculine ; B 56 400 347 685 ;
+C 241 ; WX 722 ; N ae ; B -5 -13 673 462 ;
+C 245 ; WX 278 ; N dotlessi ; B 2 -9 238 462 ;
+C 248 ; WX 278 ; N lslash ; B -7 -9 307 699 ;
+C 249 ; WX 500 ; N oslash ; B -3 -119 441 560 ;
+C 250 ; WX 722 ; N oe ; B 6 -13 674 462 ;
+C 251 ; WX 500 ; N germandbls ; B -200 -200 473 705 ;
+C -1 ; WX 389 ; N Idieresis ; B -32 0 450 862 ;
+C -1 ; WX 444 ; N eacute ; B 5 -13 435 697 ;
+C -1 ; WX 500 ; N abreve ; B -21 -14 471 678 ;
+C -1 ; WX 556 ; N uhungarumlaut ; B 15 -9 610 697 ;
+C -1 ; WX 444 ; N ecaron ; B 5 -13 467 690 ;
+C -1 ; WX 611 ; N Ydieresis ; B 73 0 659 862 ;
+C -1 ; WX 570 ; N divide ; B 33 -29 537 535 ;
+C -1 ; WX 611 ; N Yacute ; B 73 0 659 904 ;
+C -1 ; WX 667 ; N Acircumflex ; B -67 0 593 897 ;
+C -1 ; WX 500 ; N aacute ; B -21 -14 463 697 ;
+C -1 ; WX 722 ; N Ucircumflex ; B 67 -18 744 897 ;
+C -1 ; WX 444 ; N yacute ; B -94 -205 435 697 ;
+C -1 ; WX 389 ; N scommaaccent ; B -19 -218 333 462 ;
+C -1 ; WX 444 ; N ecircumflex ; B 5 -13 423 690 ;
+C -1 ; WX 722 ; N Uring ; B 67 -18 744 921 ;
+C -1 ; WX 722 ; N Udieresis ; B 67 -18 744 862 ;
+C -1 ; WX 500 ; N aogonek ; B -21 -183 455 462 ;
+C -1 ; WX 722 ; N Uacute ; B 67 -18 744 904 ;
+C -1 ; WX 556 ; N uogonek ; B 15 -183 492 462 ;
+C -1 ; WX 667 ; N Edieresis ; B -27 0 653 862 ;
+C -1 ; WX 722 ; N Dcroat ; B -31 0 700 669 ;
+C -1 ; WX 250 ; N commaaccent ; B -36 -218 131 -50 ;
+C -1 ; WX 747 ; N copyright ; B 30 -18 718 685 ;
+C -1 ; WX 667 ; N Emacron ; B -27 0 653 830 ;
+C -1 ; WX 444 ; N ccaron ; B -5 -13 467 690 ;
+C -1 ; WX 500 ; N aring ; B -21 -14 455 729 ;
+C -1 ; WX 722 ; N Ncommaaccent ; B -27 -218 748 669 ;
+C -1 ; WX 278 ; N lacute ; B 2 -9 392 904 ;
+C -1 ; WX 500 ; N agrave ; B -21 -14 455 697 ;
+C -1 ; WX 611 ; N Tcommaaccent ; B 50 -218 650 669 ;
+C -1 ; WX 667 ; N Cacute ; B 32 -18 677 904 ;
+C -1 ; WX 500 ; N atilde ; B -21 -14 491 655 ;
+C -1 ; WX 667 ; N Edotaccent ; B -27 0 653 862 ;
+C -1 ; WX 389 ; N scaron ; B -19 -13 424 690 ;
+C -1 ; WX 389 ; N scedilla ; B -19 -218 333 462 ;
+C -1 ; WX 278 ; N iacute ; B 2 -9 352 697 ;
+C -1 ; WX 494 ; N lozenge ; B 10 0 484 745 ;
+C -1 ; WX 667 ; N Rcaron ; B -29 0 623 897 ;
+C -1 ; WX 722 ; N Gcommaaccent ; B 21 -218 706 685 ;
+C -1 ; WX 556 ; N ucircumflex ; B 15 -9 492 690 ;
+C -1 ; WX 500 ; N acircumflex ; B -21 -14 455 690 ;
+C -1 ; WX 667 ; N Amacron ; B -67 0 593 830 ;
+C -1 ; WX 389 ; N rcaron ; B -21 0 424 690 ;
+C -1 ; WX 444 ; N ccedilla ; B -5 -218 392 462 ;
+C -1 ; WX 611 ; N Zdotaccent ; B -11 0 590 862 ;
+C -1 ; WX 611 ; N Thorn ; B -27 0 573 669 ;
+C -1 ; WX 722 ; N Omacron ; B 27 -18 691 830 ;
+C -1 ; WX 667 ; N Racute ; B -29 0 623 904 ;
+C -1 ; WX 556 ; N Sacute ; B 2 -18 531 904 ;
+C -1 ; WX 608 ; N dcaron ; B -21 -13 675 708 ;
+C -1 ; WX 722 ; N Umacron ; B 67 -18 744 830 ;
+C -1 ; WX 556 ; N uring ; B 15 -9 492 729 ;
+C -1 ; WX 300 ; N threesuperior ; B 17 265 321 683 ;
+C -1 ; WX 722 ; N Ograve ; B 27 -18 691 904 ;
+C -1 ; WX 667 ; N Agrave ; B -67 0 593 904 ;
+C -1 ; WX 667 ; N Abreve ; B -67 0 593 885 ;
+C -1 ; WX 570 ; N multiply ; B 48 16 522 490 ;
+C -1 ; WX 556 ; N uacute ; B 15 -9 492 697 ;
+C -1 ; WX 611 ; N Tcaron ; B 50 0 650 897 ;
+C -1 ; WX 494 ; N partialdiff ; B 11 -21 494 750 ;
+C -1 ; WX 444 ; N ydieresis ; B -94 -205 443 655 ;
+C -1 ; WX 722 ; N Nacute ; B -27 -15 748 904 ;
+C -1 ; WX 278 ; N icircumflex ; B -3 -9 324 690 ;
+C -1 ; WX 667 ; N Ecircumflex ; B -27 0 653 897 ;
+C -1 ; WX 500 ; N adieresis ; B -21 -14 476 655 ;
+C -1 ; WX 444 ; N edieresis ; B 5 -13 448 655 ;
+C -1 ; WX 444 ; N cacute ; B -5 -13 435 697 ;
+C -1 ; WX 556 ; N nacute ; B -6 -9 493 697 ;
+C -1 ; WX 556 ; N umacron ; B 15 -9 492 623 ;
+C -1 ; WX 722 ; N Ncaron ; B -27 -15 748 897 ;
+C -1 ; WX 389 ; N Iacute ; B -32 0 432 904 ;
+C -1 ; WX 570 ; N plusminus ; B 33 0 537 506 ;
+C -1 ; WX 220 ; N brokenbar ; B 66 -143 154 707 ;
+C -1 ; WX 747 ; N registered ; B 30 -18 718 685 ;
+C -1 ; WX 722 ; N Gbreve ; B 21 -18 706 885 ;
+C -1 ; WX 389 ; N Idotaccent ; B -32 0 406 862 ;
+C -1 ; WX 600 ; N summation ; B 14 -10 585 706 ;
+C -1 ; WX 667 ; N Egrave ; B -27 0 653 904 ;
+C -1 ; WX 389 ; N racute ; B -21 0 407 697 ;
+C -1 ; WX 500 ; N omacron ; B -3 -13 462 623 ;
+C -1 ; WX 611 ; N Zacute ; B -11 0 590 904 ;
+C -1 ; WX 611 ; N Zcaron ; B -11 0 590 897 ;
+C -1 ; WX 549 ; N greaterequal ; B 26 0 523 704 ;
+C -1 ; WX 722 ; N Eth ; B -31 0 700 669 ;
+C -1 ; WX 667 ; N Ccedilla ; B 32 -218 677 685 ;
+C -1 ; WX 278 ; N lcommaaccent ; B -42 -218 290 699 ;
+C -1 ; WX 366 ; N tcaron ; B -11 -9 434 754 ;
+C -1 ; WX 444 ; N eogonek ; B 5 -183 398 462 ;
+C -1 ; WX 722 ; N Uogonek ; B 67 -183 744 669 ;
+C -1 ; WX 667 ; N Aacute ; B -67 0 593 904 ;
+C -1 ; WX 667 ; N Adieresis ; B -67 0 593 862 ;
+C -1 ; WX 444 ; N egrave ; B 5 -13 398 697 ;
+C -1 ; WX 389 ; N zacute ; B -43 -78 407 697 ;
+C -1 ; WX 278 ; N iogonek ; B -20 -183 263 684 ;
+C -1 ; WX 722 ; N Oacute ; B 27 -18 691 904 ;
+C -1 ; WX 500 ; N oacute ; B -3 -13 463 697 ;
+C -1 ; WX 500 ; N amacron ; B -21 -14 467 623 ;
+C -1 ; WX 389 ; N sacute ; B -19 -13 407 697 ;
+C -1 ; WX 278 ; N idieresis ; B 2 -9 364 655 ;
+C -1 ; WX 722 ; N Ocircumflex ; B 27 -18 691 897 ;
+C -1 ; WX 722 ; N Ugrave ; B 67 -18 744 904 ;
+C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
+C -1 ; WX 500 ; N thorn ; B -120 -205 446 699 ;
+C -1 ; WX 300 ; N twosuperior ; B 2 274 313 683 ;
+C -1 ; WX 722 ; N Odieresis ; B 27 -18 691 862 ;
+C -1 ; WX 576 ; N mu ; B -60 -207 516 449 ;
+C -1 ; WX 278 ; N igrave ; B 2 -9 259 697 ;
+C -1 ; WX 500 ; N ohungarumlaut ; B -3 -13 582 697 ;
+C -1 ; WX 667 ; N Eogonek ; B -27 -183 653 669 ;
+C -1 ; WX 500 ; N dcroat ; B -21 -13 552 699 ;
+C -1 ; WX 750 ; N threequarters ; B 7 -14 726 683 ;
+C -1 ; WX 556 ; N Scedilla ; B 2 -218 526 685 ;
+C -1 ; WX 382 ; N lcaron ; B 2 -9 448 708 ;
+C -1 ; WX 667 ; N Kcommaaccent ; B -21 -218 702 669 ;
+C -1 ; WX 611 ; N Lacute ; B -22 0 590 904 ;
+C -1 ; WX 1000 ; N trademark ; B 32 263 968 669 ;
+C -1 ; WX 444 ; N edotaccent ; B 5 -13 398 655 ;
+C -1 ; WX 389 ; N Igrave ; B -32 0 406 904 ;
+C -1 ; WX 389 ; N Imacron ; B -32 0 461 830 ;
+C -1 ; WX 611 ; N Lcaron ; B -22 0 671 718 ;
+C -1 ; WX 750 ; N onehalf ; B -9 -14 723 683 ;
+C -1 ; WX 549 ; N lessequal ; B 29 0 526 704 ;
+C -1 ; WX 500 ; N ocircumflex ; B -3 -13 451 690 ;
+C -1 ; WX 556 ; N ntilde ; B -6 -9 504 655 ;
+C -1 ; WX 722 ; N Uhungarumlaut ; B 67 -18 744 904 ;
+C -1 ; WX 667 ; N Eacute ; B -27 0 653 904 ;
+C -1 ; WX 444 ; N emacron ; B 5 -13 439 623 ;
+C -1 ; WX 500 ; N gbreve ; B -52 -203 478 678 ;
+C -1 ; WX 750 ; N onequarter ; B 7 -14 721 683 ;
+C -1 ; WX 556 ; N Scaron ; B 2 -18 553 897 ;
+C -1 ; WX 556 ; N Scommaaccent ; B 2 -218 526 685 ;
+C -1 ; WX 722 ; N Ohungarumlaut ; B 27 -18 723 904 ;
+C -1 ; WX 400 ; N degree ; B 83 397 369 683 ;
+C -1 ; WX 500 ; N ograve ; B -3 -13 441 697 ;
+C -1 ; WX 667 ; N Ccaron ; B 32 -18 677 897 ;
+C -1 ; WX 556 ; N ugrave ; B 15 -9 492 697 ;
+C -1 ; WX 549 ; N radical ; B 10 -46 512 850 ;
+C -1 ; WX 722 ; N Dcaron ; B -46 0 685 897 ;
+C -1 ; WX 389 ; N rcommaaccent ; B -67 -218 389 462 ;
+C -1 ; WX 722 ; N Ntilde ; B -27 -15 748 862 ;
+C -1 ; WX 500 ; N otilde ; B -3 -13 491 655 ;
+C -1 ; WX 667 ; N Rcommaaccent ; B -29 -218 623 669 ;
+C -1 ; WX 611 ; N Lcommaaccent ; B -22 -218 590 669 ;
+C -1 ; WX 667 ; N Atilde ; B -67 0 593 862 ;
+C -1 ; WX 667 ; N Aogonek ; B -67 -183 604 683 ;
+C -1 ; WX 667 ; N Aring ; B -67 0 593 921 ;
+C -1 ; WX 722 ; N Otilde ; B 27 -18 691 862 ;
+C -1 ; WX 389 ; N zdotaccent ; B -43 -78 368 655 ;
+C -1 ; WX 667 ; N Ecaron ; B -27 0 653 897 ;
+C -1 ; WX 389 ; N Iogonek ; B -32 -183 406 669 ;
+C -1 ; WX 500 ; N kcommaaccent ; B -23 -218 483 699 ;
+C -1 ; WX 606 ; N minus ; B 51 209 555 297 ;
+C -1 ; WX 389 ; N Icircumflex ; B -32 0 450 897 ;
+C -1 ; WX 556 ; N ncaron ; B -6 -9 523 690 ;
+C -1 ; WX 278 ; N tcommaaccent ; B -62 -218 281 594 ;
+C -1 ; WX 606 ; N logicalnot ; B 51 108 555 399 ;
+C -1 ; WX 500 ; N odieresis ; B -3 -13 471 655 ;
+C -1 ; WX 556 ; N udieresis ; B 15 -9 499 655 ;
+C -1 ; WX 549 ; N notequal ; B 15 -49 540 570 ;
+C -1 ; WX 500 ; N gcommaaccent ; B -52 -203 478 767 ;
+C -1 ; WX 500 ; N eth ; B -3 -13 454 699 ;
+C -1 ; WX 389 ; N zcaron ; B -43 -78 424 690 ;
+C -1 ; WX 556 ; N ncommaaccent ; B -6 -218 493 462 ;
+C -1 ; WX 300 ; N onesuperior ; B 30 274 301 683 ;
+C -1 ; WX 278 ; N imacron ; B 2 -9 294 623 ;
+C -1 ; WX 500 ; N Euro ; B 0 0 0 0 ;
+EndCharMetrics
+StartKernData
+StartKernPairs 2038
+KPX A C -65
+KPX A Cacute -65
+KPX A Ccaron -65
+KPX A Ccedilla -65
+KPX A G -60
+KPX A Gbreve -60
+KPX A Gcommaaccent -60
+KPX A O -50
+KPX A Oacute -50
+KPX A Ocircumflex -50
+KPX A Odieresis -50
+KPX A Ograve -50
+KPX A Ohungarumlaut -50
+KPX A Omacron -50
+KPX A Oslash -50
+KPX A Otilde -50
+KPX A Q -55
+KPX A T -55
+KPX A Tcaron -55
+KPX A Tcommaaccent -55
+KPX A U -50
+KPX A Uacute -50
+KPX A Ucircumflex -50
+KPX A Udieresis -50
+KPX A Ugrave -50
+KPX A Uhungarumlaut -50
+KPX A Umacron -50
+KPX A Uogonek -50
+KPX A Uring -50
+KPX A V -95
+KPX A W -100
+KPX A Y -70
+KPX A Yacute -70
+KPX A Ydieresis -70
+KPX A quoteright -74
+KPX A u -30
+KPX A uacute -30
+KPX A ucircumflex -30
+KPX A udieresis -30
+KPX A ugrave -30
+KPX A uhungarumlaut -30
+KPX A umacron -30
+KPX A uogonek -30
+KPX A uring -30
+KPX A v -74
+KPX A w -74
+KPX A y -74
+KPX A yacute -74
+KPX A ydieresis -74
+KPX Aacute C -65
+KPX Aacute Cacute -65
+KPX Aacute Ccaron -65
+KPX Aacute Ccedilla -65
+KPX Aacute G -60
+KPX Aacute Gbreve -60
+KPX Aacute Gcommaaccent -60
+KPX Aacute O -50
+KPX Aacute Oacute -50
+KPX Aacute Ocircumflex -50
+KPX Aacute Odieresis -50
+KPX Aacute Ograve -50
+KPX Aacute Ohungarumlaut -50
+KPX Aacute Omacron -50
+KPX Aacute Oslash -50
+KPX Aacute Otilde -50
+KPX Aacute Q -55
+KPX Aacute T -55
+KPX Aacute Tcaron -55
+KPX Aacute Tcommaaccent -55
+KPX Aacute U -50
+KPX Aacute Uacute -50
+KPX Aacute Ucircumflex -50
+KPX Aacute Udieresis -50
+KPX Aacute Ugrave -50
+KPX Aacute Uhungarumlaut -50
+KPX Aacute Umacron -50
+KPX Aacute Uogonek -50
+KPX Aacute Uring -50
+KPX Aacute V -95
+KPX Aacute W -100
+KPX Aacute Y -70
+KPX Aacute Yacute -70
+KPX Aacute Ydieresis -70
+KPX Aacute quoteright -74
+KPX Aacute u -30
+KPX Aacute uacute -30
+KPX Aacute ucircumflex -30
+KPX Aacute udieresis -30
+KPX Aacute ugrave -30
+KPX Aacute uhungarumlaut -30
+KPX Aacute umacron -30
+KPX Aacute uogonek -30
+KPX Aacute uring -30
+KPX Aacute v -74
+KPX Aacute w -74
+KPX Aacute y -74
+KPX Aacute yacute -74
+KPX Aacute ydieresis -74
+KPX Abreve C -65
+KPX Abreve Cacute -65
+KPX Abreve Ccaron -65
+KPX Abreve Ccedilla -65
+KPX Abreve G -60
+KPX Abreve Gbreve -60
+KPX Abreve Gcommaaccent -60
+KPX Abreve O -50
+KPX Abreve Oacute -50
+KPX Abreve Ocircumflex -50
+KPX Abreve Odieresis -50
+KPX Abreve Ograve -50
+KPX Abreve Ohungarumlaut -50
+KPX Abreve Omacron -50
+KPX Abreve Oslash -50
+KPX Abreve Otilde -50
+KPX Abreve Q -55
+KPX Abreve T -55
+KPX Abreve Tcaron -55
+KPX Abreve Tcommaaccent -55
+KPX Abreve U -50
+KPX Abreve Uacute -50
+KPX Abreve Ucircumflex -50
+KPX Abreve Udieresis -50
+KPX Abreve Ugrave -50
+KPX Abreve Uhungarumlaut -50
+KPX Abreve Umacron -50
+KPX Abreve Uogonek -50
+KPX Abreve Uring -50
+KPX Abreve V -95
+KPX Abreve W -100
+KPX Abreve Y -70
+KPX Abreve Yacute -70
+KPX Abreve Ydieresis -70
+KPX Abreve quoteright -74
+KPX Abreve u -30
+KPX Abreve uacute -30
+KPX Abreve ucircumflex -30
+KPX Abreve udieresis -30
+KPX Abreve ugrave -30
+KPX Abreve uhungarumlaut -30
+KPX Abreve umacron -30
+KPX Abreve uogonek -30
+KPX Abreve uring -30
+KPX Abreve v -74
+KPX Abreve w -74
+KPX Abreve y -74
+KPX Abreve yacute -74
+KPX Abreve ydieresis -74
+KPX Acircumflex C -65
+KPX Acircumflex Cacute -65
+KPX Acircumflex Ccaron -65
+KPX Acircumflex Ccedilla -65
+KPX Acircumflex G -60
+KPX Acircumflex Gbreve -60
+KPX Acircumflex Gcommaaccent -60
+KPX Acircumflex O -50
+KPX Acircumflex Oacute -50
+KPX Acircumflex Ocircumflex -50
+KPX Acircumflex Odieresis -50
+KPX Acircumflex Ograve -50
+KPX Acircumflex Ohungarumlaut -50
+KPX Acircumflex Omacron -50
+KPX Acircumflex Oslash -50
+KPX Acircumflex Otilde -50
+KPX Acircumflex Q -55
+KPX Acircumflex T -55
+KPX Acircumflex Tcaron -55
+KPX Acircumflex Tcommaaccent -55
+KPX Acircumflex U -50
+KPX Acircumflex Uacute -50
+KPX Acircumflex Ucircumflex -50
+KPX Acircumflex Udieresis -50
+KPX Acircumflex Ugrave -50
+KPX Acircumflex Uhungarumlaut -50
+KPX Acircumflex Umacron -50
+KPX Acircumflex Uogonek -50
+KPX Acircumflex Uring -50
+KPX Acircumflex V -95
+KPX Acircumflex W -100
+KPX Acircumflex Y -70
+KPX Acircumflex Yacute -70
+KPX Acircumflex Ydieresis -70
+KPX Acircumflex quoteright -74
+KPX Acircumflex u -30
+KPX Acircumflex uacute -30
+KPX Acircumflex ucircumflex -30
+KPX Acircumflex udieresis -30
+KPX Acircumflex ugrave -30
+KPX Acircumflex uhungarumlaut -30
+KPX Acircumflex umacron -30
+KPX Acircumflex uogonek -30
+KPX Acircumflex uring -30
+KPX Acircumflex v -74
+KPX Acircumflex w -74
+KPX Acircumflex y -74
+KPX Acircumflex yacute -74
+KPX Acircumflex ydieresis -74
+KPX Adieresis C -65
+KPX Adieresis Cacute -65
+KPX Adieresis Ccaron -65
+KPX Adieresis Ccedilla -65
+KPX Adieresis G -60
+KPX Adieresis Gbreve -60
+KPX Adieresis Gcommaaccent -60
+KPX Adieresis O -50
+KPX Adieresis Oacute -50
+KPX Adieresis Ocircumflex -50
+KPX Adieresis Odieresis -50
+KPX Adieresis Ograve -50
+KPX Adieresis Ohungarumlaut -50
+KPX Adieresis Omacron -50
+KPX Adieresis Oslash -50
+KPX Adieresis Otilde -50
+KPX Adieresis Q -55
+KPX Adieresis T -55
+KPX Adieresis Tcaron -55
+KPX Adieresis Tcommaaccent -55
+KPX Adieresis U -50
+KPX Adieresis Uacute -50
+KPX Adieresis Ucircumflex -50
+KPX Adieresis Udieresis -50
+KPX Adieresis Ugrave -50
+KPX Adieresis Uhungarumlaut -50
+KPX Adieresis Umacron -50
+KPX Adieresis Uogonek -50
+KPX Adieresis Uring -50
+KPX Adieresis V -95
+KPX Adieresis W -100
+KPX Adieresis Y -70
+KPX Adieresis Yacute -70
+KPX Adieresis Ydieresis -70
+KPX Adieresis quoteright -74
+KPX Adieresis u -30
+KPX Adieresis uacute -30
+KPX Adieresis ucircumflex -30
+KPX Adieresis udieresis -30
+KPX Adieresis ugrave -30
+KPX Adieresis uhungarumlaut -30
+KPX Adieresis umacron -30
+KPX Adieresis uogonek -30
+KPX Adieresis uring -30
+KPX Adieresis v -74
+KPX Adieresis w -74
+KPX Adieresis y -74
+KPX Adieresis yacute -74
+KPX Adieresis ydieresis -74
+KPX Agrave C -65
+KPX Agrave Cacute -65
+KPX Agrave Ccaron -65
+KPX Agrave Ccedilla -65
+KPX Agrave G -60
+KPX Agrave Gbreve -60
+KPX Agrave Gcommaaccent -60
+KPX Agrave O -50
+KPX Agrave Oacute -50
+KPX Agrave Ocircumflex -50
+KPX Agrave Odieresis -50
+KPX Agrave Ograve -50
+KPX Agrave Ohungarumlaut -50
+KPX Agrave Omacron -50
+KPX Agrave Oslash -50
+KPX Agrave Otilde -50
+KPX Agrave Q -55
+KPX Agrave T -55
+KPX Agrave Tcaron -55
+KPX Agrave Tcommaaccent -55
+KPX Agrave U -50
+KPX Agrave Uacute -50
+KPX Agrave Ucircumflex -50
+KPX Agrave Udieresis -50
+KPX Agrave Ugrave -50
+KPX Agrave Uhungarumlaut -50
+KPX Agrave Umacron -50
+KPX Agrave Uogonek -50
+KPX Agrave Uring -50
+KPX Agrave V -95
+KPX Agrave W -100
+KPX Agrave Y -70
+KPX Agrave Yacute -70
+KPX Agrave Ydieresis -70
+KPX Agrave quoteright -74
+KPX Agrave u -30
+KPX Agrave uacute -30
+KPX Agrave ucircumflex -30
+KPX Agrave udieresis -30
+KPX Agrave ugrave -30
+KPX Agrave uhungarumlaut -30
+KPX Agrave umacron -30
+KPX Agrave uogonek -30
+KPX Agrave uring -30
+KPX Agrave v -74
+KPX Agrave w -74
+KPX Agrave y -74
+KPX Agrave yacute -74
+KPX Agrave ydieresis -74
+KPX Amacron C -65
+KPX Amacron Cacute -65
+KPX Amacron Ccaron -65
+KPX Amacron Ccedilla -65
+KPX Amacron G -60
+KPX Amacron Gbreve -60
+KPX Amacron Gcommaaccent -60
+KPX Amacron O -50
+KPX Amacron Oacute -50
+KPX Amacron Ocircumflex -50
+KPX Amacron Odieresis -50
+KPX Amacron Ograve -50
+KPX Amacron Ohungarumlaut -50
+KPX Amacron Omacron -50
+KPX Amacron Oslash -50
+KPX Amacron Otilde -50
+KPX Amacron Q -55
+KPX Amacron T -55
+KPX Amacron Tcaron -55
+KPX Amacron Tcommaaccent -55
+KPX Amacron U -50
+KPX Amacron Uacute -50
+KPX Amacron Ucircumflex -50
+KPX Amacron Udieresis -50
+KPX Amacron Ugrave -50
+KPX Amacron Uhungarumlaut -50
+KPX Amacron Umacron -50
+KPX Amacron Uogonek -50
+KPX Amacron Uring -50
+KPX Amacron V -95
+KPX Amacron W -100
+KPX Amacron Y -70
+KPX Amacron Yacute -70
+KPX Amacron Ydieresis -70
+KPX Amacron quoteright -74
+KPX Amacron u -30
+KPX Amacron uacute -30
+KPX Amacron ucircumflex -30
+KPX Amacron udieresis -30
+KPX Amacron ugrave -30
+KPX Amacron uhungarumlaut -30
+KPX Amacron umacron -30
+KPX Amacron uogonek -30
+KPX Amacron uring -30
+KPX Amacron v -74
+KPX Amacron w -74
+KPX Amacron y -74
+KPX Amacron yacute -74
+KPX Amacron ydieresis -74
+KPX Aogonek C -65
+KPX Aogonek Cacute -65
+KPX Aogonek Ccaron -65
+KPX Aogonek Ccedilla -65
+KPX Aogonek G -60
+KPX Aogonek Gbreve -60
+KPX Aogonek Gcommaaccent -60
+KPX Aogonek O -50
+KPX Aogonek Oacute -50
+KPX Aogonek Ocircumflex -50
+KPX Aogonek Odieresis -50
+KPX Aogonek Ograve -50
+KPX Aogonek Ohungarumlaut -50
+KPX Aogonek Omacron -50
+KPX Aogonek Oslash -50
+KPX Aogonek Otilde -50
+KPX Aogonek Q -55
+KPX Aogonek T -55
+KPX Aogonek Tcaron -55
+KPX Aogonek Tcommaaccent -55
+KPX Aogonek U -50
+KPX Aogonek Uacute -50
+KPX Aogonek Ucircumflex -50
+KPX Aogonek Udieresis -50
+KPX Aogonek Ugrave -50
+KPX Aogonek Uhungarumlaut -50
+KPX Aogonek Umacron -50
+KPX Aogonek Uogonek -50
+KPX Aogonek Uring -50
+KPX Aogonek V -95
+KPX Aogonek W -100
+KPX Aogonek Y -70
+KPX Aogonek Yacute -70
+KPX Aogonek Ydieresis -70
+KPX Aogonek quoteright -74
+KPX Aogonek u -30
+KPX Aogonek uacute -30
+KPX Aogonek ucircumflex -30
+KPX Aogonek udieresis -30
+KPX Aogonek ugrave -30
+KPX Aogonek uhungarumlaut -30
+KPX Aogonek umacron -30
+KPX Aogonek uogonek -30
+KPX Aogonek uring -30
+KPX Aogonek v -74
+KPX Aogonek w -74
+KPX Aogonek y -34
+KPX Aogonek yacute -34
+KPX Aogonek ydieresis -34
+KPX Aring C -65
+KPX Aring Cacute -65
+KPX Aring Ccaron -65
+KPX Aring Ccedilla -65
+KPX Aring G -60
+KPX Aring Gbreve -60
+KPX Aring Gcommaaccent -60
+KPX Aring O -50
+KPX Aring Oacute -50
+KPX Aring Ocircumflex -50
+KPX Aring Odieresis -50
+KPX Aring Ograve -50
+KPX Aring Ohungarumlaut -50
+KPX Aring Omacron -50
+KPX Aring Oslash -50
+KPX Aring Otilde -50
+KPX Aring Q -55
+KPX Aring T -55
+KPX Aring Tcaron -55
+KPX Aring Tcommaaccent -55
+KPX Aring U -50
+KPX Aring Uacute -50
+KPX Aring Ucircumflex -50
+KPX Aring Udieresis -50
+KPX Aring Ugrave -50
+KPX Aring Uhungarumlaut -50
+KPX Aring Umacron -50
+KPX Aring Uogonek -50
+KPX Aring Uring -50
+KPX Aring V -95
+KPX Aring W -100
+KPX Aring Y -70
+KPX Aring Yacute -70
+KPX Aring Ydieresis -70
+KPX Aring quoteright -74
+KPX Aring u -30
+KPX Aring uacute -30
+KPX Aring ucircumflex -30
+KPX Aring udieresis -30
+KPX Aring ugrave -30
+KPX Aring uhungarumlaut -30
+KPX Aring umacron -30
+KPX Aring uogonek -30
+KPX Aring uring -30
+KPX Aring v -74
+KPX Aring w -74
+KPX Aring y -74
+KPX Aring yacute -74
+KPX Aring ydieresis -74
+KPX Atilde C -65
+KPX Atilde Cacute -65
+KPX Atilde Ccaron -65
+KPX Atilde Ccedilla -65
+KPX Atilde G -60
+KPX Atilde Gbreve -60
+KPX Atilde Gcommaaccent -60
+KPX Atilde O -50
+KPX Atilde Oacute -50
+KPX Atilde Ocircumflex -50
+KPX Atilde Odieresis -50
+KPX Atilde Ograve -50
+KPX Atilde Ohungarumlaut -50
+KPX Atilde Omacron -50
+KPX Atilde Oslash -50
+KPX Atilde Otilde -50
+KPX Atilde Q -55
+KPX Atilde T -55
+KPX Atilde Tcaron -55
+KPX Atilde Tcommaaccent -55
+KPX Atilde U -50
+KPX Atilde Uacute -50
+KPX Atilde Ucircumflex -50
+KPX Atilde Udieresis -50
+KPX Atilde Ugrave -50
+KPX Atilde Uhungarumlaut -50
+KPX Atilde Umacron -50
+KPX Atilde Uogonek -50
+KPX Atilde Uring -50
+KPX Atilde V -95
+KPX Atilde W -100
+KPX Atilde Y -70
+KPX Atilde Yacute -70
+KPX Atilde Ydieresis -70
+KPX Atilde quoteright -74
+KPX Atilde u -30
+KPX Atilde uacute -30
+KPX Atilde ucircumflex -30
+KPX Atilde udieresis -30
+KPX Atilde ugrave -30
+KPX Atilde uhungarumlaut -30
+KPX Atilde umacron -30
+KPX Atilde uogonek -30
+KPX Atilde uring -30
+KPX Atilde v -74
+KPX Atilde w -74
+KPX Atilde y -74
+KPX Atilde yacute -74
+KPX Atilde ydieresis -74
+KPX B A -25
+KPX B Aacute -25
+KPX B Abreve -25
+KPX B Acircumflex -25
+KPX B Adieresis -25
+KPX B Agrave -25
+KPX B Amacron -25
+KPX B Aogonek -25
+KPX B Aring -25
+KPX B Atilde -25
+KPX B U -10
+KPX B Uacute -10
+KPX B Ucircumflex -10
+KPX B Udieresis -10
+KPX B Ugrave -10
+KPX B Uhungarumlaut -10
+KPX B Umacron -10
+KPX B Uogonek -10
+KPX B Uring -10
+KPX D A -25
+KPX D Aacute -25
+KPX D Abreve -25
+KPX D Acircumflex -25
+KPX D Adieresis -25
+KPX D Agrave -25
+KPX D Amacron -25
+KPX D Aogonek -25
+KPX D Aring -25
+KPX D Atilde -25
+KPX D V -50
+KPX D W -40
+KPX D Y -50
+KPX D Yacute -50
+KPX D Ydieresis -50
+KPX Dcaron A -25
+KPX Dcaron Aacute -25
+KPX Dcaron Abreve -25
+KPX Dcaron Acircumflex -25
+KPX Dcaron Adieresis -25
+KPX Dcaron Agrave -25
+KPX Dcaron Amacron -25
+KPX Dcaron Aogonek -25
+KPX Dcaron Aring -25
+KPX Dcaron Atilde -25
+KPX Dcaron V -50
+KPX Dcaron W -40
+KPX Dcaron Y -50
+KPX Dcaron Yacute -50
+KPX Dcaron Ydieresis -50
+KPX Dcroat A -25
+KPX Dcroat Aacute -25
+KPX Dcroat Abreve -25
+KPX Dcroat Acircumflex -25
+KPX Dcroat Adieresis -25
+KPX Dcroat Agrave -25
+KPX Dcroat Amacron -25
+KPX Dcroat Aogonek -25
+KPX Dcroat Aring -25
+KPX Dcroat Atilde -25
+KPX Dcroat V -50
+KPX Dcroat W -40
+KPX Dcroat Y -50
+KPX Dcroat Yacute -50
+KPX Dcroat Ydieresis -50
+KPX F A -100
+KPX F Aacute -100
+KPX F Abreve -100
+KPX F Acircumflex -100
+KPX F Adieresis -100
+KPX F Agrave -100
+KPX F Amacron -100
+KPX F Aogonek -100
+KPX F Aring -100
+KPX F Atilde -100
+KPX F a -95
+KPX F aacute -95
+KPX F abreve -95
+KPX F acircumflex -95
+KPX F adieresis -95
+KPX F agrave -95
+KPX F amacron -95
+KPX F aogonek -95
+KPX F aring -95
+KPX F atilde -95
+KPX F comma -129
+KPX F e -100
+KPX F eacute -100
+KPX F ecaron -100
+KPX F ecircumflex -100
+KPX F edieresis -100
+KPX F edotaccent -100
+KPX F egrave -100
+KPX F emacron -100
+KPX F eogonek -100
+KPX F i -40
+KPX F iacute -40
+KPX F icircumflex -40
+KPX F idieresis -40
+KPX F igrave -40
+KPX F imacron -40
+KPX F iogonek -40
+KPX F o -70
+KPX F oacute -70
+KPX F ocircumflex -70
+KPX F odieresis -70
+KPX F ograve -70
+KPX F ohungarumlaut -70
+KPX F omacron -70
+KPX F oslash -70
+KPX F otilde -70
+KPX F period -129
+KPX F r -50
+KPX F racute -50
+KPX F rcaron -50
+KPX F rcommaaccent -50
+KPX J A -25
+KPX J Aacute -25
+KPX J Abreve -25
+KPX J Acircumflex -25
+KPX J Adieresis -25
+KPX J Agrave -25
+KPX J Amacron -25
+KPX J Aogonek -25
+KPX J Aring -25
+KPX J Atilde -25
+KPX J a -40
+KPX J aacute -40
+KPX J abreve -40
+KPX J acircumflex -40
+KPX J adieresis -40
+KPX J agrave -40
+KPX J amacron -40
+KPX J aogonek -40
+KPX J aring -40
+KPX J atilde -40
+KPX J comma -10
+KPX J e -40
+KPX J eacute -40
+KPX J ecaron -40
+KPX J ecircumflex -40
+KPX J edieresis -40
+KPX J edotaccent -40
+KPX J egrave -40
+KPX J emacron -40
+KPX J eogonek -40
+KPX J o -40
+KPX J oacute -40
+KPX J ocircumflex -40
+KPX J odieresis -40
+KPX J ograve -40
+KPX J ohungarumlaut -40
+KPX J omacron -40
+KPX J oslash -40
+KPX J otilde -40
+KPX J period -10
+KPX J u -40
+KPX J uacute -40
+KPX J ucircumflex -40
+KPX J udieresis -40
+KPX J ugrave -40
+KPX J uhungarumlaut -40
+KPX J umacron -40
+KPX J uogonek -40
+KPX J uring -40
+KPX K O -30
+KPX K Oacute -30
+KPX K Ocircumflex -30
+KPX K Odieresis -30
+KPX K Ograve -30
+KPX K Ohungarumlaut -30
+KPX K Omacron -30
+KPX K Oslash -30
+KPX K Otilde -30
+KPX K e -25
+KPX K eacute -25
+KPX K ecaron -25
+KPX K ecircumflex -25
+KPX K edieresis -25
+KPX K edotaccent -25
+KPX K egrave -25
+KPX K emacron -25
+KPX K eogonek -25
+KPX K o -25
+KPX K oacute -25
+KPX K ocircumflex -25
+KPX K odieresis -25
+KPX K ograve -25
+KPX K ohungarumlaut -25
+KPX K omacron -25
+KPX K oslash -25
+KPX K otilde -25
+KPX K u -20
+KPX K uacute -20
+KPX K ucircumflex -20
+KPX K udieresis -20
+KPX K ugrave -20
+KPX K uhungarumlaut -20
+KPX K umacron -20
+KPX K uogonek -20
+KPX K uring -20
+KPX K y -20
+KPX K yacute -20
+KPX K ydieresis -20
+KPX Kcommaaccent O -30
+KPX Kcommaaccent Oacute -30
+KPX Kcommaaccent Ocircumflex -30
+KPX Kcommaaccent Odieresis -30
+KPX Kcommaaccent Ograve -30
+KPX Kcommaaccent Ohungarumlaut -30
+KPX Kcommaaccent Omacron -30
+KPX Kcommaaccent Oslash -30
+KPX Kcommaaccent Otilde -30
+KPX Kcommaaccent e -25
+KPX Kcommaaccent eacute -25
+KPX Kcommaaccent ecaron -25
+KPX Kcommaaccent ecircumflex -25
+KPX Kcommaaccent edieresis -25
+KPX Kcommaaccent edotaccent -25
+KPX Kcommaaccent egrave -25
+KPX Kcommaaccent emacron -25
+KPX Kcommaaccent eogonek -25
+KPX Kcommaaccent o -25
+KPX Kcommaaccent oacute -25
+KPX Kcommaaccent ocircumflex -25
+KPX Kcommaaccent odieresis -25
+KPX Kcommaaccent ograve -25
+KPX Kcommaaccent ohungarumlaut -25
+KPX Kcommaaccent omacron -25
+KPX Kcommaaccent oslash -25
+KPX Kcommaaccent otilde -25
+KPX Kcommaaccent u -20
+KPX Kcommaaccent uacute -20
+KPX Kcommaaccent ucircumflex -20
+KPX Kcommaaccent udieresis -20
+KPX Kcommaaccent ugrave -20
+KPX Kcommaaccent uhungarumlaut -20
+KPX Kcommaaccent umacron -20
+KPX Kcommaaccent uogonek -20
+KPX Kcommaaccent uring -20
+KPX Kcommaaccent y -20
+KPX Kcommaaccent yacute -20
+KPX Kcommaaccent ydieresis -20
+KPX L T -18
+KPX L Tcaron -18
+KPX L Tcommaaccent -18
+KPX L V -37
+KPX L W -37
+KPX L Y -37
+KPX L Yacute -37
+KPX L Ydieresis -37
+KPX L quoteright -55
+KPX L y -37
+KPX L yacute -37
+KPX L ydieresis -37
+KPX Lacute T -18
+KPX Lacute Tcaron -18
+KPX Lacute Tcommaaccent -18
+KPX Lacute V -37
+KPX Lacute W -37
+KPX Lacute Y -37
+KPX Lacute Yacute -37
+KPX Lacute Ydieresis -37
+KPX Lacute quoteright -55
+KPX Lacute y -37
+KPX Lacute yacute -37
+KPX Lacute ydieresis -37
+KPX Lcommaaccent T -18
+KPX Lcommaaccent Tcaron -18
+KPX Lcommaaccent Tcommaaccent -18
+KPX Lcommaaccent V -37
+KPX Lcommaaccent W -37
+KPX Lcommaaccent Y -37
+KPX Lcommaaccent Yacute -37
+KPX Lcommaaccent Ydieresis -37
+KPX Lcommaaccent quoteright -55
+KPX Lcommaaccent y -37
+KPX Lcommaaccent yacute -37
+KPX Lcommaaccent ydieresis -37
+KPX Lslash T -18
+KPX Lslash Tcaron -18
+KPX Lslash Tcommaaccent -18
+KPX Lslash V -37
+KPX Lslash W -37
+KPX Lslash Y -37
+KPX Lslash Yacute -37
+KPX Lslash Ydieresis -37
+KPX Lslash quoteright -55
+KPX Lslash y -37
+KPX Lslash yacute -37
+KPX Lslash ydieresis -37
+KPX N A -30
+KPX N Aacute -30
+KPX N Abreve -30
+KPX N Acircumflex -30
+KPX N Adieresis -30
+KPX N Agrave -30
+KPX N Amacron -30
+KPX N Aogonek -30
+KPX N Aring -30
+KPX N Atilde -30
+KPX Nacute A -30
+KPX Nacute Aacute -30
+KPX Nacute Abreve -30
+KPX Nacute Acircumflex -30
+KPX Nacute Adieresis -30
+KPX Nacute Agrave -30
+KPX Nacute Amacron -30
+KPX Nacute Aogonek -30
+KPX Nacute Aring -30
+KPX Nacute Atilde -30
+KPX Ncaron A -30
+KPX Ncaron Aacute -30
+KPX Ncaron Abreve -30
+KPX Ncaron Acircumflex -30
+KPX Ncaron Adieresis -30
+KPX Ncaron Agrave -30
+KPX Ncaron Amacron -30
+KPX Ncaron Aogonek -30
+KPX Ncaron Aring -30
+KPX Ncaron Atilde -30
+KPX Ncommaaccent A -30
+KPX Ncommaaccent Aacute -30
+KPX Ncommaaccent Abreve -30
+KPX Ncommaaccent Acircumflex -30
+KPX Ncommaaccent Adieresis -30
+KPX Ncommaaccent Agrave -30
+KPX Ncommaaccent Amacron -30
+KPX Ncommaaccent Aogonek -30
+KPX Ncommaaccent Aring -30
+KPX Ncommaaccent Atilde -30
+KPX Ntilde A -30
+KPX Ntilde Aacute -30
+KPX Ntilde Abreve -30
+KPX Ntilde Acircumflex -30
+KPX Ntilde Adieresis -30
+KPX Ntilde Agrave -30
+KPX Ntilde Amacron -30
+KPX Ntilde Aogonek -30
+KPX Ntilde Aring -30
+KPX Ntilde Atilde -30
+KPX O A -40
+KPX O Aacute -40
+KPX O Abreve -40
+KPX O Acircumflex -40
+KPX O Adieresis -40
+KPX O Agrave -40
+KPX O Amacron -40
+KPX O Aogonek -40
+KPX O Aring -40
+KPX O Atilde -40
+KPX O T -40
+KPX O Tcaron -40
+KPX O Tcommaaccent -40
+KPX O V -50
+KPX O W -50
+KPX O X -40
+KPX O Y -50
+KPX O Yacute -50
+KPX O Ydieresis -50
+KPX Oacute A -40
+KPX Oacute Aacute -40
+KPX Oacute Abreve -40
+KPX Oacute Acircumflex -40
+KPX Oacute Adieresis -40
+KPX Oacute Agrave -40
+KPX Oacute Amacron -40
+KPX Oacute Aogonek -40
+KPX Oacute Aring -40
+KPX Oacute Atilde -40
+KPX Oacute T -40
+KPX Oacute Tcaron -40
+KPX Oacute Tcommaaccent -40
+KPX Oacute V -50
+KPX Oacute W -50
+KPX Oacute X -40
+KPX Oacute Y -50
+KPX Oacute Yacute -50
+KPX Oacute Ydieresis -50
+KPX Ocircumflex A -40
+KPX Ocircumflex Aacute -40
+KPX Ocircumflex Abreve -40
+KPX Ocircumflex Acircumflex -40
+KPX Ocircumflex Adieresis -40
+KPX Ocircumflex Agrave -40
+KPX Ocircumflex Amacron -40
+KPX Ocircumflex Aogonek -40
+KPX Ocircumflex Aring -40
+KPX Ocircumflex Atilde -40
+KPX Ocircumflex T -40
+KPX Ocircumflex Tcaron -40
+KPX Ocircumflex Tcommaaccent -40
+KPX Ocircumflex V -50
+KPX Ocircumflex W -50
+KPX Ocircumflex X -40
+KPX Ocircumflex Y -50
+KPX Ocircumflex Yacute -50
+KPX Ocircumflex Ydieresis -50
+KPX Odieresis A -40
+KPX Odieresis Aacute -40
+KPX Odieresis Abreve -40
+KPX Odieresis Acircumflex -40
+KPX Odieresis Adieresis -40
+KPX Odieresis Agrave -40
+KPX Odieresis Amacron -40
+KPX Odieresis Aogonek -40
+KPX Odieresis Aring -40
+KPX Odieresis Atilde -40
+KPX Odieresis T -40
+KPX Odieresis Tcaron -40
+KPX Odieresis Tcommaaccent -40
+KPX Odieresis V -50
+KPX Odieresis W -50
+KPX Odieresis X -40
+KPX Odieresis Y -50
+KPX Odieresis Yacute -50
+KPX Odieresis Ydieresis -50
+KPX Ograve A -40
+KPX Ograve Aacute -40
+KPX Ograve Abreve -40
+KPX Ograve Acircumflex -40
+KPX Ograve Adieresis -40
+KPX Ograve Agrave -40
+KPX Ograve Amacron -40
+KPX Ograve Aogonek -40
+KPX Ograve Aring -40
+KPX Ograve Atilde -40
+KPX Ograve T -40
+KPX Ograve Tcaron -40
+KPX Ograve Tcommaaccent -40
+KPX Ograve V -50
+KPX Ograve W -50
+KPX Ograve X -40
+KPX Ograve Y -50
+KPX Ograve Yacute -50
+KPX Ograve Ydieresis -50
+KPX Ohungarumlaut A -40
+KPX Ohungarumlaut Aacute -40
+KPX Ohungarumlaut Abreve -40
+KPX Ohungarumlaut Acircumflex -40
+KPX Ohungarumlaut Adieresis -40
+KPX Ohungarumlaut Agrave -40
+KPX Ohungarumlaut Amacron -40
+KPX Ohungarumlaut Aogonek -40
+KPX Ohungarumlaut Aring -40
+KPX Ohungarumlaut Atilde -40
+KPX Ohungarumlaut T -40
+KPX Ohungarumlaut Tcaron -40
+KPX Ohungarumlaut Tcommaaccent -40
+KPX Ohungarumlaut V -50
+KPX Ohungarumlaut W -50
+KPX Ohungarumlaut X -40
+KPX Ohungarumlaut Y -50
+KPX Ohungarumlaut Yacute -50
+KPX Ohungarumlaut Ydieresis -50
+KPX Omacron A -40
+KPX Omacron Aacute -40
+KPX Omacron Abreve -40
+KPX Omacron Acircumflex -40
+KPX Omacron Adieresis -40
+KPX Omacron Agrave -40
+KPX Omacron Amacron -40
+KPX Omacron Aogonek -40
+KPX Omacron Aring -40
+KPX Omacron Atilde -40
+KPX Omacron T -40
+KPX Omacron Tcaron -40
+KPX Omacron Tcommaaccent -40
+KPX Omacron V -50
+KPX Omacron W -50
+KPX Omacron X -40
+KPX Omacron Y -50
+KPX Omacron Yacute -50
+KPX Omacron Ydieresis -50
+KPX Oslash A -40
+KPX Oslash Aacute -40
+KPX Oslash Abreve -40
+KPX Oslash Acircumflex -40
+KPX Oslash Adieresis -40
+KPX Oslash Agrave -40
+KPX Oslash Amacron -40
+KPX Oslash Aogonek -40
+KPX Oslash Aring -40
+KPX Oslash Atilde -40
+KPX Oslash T -40
+KPX Oslash Tcaron -40
+KPX Oslash Tcommaaccent -40
+KPX Oslash V -50
+KPX Oslash W -50
+KPX Oslash X -40
+KPX Oslash Y -50
+KPX Oslash Yacute -50
+KPX Oslash Ydieresis -50
+KPX Otilde A -40
+KPX Otilde Aacute -40
+KPX Otilde Abreve -40
+KPX Otilde Acircumflex -40
+KPX Otilde Adieresis -40
+KPX Otilde Agrave -40
+KPX Otilde Amacron -40
+KPX Otilde Aogonek -40
+KPX Otilde Aring -40
+KPX Otilde Atilde -40
+KPX Otilde T -40
+KPX Otilde Tcaron -40
+KPX Otilde Tcommaaccent -40
+KPX Otilde V -50
+KPX Otilde W -50
+KPX Otilde X -40
+KPX Otilde Y -50
+KPX Otilde Yacute -50
+KPX Otilde Ydieresis -50
+KPX P A -85
+KPX P Aacute -85
+KPX P Abreve -85
+KPX P Acircumflex -85
+KPX P Adieresis -85
+KPX P Agrave -85
+KPX P Amacron -85
+KPX P Aogonek -85
+KPX P Aring -85
+KPX P Atilde -85
+KPX P a -40
+KPX P aacute -40
+KPX P abreve -40
+KPX P acircumflex -40
+KPX P adieresis -40
+KPX P agrave -40
+KPX P amacron -40
+KPX P aogonek -40
+KPX P aring -40
+KPX P atilde -40
+KPX P comma -129
+KPX P e -50
+KPX P eacute -50
+KPX P ecaron -50
+KPX P ecircumflex -50
+KPX P edieresis -50
+KPX P edotaccent -50
+KPX P egrave -50
+KPX P emacron -50
+KPX P eogonek -50
+KPX P o -55
+KPX P oacute -55
+KPX P ocircumflex -55
+KPX P odieresis -55
+KPX P ograve -55
+KPX P ohungarumlaut -55
+KPX P omacron -55
+KPX P oslash -55
+KPX P otilde -55
+KPX P period -129
+KPX Q U -10
+KPX Q Uacute -10
+KPX Q Ucircumflex -10
+KPX Q Udieresis -10
+KPX Q Ugrave -10
+KPX Q Uhungarumlaut -10
+KPX Q Umacron -10
+KPX Q Uogonek -10
+KPX Q Uring -10
+KPX R O -40
+KPX R Oacute -40
+KPX R Ocircumflex -40
+KPX R Odieresis -40
+KPX R Ograve -40
+KPX R Ohungarumlaut -40
+KPX R Omacron -40
+KPX R Oslash -40
+KPX R Otilde -40
+KPX R T -30
+KPX R Tcaron -30
+KPX R Tcommaaccent -30
+KPX R U -40
+KPX R Uacute -40
+KPX R Ucircumflex -40
+KPX R Udieresis -40
+KPX R Ugrave -40
+KPX R Uhungarumlaut -40
+KPX R Umacron -40
+KPX R Uogonek -40
+KPX R Uring -40
+KPX R V -18
+KPX R W -18
+KPX R Y -18
+KPX R Yacute -18
+KPX R Ydieresis -18
+KPX Racute O -40
+KPX Racute Oacute -40
+KPX Racute Ocircumflex -40
+KPX Racute Odieresis -40
+KPX Racute Ograve -40
+KPX Racute Ohungarumlaut -40
+KPX Racute Omacron -40
+KPX Racute Oslash -40
+KPX Racute Otilde -40
+KPX Racute T -30
+KPX Racute Tcaron -30
+KPX Racute Tcommaaccent -30
+KPX Racute U -40
+KPX Racute Uacute -40
+KPX Racute Ucircumflex -40
+KPX Racute Udieresis -40
+KPX Racute Ugrave -40
+KPX Racute Uhungarumlaut -40
+KPX Racute Umacron -40
+KPX Racute Uogonek -40
+KPX Racute Uring -40
+KPX Racute V -18
+KPX Racute W -18
+KPX Racute Y -18
+KPX Racute Yacute -18
+KPX Racute Ydieresis -18
+KPX Rcaron O -40
+KPX Rcaron Oacute -40
+KPX Rcaron Ocircumflex -40
+KPX Rcaron Odieresis -40
+KPX Rcaron Ograve -40
+KPX Rcaron Ohungarumlaut -40
+KPX Rcaron Omacron -40
+KPX Rcaron Oslash -40
+KPX Rcaron Otilde -40
+KPX Rcaron T -30
+KPX Rcaron Tcaron -30
+KPX Rcaron Tcommaaccent -30
+KPX Rcaron U -40
+KPX Rcaron Uacute -40
+KPX Rcaron Ucircumflex -40
+KPX Rcaron Udieresis -40
+KPX Rcaron Ugrave -40
+KPX Rcaron Uhungarumlaut -40
+KPX Rcaron Umacron -40
+KPX Rcaron Uogonek -40
+KPX Rcaron Uring -40
+KPX Rcaron V -18
+KPX Rcaron W -18
+KPX Rcaron Y -18
+KPX Rcaron Yacute -18
+KPX Rcaron Ydieresis -18
+KPX Rcommaaccent O -40
+KPX Rcommaaccent Oacute -40
+KPX Rcommaaccent Ocircumflex -40
+KPX Rcommaaccent Odieresis -40
+KPX Rcommaaccent Ograve -40
+KPX Rcommaaccent Ohungarumlaut -40
+KPX Rcommaaccent Omacron -40
+KPX Rcommaaccent Oslash -40
+KPX Rcommaaccent Otilde -40
+KPX Rcommaaccent T -30
+KPX Rcommaaccent Tcaron -30
+KPX Rcommaaccent Tcommaaccent -30
+KPX Rcommaaccent U -40
+KPX Rcommaaccent Uacute -40
+KPX Rcommaaccent Ucircumflex -40
+KPX Rcommaaccent Udieresis -40
+KPX Rcommaaccent Ugrave -40
+KPX Rcommaaccent Uhungarumlaut -40
+KPX Rcommaaccent Umacron -40
+KPX Rcommaaccent Uogonek -40
+KPX Rcommaaccent Uring -40
+KPX Rcommaaccent V -18
+KPX Rcommaaccent W -18
+KPX Rcommaaccent Y -18
+KPX Rcommaaccent Yacute -18
+KPX Rcommaaccent Ydieresis -18
+KPX T A -55
+KPX T Aacute -55
+KPX T Abreve -55
+KPX T Acircumflex -55
+KPX T Adieresis -55
+KPX T Agrave -55
+KPX T Amacron -55
+KPX T Aogonek -55
+KPX T Aring -55
+KPX T Atilde -55
+KPX T O -18
+KPX T Oacute -18
+KPX T Ocircumflex -18
+KPX T Odieresis -18
+KPX T Ograve -18
+KPX T Ohungarumlaut -18
+KPX T Omacron -18
+KPX T Oslash -18
+KPX T Otilde -18
+KPX T a -92
+KPX T aacute -92
+KPX T abreve -92
+KPX T acircumflex -92
+KPX T adieresis -92
+KPX T agrave -92
+KPX T amacron -92
+KPX T aogonek -92
+KPX T aring -92
+KPX T atilde -92
+KPX T colon -74
+KPX T comma -92
+KPX T e -92
+KPX T eacute -92
+KPX T ecaron -92
+KPX T ecircumflex -92
+KPX T edieresis -52
+KPX T edotaccent -92
+KPX T egrave -52
+KPX T emacron -52
+KPX T eogonek -92
+KPX T hyphen -92
+KPX T i -37
+KPX T iacute -37
+KPX T iogonek -37
+KPX T o -95
+KPX T oacute -95
+KPX T ocircumflex -95
+KPX T odieresis -95
+KPX T ograve -95
+KPX T ohungarumlaut -95
+KPX T omacron -95
+KPX T oslash -95
+KPX T otilde -95
+KPX T period -92
+KPX T r -37
+KPX T racute -37
+KPX T rcaron -37
+KPX T rcommaaccent -37
+KPX T semicolon -74
+KPX T u -37
+KPX T uacute -37
+KPX T ucircumflex -37
+KPX T udieresis -37
+KPX T ugrave -37
+KPX T uhungarumlaut -37
+KPX T umacron -37
+KPX T uogonek -37
+KPX T uring -37
+KPX T w -37
+KPX T y -37
+KPX T yacute -37
+KPX T ydieresis -37
+KPX Tcaron A -55
+KPX Tcaron Aacute -55
+KPX Tcaron Abreve -55
+KPX Tcaron Acircumflex -55
+KPX Tcaron Adieresis -55
+KPX Tcaron Agrave -55
+KPX Tcaron Amacron -55
+KPX Tcaron Aogonek -55
+KPX Tcaron Aring -55
+KPX Tcaron Atilde -55
+KPX Tcaron O -18
+KPX Tcaron Oacute -18
+KPX Tcaron Ocircumflex -18
+KPX Tcaron Odieresis -18
+KPX Tcaron Ograve -18
+KPX Tcaron Ohungarumlaut -18
+KPX Tcaron Omacron -18
+KPX Tcaron Oslash -18
+KPX Tcaron Otilde -18
+KPX Tcaron a -92
+KPX Tcaron aacute -92
+KPX Tcaron abreve -92
+KPX Tcaron acircumflex -92
+KPX Tcaron adieresis -92
+KPX Tcaron agrave -92
+KPX Tcaron amacron -92
+KPX Tcaron aogonek -92
+KPX Tcaron aring -92
+KPX Tcaron atilde -92
+KPX Tcaron colon -74
+KPX Tcaron comma -92
+KPX Tcaron e -92
+KPX Tcaron eacute -92
+KPX Tcaron ecaron -92
+KPX Tcaron ecircumflex -92
+KPX Tcaron edieresis -52
+KPX Tcaron edotaccent -92
+KPX Tcaron egrave -52
+KPX Tcaron emacron -52
+KPX Tcaron eogonek -92
+KPX Tcaron hyphen -92
+KPX Tcaron i -37
+KPX Tcaron iacute -37
+KPX Tcaron iogonek -37
+KPX Tcaron o -95
+KPX Tcaron oacute -95
+KPX Tcaron ocircumflex -95
+KPX Tcaron odieresis -95
+KPX Tcaron ograve -95
+KPX Tcaron ohungarumlaut -95
+KPX Tcaron omacron -95
+KPX Tcaron oslash -95
+KPX Tcaron otilde -95
+KPX Tcaron period -92
+KPX Tcaron r -37
+KPX Tcaron racute -37
+KPX Tcaron rcaron -37
+KPX Tcaron rcommaaccent -37
+KPX Tcaron semicolon -74
+KPX Tcaron u -37
+KPX Tcaron uacute -37
+KPX Tcaron ucircumflex -37
+KPX Tcaron udieresis -37
+KPX Tcaron ugrave -37
+KPX Tcaron uhungarumlaut -37
+KPX Tcaron umacron -37
+KPX Tcaron uogonek -37
+KPX Tcaron uring -37
+KPX Tcaron w -37
+KPX Tcaron y -37
+KPX Tcaron yacute -37
+KPX Tcaron ydieresis -37
+KPX Tcommaaccent A -55
+KPX Tcommaaccent Aacute -55
+KPX Tcommaaccent Abreve -55
+KPX Tcommaaccent Acircumflex -55
+KPX Tcommaaccent Adieresis -55
+KPX Tcommaaccent Agrave -55
+KPX Tcommaaccent Amacron -55
+KPX Tcommaaccent Aogonek -55
+KPX Tcommaaccent Aring -55
+KPX Tcommaaccent Atilde -55
+KPX Tcommaaccent O -18
+KPX Tcommaaccent Oacute -18
+KPX Tcommaaccent Ocircumflex -18
+KPX Tcommaaccent Odieresis -18
+KPX Tcommaaccent Ograve -18
+KPX Tcommaaccent Ohungarumlaut -18
+KPX Tcommaaccent Omacron -18
+KPX Tcommaaccent Oslash -18
+KPX Tcommaaccent Otilde -18
+KPX Tcommaaccent a -92
+KPX Tcommaaccent aacute -92
+KPX Tcommaaccent abreve -92
+KPX Tcommaaccent acircumflex -92
+KPX Tcommaaccent adieresis -92
+KPX Tcommaaccent agrave -92
+KPX Tcommaaccent amacron -92
+KPX Tcommaaccent aogonek -92
+KPX Tcommaaccent aring -92
+KPX Tcommaaccent atilde -92
+KPX Tcommaaccent colon -74
+KPX Tcommaaccent comma -92
+KPX Tcommaaccent e -92
+KPX Tcommaaccent eacute -92
+KPX Tcommaaccent ecaron -92
+KPX Tcommaaccent ecircumflex -92
+KPX Tcommaaccent edieresis -52
+KPX Tcommaaccent edotaccent -92
+KPX Tcommaaccent egrave -52
+KPX Tcommaaccent emacron -52
+KPX Tcommaaccent eogonek -92
+KPX Tcommaaccent hyphen -92
+KPX Tcommaaccent i -37
+KPX Tcommaaccent iacute -37
+KPX Tcommaaccent iogonek -37
+KPX Tcommaaccent o -95
+KPX Tcommaaccent oacute -95
+KPX Tcommaaccent ocircumflex -95
+KPX Tcommaaccent odieresis -95
+KPX Tcommaaccent ograve -95
+KPX Tcommaaccent ohungarumlaut -95
+KPX Tcommaaccent omacron -95
+KPX Tcommaaccent oslash -95
+KPX Tcommaaccent otilde -95
+KPX Tcommaaccent period -92
+KPX Tcommaaccent r -37
+KPX Tcommaaccent racute -37
+KPX Tcommaaccent rcaron -37
+KPX Tcommaaccent rcommaaccent -37
+KPX Tcommaaccent semicolon -74
+KPX Tcommaaccent u -37
+KPX Tcommaaccent uacute -37
+KPX Tcommaaccent ucircumflex -37
+KPX Tcommaaccent udieresis -37
+KPX Tcommaaccent ugrave -37
+KPX Tcommaaccent uhungarumlaut -37
+KPX Tcommaaccent umacron -37
+KPX Tcommaaccent uogonek -37
+KPX Tcommaaccent uring -37
+KPX Tcommaaccent w -37
+KPX Tcommaaccent y -37
+KPX Tcommaaccent yacute -37
+KPX Tcommaaccent ydieresis -37
+KPX U A -45
+KPX U Aacute -45
+KPX U Abreve -45
+KPX U Acircumflex -45
+KPX U Adieresis -45
+KPX U Agrave -45
+KPX U Amacron -45
+KPX U Aogonek -45
+KPX U Aring -45
+KPX U Atilde -45
+KPX Uacute A -45
+KPX Uacute Aacute -45
+KPX Uacute Abreve -45
+KPX Uacute Acircumflex -45
+KPX Uacute Adieresis -45
+KPX Uacute Agrave -45
+KPX Uacute Amacron -45
+KPX Uacute Aogonek -45
+KPX Uacute Aring -45
+KPX Uacute Atilde -45
+KPX Ucircumflex A -45
+KPX Ucircumflex Aacute -45
+KPX Ucircumflex Abreve -45
+KPX Ucircumflex Acircumflex -45
+KPX Ucircumflex Adieresis -45
+KPX Ucircumflex Agrave -45
+KPX Ucircumflex Amacron -45
+KPX Ucircumflex Aogonek -45
+KPX Ucircumflex Aring -45
+KPX Ucircumflex Atilde -45
+KPX Udieresis A -45
+KPX Udieresis Aacute -45
+KPX Udieresis Abreve -45
+KPX Udieresis Acircumflex -45
+KPX Udieresis Adieresis -45
+KPX Udieresis Agrave -45
+KPX Udieresis Amacron -45
+KPX Udieresis Aogonek -45
+KPX Udieresis Aring -45
+KPX Udieresis Atilde -45
+KPX Ugrave A -45
+KPX Ugrave Aacute -45
+KPX Ugrave Abreve -45
+KPX Ugrave Acircumflex -45
+KPX Ugrave Adieresis -45
+KPX Ugrave Agrave -45
+KPX Ugrave Amacron -45
+KPX Ugrave Aogonek -45
+KPX Ugrave Aring -45
+KPX Ugrave Atilde -45
+KPX Uhungarumlaut A -45
+KPX Uhungarumlaut Aacute -45
+KPX Uhungarumlaut Abreve -45
+KPX Uhungarumlaut Acircumflex -45
+KPX Uhungarumlaut Adieresis -45
+KPX Uhungarumlaut Agrave -45
+KPX Uhungarumlaut Amacron -45
+KPX Uhungarumlaut Aogonek -45
+KPX Uhungarumlaut Aring -45
+KPX Uhungarumlaut Atilde -45
+KPX Umacron A -45
+KPX Umacron Aacute -45
+KPX Umacron Abreve -45
+KPX Umacron Acircumflex -45
+KPX Umacron Adieresis -45
+KPX Umacron Agrave -45
+KPX Umacron Amacron -45
+KPX Umacron Aogonek -45
+KPX Umacron Aring -45
+KPX Umacron Atilde -45
+KPX Uogonek A -45
+KPX Uogonek Aacute -45
+KPX Uogonek Abreve -45
+KPX Uogonek Acircumflex -45
+KPX Uogonek Adieresis -45
+KPX Uogonek Agrave -45
+KPX Uogonek Amacron -45
+KPX Uogonek Aogonek -45
+KPX Uogonek Aring -45
+KPX Uogonek Atilde -45
+KPX Uring A -45
+KPX Uring Aacute -45
+KPX Uring Abreve -45
+KPX Uring Acircumflex -45
+KPX Uring Adieresis -45
+KPX Uring Agrave -45
+KPX Uring Amacron -45
+KPX Uring Aogonek -45
+KPX Uring Aring -45
+KPX Uring Atilde -45
+KPX V A -85
+KPX V Aacute -85
+KPX V Abreve -85
+KPX V Acircumflex -85
+KPX V Adieresis -85
+KPX V Agrave -85
+KPX V Amacron -85
+KPX V Aogonek -85
+KPX V Aring -85
+KPX V Atilde -85
+KPX V G -10
+KPX V Gbreve -10
+KPX V Gcommaaccent -10
+KPX V O -30
+KPX V Oacute -30
+KPX V Ocircumflex -30
+KPX V Odieresis -30
+KPX V Ograve -30
+KPX V Ohungarumlaut -30
+KPX V Omacron -30
+KPX V Oslash -30
+KPX V Otilde -30
+KPX V a -111
+KPX V aacute -111
+KPX V abreve -111
+KPX V acircumflex -111
+KPX V adieresis -111
+KPX V agrave -111
+KPX V amacron -111
+KPX V aogonek -111
+KPX V aring -111
+KPX V atilde -111
+KPX V colon -74
+KPX V comma -129
+KPX V e -111
+KPX V eacute -111
+KPX V ecaron -111
+KPX V ecircumflex -111
+KPX V edieresis -71
+KPX V edotaccent -111
+KPX V egrave -71
+KPX V emacron -71
+KPX V eogonek -111
+KPX V hyphen -70
+KPX V i -55
+KPX V iacute -55
+KPX V iogonek -55
+KPX V o -111
+KPX V oacute -111
+KPX V ocircumflex -111
+KPX V odieresis -111
+KPX V ograve -111
+KPX V ohungarumlaut -111
+KPX V omacron -111
+KPX V oslash -111
+KPX V otilde -111
+KPX V period -129
+KPX V semicolon -74
+KPX V u -55
+KPX V uacute -55
+KPX V ucircumflex -55
+KPX V udieresis -55
+KPX V ugrave -55
+KPX V uhungarumlaut -55
+KPX V umacron -55
+KPX V uogonek -55
+KPX V uring -55
+KPX W A -74
+KPX W Aacute -74
+KPX W Abreve -74
+KPX W Acircumflex -74
+KPX W Adieresis -74
+KPX W Agrave -74
+KPX W Amacron -74
+KPX W Aogonek -74
+KPX W Aring -74
+KPX W Atilde -74
+KPX W O -15
+KPX W Oacute -15
+KPX W Ocircumflex -15
+KPX W Odieresis -15
+KPX W Ograve -15
+KPX W Ohungarumlaut -15
+KPX W Omacron -15
+KPX W Oslash -15
+KPX W Otilde -15
+KPX W a -85
+KPX W aacute -85
+KPX W abreve -85
+KPX W acircumflex -85
+KPX W adieresis -85
+KPX W agrave -85
+KPX W amacron -85
+KPX W aogonek -85
+KPX W aring -85
+KPX W atilde -85
+KPX W colon -55
+KPX W comma -74
+KPX W e -90
+KPX W eacute -90
+KPX W ecaron -90
+KPX W ecircumflex -90
+KPX W edieresis -50
+KPX W edotaccent -90
+KPX W egrave -50
+KPX W emacron -50
+KPX W eogonek -90
+KPX W hyphen -50
+KPX W i -37
+KPX W iacute -37
+KPX W iogonek -37
+KPX W o -80
+KPX W oacute -80
+KPX W ocircumflex -80
+KPX W odieresis -80
+KPX W ograve -80
+KPX W ohungarumlaut -80
+KPX W omacron -80
+KPX W oslash -80
+KPX W otilde -80
+KPX W period -74
+KPX W semicolon -55
+KPX W u -55
+KPX W uacute -55
+KPX W ucircumflex -55
+KPX W udieresis -55
+KPX W ugrave -55
+KPX W uhungarumlaut -55
+KPX W umacron -55
+KPX W uogonek -55
+KPX W uring -55
+KPX W y -55
+KPX W yacute -55
+KPX W ydieresis -55
+KPX Y A -74
+KPX Y Aacute -74
+KPX Y Abreve -74
+KPX Y Acircumflex -74
+KPX Y Adieresis -74
+KPX Y Agrave -74
+KPX Y Amacron -74
+KPX Y Aogonek -74
+KPX Y Aring -74
+KPX Y Atilde -74
+KPX Y O -25
+KPX Y Oacute -25
+KPX Y Ocircumflex -25
+KPX Y Odieresis -25
+KPX Y Ograve -25
+KPX Y Ohungarumlaut -25
+KPX Y Omacron -25
+KPX Y Oslash -25
+KPX Y Otilde -25
+KPX Y a -92
+KPX Y aacute -92
+KPX Y abreve -92
+KPX Y acircumflex -92
+KPX Y adieresis -92
+KPX Y agrave -92
+KPX Y amacron -92
+KPX Y aogonek -92
+KPX Y aring -92
+KPX Y atilde -92
+KPX Y colon -92
+KPX Y comma -92
+KPX Y e -111
+KPX Y eacute -111
+KPX Y ecaron -111
+KPX Y ecircumflex -71
+KPX Y edieresis -71
+KPX Y edotaccent -111
+KPX Y egrave -71
+KPX Y emacron -71
+KPX Y eogonek -111
+KPX Y hyphen -92
+KPX Y i -55
+KPX Y iacute -55
+KPX Y iogonek -55
+KPX Y o -111
+KPX Y oacute -111
+KPX Y ocircumflex -111
+KPX Y odieresis -111
+KPX Y ograve -111
+KPX Y ohungarumlaut -111
+KPX Y omacron -111
+KPX Y oslash -111
+KPX Y otilde -111
+KPX Y period -74
+KPX Y semicolon -92
+KPX Y u -92
+KPX Y uacute -92
+KPX Y ucircumflex -92
+KPX Y udieresis -92
+KPX Y ugrave -92
+KPX Y uhungarumlaut -92
+KPX Y umacron -92
+KPX Y uogonek -92
+KPX Y uring -92
+KPX Yacute A -74
+KPX Yacute Aacute -74
+KPX Yacute Abreve -74
+KPX Yacute Acircumflex -74
+KPX Yacute Adieresis -74
+KPX Yacute Agrave -74
+KPX Yacute Amacron -74
+KPX Yacute Aogonek -74
+KPX Yacute Aring -74
+KPX Yacute Atilde -74
+KPX Yacute O -25
+KPX Yacute Oacute -25
+KPX Yacute Ocircumflex -25
+KPX Yacute Odieresis -25
+KPX Yacute Ograve -25
+KPX Yacute Ohungarumlaut -25
+KPX Yacute Omacron -25
+KPX Yacute Oslash -25
+KPX Yacute Otilde -25
+KPX Yacute a -92
+KPX Yacute aacute -92
+KPX Yacute abreve -92
+KPX Yacute acircumflex -92
+KPX Yacute adieresis -92
+KPX Yacute agrave -92
+KPX Yacute amacron -92
+KPX Yacute aogonek -92
+KPX Yacute aring -92
+KPX Yacute atilde -92
+KPX Yacute colon -92
+KPX Yacute comma -92
+KPX Yacute e -111
+KPX Yacute eacute -111
+KPX Yacute ecaron -111
+KPX Yacute ecircumflex -71
+KPX Yacute edieresis -71
+KPX Yacute edotaccent -111
+KPX Yacute egrave -71
+KPX Yacute emacron -71
+KPX Yacute eogonek -111
+KPX Yacute hyphen -92
+KPX Yacute i -55
+KPX Yacute iacute -55
+KPX Yacute iogonek -55
+KPX Yacute o -111
+KPX Yacute oacute -111
+KPX Yacute ocircumflex -111
+KPX Yacute odieresis -111
+KPX Yacute ograve -111
+KPX Yacute ohungarumlaut -111
+KPX Yacute omacron -111
+KPX Yacute oslash -111
+KPX Yacute otilde -111
+KPX Yacute period -74
+KPX Yacute semicolon -92
+KPX Yacute u -92
+KPX Yacute uacute -92
+KPX Yacute ucircumflex -92
+KPX Yacute udieresis -92
+KPX Yacute ugrave -92
+KPX Yacute uhungarumlaut -92
+KPX Yacute umacron -92
+KPX Yacute uogonek -92
+KPX Yacute uring -92
+KPX Ydieresis A -74
+KPX Ydieresis Aacute -74
+KPX Ydieresis Abreve -74
+KPX Ydieresis Acircumflex -74
+KPX Ydieresis Adieresis -74
+KPX Ydieresis Agrave -74
+KPX Ydieresis Amacron -74
+KPX Ydieresis Aogonek -74
+KPX Ydieresis Aring -74
+KPX Ydieresis Atilde -74
+KPX Ydieresis O -25
+KPX Ydieresis Oacute -25
+KPX Ydieresis Ocircumflex -25
+KPX Ydieresis Odieresis -25
+KPX Ydieresis Ograve -25
+KPX Ydieresis Ohungarumlaut -25
+KPX Ydieresis Omacron -25
+KPX Ydieresis Oslash -25
+KPX Ydieresis Otilde -25
+KPX Ydieresis a -92
+KPX Ydieresis aacute -92
+KPX Ydieresis abreve -92
+KPX Ydieresis acircumflex -92
+KPX Ydieresis adieresis -92
+KPX Ydieresis agrave -92
+KPX Ydieresis amacron -92
+KPX Ydieresis aogonek -92
+KPX Ydieresis aring -92
+KPX Ydieresis atilde -92
+KPX Ydieresis colon -92
+KPX Ydieresis comma -92
+KPX Ydieresis e -111
+KPX Ydieresis eacute -111
+KPX Ydieresis ecaron -111
+KPX Ydieresis ecircumflex -71
+KPX Ydieresis edieresis -71
+KPX Ydieresis edotaccent -111
+KPX Ydieresis egrave -71
+KPX Ydieresis emacron -71
+KPX Ydieresis eogonek -111
+KPX Ydieresis hyphen -92
+KPX Ydieresis i -55
+KPX Ydieresis iacute -55
+KPX Ydieresis iogonek -55
+KPX Ydieresis o -111
+KPX Ydieresis oacute -111
+KPX Ydieresis ocircumflex -111
+KPX Ydieresis odieresis -111
+KPX Ydieresis ograve -111
+KPX Ydieresis ohungarumlaut -111
+KPX Ydieresis omacron -111
+KPX Ydieresis oslash -111
+KPX Ydieresis otilde -111
+KPX Ydieresis period -74
+KPX Ydieresis semicolon -92
+KPX Ydieresis u -92
+KPX Ydieresis uacute -92
+KPX Ydieresis ucircumflex -92
+KPX Ydieresis udieresis -92
+KPX Ydieresis ugrave -92
+KPX Ydieresis uhungarumlaut -92
+KPX Ydieresis umacron -92
+KPX Ydieresis uogonek -92
+KPX Ydieresis uring -92
+KPX b b -10
+KPX b period -40
+KPX b u -20
+KPX b uacute -20
+KPX b ucircumflex -20
+KPX b udieresis -20
+KPX b ugrave -20
+KPX b uhungarumlaut -20
+KPX b umacron -20
+KPX b uogonek -20
+KPX b uring -20
+KPX c h -10
+KPX c k -10
+KPX c kcommaaccent -10
+KPX cacute h -10
+KPX cacute k -10
+KPX cacute kcommaaccent -10
+KPX ccaron h -10
+KPX ccaron k -10
+KPX ccaron kcommaaccent -10
+KPX ccedilla h -10
+KPX ccedilla k -10
+KPX ccedilla kcommaaccent -10
+KPX comma quotedblright -95
+KPX comma quoteright -95
+KPX e b -10
+KPX eacute b -10
+KPX ecaron b -10
+KPX ecircumflex b -10
+KPX edieresis b -10
+KPX edotaccent b -10
+KPX egrave b -10
+KPX emacron b -10
+KPX eogonek b -10
+KPX f comma -10
+KPX f dotlessi -30
+KPX f e -10
+KPX f eacute -10
+KPX f edotaccent -10
+KPX f eogonek -10
+KPX f f -18
+KPX f o -10
+KPX f oacute -10
+KPX f ocircumflex -10
+KPX f ograve -10
+KPX f ohungarumlaut -10
+KPX f oslash -10
+KPX f otilde -10
+KPX f period -10
+KPX f quoteright 55
+KPX k e -30
+KPX k eacute -30
+KPX k ecaron -30
+KPX k ecircumflex -30
+KPX k edieresis -30
+KPX k edotaccent -30
+KPX k egrave -30
+KPX k emacron -30
+KPX k eogonek -30
+KPX k o -10
+KPX k oacute -10
+KPX k ocircumflex -10
+KPX k odieresis -10
+KPX k ograve -10
+KPX k ohungarumlaut -10
+KPX k omacron -10
+KPX k oslash -10
+KPX k otilde -10
+KPX kcommaaccent e -30
+KPX kcommaaccent eacute -30
+KPX kcommaaccent ecaron -30
+KPX kcommaaccent ecircumflex -30
+KPX kcommaaccent edieresis -30
+KPX kcommaaccent edotaccent -30
+KPX kcommaaccent egrave -30
+KPX kcommaaccent emacron -30
+KPX kcommaaccent eogonek -30
+KPX kcommaaccent o -10
+KPX kcommaaccent oacute -10
+KPX kcommaaccent ocircumflex -10
+KPX kcommaaccent odieresis -10
+KPX kcommaaccent ograve -10
+KPX kcommaaccent ohungarumlaut -10
+KPX kcommaaccent omacron -10
+KPX kcommaaccent oslash -10
+KPX kcommaaccent otilde -10
+KPX n v -40
+KPX nacute v -40
+KPX ncaron v -40
+KPX ncommaaccent v -40
+KPX ntilde v -40
+KPX o v -15
+KPX o w -25
+KPX o x -10
+KPX o y -10
+KPX o yacute -10
+KPX o ydieresis -10
+KPX oacute v -15
+KPX oacute w -25
+KPX oacute x -10
+KPX oacute y -10
+KPX oacute yacute -10
+KPX oacute ydieresis -10
+KPX ocircumflex v -15
+KPX ocircumflex w -25
+KPX ocircumflex x -10
+KPX ocircumflex y -10
+KPX ocircumflex yacute -10
+KPX ocircumflex ydieresis -10
+KPX odieresis v -15
+KPX odieresis w -25
+KPX odieresis x -10
+KPX odieresis y -10
+KPX odieresis yacute -10
+KPX odieresis ydieresis -10
+KPX ograve v -15
+KPX ograve w -25
+KPX ograve x -10
+KPX ograve y -10
+KPX ograve yacute -10
+KPX ograve ydieresis -10
+KPX ohungarumlaut v -15
+KPX ohungarumlaut w -25
+KPX ohungarumlaut x -10
+KPX ohungarumlaut y -10
+KPX ohungarumlaut yacute -10
+KPX ohungarumlaut ydieresis -10
+KPX omacron v -15
+KPX omacron w -25
+KPX omacron x -10
+KPX omacron y -10
+KPX omacron yacute -10
+KPX omacron ydieresis -10
+KPX oslash v -15
+KPX oslash w -25
+KPX oslash x -10
+KPX oslash y -10
+KPX oslash yacute -10
+KPX oslash ydieresis -10
+KPX otilde v -15
+KPX otilde w -25
+KPX otilde x -10
+KPX otilde y -10
+KPX otilde yacute -10
+KPX otilde ydieresis -10
+KPX period quotedblright -95
+KPX period quoteright -95
+KPX quoteleft quoteleft -74
+KPX quoteright d -15
+KPX quoteright dcroat -15
+KPX quoteright quoteright -74
+KPX quoteright r -15
+KPX quoteright racute -15
+KPX quoteright rcaron -15
+KPX quoteright rcommaaccent -15
+KPX quoteright s -74
+KPX quoteright sacute -74
+KPX quoteright scaron -74
+KPX quoteright scedilla -74
+KPX quoteright scommaaccent -74
+KPX quoteright space -74
+KPX quoteright t -37
+KPX quoteright tcommaaccent -37
+KPX quoteright v -15
+KPX r comma -65
+KPX r period -65
+KPX racute comma -65
+KPX racute period -65
+KPX rcaron comma -65
+KPX rcaron period -65
+KPX rcommaaccent comma -65
+KPX rcommaaccent period -65
+KPX space A -37
+KPX space Aacute -37
+KPX space Abreve -37
+KPX space Acircumflex -37
+KPX space Adieresis -37
+KPX space Agrave -37
+KPX space Amacron -37
+KPX space Aogonek -37
+KPX space Aring -37
+KPX space Atilde -37
+KPX space V -70
+KPX space W -70
+KPX space Y -70
+KPX space Yacute -70
+KPX space Ydieresis -70
+KPX v comma -37
+KPX v e -15
+KPX v eacute -15
+KPX v ecaron -15
+KPX v ecircumflex -15
+KPX v edieresis -15
+KPX v edotaccent -15
+KPX v egrave -15
+KPX v emacron -15
+KPX v eogonek -15
+KPX v o -15
+KPX v oacute -15
+KPX v ocircumflex -15
+KPX v odieresis -15
+KPX v ograve -15
+KPX v ohungarumlaut -15
+KPX v omacron -15
+KPX v oslash -15
+KPX v otilde -15
+KPX v period -37
+KPX w a -10
+KPX w aacute -10
+KPX w abreve -10
+KPX w acircumflex -10
+KPX w adieresis -10
+KPX w agrave -10
+KPX w amacron -10
+KPX w aogonek -10
+KPX w aring -10
+KPX w atilde -10
+KPX w comma -37
+KPX w e -10
+KPX w eacute -10
+KPX w ecaron -10
+KPX w ecircumflex -10
+KPX w edieresis -10
+KPX w edotaccent -10
+KPX w egrave -10
+KPX w emacron -10
+KPX w eogonek -10
+KPX w o -15
+KPX w oacute -15
+KPX w ocircumflex -15
+KPX w odieresis -15
+KPX w ograve -15
+KPX w ohungarumlaut -15
+KPX w omacron -15
+KPX w oslash -15
+KPX w otilde -15
+KPX w period -37
+KPX x e -10
+KPX x eacute -10
+KPX x ecaron -10
+KPX x ecircumflex -10
+KPX x edieresis -10
+KPX x edotaccent -10
+KPX x egrave -10
+KPX x emacron -10
+KPX x eogonek -10
+KPX y comma -37
+KPX y period -37
+KPX yacute comma -37
+KPX yacute period -37
+KPX ydieresis comma -37
+KPX ydieresis period -37
+EndKernPairs
+EndKernData
+EndFontMetrics
diff --git a/php/extras/fonts/ps/Times-Italic.afm b/php/extras/fonts/ps/Times-Italic.afm
new file mode 100644
index 000000000..b0eaee40f
--- /dev/null
+++ b/php/extras/fonts/ps/Times-Italic.afm
@@ -0,0 +1,2667 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Thu May 1 12:56:55 1997
+Comment UniqueID 43067
+Comment VMusage 47727 58752
+FontName Times-Italic
+FullName Times Italic
+FamilyName Times
+Weight Medium
+ItalicAngle -15.5
+IsFixedPitch false
+CharacterSet ExtendedRoman
+FontBBox -169 -217 1010 883
+UnderlinePosition -100
+UnderlineThickness 50
+Version 002.000
+Notice Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries.
+EncodingScheme AdobeStandardEncoding
+CapHeight 653
+XHeight 441
+Ascender 683
+Descender -217
+StdHW 32
+StdVW 76
+StartCharMetrics 315
+C 32 ; WX 250 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 333 ; N exclam ; B 39 -11 302 667 ;
+C 34 ; WX 420 ; N quotedbl ; B 144 421 432 666 ;
+C 35 ; WX 500 ; N numbersign ; B 2 0 540 676 ;
+C 36 ; WX 500 ; N dollar ; B 31 -89 497 731 ;
+C 37 ; WX 833 ; N percent ; B 79 -13 790 676 ;
+C 38 ; WX 778 ; N ampersand ; B 76 -18 723 666 ;
+C 39 ; WX 333 ; N quoteright ; B 151 436 290 666 ;
+C 40 ; WX 333 ; N parenleft ; B 42 -181 315 669 ;
+C 41 ; WX 333 ; N parenright ; B 16 -180 289 669 ;
+C 42 ; WX 500 ; N asterisk ; B 128 255 492 666 ;
+C 43 ; WX 675 ; N plus ; B 86 0 590 506 ;
+C 44 ; WX 250 ; N comma ; B -4 -129 135 101 ;
+C 45 ; WX 333 ; N hyphen ; B 49 192 282 255 ;
+C 46 ; WX 250 ; N period ; B 27 -11 138 100 ;
+C 47 ; WX 278 ; N slash ; B -65 -18 386 666 ;
+C 48 ; WX 500 ; N zero ; B 32 -7 497 676 ;
+C 49 ; WX 500 ; N one ; B 49 0 409 676 ;
+C 50 ; WX 500 ; N two ; B 12 0 452 676 ;
+C 51 ; WX 500 ; N three ; B 15 -7 465 676 ;
+C 52 ; WX 500 ; N four ; B 1 0 479 676 ;
+C 53 ; WX 500 ; N five ; B 15 -7 491 666 ;
+C 54 ; WX 500 ; N six ; B 30 -7 521 686 ;
+C 55 ; WX 500 ; N seven ; B 75 -8 537 666 ;
+C 56 ; WX 500 ; N eight ; B 30 -7 493 676 ;
+C 57 ; WX 500 ; N nine ; B 23 -17 492 676 ;
+C 58 ; WX 333 ; N colon ; B 50 -11 261 441 ;
+C 59 ; WX 333 ; N semicolon ; B 27 -129 261 441 ;
+C 60 ; WX 675 ; N less ; B 84 -8 592 514 ;
+C 61 ; WX 675 ; N equal ; B 86 120 590 386 ;
+C 62 ; WX 675 ; N greater ; B 84 -8 592 514 ;
+C 63 ; WX 500 ; N question ; B 132 -12 472 664 ;
+C 64 ; WX 920 ; N at ; B 118 -18 806 666 ;
+C 65 ; WX 611 ; N A ; B -51 0 564 668 ;
+C 66 ; WX 611 ; N B ; B -8 0 588 653 ;
+C 67 ; WX 667 ; N C ; B 66 -18 689 666 ;
+C 68 ; WX 722 ; N D ; B -8 0 700 653 ;
+C 69 ; WX 611 ; N E ; B -1 0 634 653 ;
+C 70 ; WX 611 ; N F ; B 8 0 645 653 ;
+C 71 ; WX 722 ; N G ; B 52 -18 722 666 ;
+C 72 ; WX 722 ; N H ; B -8 0 767 653 ;
+C 73 ; WX 333 ; N I ; B -8 0 384 653 ;
+C 74 ; WX 444 ; N J ; B -6 -18 491 653 ;
+C 75 ; WX 667 ; N K ; B 7 0 722 653 ;
+C 76 ; WX 556 ; N L ; B -8 0 559 653 ;
+C 77 ; WX 833 ; N M ; B -18 0 873 653 ;
+C 78 ; WX 667 ; N N ; B -20 -15 727 653 ;
+C 79 ; WX 722 ; N O ; B 60 -18 699 666 ;
+C 80 ; WX 611 ; N P ; B 0 0 605 653 ;
+C 81 ; WX 722 ; N Q ; B 59 -182 699 666 ;
+C 82 ; WX 611 ; N R ; B -13 0 588 653 ;
+C 83 ; WX 500 ; N S ; B 17 -18 508 667 ;
+C 84 ; WX 556 ; N T ; B 59 0 633 653 ;
+C 85 ; WX 722 ; N U ; B 102 -18 765 653 ;
+C 86 ; WX 611 ; N V ; B 76 -18 688 653 ;
+C 87 ; WX 833 ; N W ; B 71 -18 906 653 ;
+C 88 ; WX 611 ; N X ; B -29 0 655 653 ;
+C 89 ; WX 556 ; N Y ; B 78 0 633 653 ;
+C 90 ; WX 556 ; N Z ; B -6 0 606 653 ;
+C 91 ; WX 389 ; N bracketleft ; B 21 -153 391 663 ;
+C 92 ; WX 278 ; N backslash ; B -41 -18 319 666 ;
+C 93 ; WX 389 ; N bracketright ; B 12 -153 382 663 ;
+C 94 ; WX 422 ; N asciicircum ; B 0 301 422 666 ;
+C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ;
+C 96 ; WX 333 ; N quoteleft ; B 171 436 310 666 ;
+C 97 ; WX 500 ; N a ; B 17 -11 476 441 ;
+C 98 ; WX 500 ; N b ; B 23 -11 473 683 ;
+C 99 ; WX 444 ; N c ; B 30 -11 425 441 ;
+C 100 ; WX 500 ; N d ; B 15 -13 527 683 ;
+C 101 ; WX 444 ; N e ; B 31 -11 412 441 ;
+C 102 ; WX 278 ; N f ; B -147 -207 424 678 ; L i fi ; L l fl ;
+C 103 ; WX 500 ; N g ; B 8 -206 472 441 ;
+C 104 ; WX 500 ; N h ; B 19 -9 478 683 ;
+C 105 ; WX 278 ; N i ; B 49 -11 264 654 ;
+C 106 ; WX 278 ; N j ; B -124 -207 276 654 ;
+C 107 ; WX 444 ; N k ; B 14 -11 461 683 ;
+C 108 ; WX 278 ; N l ; B 41 -11 279 683 ;
+C 109 ; WX 722 ; N m ; B 12 -9 704 441 ;
+C 110 ; WX 500 ; N n ; B 14 -9 474 441 ;
+C 111 ; WX 500 ; N o ; B 27 -11 468 441 ;
+C 112 ; WX 500 ; N p ; B -75 -205 469 441 ;
+C 113 ; WX 500 ; N q ; B 25 -209 483 441 ;
+C 114 ; WX 389 ; N r ; B 45 0 412 441 ;
+C 115 ; WX 389 ; N s ; B 16 -13 366 442 ;
+C 116 ; WX 278 ; N t ; B 37 -11 296 546 ;
+C 117 ; WX 500 ; N u ; B 42 -11 475 441 ;
+C 118 ; WX 444 ; N v ; B 21 -18 426 441 ;
+C 119 ; WX 667 ; N w ; B 16 -18 648 441 ;
+C 120 ; WX 444 ; N x ; B -27 -11 447 441 ;
+C 121 ; WX 444 ; N y ; B -24 -206 426 441 ;
+C 122 ; WX 389 ; N z ; B -2 -81 380 428 ;
+C 123 ; WX 400 ; N braceleft ; B 51 -177 407 687 ;
+C 124 ; WX 275 ; N bar ; B 105 -217 171 783 ;
+C 125 ; WX 400 ; N braceright ; B -7 -177 349 687 ;
+C 126 ; WX 541 ; N asciitilde ; B 40 183 502 323 ;
+C 161 ; WX 389 ; N exclamdown ; B 59 -205 322 473 ;
+C 162 ; WX 500 ; N cent ; B 77 -143 472 560 ;
+C 163 ; WX 500 ; N sterling ; B 10 -6 517 670 ;
+C 164 ; WX 167 ; N fraction ; B -169 -10 337 676 ;
+C 165 ; WX 500 ; N yen ; B 27 0 603 653 ;
+C 166 ; WX 500 ; N florin ; B 25 -182 507 682 ;
+C 167 ; WX 500 ; N section ; B 53 -162 461 666 ;
+C 168 ; WX 500 ; N currency ; B -22 53 522 597 ;
+C 169 ; WX 214 ; N quotesingle ; B 132 421 241 666 ;
+C 170 ; WX 556 ; N quotedblleft ; B 166 436 514 666 ;
+C 171 ; WX 500 ; N guillemotleft ; B 53 37 445 403 ;
+C 172 ; WX 333 ; N guilsinglleft ; B 51 37 281 403 ;
+C 173 ; WX 333 ; N guilsinglright ; B 52 37 282 403 ;
+C 174 ; WX 500 ; N fi ; B -141 -207 481 681 ;
+C 175 ; WX 500 ; N fl ; B -141 -204 518 682 ;
+C 177 ; WX 500 ; N endash ; B -6 197 505 243 ;
+C 178 ; WX 500 ; N dagger ; B 101 -159 488 666 ;
+C 179 ; WX 500 ; N daggerdbl ; B 22 -143 491 666 ;
+C 180 ; WX 250 ; N periodcentered ; B 70 199 181 310 ;
+C 182 ; WX 523 ; N paragraph ; B 55 -123 616 653 ;
+C 183 ; WX 350 ; N bullet ; B 40 191 310 461 ;
+C 184 ; WX 333 ; N quotesinglbase ; B 44 -129 183 101 ;
+C 185 ; WX 556 ; N quotedblbase ; B 57 -129 405 101 ;
+C 186 ; WX 556 ; N quotedblright ; B 151 436 499 666 ;
+C 187 ; WX 500 ; N guillemotright ; B 55 37 447 403 ;
+C 188 ; WX 889 ; N ellipsis ; B 57 -11 762 100 ;
+C 189 ; WX 1000 ; N perthousand ; B 25 -19 1010 706 ;
+C 191 ; WX 500 ; N questiondown ; B 28 -205 368 471 ;
+C 193 ; WX 333 ; N grave ; B 121 492 311 664 ;
+C 194 ; WX 333 ; N acute ; B 180 494 403 664 ;
+C 195 ; WX 333 ; N circumflex ; B 91 492 385 661 ;
+C 196 ; WX 333 ; N tilde ; B 100 517 427 624 ;
+C 197 ; WX 333 ; N macron ; B 99 532 411 583 ;
+C 198 ; WX 333 ; N breve ; B 117 492 418 650 ;
+C 199 ; WX 333 ; N dotaccent ; B 207 548 305 646 ;
+C 200 ; WX 333 ; N dieresis ; B 107 548 405 646 ;
+C 202 ; WX 333 ; N ring ; B 155 492 355 691 ;
+C 203 ; WX 333 ; N cedilla ; B -30 -217 182 0 ;
+C 205 ; WX 333 ; N hungarumlaut ; B 93 494 486 664 ;
+C 206 ; WX 333 ; N ogonek ; B 20 -169 203 40 ;
+C 207 ; WX 333 ; N caron ; B 121 492 426 661 ;
+C 208 ; WX 889 ; N emdash ; B -6 197 894 243 ;
+C 225 ; WX 889 ; N AE ; B -27 0 911 653 ;
+C 227 ; WX 276 ; N ordfeminine ; B 42 406 352 676 ;
+C 232 ; WX 556 ; N Lslash ; B -8 0 559 653 ;
+C 233 ; WX 722 ; N Oslash ; B 60 -105 699 722 ;
+C 234 ; WX 944 ; N OE ; B 49 -8 964 666 ;
+C 235 ; WX 310 ; N ordmasculine ; B 67 406 362 676 ;
+C 241 ; WX 667 ; N ae ; B 23 -11 640 441 ;
+C 245 ; WX 278 ; N dotlessi ; B 49 -11 235 441 ;
+C 248 ; WX 278 ; N lslash ; B 41 -11 312 683 ;
+C 249 ; WX 500 ; N oslash ; B 28 -135 469 554 ;
+C 250 ; WX 667 ; N oe ; B 20 -12 646 441 ;
+C 251 ; WX 500 ; N germandbls ; B -168 -207 493 679 ;
+C -1 ; WX 333 ; N Idieresis ; B -8 0 435 818 ;
+C -1 ; WX 444 ; N eacute ; B 31 -11 459 664 ;
+C -1 ; WX 500 ; N abreve ; B 17 -11 502 650 ;
+C -1 ; WX 500 ; N uhungarumlaut ; B 42 -11 580 664 ;
+C -1 ; WX 444 ; N ecaron ; B 31 -11 482 661 ;
+C -1 ; WX 556 ; N Ydieresis ; B 78 0 633 818 ;
+C -1 ; WX 675 ; N divide ; B 86 -11 590 517 ;
+C -1 ; WX 556 ; N Yacute ; B 78 0 633 876 ;
+C -1 ; WX 611 ; N Acircumflex ; B -51 0 564 873 ;
+C -1 ; WX 500 ; N aacute ; B 17 -11 487 664 ;
+C -1 ; WX 722 ; N Ucircumflex ; B 102 -18 765 873 ;
+C -1 ; WX 444 ; N yacute ; B -24 -206 459 664 ;
+C -1 ; WX 389 ; N scommaaccent ; B 16 -217 366 442 ;
+C -1 ; WX 444 ; N ecircumflex ; B 31 -11 441 661 ;
+C -1 ; WX 722 ; N Uring ; B 102 -18 765 883 ;
+C -1 ; WX 722 ; N Udieresis ; B 102 -18 765 818 ;
+C -1 ; WX 500 ; N aogonek ; B 17 -169 476 441 ;
+C -1 ; WX 722 ; N Uacute ; B 102 -18 765 876 ;
+C -1 ; WX 500 ; N uogonek ; B 42 -169 477 441 ;
+C -1 ; WX 611 ; N Edieresis ; B -1 0 634 818 ;
+C -1 ; WX 722 ; N Dcroat ; B -8 0 700 653 ;
+C -1 ; WX 250 ; N commaaccent ; B 8 -217 133 -50 ;
+C -1 ; WX 760 ; N copyright ; B 41 -18 719 666 ;
+C -1 ; WX 611 ; N Emacron ; B -1 0 634 795 ;
+C -1 ; WX 444 ; N ccaron ; B 30 -11 482 661 ;
+C -1 ; WX 500 ; N aring ; B 17 -11 476 691 ;
+C -1 ; WX 667 ; N Ncommaaccent ; B -20 -187 727 653 ;
+C -1 ; WX 278 ; N lacute ; B 41 -11 395 876 ;
+C -1 ; WX 500 ; N agrave ; B 17 -11 476 664 ;
+C -1 ; WX 556 ; N Tcommaaccent ; B 59 -217 633 653 ;
+C -1 ; WX 667 ; N Cacute ; B 66 -18 690 876 ;
+C -1 ; WX 500 ; N atilde ; B 17 -11 511 624 ;
+C -1 ; WX 611 ; N Edotaccent ; B -1 0 634 818 ;
+C -1 ; WX 389 ; N scaron ; B 16 -13 454 661 ;
+C -1 ; WX 389 ; N scedilla ; B 16 -217 366 442 ;
+C -1 ; WX 278 ; N iacute ; B 49 -11 355 664 ;
+C -1 ; WX 471 ; N lozenge ; B 13 0 459 724 ;
+C -1 ; WX 611 ; N Rcaron ; B -13 0 588 873 ;
+C -1 ; WX 722 ; N Gcommaaccent ; B 52 -217 722 666 ;
+C -1 ; WX 500 ; N ucircumflex ; B 42 -11 475 661 ;
+C -1 ; WX 500 ; N acircumflex ; B 17 -11 476 661 ;
+C -1 ; WX 611 ; N Amacron ; B -51 0 564 795 ;
+C -1 ; WX 389 ; N rcaron ; B 45 0 434 661 ;
+C -1 ; WX 444 ; N ccedilla ; B 30 -217 425 441 ;
+C -1 ; WX 556 ; N Zdotaccent ; B -6 0 606 818 ;
+C -1 ; WX 611 ; N Thorn ; B 0 0 569 653 ;
+C -1 ; WX 722 ; N Omacron ; B 60 -18 699 795 ;
+C -1 ; WX 611 ; N Racute ; B -13 0 588 876 ;
+C -1 ; WX 500 ; N Sacute ; B 17 -18 508 876 ;
+C -1 ; WX 544 ; N dcaron ; B 15 -13 658 683 ;
+C -1 ; WX 722 ; N Umacron ; B 102 -18 765 795 ;
+C -1 ; WX 500 ; N uring ; B 42 -11 475 691 ;
+C -1 ; WX 300 ; N threesuperior ; B 43 268 339 676 ;
+C -1 ; WX 722 ; N Ograve ; B 60 -18 699 876 ;
+C -1 ; WX 611 ; N Agrave ; B -51 0 564 876 ;
+C -1 ; WX 611 ; N Abreve ; B -51 0 564 862 ;
+C -1 ; WX 675 ; N multiply ; B 93 8 582 497 ;
+C -1 ; WX 500 ; N uacute ; B 42 -11 477 664 ;
+C -1 ; WX 556 ; N Tcaron ; B 59 0 633 873 ;
+C -1 ; WX 476 ; N partialdiff ; B 17 -38 459 710 ;
+C -1 ; WX 444 ; N ydieresis ; B -24 -206 441 606 ;
+C -1 ; WX 667 ; N Nacute ; B -20 -15 727 876 ;
+C -1 ; WX 278 ; N icircumflex ; B 33 -11 327 661 ;
+C -1 ; WX 611 ; N Ecircumflex ; B -1 0 634 873 ;
+C -1 ; WX 500 ; N adieresis ; B 17 -11 489 606 ;
+C -1 ; WX 444 ; N edieresis ; B 31 -11 451 606 ;
+C -1 ; WX 444 ; N cacute ; B 30 -11 459 664 ;
+C -1 ; WX 500 ; N nacute ; B 14 -9 477 664 ;
+C -1 ; WX 500 ; N umacron ; B 42 -11 485 583 ;
+C -1 ; WX 667 ; N Ncaron ; B -20 -15 727 873 ;
+C -1 ; WX 333 ; N Iacute ; B -8 0 433 876 ;
+C -1 ; WX 675 ; N plusminus ; B 86 0 590 506 ;
+C -1 ; WX 275 ; N brokenbar ; B 105 -142 171 708 ;
+C -1 ; WX 760 ; N registered ; B 41 -18 719 666 ;
+C -1 ; WX 722 ; N Gbreve ; B 52 -18 722 862 ;
+C -1 ; WX 333 ; N Idotaccent ; B -8 0 384 818 ;
+C -1 ; WX 600 ; N summation ; B 15 -10 585 706 ;
+C -1 ; WX 611 ; N Egrave ; B -1 0 634 876 ;
+C -1 ; WX 389 ; N racute ; B 45 0 431 664 ;
+C -1 ; WX 500 ; N omacron ; B 27 -11 495 583 ;
+C -1 ; WX 556 ; N Zacute ; B -6 0 606 876 ;
+C -1 ; WX 556 ; N Zcaron ; B -6 0 606 873 ;
+C -1 ; WX 549 ; N greaterequal ; B 26 0 523 658 ;
+C -1 ; WX 722 ; N Eth ; B -8 0 700 653 ;
+C -1 ; WX 667 ; N Ccedilla ; B 66 -217 689 666 ;
+C -1 ; WX 278 ; N lcommaaccent ; B 22 -217 279 683 ;
+C -1 ; WX 300 ; N tcaron ; B 37 -11 407 681 ;
+C -1 ; WX 444 ; N eogonek ; B 31 -169 412 441 ;
+C -1 ; WX 722 ; N Uogonek ; B 102 -184 765 653 ;
+C -1 ; WX 611 ; N Aacute ; B -51 0 564 876 ;
+C -1 ; WX 611 ; N Adieresis ; B -51 0 564 818 ;
+C -1 ; WX 444 ; N egrave ; B 31 -11 412 664 ;
+C -1 ; WX 389 ; N zacute ; B -2 -81 431 664 ;
+C -1 ; WX 278 ; N iogonek ; B 49 -169 264 654 ;
+C -1 ; WX 722 ; N Oacute ; B 60 -18 699 876 ;
+C -1 ; WX 500 ; N oacute ; B 27 -11 487 664 ;
+C -1 ; WX 500 ; N amacron ; B 17 -11 495 583 ;
+C -1 ; WX 389 ; N sacute ; B 16 -13 431 664 ;
+C -1 ; WX 278 ; N idieresis ; B 49 -11 352 606 ;
+C -1 ; WX 722 ; N Ocircumflex ; B 60 -18 699 873 ;
+C -1 ; WX 722 ; N Ugrave ; B 102 -18 765 876 ;
+C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
+C -1 ; WX 500 ; N thorn ; B -75 -205 469 683 ;
+C -1 ; WX 300 ; N twosuperior ; B 33 271 324 676 ;
+C -1 ; WX 722 ; N Odieresis ; B 60 -18 699 818 ;
+C -1 ; WX 500 ; N mu ; B -30 -209 497 428 ;
+C -1 ; WX 278 ; N igrave ; B 49 -11 284 664 ;
+C -1 ; WX 500 ; N ohungarumlaut ; B 27 -11 590 664 ;
+C -1 ; WX 611 ; N Eogonek ; B -1 -169 634 653 ;
+C -1 ; WX 500 ; N dcroat ; B 15 -13 572 683 ;
+C -1 ; WX 750 ; N threequarters ; B 23 -10 736 676 ;
+C -1 ; WX 500 ; N Scedilla ; B 17 -217 508 667 ;
+C -1 ; WX 300 ; N lcaron ; B 41 -11 407 683 ;
+C -1 ; WX 667 ; N Kcommaaccent ; B 7 -217 722 653 ;
+C -1 ; WX 556 ; N Lacute ; B -8 0 559 876 ;
+C -1 ; WX 980 ; N trademark ; B 30 247 957 653 ;
+C -1 ; WX 444 ; N edotaccent ; B 31 -11 412 606 ;
+C -1 ; WX 333 ; N Igrave ; B -8 0 384 876 ;
+C -1 ; WX 333 ; N Imacron ; B -8 0 441 795 ;
+C -1 ; WX 611 ; N Lcaron ; B -8 0 586 653 ;
+C -1 ; WX 750 ; N onehalf ; B 34 -10 749 676 ;
+C -1 ; WX 549 ; N lessequal ; B 26 0 523 658 ;
+C -1 ; WX 500 ; N ocircumflex ; B 27 -11 468 661 ;
+C -1 ; WX 500 ; N ntilde ; B 14 -9 476 624 ;
+C -1 ; WX 722 ; N Uhungarumlaut ; B 102 -18 765 876 ;
+C -1 ; WX 611 ; N Eacute ; B -1 0 634 876 ;
+C -1 ; WX 444 ; N emacron ; B 31 -11 457 583 ;
+C -1 ; WX 500 ; N gbreve ; B 8 -206 487 650 ;
+C -1 ; WX 750 ; N onequarter ; B 33 -10 736 676 ;
+C -1 ; WX 500 ; N Scaron ; B 17 -18 520 873 ;
+C -1 ; WX 500 ; N Scommaaccent ; B 17 -217 508 667 ;
+C -1 ; WX 722 ; N Ohungarumlaut ; B 60 -18 699 876 ;
+C -1 ; WX 400 ; N degree ; B 101 390 387 676 ;
+C -1 ; WX 500 ; N ograve ; B 27 -11 468 664 ;
+C -1 ; WX 667 ; N Ccaron ; B 66 -18 689 873 ;
+C -1 ; WX 500 ; N ugrave ; B 42 -11 475 664 ;
+C -1 ; WX 453 ; N radical ; B 2 -60 452 768 ;
+C -1 ; WX 722 ; N Dcaron ; B -8 0 700 873 ;
+C -1 ; WX 389 ; N rcommaaccent ; B -3 -217 412 441 ;
+C -1 ; WX 667 ; N Ntilde ; B -20 -15 727 836 ;
+C -1 ; WX 500 ; N otilde ; B 27 -11 496 624 ;
+C -1 ; WX 611 ; N Rcommaaccent ; B -13 -187 588 653 ;
+C -1 ; WX 556 ; N Lcommaaccent ; B -8 -217 559 653 ;
+C -1 ; WX 611 ; N Atilde ; B -51 0 566 836 ;
+C -1 ; WX 611 ; N Aogonek ; B -51 -169 566 668 ;
+C -1 ; WX 611 ; N Aring ; B -51 0 564 883 ;
+C -1 ; WX 722 ; N Otilde ; B 60 -18 699 836 ;
+C -1 ; WX 389 ; N zdotaccent ; B -2 -81 380 606 ;
+C -1 ; WX 611 ; N Ecaron ; B -1 0 634 873 ;
+C -1 ; WX 333 ; N Iogonek ; B -8 -169 384 653 ;
+C -1 ; WX 444 ; N kcommaaccent ; B 14 -187 461 683 ;
+C -1 ; WX 675 ; N minus ; B 86 220 590 286 ;
+C -1 ; WX 333 ; N Icircumflex ; B -8 0 425 873 ;
+C -1 ; WX 500 ; N ncaron ; B 14 -9 510 661 ;
+C -1 ; WX 278 ; N tcommaaccent ; B 2 -217 296 546 ;
+C -1 ; WX 675 ; N logicalnot ; B 86 108 590 386 ;
+C -1 ; WX 500 ; N odieresis ; B 27 -11 489 606 ;
+C -1 ; WX 500 ; N udieresis ; B 42 -11 479 606 ;
+C -1 ; WX 549 ; N notequal ; B 12 -29 537 541 ;
+C -1 ; WX 500 ; N gcommaaccent ; B 8 -206 472 706 ;
+C -1 ; WX 500 ; N eth ; B 27 -11 482 683 ;
+C -1 ; WX 389 ; N zcaron ; B -2 -81 434 661 ;
+C -1 ; WX 500 ; N ncommaaccent ; B 14 -187 474 441 ;
+C -1 ; WX 300 ; N onesuperior ; B 43 271 284 676 ;
+C -1 ; WX 278 ; N imacron ; B 46 -11 311 583 ;
+C -1 ; WX 500 ; N Euro ; B 0 0 0 0 ;
+EndCharMetrics
+StartKernData
+StartKernPairs 2321
+KPX A C -30
+KPX A Cacute -30
+KPX A Ccaron -30
+KPX A Ccedilla -30
+KPX A G -35
+KPX A Gbreve -35
+KPX A Gcommaaccent -35
+KPX A O -40
+KPX A Oacute -40
+KPX A Ocircumflex -40
+KPX A Odieresis -40
+KPX A Ograve -40
+KPX A Ohungarumlaut -40
+KPX A Omacron -40
+KPX A Oslash -40
+KPX A Otilde -40
+KPX A Q -40
+KPX A T -37
+KPX A Tcaron -37
+KPX A Tcommaaccent -37
+KPX A U -50
+KPX A Uacute -50
+KPX A Ucircumflex -50
+KPX A Udieresis -50
+KPX A Ugrave -50
+KPX A Uhungarumlaut -50
+KPX A Umacron -50
+KPX A Uogonek -50
+KPX A Uring -50
+KPX A V -105
+KPX A W -95
+KPX A Y -55
+KPX A Yacute -55
+KPX A Ydieresis -55
+KPX A quoteright -37
+KPX A u -20
+KPX A uacute -20
+KPX A ucircumflex -20
+KPX A udieresis -20
+KPX A ugrave -20
+KPX A uhungarumlaut -20
+KPX A umacron -20
+KPX A uogonek -20
+KPX A uring -20
+KPX A v -55
+KPX A w -55
+KPX A y -55
+KPX A yacute -55
+KPX A ydieresis -55
+KPX Aacute C -30
+KPX Aacute Cacute -30
+KPX Aacute Ccaron -30
+KPX Aacute Ccedilla -30
+KPX Aacute G -35
+KPX Aacute Gbreve -35
+KPX Aacute Gcommaaccent -35
+KPX Aacute O -40
+KPX Aacute Oacute -40
+KPX Aacute Ocircumflex -40
+KPX Aacute Odieresis -40
+KPX Aacute Ograve -40
+KPX Aacute Ohungarumlaut -40
+KPX Aacute Omacron -40
+KPX Aacute Oslash -40
+KPX Aacute Otilde -40
+KPX Aacute Q -40
+KPX Aacute T -37
+KPX Aacute Tcaron -37
+KPX Aacute Tcommaaccent -37
+KPX Aacute U -50
+KPX Aacute Uacute -50
+KPX Aacute Ucircumflex -50
+KPX Aacute Udieresis -50
+KPX Aacute Ugrave -50
+KPX Aacute Uhungarumlaut -50
+KPX Aacute Umacron -50
+KPX Aacute Uogonek -50
+KPX Aacute Uring -50
+KPX Aacute V -105
+KPX Aacute W -95
+KPX Aacute Y -55
+KPX Aacute Yacute -55
+KPX Aacute Ydieresis -55
+KPX Aacute quoteright -37
+KPX Aacute u -20
+KPX Aacute uacute -20
+KPX Aacute ucircumflex -20
+KPX Aacute udieresis -20
+KPX Aacute ugrave -20
+KPX Aacute uhungarumlaut -20
+KPX Aacute umacron -20
+KPX Aacute uogonek -20
+KPX Aacute uring -20
+KPX Aacute v -55
+KPX Aacute w -55
+KPX Aacute y -55
+KPX Aacute yacute -55
+KPX Aacute ydieresis -55
+KPX Abreve C -30
+KPX Abreve Cacute -30
+KPX Abreve Ccaron -30
+KPX Abreve Ccedilla -30
+KPX Abreve G -35
+KPX Abreve Gbreve -35
+KPX Abreve Gcommaaccent -35
+KPX Abreve O -40
+KPX Abreve Oacute -40
+KPX Abreve Ocircumflex -40
+KPX Abreve Odieresis -40
+KPX Abreve Ograve -40
+KPX Abreve Ohungarumlaut -40
+KPX Abreve Omacron -40
+KPX Abreve Oslash -40
+KPX Abreve Otilde -40
+KPX Abreve Q -40
+KPX Abreve T -37
+KPX Abreve Tcaron -37
+KPX Abreve Tcommaaccent -37
+KPX Abreve U -50
+KPX Abreve Uacute -50
+KPX Abreve Ucircumflex -50
+KPX Abreve Udieresis -50
+KPX Abreve Ugrave -50
+KPX Abreve Uhungarumlaut -50
+KPX Abreve Umacron -50
+KPX Abreve Uogonek -50
+KPX Abreve Uring -50
+KPX Abreve V -105
+KPX Abreve W -95
+KPX Abreve Y -55
+KPX Abreve Yacute -55
+KPX Abreve Ydieresis -55
+KPX Abreve quoteright -37
+KPX Abreve u -20
+KPX Abreve uacute -20
+KPX Abreve ucircumflex -20
+KPX Abreve udieresis -20
+KPX Abreve ugrave -20
+KPX Abreve uhungarumlaut -20
+KPX Abreve umacron -20
+KPX Abreve uogonek -20
+KPX Abreve uring -20
+KPX Abreve v -55
+KPX Abreve w -55
+KPX Abreve y -55
+KPX Abreve yacute -55
+KPX Abreve ydieresis -55
+KPX Acircumflex C -30
+KPX Acircumflex Cacute -30
+KPX Acircumflex Ccaron -30
+KPX Acircumflex Ccedilla -30
+KPX Acircumflex G -35
+KPX Acircumflex Gbreve -35
+KPX Acircumflex Gcommaaccent -35
+KPX Acircumflex O -40
+KPX Acircumflex Oacute -40
+KPX Acircumflex Ocircumflex -40
+KPX Acircumflex Odieresis -40
+KPX Acircumflex Ograve -40
+KPX Acircumflex Ohungarumlaut -40
+KPX Acircumflex Omacron -40
+KPX Acircumflex Oslash -40
+KPX Acircumflex Otilde -40
+KPX Acircumflex Q -40
+KPX Acircumflex T -37
+KPX Acircumflex Tcaron -37
+KPX Acircumflex Tcommaaccent -37
+KPX Acircumflex U -50
+KPX Acircumflex Uacute -50
+KPX Acircumflex Ucircumflex -50
+KPX Acircumflex Udieresis -50
+KPX Acircumflex Ugrave -50
+KPX Acircumflex Uhungarumlaut -50
+KPX Acircumflex Umacron -50
+KPX Acircumflex Uogonek -50
+KPX Acircumflex Uring -50
+KPX Acircumflex V -105
+KPX Acircumflex W -95
+KPX Acircumflex Y -55
+KPX Acircumflex Yacute -55
+KPX Acircumflex Ydieresis -55
+KPX Acircumflex quoteright -37
+KPX Acircumflex u -20
+KPX Acircumflex uacute -20
+KPX Acircumflex ucircumflex -20
+KPX Acircumflex udieresis -20
+KPX Acircumflex ugrave -20
+KPX Acircumflex uhungarumlaut -20
+KPX Acircumflex umacron -20
+KPX Acircumflex uogonek -20
+KPX Acircumflex uring -20
+KPX Acircumflex v -55
+KPX Acircumflex w -55
+KPX Acircumflex y -55
+KPX Acircumflex yacute -55
+KPX Acircumflex ydieresis -55
+KPX Adieresis C -30
+KPX Adieresis Cacute -30
+KPX Adieresis Ccaron -30
+KPX Adieresis Ccedilla -30
+KPX Adieresis G -35
+KPX Adieresis Gbreve -35
+KPX Adieresis Gcommaaccent -35
+KPX Adieresis O -40
+KPX Adieresis Oacute -40
+KPX Adieresis Ocircumflex -40
+KPX Adieresis Odieresis -40
+KPX Adieresis Ograve -40
+KPX Adieresis Ohungarumlaut -40
+KPX Adieresis Omacron -40
+KPX Adieresis Oslash -40
+KPX Adieresis Otilde -40
+KPX Adieresis Q -40
+KPX Adieresis T -37
+KPX Adieresis Tcaron -37
+KPX Adieresis Tcommaaccent -37
+KPX Adieresis U -50
+KPX Adieresis Uacute -50
+KPX Adieresis Ucircumflex -50
+KPX Adieresis Udieresis -50
+KPX Adieresis Ugrave -50
+KPX Adieresis Uhungarumlaut -50
+KPX Adieresis Umacron -50
+KPX Adieresis Uogonek -50
+KPX Adieresis Uring -50
+KPX Adieresis V -105
+KPX Adieresis W -95
+KPX Adieresis Y -55
+KPX Adieresis Yacute -55
+KPX Adieresis Ydieresis -55
+KPX Adieresis quoteright -37
+KPX Adieresis u -20
+KPX Adieresis uacute -20
+KPX Adieresis ucircumflex -20
+KPX Adieresis udieresis -20
+KPX Adieresis ugrave -20
+KPX Adieresis uhungarumlaut -20
+KPX Adieresis umacron -20
+KPX Adieresis uogonek -20
+KPX Adieresis uring -20
+KPX Adieresis v -55
+KPX Adieresis w -55
+KPX Adieresis y -55
+KPX Adieresis yacute -55
+KPX Adieresis ydieresis -55
+KPX Agrave C -30
+KPX Agrave Cacute -30
+KPX Agrave Ccaron -30
+KPX Agrave Ccedilla -30
+KPX Agrave G -35
+KPX Agrave Gbreve -35
+KPX Agrave Gcommaaccent -35
+KPX Agrave O -40
+KPX Agrave Oacute -40
+KPX Agrave Ocircumflex -40
+KPX Agrave Odieresis -40
+KPX Agrave Ograve -40
+KPX Agrave Ohungarumlaut -40
+KPX Agrave Omacron -40
+KPX Agrave Oslash -40
+KPX Agrave Otilde -40
+KPX Agrave Q -40
+KPX Agrave T -37
+KPX Agrave Tcaron -37
+KPX Agrave Tcommaaccent -37
+KPX Agrave U -50
+KPX Agrave Uacute -50
+KPX Agrave Ucircumflex -50
+KPX Agrave Udieresis -50
+KPX Agrave Ugrave -50
+KPX Agrave Uhungarumlaut -50
+KPX Agrave Umacron -50
+KPX Agrave Uogonek -50
+KPX Agrave Uring -50
+KPX Agrave V -105
+KPX Agrave W -95
+KPX Agrave Y -55
+KPX Agrave Yacute -55
+KPX Agrave Ydieresis -55
+KPX Agrave quoteright -37
+KPX Agrave u -20
+KPX Agrave uacute -20
+KPX Agrave ucircumflex -20
+KPX Agrave udieresis -20
+KPX Agrave ugrave -20
+KPX Agrave uhungarumlaut -20
+KPX Agrave umacron -20
+KPX Agrave uogonek -20
+KPX Agrave uring -20
+KPX Agrave v -55
+KPX Agrave w -55
+KPX Agrave y -55
+KPX Agrave yacute -55
+KPX Agrave ydieresis -55
+KPX Amacron C -30
+KPX Amacron Cacute -30
+KPX Amacron Ccaron -30
+KPX Amacron Ccedilla -30
+KPX Amacron G -35
+KPX Amacron Gbreve -35
+KPX Amacron Gcommaaccent -35
+KPX Amacron O -40
+KPX Amacron Oacute -40
+KPX Amacron Ocircumflex -40
+KPX Amacron Odieresis -40
+KPX Amacron Ograve -40
+KPX Amacron Ohungarumlaut -40
+KPX Amacron Omacron -40
+KPX Amacron Oslash -40
+KPX Amacron Otilde -40
+KPX Amacron Q -40
+KPX Amacron T -37
+KPX Amacron Tcaron -37
+KPX Amacron Tcommaaccent -37
+KPX Amacron U -50
+KPX Amacron Uacute -50
+KPX Amacron Ucircumflex -50
+KPX Amacron Udieresis -50
+KPX Amacron Ugrave -50
+KPX Amacron Uhungarumlaut -50
+KPX Amacron Umacron -50
+KPX Amacron Uogonek -50
+KPX Amacron Uring -50
+KPX Amacron V -105
+KPX Amacron W -95
+KPX Amacron Y -55
+KPX Amacron Yacute -55
+KPX Amacron Ydieresis -55
+KPX Amacron quoteright -37
+KPX Amacron u -20
+KPX Amacron uacute -20
+KPX Amacron ucircumflex -20
+KPX Amacron udieresis -20
+KPX Amacron ugrave -20
+KPX Amacron uhungarumlaut -20
+KPX Amacron umacron -20
+KPX Amacron uogonek -20
+KPX Amacron uring -20
+KPX Amacron v -55
+KPX Amacron w -55
+KPX Amacron y -55
+KPX Amacron yacute -55
+KPX Amacron ydieresis -55
+KPX Aogonek C -30
+KPX Aogonek Cacute -30
+KPX Aogonek Ccaron -30
+KPX Aogonek Ccedilla -30
+KPX Aogonek G -35
+KPX Aogonek Gbreve -35
+KPX Aogonek Gcommaaccent -35
+KPX Aogonek O -40
+KPX Aogonek Oacute -40
+KPX Aogonek Ocircumflex -40
+KPX Aogonek Odieresis -40
+KPX Aogonek Ograve -40
+KPX Aogonek Ohungarumlaut -40
+KPX Aogonek Omacron -40
+KPX Aogonek Oslash -40
+KPX Aogonek Otilde -40
+KPX Aogonek Q -40
+KPX Aogonek T -37
+KPX Aogonek Tcaron -37
+KPX Aogonek Tcommaaccent -37
+KPX Aogonek U -50
+KPX Aogonek Uacute -50
+KPX Aogonek Ucircumflex -50
+KPX Aogonek Udieresis -50
+KPX Aogonek Ugrave -50
+KPX Aogonek Uhungarumlaut -50
+KPX Aogonek Umacron -50
+KPX Aogonek Uogonek -50
+KPX Aogonek Uring -50
+KPX Aogonek V -105
+KPX Aogonek W -95
+KPX Aogonek Y -55
+KPX Aogonek Yacute -55
+KPX Aogonek Ydieresis -55
+KPX Aogonek quoteright -37
+KPX Aogonek u -20
+KPX Aogonek uacute -20
+KPX Aogonek ucircumflex -20
+KPX Aogonek udieresis -20
+KPX Aogonek ugrave -20
+KPX Aogonek uhungarumlaut -20
+KPX Aogonek umacron -20
+KPX Aogonek uogonek -20
+KPX Aogonek uring -20
+KPX Aogonek v -55
+KPX Aogonek w -55
+KPX Aogonek y -55
+KPX Aogonek yacute -55
+KPX Aogonek ydieresis -55
+KPX Aring C -30
+KPX Aring Cacute -30
+KPX Aring Ccaron -30
+KPX Aring Ccedilla -30
+KPX Aring G -35
+KPX Aring Gbreve -35
+KPX Aring Gcommaaccent -35
+KPX Aring O -40
+KPX Aring Oacute -40
+KPX Aring Ocircumflex -40
+KPX Aring Odieresis -40
+KPX Aring Ograve -40
+KPX Aring Ohungarumlaut -40
+KPX Aring Omacron -40
+KPX Aring Oslash -40
+KPX Aring Otilde -40
+KPX Aring Q -40
+KPX Aring T -37
+KPX Aring Tcaron -37
+KPX Aring Tcommaaccent -37
+KPX Aring U -50
+KPX Aring Uacute -50
+KPX Aring Ucircumflex -50
+KPX Aring Udieresis -50
+KPX Aring Ugrave -50
+KPX Aring Uhungarumlaut -50
+KPX Aring Umacron -50
+KPX Aring Uogonek -50
+KPX Aring Uring -50
+KPX Aring V -105
+KPX Aring W -95
+KPX Aring Y -55
+KPX Aring Yacute -55
+KPX Aring Ydieresis -55
+KPX Aring quoteright -37
+KPX Aring u -20
+KPX Aring uacute -20
+KPX Aring ucircumflex -20
+KPX Aring udieresis -20
+KPX Aring ugrave -20
+KPX Aring uhungarumlaut -20
+KPX Aring umacron -20
+KPX Aring uogonek -20
+KPX Aring uring -20
+KPX Aring v -55
+KPX Aring w -55
+KPX Aring y -55
+KPX Aring yacute -55
+KPX Aring ydieresis -55
+KPX Atilde C -30
+KPX Atilde Cacute -30
+KPX Atilde Ccaron -30
+KPX Atilde Ccedilla -30
+KPX Atilde G -35
+KPX Atilde Gbreve -35
+KPX Atilde Gcommaaccent -35
+KPX Atilde O -40
+KPX Atilde Oacute -40
+KPX Atilde Ocircumflex -40
+KPX Atilde Odieresis -40
+KPX Atilde Ograve -40
+KPX Atilde Ohungarumlaut -40
+KPX Atilde Omacron -40
+KPX Atilde Oslash -40
+KPX Atilde Otilde -40
+KPX Atilde Q -40
+KPX Atilde T -37
+KPX Atilde Tcaron -37
+KPX Atilde Tcommaaccent -37
+KPX Atilde U -50
+KPX Atilde Uacute -50
+KPX Atilde Ucircumflex -50
+KPX Atilde Udieresis -50
+KPX Atilde Ugrave -50
+KPX Atilde Uhungarumlaut -50
+KPX Atilde Umacron -50
+KPX Atilde Uogonek -50
+KPX Atilde Uring -50
+KPX Atilde V -105
+KPX Atilde W -95
+KPX Atilde Y -55
+KPX Atilde Yacute -55
+KPX Atilde Ydieresis -55
+KPX Atilde quoteright -37
+KPX Atilde u -20
+KPX Atilde uacute -20
+KPX Atilde ucircumflex -20
+KPX Atilde udieresis -20
+KPX Atilde ugrave -20
+KPX Atilde uhungarumlaut -20
+KPX Atilde umacron -20
+KPX Atilde uogonek -20
+KPX Atilde uring -20
+KPX Atilde v -55
+KPX Atilde w -55
+KPX Atilde y -55
+KPX Atilde yacute -55
+KPX Atilde ydieresis -55
+KPX B A -25
+KPX B Aacute -25
+KPX B Abreve -25
+KPX B Acircumflex -25
+KPX B Adieresis -25
+KPX B Agrave -25
+KPX B Amacron -25
+KPX B Aogonek -25
+KPX B Aring -25
+KPX B Atilde -25
+KPX B U -10
+KPX B Uacute -10
+KPX B Ucircumflex -10
+KPX B Udieresis -10
+KPX B Ugrave -10
+KPX B Uhungarumlaut -10
+KPX B Umacron -10
+KPX B Uogonek -10
+KPX B Uring -10
+KPX D A -35
+KPX D Aacute -35
+KPX D Abreve -35
+KPX D Acircumflex -35
+KPX D Adieresis -35
+KPX D Agrave -35
+KPX D Amacron -35
+KPX D Aogonek -35
+KPX D Aring -35
+KPX D Atilde -35
+KPX D V -40
+KPX D W -40
+KPX D Y -40
+KPX D Yacute -40
+KPX D Ydieresis -40
+KPX Dcaron A -35
+KPX Dcaron Aacute -35
+KPX Dcaron Abreve -35
+KPX Dcaron Acircumflex -35
+KPX Dcaron Adieresis -35
+KPX Dcaron Agrave -35
+KPX Dcaron Amacron -35
+KPX Dcaron Aogonek -35
+KPX Dcaron Aring -35
+KPX Dcaron Atilde -35
+KPX Dcaron V -40
+KPX Dcaron W -40
+KPX Dcaron Y -40
+KPX Dcaron Yacute -40
+KPX Dcaron Ydieresis -40
+KPX Dcroat A -35
+KPX Dcroat Aacute -35
+KPX Dcroat Abreve -35
+KPX Dcroat Acircumflex -35
+KPX Dcroat Adieresis -35
+KPX Dcroat Agrave -35
+KPX Dcroat Amacron -35
+KPX Dcroat Aogonek -35
+KPX Dcroat Aring -35
+KPX Dcroat Atilde -35
+KPX Dcroat V -40
+KPX Dcroat W -40
+KPX Dcroat Y -40
+KPX Dcroat Yacute -40
+KPX Dcroat Ydieresis -40
+KPX F A -115
+KPX F Aacute -115
+KPX F Abreve -115
+KPX F Acircumflex -115
+KPX F Adieresis -115
+KPX F Agrave -115
+KPX F Amacron -115
+KPX F Aogonek -115
+KPX F Aring -115
+KPX F Atilde -115
+KPX F a -75
+KPX F aacute -75
+KPX F abreve -75
+KPX F acircumflex -75
+KPX F adieresis -75
+KPX F agrave -75
+KPX F amacron -75
+KPX F aogonek -75
+KPX F aring -75
+KPX F atilde -75
+KPX F comma -135
+KPX F e -75
+KPX F eacute -75
+KPX F ecaron -75
+KPX F ecircumflex -75
+KPX F edieresis -75
+KPX F edotaccent -75
+KPX F egrave -75
+KPX F emacron -75
+KPX F eogonek -75
+KPX F i -45
+KPX F iacute -45
+KPX F icircumflex -45
+KPX F idieresis -45
+KPX F igrave -45
+KPX F imacron -45
+KPX F iogonek -45
+KPX F o -105
+KPX F oacute -105
+KPX F ocircumflex -105
+KPX F odieresis -105
+KPX F ograve -105
+KPX F ohungarumlaut -105
+KPX F omacron -105
+KPX F oslash -105
+KPX F otilde -105
+KPX F period -135
+KPX F r -55
+KPX F racute -55
+KPX F rcaron -55
+KPX F rcommaaccent -55
+KPX J A -40
+KPX J Aacute -40
+KPX J Abreve -40
+KPX J Acircumflex -40
+KPX J Adieresis -40
+KPX J Agrave -40
+KPX J Amacron -40
+KPX J Aogonek -40
+KPX J Aring -40
+KPX J Atilde -40
+KPX J a -35
+KPX J aacute -35
+KPX J abreve -35
+KPX J acircumflex -35
+KPX J adieresis -35
+KPX J agrave -35
+KPX J amacron -35
+KPX J aogonek -35
+KPX J aring -35
+KPX J atilde -35
+KPX J comma -25
+KPX J e -25
+KPX J eacute -25
+KPX J ecaron -25
+KPX J ecircumflex -25
+KPX J edieresis -25
+KPX J edotaccent -25
+KPX J egrave -25
+KPX J emacron -25
+KPX J eogonek -25
+KPX J o -25
+KPX J oacute -25
+KPX J ocircumflex -25
+KPX J odieresis -25
+KPX J ograve -25
+KPX J ohungarumlaut -25
+KPX J omacron -25
+KPX J oslash -25
+KPX J otilde -25
+KPX J period -25
+KPX J u -35
+KPX J uacute -35
+KPX J ucircumflex -35
+KPX J udieresis -35
+KPX J ugrave -35
+KPX J uhungarumlaut -35
+KPX J umacron -35
+KPX J uogonek -35
+KPX J uring -35
+KPX K O -50
+KPX K Oacute -50
+KPX K Ocircumflex -50
+KPX K Odieresis -50
+KPX K Ograve -50
+KPX K Ohungarumlaut -50
+KPX K Omacron -50
+KPX K Oslash -50
+KPX K Otilde -50
+KPX K e -35
+KPX K eacute -35
+KPX K ecaron -35
+KPX K ecircumflex -35
+KPX K edieresis -35
+KPX K edotaccent -35
+KPX K egrave -35
+KPX K emacron -35
+KPX K eogonek -35
+KPX K o -40
+KPX K oacute -40
+KPX K ocircumflex -40
+KPX K odieresis -40
+KPX K ograve -40
+KPX K ohungarumlaut -40
+KPX K omacron -40
+KPX K oslash -40
+KPX K otilde -40
+KPX K u -40
+KPX K uacute -40
+KPX K ucircumflex -40
+KPX K udieresis -40
+KPX K ugrave -40
+KPX K uhungarumlaut -40
+KPX K umacron -40
+KPX K uogonek -40
+KPX K uring -40
+KPX K y -40
+KPX K yacute -40
+KPX K ydieresis -40
+KPX Kcommaaccent O -50
+KPX Kcommaaccent Oacute -50
+KPX Kcommaaccent Ocircumflex -50
+KPX Kcommaaccent Odieresis -50
+KPX Kcommaaccent Ograve -50
+KPX Kcommaaccent Ohungarumlaut -50
+KPX Kcommaaccent Omacron -50
+KPX Kcommaaccent Oslash -50
+KPX Kcommaaccent Otilde -50
+KPX Kcommaaccent e -35
+KPX Kcommaaccent eacute -35
+KPX Kcommaaccent ecaron -35
+KPX Kcommaaccent ecircumflex -35
+KPX Kcommaaccent edieresis -35
+KPX Kcommaaccent edotaccent -35
+KPX Kcommaaccent egrave -35
+KPX Kcommaaccent emacron -35
+KPX Kcommaaccent eogonek -35
+KPX Kcommaaccent o -40
+KPX Kcommaaccent oacute -40
+KPX Kcommaaccent ocircumflex -40
+KPX Kcommaaccent odieresis -40
+KPX Kcommaaccent ograve -40
+KPX Kcommaaccent ohungarumlaut -40
+KPX Kcommaaccent omacron -40
+KPX Kcommaaccent oslash -40
+KPX Kcommaaccent otilde -40
+KPX Kcommaaccent u -40
+KPX Kcommaaccent uacute -40
+KPX Kcommaaccent ucircumflex -40
+KPX Kcommaaccent udieresis -40
+KPX Kcommaaccent ugrave -40
+KPX Kcommaaccent uhungarumlaut -40
+KPX Kcommaaccent umacron -40
+KPX Kcommaaccent uogonek -40
+KPX Kcommaaccent uring -40
+KPX Kcommaaccent y -40
+KPX Kcommaaccent yacute -40
+KPX Kcommaaccent ydieresis -40
+KPX L T -20
+KPX L Tcaron -20
+KPX L Tcommaaccent -20
+KPX L V -55
+KPX L W -55
+KPX L Y -20
+KPX L Yacute -20
+KPX L Ydieresis -20
+KPX L quoteright -37
+KPX L y -30
+KPX L yacute -30
+KPX L ydieresis -30
+KPX Lacute T -20
+KPX Lacute Tcaron -20
+KPX Lacute Tcommaaccent -20
+KPX Lacute V -55
+KPX Lacute W -55
+KPX Lacute Y -20
+KPX Lacute Yacute -20
+KPX Lacute Ydieresis -20
+KPX Lacute quoteright -37
+KPX Lacute y -30
+KPX Lacute yacute -30
+KPX Lacute ydieresis -30
+KPX Lcommaaccent T -20
+KPX Lcommaaccent Tcaron -20
+KPX Lcommaaccent Tcommaaccent -20
+KPX Lcommaaccent V -55
+KPX Lcommaaccent W -55
+KPX Lcommaaccent Y -20
+KPX Lcommaaccent Yacute -20
+KPX Lcommaaccent Ydieresis -20
+KPX Lcommaaccent quoteright -37
+KPX Lcommaaccent y -30
+KPX Lcommaaccent yacute -30
+KPX Lcommaaccent ydieresis -30
+KPX Lslash T -20
+KPX Lslash Tcaron -20
+KPX Lslash Tcommaaccent -20
+KPX Lslash V -55
+KPX Lslash W -55
+KPX Lslash Y -20
+KPX Lslash Yacute -20
+KPX Lslash Ydieresis -20
+KPX Lslash quoteright -37
+KPX Lslash y -30
+KPX Lslash yacute -30
+KPX Lslash ydieresis -30
+KPX N A -27
+KPX N Aacute -27
+KPX N Abreve -27
+KPX N Acircumflex -27
+KPX N Adieresis -27
+KPX N Agrave -27
+KPX N Amacron -27
+KPX N Aogonek -27
+KPX N Aring -27
+KPX N Atilde -27
+KPX Nacute A -27
+KPX Nacute Aacute -27
+KPX Nacute Abreve -27
+KPX Nacute Acircumflex -27
+KPX Nacute Adieresis -27
+KPX Nacute Agrave -27
+KPX Nacute Amacron -27
+KPX Nacute Aogonek -27
+KPX Nacute Aring -27
+KPX Nacute Atilde -27
+KPX Ncaron A -27
+KPX Ncaron Aacute -27
+KPX Ncaron Abreve -27
+KPX Ncaron Acircumflex -27
+KPX Ncaron Adieresis -27
+KPX Ncaron Agrave -27
+KPX Ncaron Amacron -27
+KPX Ncaron Aogonek -27
+KPX Ncaron Aring -27
+KPX Ncaron Atilde -27
+KPX Ncommaaccent A -27
+KPX Ncommaaccent Aacute -27
+KPX Ncommaaccent Abreve -27
+KPX Ncommaaccent Acircumflex -27
+KPX Ncommaaccent Adieresis -27
+KPX Ncommaaccent Agrave -27
+KPX Ncommaaccent Amacron -27
+KPX Ncommaaccent Aogonek -27
+KPX Ncommaaccent Aring -27
+KPX Ncommaaccent Atilde -27
+KPX Ntilde A -27
+KPX Ntilde Aacute -27
+KPX Ntilde Abreve -27
+KPX Ntilde Acircumflex -27
+KPX Ntilde Adieresis -27
+KPX Ntilde Agrave -27
+KPX Ntilde Amacron -27
+KPX Ntilde Aogonek -27
+KPX Ntilde Aring -27
+KPX Ntilde Atilde -27
+KPX O A -55
+KPX O Aacute -55
+KPX O Abreve -55
+KPX O Acircumflex -55
+KPX O Adieresis -55
+KPX O Agrave -55
+KPX O Amacron -55
+KPX O Aogonek -55
+KPX O Aring -55
+KPX O Atilde -55
+KPX O T -40
+KPX O Tcaron -40
+KPX O Tcommaaccent -40
+KPX O V -50
+KPX O W -50
+KPX O X -40
+KPX O Y -50
+KPX O Yacute -50
+KPX O Ydieresis -50
+KPX Oacute A -55
+KPX Oacute Aacute -55
+KPX Oacute Abreve -55
+KPX Oacute Acircumflex -55
+KPX Oacute Adieresis -55
+KPX Oacute Agrave -55
+KPX Oacute Amacron -55
+KPX Oacute Aogonek -55
+KPX Oacute Aring -55
+KPX Oacute Atilde -55
+KPX Oacute T -40
+KPX Oacute Tcaron -40
+KPX Oacute Tcommaaccent -40
+KPX Oacute V -50
+KPX Oacute W -50
+KPX Oacute X -40
+KPX Oacute Y -50
+KPX Oacute Yacute -50
+KPX Oacute Ydieresis -50
+KPX Ocircumflex A -55
+KPX Ocircumflex Aacute -55
+KPX Ocircumflex Abreve -55
+KPX Ocircumflex Acircumflex -55
+KPX Ocircumflex Adieresis -55
+KPX Ocircumflex Agrave -55
+KPX Ocircumflex Amacron -55
+KPX Ocircumflex Aogonek -55
+KPX Ocircumflex Aring -55
+KPX Ocircumflex Atilde -55
+KPX Ocircumflex T -40
+KPX Ocircumflex Tcaron -40
+KPX Ocircumflex Tcommaaccent -40
+KPX Ocircumflex V -50
+KPX Ocircumflex W -50
+KPX Ocircumflex X -40
+KPX Ocircumflex Y -50
+KPX Ocircumflex Yacute -50
+KPX Ocircumflex Ydieresis -50
+KPX Odieresis A -55
+KPX Odieresis Aacute -55
+KPX Odieresis Abreve -55
+KPX Odieresis Acircumflex -55
+KPX Odieresis Adieresis -55
+KPX Odieresis Agrave -55
+KPX Odieresis Amacron -55
+KPX Odieresis Aogonek -55
+KPX Odieresis Aring -55
+KPX Odieresis Atilde -55
+KPX Odieresis T -40
+KPX Odieresis Tcaron -40
+KPX Odieresis Tcommaaccent -40
+KPX Odieresis V -50
+KPX Odieresis W -50
+KPX Odieresis X -40
+KPX Odieresis Y -50
+KPX Odieresis Yacute -50
+KPX Odieresis Ydieresis -50
+KPX Ograve A -55
+KPX Ograve Aacute -55
+KPX Ograve Abreve -55
+KPX Ograve Acircumflex -55
+KPX Ograve Adieresis -55
+KPX Ograve Agrave -55
+KPX Ograve Amacron -55
+KPX Ograve Aogonek -55
+KPX Ograve Aring -55
+KPX Ograve Atilde -55
+KPX Ograve T -40
+KPX Ograve Tcaron -40
+KPX Ograve Tcommaaccent -40
+KPX Ograve V -50
+KPX Ograve W -50
+KPX Ograve X -40
+KPX Ograve Y -50
+KPX Ograve Yacute -50
+KPX Ograve Ydieresis -50
+KPX Ohungarumlaut A -55
+KPX Ohungarumlaut Aacute -55
+KPX Ohungarumlaut Abreve -55
+KPX Ohungarumlaut Acircumflex -55
+KPX Ohungarumlaut Adieresis -55
+KPX Ohungarumlaut Agrave -55
+KPX Ohungarumlaut Amacron -55
+KPX Ohungarumlaut Aogonek -55
+KPX Ohungarumlaut Aring -55
+KPX Ohungarumlaut Atilde -55
+KPX Ohungarumlaut T -40
+KPX Ohungarumlaut Tcaron -40
+KPX Ohungarumlaut Tcommaaccent -40
+KPX Ohungarumlaut V -50
+KPX Ohungarumlaut W -50
+KPX Ohungarumlaut X -40
+KPX Ohungarumlaut Y -50
+KPX Ohungarumlaut Yacute -50
+KPX Ohungarumlaut Ydieresis -50
+KPX Omacron A -55
+KPX Omacron Aacute -55
+KPX Omacron Abreve -55
+KPX Omacron Acircumflex -55
+KPX Omacron Adieresis -55
+KPX Omacron Agrave -55
+KPX Omacron Amacron -55
+KPX Omacron Aogonek -55
+KPX Omacron Aring -55
+KPX Omacron Atilde -55
+KPX Omacron T -40
+KPX Omacron Tcaron -40
+KPX Omacron Tcommaaccent -40
+KPX Omacron V -50
+KPX Omacron W -50
+KPX Omacron X -40
+KPX Omacron Y -50
+KPX Omacron Yacute -50
+KPX Omacron Ydieresis -50
+KPX Oslash A -55
+KPX Oslash Aacute -55
+KPX Oslash Abreve -55
+KPX Oslash Acircumflex -55
+KPX Oslash Adieresis -55
+KPX Oslash Agrave -55
+KPX Oslash Amacron -55
+KPX Oslash Aogonek -55
+KPX Oslash Aring -55
+KPX Oslash Atilde -55
+KPX Oslash T -40
+KPX Oslash Tcaron -40
+KPX Oslash Tcommaaccent -40
+KPX Oslash V -50
+KPX Oslash W -50
+KPX Oslash X -40
+KPX Oslash Y -50
+KPX Oslash Yacute -50
+KPX Oslash Ydieresis -50
+KPX Otilde A -55
+KPX Otilde Aacute -55
+KPX Otilde Abreve -55
+KPX Otilde Acircumflex -55
+KPX Otilde Adieresis -55
+KPX Otilde Agrave -55
+KPX Otilde Amacron -55
+KPX Otilde Aogonek -55
+KPX Otilde Aring -55
+KPX Otilde Atilde -55
+KPX Otilde T -40
+KPX Otilde Tcaron -40
+KPX Otilde Tcommaaccent -40
+KPX Otilde V -50
+KPX Otilde W -50
+KPX Otilde X -40
+KPX Otilde Y -50
+KPX Otilde Yacute -50
+KPX Otilde Ydieresis -50
+KPX P A -90
+KPX P Aacute -90
+KPX P Abreve -90
+KPX P Acircumflex -90
+KPX P Adieresis -90
+KPX P Agrave -90
+KPX P Amacron -90
+KPX P Aogonek -90
+KPX P Aring -90
+KPX P Atilde -90
+KPX P a -80
+KPX P aacute -80
+KPX P abreve -80
+KPX P acircumflex -80
+KPX P adieresis -80
+KPX P agrave -80
+KPX P amacron -80
+KPX P aogonek -80
+KPX P aring -80
+KPX P atilde -80
+KPX P comma -135
+KPX P e -80
+KPX P eacute -80
+KPX P ecaron -80
+KPX P ecircumflex -80
+KPX P edieresis -80
+KPX P edotaccent -80
+KPX P egrave -80
+KPX P emacron -80
+KPX P eogonek -80
+KPX P o -80
+KPX P oacute -80
+KPX P ocircumflex -80
+KPX P odieresis -80
+KPX P ograve -80
+KPX P ohungarumlaut -80
+KPX P omacron -80
+KPX P oslash -80
+KPX P otilde -80
+KPX P period -135
+KPX Q U -10
+KPX Q Uacute -10
+KPX Q Ucircumflex -10
+KPX Q Udieresis -10
+KPX Q Ugrave -10
+KPX Q Uhungarumlaut -10
+KPX Q Umacron -10
+KPX Q Uogonek -10
+KPX Q Uring -10
+KPX R O -40
+KPX R Oacute -40
+KPX R Ocircumflex -40
+KPX R Odieresis -40
+KPX R Ograve -40
+KPX R Ohungarumlaut -40
+KPX R Omacron -40
+KPX R Oslash -40
+KPX R Otilde -40
+KPX R U -40
+KPX R Uacute -40
+KPX R Ucircumflex -40
+KPX R Udieresis -40
+KPX R Ugrave -40
+KPX R Uhungarumlaut -40
+KPX R Umacron -40
+KPX R Uogonek -40
+KPX R Uring -40
+KPX R V -18
+KPX R W -18
+KPX R Y -18
+KPX R Yacute -18
+KPX R Ydieresis -18
+KPX Racute O -40
+KPX Racute Oacute -40
+KPX Racute Ocircumflex -40
+KPX Racute Odieresis -40
+KPX Racute Ograve -40
+KPX Racute Ohungarumlaut -40
+KPX Racute Omacron -40
+KPX Racute Oslash -40
+KPX Racute Otilde -40
+KPX Racute U -40
+KPX Racute Uacute -40
+KPX Racute Ucircumflex -40
+KPX Racute Udieresis -40
+KPX Racute Ugrave -40
+KPX Racute Uhungarumlaut -40
+KPX Racute Umacron -40
+KPX Racute Uogonek -40
+KPX Racute Uring -40
+KPX Racute V -18
+KPX Racute W -18
+KPX Racute Y -18
+KPX Racute Yacute -18
+KPX Racute Ydieresis -18
+KPX Rcaron O -40
+KPX Rcaron Oacute -40
+KPX Rcaron Ocircumflex -40
+KPX Rcaron Odieresis -40
+KPX Rcaron Ograve -40
+KPX Rcaron Ohungarumlaut -40
+KPX Rcaron Omacron -40
+KPX Rcaron Oslash -40
+KPX Rcaron Otilde -40
+KPX Rcaron U -40
+KPX Rcaron Uacute -40
+KPX Rcaron Ucircumflex -40
+KPX Rcaron Udieresis -40
+KPX Rcaron Ugrave -40
+KPX Rcaron Uhungarumlaut -40
+KPX Rcaron Umacron -40
+KPX Rcaron Uogonek -40
+KPX Rcaron Uring -40
+KPX Rcaron V -18
+KPX Rcaron W -18
+KPX Rcaron Y -18
+KPX Rcaron Yacute -18
+KPX Rcaron Ydieresis -18
+KPX Rcommaaccent O -40
+KPX Rcommaaccent Oacute -40
+KPX Rcommaaccent Ocircumflex -40
+KPX Rcommaaccent Odieresis -40
+KPX Rcommaaccent Ograve -40
+KPX Rcommaaccent Ohungarumlaut -40
+KPX Rcommaaccent Omacron -40
+KPX Rcommaaccent Oslash -40
+KPX Rcommaaccent Otilde -40
+KPX Rcommaaccent U -40
+KPX Rcommaaccent Uacute -40
+KPX Rcommaaccent Ucircumflex -40
+KPX Rcommaaccent Udieresis -40
+KPX Rcommaaccent Ugrave -40
+KPX Rcommaaccent Uhungarumlaut -40
+KPX Rcommaaccent Umacron -40
+KPX Rcommaaccent Uogonek -40
+KPX Rcommaaccent Uring -40
+KPX Rcommaaccent V -18
+KPX Rcommaaccent W -18
+KPX Rcommaaccent Y -18
+KPX Rcommaaccent Yacute -18
+KPX Rcommaaccent Ydieresis -18
+KPX T A -50
+KPX T Aacute -50
+KPX T Abreve -50
+KPX T Acircumflex -50
+KPX T Adieresis -50
+KPX T Agrave -50
+KPX T Amacron -50
+KPX T Aogonek -50
+KPX T Aring -50
+KPX T Atilde -50
+KPX T O -18
+KPX T Oacute -18
+KPX T Ocircumflex -18
+KPX T Odieresis -18
+KPX T Ograve -18
+KPX T Ohungarumlaut -18
+KPX T Omacron -18
+KPX T Oslash -18
+KPX T Otilde -18
+KPX T a -92
+KPX T aacute -92
+KPX T abreve -92
+KPX T acircumflex -92
+KPX T adieresis -92
+KPX T agrave -92
+KPX T amacron -92
+KPX T aogonek -92
+KPX T aring -92
+KPX T atilde -92
+KPX T colon -55
+KPX T comma -74
+KPX T e -92
+KPX T eacute -92
+KPX T ecaron -92
+KPX T ecircumflex -52
+KPX T edieresis -52
+KPX T edotaccent -92
+KPX T egrave -52
+KPX T emacron -52
+KPX T eogonek -92
+KPX T hyphen -74
+KPX T i -55
+KPX T iacute -55
+KPX T iogonek -55
+KPX T o -92
+KPX T oacute -92
+KPX T ocircumflex -92
+KPX T odieresis -92
+KPX T ograve -92
+KPX T ohungarumlaut -92
+KPX T omacron -92
+KPX T oslash -92
+KPX T otilde -92
+KPX T period -74
+KPX T r -55
+KPX T racute -55
+KPX T rcaron -55
+KPX T rcommaaccent -55
+KPX T semicolon -65
+KPX T u -55
+KPX T uacute -55
+KPX T ucircumflex -55
+KPX T udieresis -55
+KPX T ugrave -55
+KPX T uhungarumlaut -55
+KPX T umacron -55
+KPX T uogonek -55
+KPX T uring -55
+KPX T w -74
+KPX T y -74
+KPX T yacute -74
+KPX T ydieresis -34
+KPX Tcaron A -50
+KPX Tcaron Aacute -50
+KPX Tcaron Abreve -50
+KPX Tcaron Acircumflex -50
+KPX Tcaron Adieresis -50
+KPX Tcaron Agrave -50
+KPX Tcaron Amacron -50
+KPX Tcaron Aogonek -50
+KPX Tcaron Aring -50
+KPX Tcaron Atilde -50
+KPX Tcaron O -18
+KPX Tcaron Oacute -18
+KPX Tcaron Ocircumflex -18
+KPX Tcaron Odieresis -18
+KPX Tcaron Ograve -18
+KPX Tcaron Ohungarumlaut -18
+KPX Tcaron Omacron -18
+KPX Tcaron Oslash -18
+KPX Tcaron Otilde -18
+KPX Tcaron a -92
+KPX Tcaron aacute -92
+KPX Tcaron abreve -92
+KPX Tcaron acircumflex -92
+KPX Tcaron adieresis -92
+KPX Tcaron agrave -92
+KPX Tcaron amacron -92
+KPX Tcaron aogonek -92
+KPX Tcaron aring -92
+KPX Tcaron atilde -92
+KPX Tcaron colon -55
+KPX Tcaron comma -74
+KPX Tcaron e -92
+KPX Tcaron eacute -92
+KPX Tcaron ecaron -92
+KPX Tcaron ecircumflex -52
+KPX Tcaron edieresis -52
+KPX Tcaron edotaccent -92
+KPX Tcaron egrave -52
+KPX Tcaron emacron -52
+KPX Tcaron eogonek -92
+KPX Tcaron hyphen -74
+KPX Tcaron i -55
+KPX Tcaron iacute -55
+KPX Tcaron iogonek -55
+KPX Tcaron o -92
+KPX Tcaron oacute -92
+KPX Tcaron ocircumflex -92
+KPX Tcaron odieresis -92
+KPX Tcaron ograve -92
+KPX Tcaron ohungarumlaut -92
+KPX Tcaron omacron -92
+KPX Tcaron oslash -92
+KPX Tcaron otilde -92
+KPX Tcaron period -74
+KPX Tcaron r -55
+KPX Tcaron racute -55
+KPX Tcaron rcaron -55
+KPX Tcaron rcommaaccent -55
+KPX Tcaron semicolon -65
+KPX Tcaron u -55
+KPX Tcaron uacute -55
+KPX Tcaron ucircumflex -55
+KPX Tcaron udieresis -55
+KPX Tcaron ugrave -55
+KPX Tcaron uhungarumlaut -55
+KPX Tcaron umacron -55
+KPX Tcaron uogonek -55
+KPX Tcaron uring -55
+KPX Tcaron w -74
+KPX Tcaron y -74
+KPX Tcaron yacute -74
+KPX Tcaron ydieresis -34
+KPX Tcommaaccent A -50
+KPX Tcommaaccent Aacute -50
+KPX Tcommaaccent Abreve -50
+KPX Tcommaaccent Acircumflex -50
+KPX Tcommaaccent Adieresis -50
+KPX Tcommaaccent Agrave -50
+KPX Tcommaaccent Amacron -50
+KPX Tcommaaccent Aogonek -50
+KPX Tcommaaccent Aring -50
+KPX Tcommaaccent Atilde -50
+KPX Tcommaaccent O -18
+KPX Tcommaaccent Oacute -18
+KPX Tcommaaccent Ocircumflex -18
+KPX Tcommaaccent Odieresis -18
+KPX Tcommaaccent Ograve -18
+KPX Tcommaaccent Ohungarumlaut -18
+KPX Tcommaaccent Omacron -18
+KPX Tcommaaccent Oslash -18
+KPX Tcommaaccent Otilde -18
+KPX Tcommaaccent a -92
+KPX Tcommaaccent aacute -92
+KPX Tcommaaccent abreve -92
+KPX Tcommaaccent acircumflex -92
+KPX Tcommaaccent adieresis -92
+KPX Tcommaaccent agrave -92
+KPX Tcommaaccent amacron -92
+KPX Tcommaaccent aogonek -92
+KPX Tcommaaccent aring -92
+KPX Tcommaaccent atilde -92
+KPX Tcommaaccent colon -55
+KPX Tcommaaccent comma -74
+KPX Tcommaaccent e -92
+KPX Tcommaaccent eacute -92
+KPX Tcommaaccent ecaron -92
+KPX Tcommaaccent ecircumflex -52
+KPX Tcommaaccent edieresis -52
+KPX Tcommaaccent edotaccent -92
+KPX Tcommaaccent egrave -52
+KPX Tcommaaccent emacron -52
+KPX Tcommaaccent eogonek -92
+KPX Tcommaaccent hyphen -74
+KPX Tcommaaccent i -55
+KPX Tcommaaccent iacute -55
+KPX Tcommaaccent iogonek -55
+KPX Tcommaaccent o -92
+KPX Tcommaaccent oacute -92
+KPX Tcommaaccent ocircumflex -92
+KPX Tcommaaccent odieresis -92
+KPX Tcommaaccent ograve -92
+KPX Tcommaaccent ohungarumlaut -92
+KPX Tcommaaccent omacron -92
+KPX Tcommaaccent oslash -92
+KPX Tcommaaccent otilde -92
+KPX Tcommaaccent period -74
+KPX Tcommaaccent r -55
+KPX Tcommaaccent racute -55
+KPX Tcommaaccent rcaron -55
+KPX Tcommaaccent rcommaaccent -55
+KPX Tcommaaccent semicolon -65
+KPX Tcommaaccent u -55
+KPX Tcommaaccent uacute -55
+KPX Tcommaaccent ucircumflex -55
+KPX Tcommaaccent udieresis -55
+KPX Tcommaaccent ugrave -55
+KPX Tcommaaccent uhungarumlaut -55
+KPX Tcommaaccent umacron -55
+KPX Tcommaaccent uogonek -55
+KPX Tcommaaccent uring -55
+KPX Tcommaaccent w -74
+KPX Tcommaaccent y -74
+KPX Tcommaaccent yacute -74
+KPX Tcommaaccent ydieresis -34
+KPX U A -40
+KPX U Aacute -40
+KPX U Abreve -40
+KPX U Acircumflex -40
+KPX U Adieresis -40
+KPX U Agrave -40
+KPX U Amacron -40
+KPX U Aogonek -40
+KPX U Aring -40
+KPX U Atilde -40
+KPX U comma -25
+KPX U period -25
+KPX Uacute A -40
+KPX Uacute Aacute -40
+KPX Uacute Abreve -40
+KPX Uacute Acircumflex -40
+KPX Uacute Adieresis -40
+KPX Uacute Agrave -40
+KPX Uacute Amacron -40
+KPX Uacute Aogonek -40
+KPX Uacute Aring -40
+KPX Uacute Atilde -40
+KPX Uacute comma -25
+KPX Uacute period -25
+KPX Ucircumflex A -40
+KPX Ucircumflex Aacute -40
+KPX Ucircumflex Abreve -40
+KPX Ucircumflex Acircumflex -40
+KPX Ucircumflex Adieresis -40
+KPX Ucircumflex Agrave -40
+KPX Ucircumflex Amacron -40
+KPX Ucircumflex Aogonek -40
+KPX Ucircumflex Aring -40
+KPX Ucircumflex Atilde -40
+KPX Ucircumflex comma -25
+KPX Ucircumflex period -25
+KPX Udieresis A -40
+KPX Udieresis Aacute -40
+KPX Udieresis Abreve -40
+KPX Udieresis Acircumflex -40
+KPX Udieresis Adieresis -40
+KPX Udieresis Agrave -40
+KPX Udieresis Amacron -40
+KPX Udieresis Aogonek -40
+KPX Udieresis Aring -40
+KPX Udieresis Atilde -40
+KPX Udieresis comma -25
+KPX Udieresis period -25
+KPX Ugrave A -40
+KPX Ugrave Aacute -40
+KPX Ugrave Abreve -40
+KPX Ugrave Acircumflex -40
+KPX Ugrave Adieresis -40
+KPX Ugrave Agrave -40
+KPX Ugrave Amacron -40
+KPX Ugrave Aogonek -40
+KPX Ugrave Aring -40
+KPX Ugrave Atilde -40
+KPX Ugrave comma -25
+KPX Ugrave period -25
+KPX Uhungarumlaut A -40
+KPX Uhungarumlaut Aacute -40
+KPX Uhungarumlaut Abreve -40
+KPX Uhungarumlaut Acircumflex -40
+KPX Uhungarumlaut Adieresis -40
+KPX Uhungarumlaut Agrave -40
+KPX Uhungarumlaut Amacron -40
+KPX Uhungarumlaut Aogonek -40
+KPX Uhungarumlaut Aring -40
+KPX Uhungarumlaut Atilde -40
+KPX Uhungarumlaut comma -25
+KPX Uhungarumlaut period -25
+KPX Umacron A -40
+KPX Umacron Aacute -40
+KPX Umacron Abreve -40
+KPX Umacron Acircumflex -40
+KPX Umacron Adieresis -40
+KPX Umacron Agrave -40
+KPX Umacron Amacron -40
+KPX Umacron Aogonek -40
+KPX Umacron Aring -40
+KPX Umacron Atilde -40
+KPX Umacron comma -25
+KPX Umacron period -25
+KPX Uogonek A -40
+KPX Uogonek Aacute -40
+KPX Uogonek Abreve -40
+KPX Uogonek Acircumflex -40
+KPX Uogonek Adieresis -40
+KPX Uogonek Agrave -40
+KPX Uogonek Amacron -40
+KPX Uogonek Aogonek -40
+KPX Uogonek Aring -40
+KPX Uogonek Atilde -40
+KPX Uogonek comma -25
+KPX Uogonek period -25
+KPX Uring A -40
+KPX Uring Aacute -40
+KPX Uring Abreve -40
+KPX Uring Acircumflex -40
+KPX Uring Adieresis -40
+KPX Uring Agrave -40
+KPX Uring Amacron -40
+KPX Uring Aogonek -40
+KPX Uring Aring -40
+KPX Uring Atilde -40
+KPX Uring comma -25
+KPX Uring period -25
+KPX V A -60
+KPX V Aacute -60
+KPX V Abreve -60
+KPX V Acircumflex -60
+KPX V Adieresis -60
+KPX V Agrave -60
+KPX V Amacron -60
+KPX V Aogonek -60
+KPX V Aring -60
+KPX V Atilde -60
+KPX V O -30
+KPX V Oacute -30
+KPX V Ocircumflex -30
+KPX V Odieresis -30
+KPX V Ograve -30
+KPX V Ohungarumlaut -30
+KPX V Omacron -30
+KPX V Oslash -30
+KPX V Otilde -30
+KPX V a -111
+KPX V aacute -111
+KPX V abreve -111
+KPX V acircumflex -111
+KPX V adieresis -111
+KPX V agrave -111
+KPX V amacron -111
+KPX V aogonek -111
+KPX V aring -111
+KPX V atilde -111
+KPX V colon -65
+KPX V comma -129
+KPX V e -111
+KPX V eacute -111
+KPX V ecaron -111
+KPX V ecircumflex -111
+KPX V edieresis -71
+KPX V edotaccent -111
+KPX V egrave -71
+KPX V emacron -71
+KPX V eogonek -111
+KPX V hyphen -55
+KPX V i -74
+KPX V iacute -74
+KPX V icircumflex -34
+KPX V idieresis -34
+KPX V igrave -34
+KPX V imacron -34
+KPX V iogonek -74
+KPX V o -111
+KPX V oacute -111
+KPX V ocircumflex -111
+KPX V odieresis -111
+KPX V ograve -111
+KPX V ohungarumlaut -111
+KPX V omacron -111
+KPX V oslash -111
+KPX V otilde -111
+KPX V period -129
+KPX V semicolon -74
+KPX V u -74
+KPX V uacute -74
+KPX V ucircumflex -74
+KPX V udieresis -74
+KPX V ugrave -74
+KPX V uhungarumlaut -74
+KPX V umacron -74
+KPX V uogonek -74
+KPX V uring -74
+KPX W A -60
+KPX W Aacute -60
+KPX W Abreve -60
+KPX W Acircumflex -60
+KPX W Adieresis -60
+KPX W Agrave -60
+KPX W Amacron -60
+KPX W Aogonek -60
+KPX W Aring -60
+KPX W Atilde -60
+KPX W O -25
+KPX W Oacute -25
+KPX W Ocircumflex -25
+KPX W Odieresis -25
+KPX W Ograve -25
+KPX W Ohungarumlaut -25
+KPX W Omacron -25
+KPX W Oslash -25
+KPX W Otilde -25
+KPX W a -92
+KPX W aacute -92
+KPX W abreve -92
+KPX W acircumflex -92
+KPX W adieresis -92
+KPX W agrave -92
+KPX W amacron -92
+KPX W aogonek -92
+KPX W aring -92
+KPX W atilde -92
+KPX W colon -65
+KPX W comma -92
+KPX W e -92
+KPX W eacute -92
+KPX W ecaron -92
+KPX W ecircumflex -92
+KPX W edieresis -52
+KPX W edotaccent -92
+KPX W egrave -52
+KPX W emacron -52
+KPX W eogonek -92
+KPX W hyphen -37
+KPX W i -55
+KPX W iacute -55
+KPX W iogonek -55
+KPX W o -92
+KPX W oacute -92
+KPX W ocircumflex -92
+KPX W odieresis -92
+KPX W ograve -92
+KPX W ohungarumlaut -92
+KPX W omacron -92
+KPX W oslash -92
+KPX W otilde -92
+KPX W period -92
+KPX W semicolon -65
+KPX W u -55
+KPX W uacute -55
+KPX W ucircumflex -55
+KPX W udieresis -55
+KPX W ugrave -55
+KPX W uhungarumlaut -55
+KPX W umacron -55
+KPX W uogonek -55
+KPX W uring -55
+KPX W y -70
+KPX W yacute -70
+KPX W ydieresis -70
+KPX Y A -50
+KPX Y Aacute -50
+KPX Y Abreve -50
+KPX Y Acircumflex -50
+KPX Y Adieresis -50
+KPX Y Agrave -50
+KPX Y Amacron -50
+KPX Y Aogonek -50
+KPX Y Aring -50
+KPX Y Atilde -50
+KPX Y O -15
+KPX Y Oacute -15
+KPX Y Ocircumflex -15
+KPX Y Odieresis -15
+KPX Y Ograve -15
+KPX Y Ohungarumlaut -15
+KPX Y Omacron -15
+KPX Y Oslash -15
+KPX Y Otilde -15
+KPX Y a -92
+KPX Y aacute -92
+KPX Y abreve -92
+KPX Y acircumflex -92
+KPX Y adieresis -92
+KPX Y agrave -92
+KPX Y amacron -92
+KPX Y aogonek -92
+KPX Y aring -92
+KPX Y atilde -92
+KPX Y colon -65
+KPX Y comma -92
+KPX Y e -92
+KPX Y eacute -92
+KPX Y ecaron -92
+KPX Y ecircumflex -92
+KPX Y edieresis -52
+KPX Y edotaccent -92
+KPX Y egrave -52
+KPX Y emacron -52
+KPX Y eogonek -92
+KPX Y hyphen -74
+KPX Y i -74
+KPX Y iacute -74
+KPX Y icircumflex -34
+KPX Y idieresis -34
+KPX Y igrave -34
+KPX Y imacron -34
+KPX Y iogonek -74
+KPX Y o -92
+KPX Y oacute -92
+KPX Y ocircumflex -92
+KPX Y odieresis -92
+KPX Y ograve -92
+KPX Y ohungarumlaut -92
+KPX Y omacron -92
+KPX Y oslash -92
+KPX Y otilde -92
+KPX Y period -92
+KPX Y semicolon -65
+KPX Y u -92
+KPX Y uacute -92
+KPX Y ucircumflex -92
+KPX Y udieresis -92
+KPX Y ugrave -92
+KPX Y uhungarumlaut -92
+KPX Y umacron -92
+KPX Y uogonek -92
+KPX Y uring -92
+KPX Yacute A -50
+KPX Yacute Aacute -50
+KPX Yacute Abreve -50
+KPX Yacute Acircumflex -50
+KPX Yacute Adieresis -50
+KPX Yacute Agrave -50
+KPX Yacute Amacron -50
+KPX Yacute Aogonek -50
+KPX Yacute Aring -50
+KPX Yacute Atilde -50
+KPX Yacute O -15
+KPX Yacute Oacute -15
+KPX Yacute Ocircumflex -15
+KPX Yacute Odieresis -15
+KPX Yacute Ograve -15
+KPX Yacute Ohungarumlaut -15
+KPX Yacute Omacron -15
+KPX Yacute Oslash -15
+KPX Yacute Otilde -15
+KPX Yacute a -92
+KPX Yacute aacute -92
+KPX Yacute abreve -92
+KPX Yacute acircumflex -92
+KPX Yacute adieresis -92
+KPX Yacute agrave -92
+KPX Yacute amacron -92
+KPX Yacute aogonek -92
+KPX Yacute aring -92
+KPX Yacute atilde -92
+KPX Yacute colon -65
+KPX Yacute comma -92
+KPX Yacute e -92
+KPX Yacute eacute -92
+KPX Yacute ecaron -92
+KPX Yacute ecircumflex -92
+KPX Yacute edieresis -52
+KPX Yacute edotaccent -92
+KPX Yacute egrave -52
+KPX Yacute emacron -52
+KPX Yacute eogonek -92
+KPX Yacute hyphen -74
+KPX Yacute i -74
+KPX Yacute iacute -74
+KPX Yacute icircumflex -34
+KPX Yacute idieresis -34
+KPX Yacute igrave -34
+KPX Yacute imacron -34
+KPX Yacute iogonek -74
+KPX Yacute o -92
+KPX Yacute oacute -92
+KPX Yacute ocircumflex -92
+KPX Yacute odieresis -92
+KPX Yacute ograve -92
+KPX Yacute ohungarumlaut -92
+KPX Yacute omacron -92
+KPX Yacute oslash -92
+KPX Yacute otilde -92
+KPX Yacute period -92
+KPX Yacute semicolon -65
+KPX Yacute u -92
+KPX Yacute uacute -92
+KPX Yacute ucircumflex -92
+KPX Yacute udieresis -92
+KPX Yacute ugrave -92
+KPX Yacute uhungarumlaut -92
+KPX Yacute umacron -92
+KPX Yacute uogonek -92
+KPX Yacute uring -92
+KPX Ydieresis A -50
+KPX Ydieresis Aacute -50
+KPX Ydieresis Abreve -50
+KPX Ydieresis Acircumflex -50
+KPX Ydieresis Adieresis -50
+KPX Ydieresis Agrave -50
+KPX Ydieresis Amacron -50
+KPX Ydieresis Aogonek -50
+KPX Ydieresis Aring -50
+KPX Ydieresis Atilde -50
+KPX Ydieresis O -15
+KPX Ydieresis Oacute -15
+KPX Ydieresis Ocircumflex -15
+KPX Ydieresis Odieresis -15
+KPX Ydieresis Ograve -15
+KPX Ydieresis Ohungarumlaut -15
+KPX Ydieresis Omacron -15
+KPX Ydieresis Oslash -15
+KPX Ydieresis Otilde -15
+KPX Ydieresis a -92
+KPX Ydieresis aacute -92
+KPX Ydieresis abreve -92
+KPX Ydieresis acircumflex -92
+KPX Ydieresis adieresis -92
+KPX Ydieresis agrave -92
+KPX Ydieresis amacron -92
+KPX Ydieresis aogonek -92
+KPX Ydieresis aring -92
+KPX Ydieresis atilde -92
+KPX Ydieresis colon -65
+KPX Ydieresis comma -92
+KPX Ydieresis e -92
+KPX Ydieresis eacute -92
+KPX Ydieresis ecaron -92
+KPX Ydieresis ecircumflex -92
+KPX Ydieresis edieresis -52
+KPX Ydieresis edotaccent -92
+KPX Ydieresis egrave -52
+KPX Ydieresis emacron -52
+KPX Ydieresis eogonek -92
+KPX Ydieresis hyphen -74
+KPX Ydieresis i -74
+KPX Ydieresis iacute -74
+KPX Ydieresis icircumflex -34
+KPX Ydieresis idieresis -34
+KPX Ydieresis igrave -34
+KPX Ydieresis imacron -34
+KPX Ydieresis iogonek -74
+KPX Ydieresis o -92
+KPX Ydieresis oacute -92
+KPX Ydieresis ocircumflex -92
+KPX Ydieresis odieresis -92
+KPX Ydieresis ograve -92
+KPX Ydieresis ohungarumlaut -92
+KPX Ydieresis omacron -92
+KPX Ydieresis oslash -92
+KPX Ydieresis otilde -92
+KPX Ydieresis period -92
+KPX Ydieresis semicolon -65
+KPX Ydieresis u -92
+KPX Ydieresis uacute -92
+KPX Ydieresis ucircumflex -92
+KPX Ydieresis udieresis -92
+KPX Ydieresis ugrave -92
+KPX Ydieresis uhungarumlaut -92
+KPX Ydieresis umacron -92
+KPX Ydieresis uogonek -92
+KPX Ydieresis uring -92
+KPX a g -10
+KPX a gbreve -10
+KPX a gcommaaccent -10
+KPX aacute g -10
+KPX aacute gbreve -10
+KPX aacute gcommaaccent -10
+KPX abreve g -10
+KPX abreve gbreve -10
+KPX abreve gcommaaccent -10
+KPX acircumflex g -10
+KPX acircumflex gbreve -10
+KPX acircumflex gcommaaccent -10
+KPX adieresis g -10
+KPX adieresis gbreve -10
+KPX adieresis gcommaaccent -10
+KPX agrave g -10
+KPX agrave gbreve -10
+KPX agrave gcommaaccent -10
+KPX amacron g -10
+KPX amacron gbreve -10
+KPX amacron gcommaaccent -10
+KPX aogonek g -10
+KPX aogonek gbreve -10
+KPX aogonek gcommaaccent -10
+KPX aring g -10
+KPX aring gbreve -10
+KPX aring gcommaaccent -10
+KPX atilde g -10
+KPX atilde gbreve -10
+KPX atilde gcommaaccent -10
+KPX b period -40
+KPX b u -20
+KPX b uacute -20
+KPX b ucircumflex -20
+KPX b udieresis -20
+KPX b ugrave -20
+KPX b uhungarumlaut -20
+KPX b umacron -20
+KPX b uogonek -20
+KPX b uring -20
+KPX c h -15
+KPX c k -20
+KPX c kcommaaccent -20
+KPX cacute h -15
+KPX cacute k -20
+KPX cacute kcommaaccent -20
+KPX ccaron h -15
+KPX ccaron k -20
+KPX ccaron kcommaaccent -20
+KPX ccedilla h -15
+KPX ccedilla k -20
+KPX ccedilla kcommaaccent -20
+KPX comma quotedblright -140
+KPX comma quoteright -140
+KPX e comma -10
+KPX e g -40
+KPX e gbreve -40
+KPX e gcommaaccent -40
+KPX e period -15
+KPX e v -15
+KPX e w -15
+KPX e x -20
+KPX e y -30
+KPX e yacute -30
+KPX e ydieresis -30
+KPX eacute comma -10
+KPX eacute g -40
+KPX eacute gbreve -40
+KPX eacute gcommaaccent -40
+KPX eacute period -15
+KPX eacute v -15
+KPX eacute w -15
+KPX eacute x -20
+KPX eacute y -30
+KPX eacute yacute -30
+KPX eacute ydieresis -30
+KPX ecaron comma -10
+KPX ecaron g -40
+KPX ecaron gbreve -40
+KPX ecaron gcommaaccent -40
+KPX ecaron period -15
+KPX ecaron v -15
+KPX ecaron w -15
+KPX ecaron x -20
+KPX ecaron y -30
+KPX ecaron yacute -30
+KPX ecaron ydieresis -30
+KPX ecircumflex comma -10
+KPX ecircumflex g -40
+KPX ecircumflex gbreve -40
+KPX ecircumflex gcommaaccent -40
+KPX ecircumflex period -15
+KPX ecircumflex v -15
+KPX ecircumflex w -15
+KPX ecircumflex x -20
+KPX ecircumflex y -30
+KPX ecircumflex yacute -30
+KPX ecircumflex ydieresis -30
+KPX edieresis comma -10
+KPX edieresis g -40
+KPX edieresis gbreve -40
+KPX edieresis gcommaaccent -40
+KPX edieresis period -15
+KPX edieresis v -15
+KPX edieresis w -15
+KPX edieresis x -20
+KPX edieresis y -30
+KPX edieresis yacute -30
+KPX edieresis ydieresis -30
+KPX edotaccent comma -10
+KPX edotaccent g -40
+KPX edotaccent gbreve -40
+KPX edotaccent gcommaaccent -40
+KPX edotaccent period -15
+KPX edotaccent v -15
+KPX edotaccent w -15
+KPX edotaccent x -20
+KPX edotaccent y -30
+KPX edotaccent yacute -30
+KPX edotaccent ydieresis -30
+KPX egrave comma -10
+KPX egrave g -40
+KPX egrave gbreve -40
+KPX egrave gcommaaccent -40
+KPX egrave period -15
+KPX egrave v -15
+KPX egrave w -15
+KPX egrave x -20
+KPX egrave y -30
+KPX egrave yacute -30
+KPX egrave ydieresis -30
+KPX emacron comma -10
+KPX emacron g -40
+KPX emacron gbreve -40
+KPX emacron gcommaaccent -40
+KPX emacron period -15
+KPX emacron v -15
+KPX emacron w -15
+KPX emacron x -20
+KPX emacron y -30
+KPX emacron yacute -30
+KPX emacron ydieresis -30
+KPX eogonek comma -10
+KPX eogonek g -40
+KPX eogonek gbreve -40
+KPX eogonek gcommaaccent -40
+KPX eogonek period -15
+KPX eogonek v -15
+KPX eogonek w -15
+KPX eogonek x -20
+KPX eogonek y -30
+KPX eogonek yacute -30
+KPX eogonek ydieresis -30
+KPX f comma -10
+KPX f dotlessi -60
+KPX f f -18
+KPX f i -20
+KPX f iogonek -20
+KPX f period -15
+KPX f quoteright 92
+KPX g comma -10
+KPX g e -10
+KPX g eacute -10
+KPX g ecaron -10
+KPX g ecircumflex -10
+KPX g edieresis -10
+KPX g edotaccent -10
+KPX g egrave -10
+KPX g emacron -10
+KPX g eogonek -10
+KPX g g -10
+KPX g gbreve -10
+KPX g gcommaaccent -10
+KPX g period -15
+KPX gbreve comma -10
+KPX gbreve e -10
+KPX gbreve eacute -10
+KPX gbreve ecaron -10
+KPX gbreve ecircumflex -10
+KPX gbreve edieresis -10
+KPX gbreve edotaccent -10
+KPX gbreve egrave -10
+KPX gbreve emacron -10
+KPX gbreve eogonek -10
+KPX gbreve g -10
+KPX gbreve gbreve -10
+KPX gbreve gcommaaccent -10
+KPX gbreve period -15
+KPX gcommaaccent comma -10
+KPX gcommaaccent e -10
+KPX gcommaaccent eacute -10
+KPX gcommaaccent ecaron -10
+KPX gcommaaccent ecircumflex -10
+KPX gcommaaccent edieresis -10
+KPX gcommaaccent edotaccent -10
+KPX gcommaaccent egrave -10
+KPX gcommaaccent emacron -10
+KPX gcommaaccent eogonek -10
+KPX gcommaaccent g -10
+KPX gcommaaccent gbreve -10
+KPX gcommaaccent gcommaaccent -10
+KPX gcommaaccent period -15
+KPX k e -10
+KPX k eacute -10
+KPX k ecaron -10
+KPX k ecircumflex -10
+KPX k edieresis -10
+KPX k edotaccent -10
+KPX k egrave -10
+KPX k emacron -10
+KPX k eogonek -10
+KPX k o -10
+KPX k oacute -10
+KPX k ocircumflex -10
+KPX k odieresis -10
+KPX k ograve -10
+KPX k ohungarumlaut -10
+KPX k omacron -10
+KPX k oslash -10
+KPX k otilde -10
+KPX k y -10
+KPX k yacute -10
+KPX k ydieresis -10
+KPX kcommaaccent e -10
+KPX kcommaaccent eacute -10
+KPX kcommaaccent ecaron -10
+KPX kcommaaccent ecircumflex -10
+KPX kcommaaccent edieresis -10
+KPX kcommaaccent edotaccent -10
+KPX kcommaaccent egrave -10
+KPX kcommaaccent emacron -10
+KPX kcommaaccent eogonek -10
+KPX kcommaaccent o -10
+KPX kcommaaccent oacute -10
+KPX kcommaaccent ocircumflex -10
+KPX kcommaaccent odieresis -10
+KPX kcommaaccent ograve -10
+KPX kcommaaccent ohungarumlaut -10
+KPX kcommaaccent omacron -10
+KPX kcommaaccent oslash -10
+KPX kcommaaccent otilde -10
+KPX kcommaaccent y -10
+KPX kcommaaccent yacute -10
+KPX kcommaaccent ydieresis -10
+KPX n v -40
+KPX nacute v -40
+KPX ncaron v -40
+KPX ncommaaccent v -40
+KPX ntilde v -40
+KPX o g -10
+KPX o gbreve -10
+KPX o gcommaaccent -10
+KPX o v -10
+KPX oacute g -10
+KPX oacute gbreve -10
+KPX oacute gcommaaccent -10
+KPX oacute v -10
+KPX ocircumflex g -10
+KPX ocircumflex gbreve -10
+KPX ocircumflex gcommaaccent -10
+KPX ocircumflex v -10
+KPX odieresis g -10
+KPX odieresis gbreve -10
+KPX odieresis gcommaaccent -10
+KPX odieresis v -10
+KPX ograve g -10
+KPX ograve gbreve -10
+KPX ograve gcommaaccent -10
+KPX ograve v -10
+KPX ohungarumlaut g -10
+KPX ohungarumlaut gbreve -10
+KPX ohungarumlaut gcommaaccent -10
+KPX ohungarumlaut v -10
+KPX omacron g -10
+KPX omacron gbreve -10
+KPX omacron gcommaaccent -10
+KPX omacron v -10
+KPX oslash g -10
+KPX oslash gbreve -10
+KPX oslash gcommaaccent -10
+KPX oslash v -10
+KPX otilde g -10
+KPX otilde gbreve -10
+KPX otilde gcommaaccent -10
+KPX otilde v -10
+KPX period quotedblright -140
+KPX period quoteright -140
+KPX quoteleft quoteleft -111
+KPX quoteright d -25
+KPX quoteright dcroat -25
+KPX quoteright quoteright -111
+KPX quoteright r -25
+KPX quoteright racute -25
+KPX quoteright rcaron -25
+KPX quoteright rcommaaccent -25
+KPX quoteright s -40
+KPX quoteright sacute -40
+KPX quoteright scaron -40
+KPX quoteright scedilla -40
+KPX quoteright scommaaccent -40
+KPX quoteright space -111
+KPX quoteright t -30
+KPX quoteright tcommaaccent -30
+KPX quoteright v -10
+KPX r a -15
+KPX r aacute -15
+KPX r abreve -15
+KPX r acircumflex -15
+KPX r adieresis -15
+KPX r agrave -15
+KPX r amacron -15
+KPX r aogonek -15
+KPX r aring -15
+KPX r atilde -15
+KPX r c -37
+KPX r cacute -37
+KPX r ccaron -37
+KPX r ccedilla -37
+KPX r comma -111
+KPX r d -37
+KPX r dcroat -37
+KPX r e -37
+KPX r eacute -37
+KPX r ecaron -37
+KPX r ecircumflex -37
+KPX r edieresis -37
+KPX r edotaccent -37
+KPX r egrave -37
+KPX r emacron -37
+KPX r eogonek -37
+KPX r g -37
+KPX r gbreve -37
+KPX r gcommaaccent -37
+KPX r hyphen -20
+KPX r o -45
+KPX r oacute -45
+KPX r ocircumflex -45
+KPX r odieresis -45
+KPX r ograve -45
+KPX r ohungarumlaut -45
+KPX r omacron -45
+KPX r oslash -45
+KPX r otilde -45
+KPX r period -111
+KPX r q -37
+KPX r s -10
+KPX r sacute -10
+KPX r scaron -10
+KPX r scedilla -10
+KPX r scommaaccent -10
+KPX racute a -15
+KPX racute aacute -15
+KPX racute abreve -15
+KPX racute acircumflex -15
+KPX racute adieresis -15
+KPX racute agrave -15
+KPX racute amacron -15
+KPX racute aogonek -15
+KPX racute aring -15
+KPX racute atilde -15
+KPX racute c -37
+KPX racute cacute -37
+KPX racute ccaron -37
+KPX racute ccedilla -37
+KPX racute comma -111
+KPX racute d -37
+KPX racute dcroat -37
+KPX racute e -37
+KPX racute eacute -37
+KPX racute ecaron -37
+KPX racute ecircumflex -37
+KPX racute edieresis -37
+KPX racute edotaccent -37
+KPX racute egrave -37
+KPX racute emacron -37
+KPX racute eogonek -37
+KPX racute g -37
+KPX racute gbreve -37
+KPX racute gcommaaccent -37
+KPX racute hyphen -20
+KPX racute o -45
+KPX racute oacute -45
+KPX racute ocircumflex -45
+KPX racute odieresis -45
+KPX racute ograve -45
+KPX racute ohungarumlaut -45
+KPX racute omacron -45
+KPX racute oslash -45
+KPX racute otilde -45
+KPX racute period -111
+KPX racute q -37
+KPX racute s -10
+KPX racute sacute -10
+KPX racute scaron -10
+KPX racute scedilla -10
+KPX racute scommaaccent -10
+KPX rcaron a -15
+KPX rcaron aacute -15
+KPX rcaron abreve -15
+KPX rcaron acircumflex -15
+KPX rcaron adieresis -15
+KPX rcaron agrave -15
+KPX rcaron amacron -15
+KPX rcaron aogonek -15
+KPX rcaron aring -15
+KPX rcaron atilde -15
+KPX rcaron c -37
+KPX rcaron cacute -37
+KPX rcaron ccaron -37
+KPX rcaron ccedilla -37
+KPX rcaron comma -111
+KPX rcaron d -37
+KPX rcaron dcroat -37
+KPX rcaron e -37
+KPX rcaron eacute -37
+KPX rcaron ecaron -37
+KPX rcaron ecircumflex -37
+KPX rcaron edieresis -37
+KPX rcaron edotaccent -37
+KPX rcaron egrave -37
+KPX rcaron emacron -37
+KPX rcaron eogonek -37
+KPX rcaron g -37
+KPX rcaron gbreve -37
+KPX rcaron gcommaaccent -37
+KPX rcaron hyphen -20
+KPX rcaron o -45
+KPX rcaron oacute -45
+KPX rcaron ocircumflex -45
+KPX rcaron odieresis -45
+KPX rcaron ograve -45
+KPX rcaron ohungarumlaut -45
+KPX rcaron omacron -45
+KPX rcaron oslash -45
+KPX rcaron otilde -45
+KPX rcaron period -111
+KPX rcaron q -37
+KPX rcaron s -10
+KPX rcaron sacute -10
+KPX rcaron scaron -10
+KPX rcaron scedilla -10
+KPX rcaron scommaaccent -10
+KPX rcommaaccent a -15
+KPX rcommaaccent aacute -15
+KPX rcommaaccent abreve -15
+KPX rcommaaccent acircumflex -15
+KPX rcommaaccent adieresis -15
+KPX rcommaaccent agrave -15
+KPX rcommaaccent amacron -15
+KPX rcommaaccent aogonek -15
+KPX rcommaaccent aring -15
+KPX rcommaaccent atilde -15
+KPX rcommaaccent c -37
+KPX rcommaaccent cacute -37
+KPX rcommaaccent ccaron -37
+KPX rcommaaccent ccedilla -37
+KPX rcommaaccent comma -111
+KPX rcommaaccent d -37
+KPX rcommaaccent dcroat -37
+KPX rcommaaccent e -37
+KPX rcommaaccent eacute -37
+KPX rcommaaccent ecaron -37
+KPX rcommaaccent ecircumflex -37
+KPX rcommaaccent edieresis -37
+KPX rcommaaccent edotaccent -37
+KPX rcommaaccent egrave -37
+KPX rcommaaccent emacron -37
+KPX rcommaaccent eogonek -37
+KPX rcommaaccent g -37
+KPX rcommaaccent gbreve -37
+KPX rcommaaccent gcommaaccent -37
+KPX rcommaaccent hyphen -20
+KPX rcommaaccent o -45
+KPX rcommaaccent oacute -45
+KPX rcommaaccent ocircumflex -45
+KPX rcommaaccent odieresis -45
+KPX rcommaaccent ograve -45
+KPX rcommaaccent ohungarumlaut -45
+KPX rcommaaccent omacron -45
+KPX rcommaaccent oslash -45
+KPX rcommaaccent otilde -45
+KPX rcommaaccent period -111
+KPX rcommaaccent q -37
+KPX rcommaaccent s -10
+KPX rcommaaccent sacute -10
+KPX rcommaaccent scaron -10
+KPX rcommaaccent scedilla -10
+KPX rcommaaccent scommaaccent -10
+KPX space A -18
+KPX space Aacute -18
+KPX space Abreve -18
+KPX space Acircumflex -18
+KPX space Adieresis -18
+KPX space Agrave -18
+KPX space Amacron -18
+KPX space Aogonek -18
+KPX space Aring -18
+KPX space Atilde -18
+KPX space T -18
+KPX space Tcaron -18
+KPX space Tcommaaccent -18
+KPX space V -35
+KPX space W -40
+KPX space Y -75
+KPX space Yacute -75
+KPX space Ydieresis -75
+KPX v comma -74
+KPX v period -74
+KPX w comma -74
+KPX w period -74
+KPX y comma -55
+KPX y period -55
+KPX yacute comma -55
+KPX yacute period -55
+KPX ydieresis comma -55
+KPX ydieresis period -55
+EndKernPairs
+EndKernData
+EndFontMetrics
diff --git a/php/extras/fonts/ps/Times-Roman.afm b/php/extras/fonts/ps/Times-Roman.afm
new file mode 100644
index 000000000..a0953f280
--- /dev/null
+++ b/php/extras/fonts/ps/Times-Roman.afm
@@ -0,0 +1,2419 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Thu May 1 12:49:17 1997
+Comment UniqueID 43068
+Comment VMusage 43909 54934
+FontName Times-Roman
+FullName Times Roman
+FamilyName Times
+Weight Roman
+ItalicAngle 0
+IsFixedPitch false
+CharacterSet ExtendedRoman
+FontBBox -168 -218 1000 898
+UnderlinePosition -100
+UnderlineThickness 50
+Version 002.000
+Notice Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries.
+EncodingScheme AdobeStandardEncoding
+CapHeight 662
+XHeight 450
+Ascender 683
+Descender -217
+StdHW 28
+StdVW 84
+StartCharMetrics 315
+C 32 ; WX 250 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 333 ; N exclam ; B 130 -9 238 676 ;
+C 34 ; WX 408 ; N quotedbl ; B 77 431 331 676 ;
+C 35 ; WX 500 ; N numbersign ; B 5 0 496 662 ;
+C 36 ; WX 500 ; N dollar ; B 44 -87 457 727 ;
+C 37 ; WX 833 ; N percent ; B 61 -13 772 676 ;
+C 38 ; WX 778 ; N ampersand ; B 42 -13 750 676 ;
+C 39 ; WX 333 ; N quoteright ; B 79 433 218 676 ;
+C 40 ; WX 333 ; N parenleft ; B 48 -177 304 676 ;
+C 41 ; WX 333 ; N parenright ; B 29 -177 285 676 ;
+C 42 ; WX 500 ; N asterisk ; B 69 265 432 676 ;
+C 43 ; WX 564 ; N plus ; B 30 0 534 506 ;
+C 44 ; WX 250 ; N comma ; B 56 -141 195 102 ;
+C 45 ; WX 333 ; N hyphen ; B 39 194 285 257 ;
+C 46 ; WX 250 ; N period ; B 70 -11 181 100 ;
+C 47 ; WX 278 ; N slash ; B -9 -14 287 676 ;
+C 48 ; WX 500 ; N zero ; B 24 -14 476 676 ;
+C 49 ; WX 500 ; N one ; B 111 0 394 676 ;
+C 50 ; WX 500 ; N two ; B 30 0 475 676 ;
+C 51 ; WX 500 ; N three ; B 43 -14 431 676 ;
+C 52 ; WX 500 ; N four ; B 12 0 472 676 ;
+C 53 ; WX 500 ; N five ; B 32 -14 438 688 ;
+C 54 ; WX 500 ; N six ; B 34 -14 468 684 ;
+C 55 ; WX 500 ; N seven ; B 20 -8 449 662 ;
+C 56 ; WX 500 ; N eight ; B 56 -14 445 676 ;
+C 57 ; WX 500 ; N nine ; B 30 -22 459 676 ;
+C 58 ; WX 278 ; N colon ; B 81 -11 192 459 ;
+C 59 ; WX 278 ; N semicolon ; B 80 -141 219 459 ;
+C 60 ; WX 564 ; N less ; B 28 -8 536 514 ;
+C 61 ; WX 564 ; N equal ; B 30 120 534 386 ;
+C 62 ; WX 564 ; N greater ; B 28 -8 536 514 ;
+C 63 ; WX 444 ; N question ; B 68 -8 414 676 ;
+C 64 ; WX 921 ; N at ; B 116 -14 809 676 ;
+C 65 ; WX 722 ; N A ; B 15 0 706 674 ;
+C 66 ; WX 667 ; N B ; B 17 0 593 662 ;
+C 67 ; WX 667 ; N C ; B 28 -14 633 676 ;
+C 68 ; WX 722 ; N D ; B 16 0 685 662 ;
+C 69 ; WX 611 ; N E ; B 12 0 597 662 ;
+C 70 ; WX 556 ; N F ; B 12 0 546 662 ;
+C 71 ; WX 722 ; N G ; B 32 -14 709 676 ;
+C 72 ; WX 722 ; N H ; B 19 0 702 662 ;
+C 73 ; WX 333 ; N I ; B 18 0 315 662 ;
+C 74 ; WX 389 ; N J ; B 10 -14 370 662 ;
+C 75 ; WX 722 ; N K ; B 34 0 723 662 ;
+C 76 ; WX 611 ; N L ; B 12 0 598 662 ;
+C 77 ; WX 889 ; N M ; B 12 0 863 662 ;
+C 78 ; WX 722 ; N N ; B 12 -11 707 662 ;
+C 79 ; WX 722 ; N O ; B 34 -14 688 676 ;
+C 80 ; WX 556 ; N P ; B 16 0 542 662 ;
+C 81 ; WX 722 ; N Q ; B 34 -178 701 676 ;
+C 82 ; WX 667 ; N R ; B 17 0 659 662 ;
+C 83 ; WX 556 ; N S ; B 42 -14 491 676 ;
+C 84 ; WX 611 ; N T ; B 17 0 593 662 ;
+C 85 ; WX 722 ; N U ; B 14 -14 705 662 ;
+C 86 ; WX 722 ; N V ; B 16 -11 697 662 ;
+C 87 ; WX 944 ; N W ; B 5 -11 932 662 ;
+C 88 ; WX 722 ; N X ; B 10 0 704 662 ;
+C 89 ; WX 722 ; N Y ; B 22 0 703 662 ;
+C 90 ; WX 611 ; N Z ; B 9 0 597 662 ;
+C 91 ; WX 333 ; N bracketleft ; B 88 -156 299 662 ;
+C 92 ; WX 278 ; N backslash ; B -9 -14 287 676 ;
+C 93 ; WX 333 ; N bracketright ; B 34 -156 245 662 ;
+C 94 ; WX 469 ; N asciicircum ; B 24 297 446 662 ;
+C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ;
+C 96 ; WX 333 ; N quoteleft ; B 115 433 254 676 ;
+C 97 ; WX 444 ; N a ; B 37 -10 442 460 ;
+C 98 ; WX 500 ; N b ; B 3 -10 468 683 ;
+C 99 ; WX 444 ; N c ; B 25 -10 412 460 ;
+C 100 ; WX 500 ; N d ; B 27 -10 491 683 ;
+C 101 ; WX 444 ; N e ; B 25 -10 424 460 ;
+C 102 ; WX 333 ; N f ; B 20 0 383 683 ; L i fi ; L l fl ;
+C 103 ; WX 500 ; N g ; B 28 -218 470 460 ;
+C 104 ; WX 500 ; N h ; B 9 0 487 683 ;
+C 105 ; WX 278 ; N i ; B 16 0 253 683 ;
+C 106 ; WX 278 ; N j ; B -70 -218 194 683 ;
+C 107 ; WX 500 ; N k ; B 7 0 505 683 ;
+C 108 ; WX 278 ; N l ; B 19 0 257 683 ;
+C 109 ; WX 778 ; N m ; B 16 0 775 460 ;
+C 110 ; WX 500 ; N n ; B 16 0 485 460 ;
+C 111 ; WX 500 ; N o ; B 29 -10 470 460 ;
+C 112 ; WX 500 ; N p ; B 5 -217 470 460 ;
+C 113 ; WX 500 ; N q ; B 24 -217 488 460 ;
+C 114 ; WX 333 ; N r ; B 5 0 335 460 ;
+C 115 ; WX 389 ; N s ; B 51 -10 348 460 ;
+C 116 ; WX 278 ; N t ; B 13 -10 279 579 ;
+C 117 ; WX 500 ; N u ; B 9 -10 479 450 ;
+C 118 ; WX 500 ; N v ; B 19 -14 477 450 ;
+C 119 ; WX 722 ; N w ; B 21 -14 694 450 ;
+C 120 ; WX 500 ; N x ; B 17 0 479 450 ;
+C 121 ; WX 500 ; N y ; B 14 -218 475 450 ;
+C 122 ; WX 444 ; N z ; B 27 0 418 450 ;
+C 123 ; WX 480 ; N braceleft ; B 100 -181 350 680 ;
+C 124 ; WX 200 ; N bar ; B 67 -218 133 782 ;
+C 125 ; WX 480 ; N braceright ; B 130 -181 380 680 ;
+C 126 ; WX 541 ; N asciitilde ; B 40 183 502 323 ;
+C 161 ; WX 333 ; N exclamdown ; B 97 -218 205 467 ;
+C 162 ; WX 500 ; N cent ; B 53 -138 448 579 ;
+C 163 ; WX 500 ; N sterling ; B 12 -8 490 676 ;
+C 164 ; WX 167 ; N fraction ; B -168 -14 331 676 ;
+C 165 ; WX 500 ; N yen ; B -53 0 512 662 ;
+C 166 ; WX 500 ; N florin ; B 7 -189 490 676 ;
+C 167 ; WX 500 ; N section ; B 70 -148 426 676 ;
+C 168 ; WX 500 ; N currency ; B -22 58 522 602 ;
+C 169 ; WX 180 ; N quotesingle ; B 48 431 133 676 ;
+C 170 ; WX 444 ; N quotedblleft ; B 43 433 414 676 ;
+C 171 ; WX 500 ; N guillemotleft ; B 42 33 456 416 ;
+C 172 ; WX 333 ; N guilsinglleft ; B 63 33 285 416 ;
+C 173 ; WX 333 ; N guilsinglright ; B 48 33 270 416 ;
+C 174 ; WX 556 ; N fi ; B 31 0 521 683 ;
+C 175 ; WX 556 ; N fl ; B 32 0 521 683 ;
+C 177 ; WX 500 ; N endash ; B 0 201 500 250 ;
+C 178 ; WX 500 ; N dagger ; B 59 -149 442 676 ;
+C 179 ; WX 500 ; N daggerdbl ; B 58 -153 442 676 ;
+C 180 ; WX 250 ; N periodcentered ; B 70 199 181 310 ;
+C 182 ; WX 453 ; N paragraph ; B -22 -154 450 662 ;
+C 183 ; WX 350 ; N bullet ; B 40 196 310 466 ;
+C 184 ; WX 333 ; N quotesinglbase ; B 79 -141 218 102 ;
+C 185 ; WX 444 ; N quotedblbase ; B 45 -141 416 102 ;
+C 186 ; WX 444 ; N quotedblright ; B 30 433 401 676 ;
+C 187 ; WX 500 ; N guillemotright ; B 44 33 458 416 ;
+C 188 ; WX 1000 ; N ellipsis ; B 111 -11 888 100 ;
+C 189 ; WX 1000 ; N perthousand ; B 7 -19 994 706 ;
+C 191 ; WX 444 ; N questiondown ; B 30 -218 376 466 ;
+C 193 ; WX 333 ; N grave ; B 19 507 242 678 ;
+C 194 ; WX 333 ; N acute ; B 93 507 317 678 ;
+C 195 ; WX 333 ; N circumflex ; B 11 507 322 674 ;
+C 196 ; WX 333 ; N tilde ; B 1 532 331 638 ;
+C 197 ; WX 333 ; N macron ; B 11 547 322 601 ;
+C 198 ; WX 333 ; N breve ; B 26 507 307 664 ;
+C 199 ; WX 333 ; N dotaccent ; B 118 581 216 681 ;
+C 200 ; WX 333 ; N dieresis ; B 18 581 315 681 ;
+C 202 ; WX 333 ; N ring ; B 67 512 266 711 ;
+C 203 ; WX 333 ; N cedilla ; B 52 -215 261 0 ;
+C 205 ; WX 333 ; N hungarumlaut ; B -3 507 377 678 ;
+C 206 ; WX 333 ; N ogonek ; B 62 -165 243 0 ;
+C 207 ; WX 333 ; N caron ; B 11 507 322 674 ;
+C 208 ; WX 1000 ; N emdash ; B 0 201 1000 250 ;
+C 225 ; WX 889 ; N AE ; B 0 0 863 662 ;
+C 227 ; WX 276 ; N ordfeminine ; B 4 394 270 676 ;
+C 232 ; WX 611 ; N Lslash ; B 12 0 598 662 ;
+C 233 ; WX 722 ; N Oslash ; B 34 -80 688 734 ;
+C 234 ; WX 889 ; N OE ; B 30 -6 885 668 ;
+C 235 ; WX 310 ; N ordmasculine ; B 6 394 304 676 ;
+C 241 ; WX 667 ; N ae ; B 38 -10 632 460 ;
+C 245 ; WX 278 ; N dotlessi ; B 16 0 253 460 ;
+C 248 ; WX 278 ; N lslash ; B 19 0 259 683 ;
+C 249 ; WX 500 ; N oslash ; B 29 -112 470 551 ;
+C 250 ; WX 722 ; N oe ; B 30 -10 690 460 ;
+C 251 ; WX 500 ; N germandbls ; B 12 -9 468 683 ;
+C -1 ; WX 333 ; N Idieresis ; B 18 0 315 835 ;
+C -1 ; WX 444 ; N eacute ; B 25 -10 424 678 ;
+C -1 ; WX 444 ; N abreve ; B 37 -10 442 664 ;
+C -1 ; WX 500 ; N uhungarumlaut ; B 9 -10 501 678 ;
+C -1 ; WX 444 ; N ecaron ; B 25 -10 424 674 ;
+C -1 ; WX 722 ; N Ydieresis ; B 22 0 703 835 ;
+C -1 ; WX 564 ; N divide ; B 30 -10 534 516 ;
+C -1 ; WX 722 ; N Yacute ; B 22 0 703 890 ;
+C -1 ; WX 722 ; N Acircumflex ; B 15 0 706 886 ;
+C -1 ; WX 444 ; N aacute ; B 37 -10 442 678 ;
+C -1 ; WX 722 ; N Ucircumflex ; B 14 -14 705 886 ;
+C -1 ; WX 500 ; N yacute ; B 14 -218 475 678 ;
+C -1 ; WX 389 ; N scommaaccent ; B 51 -218 348 460 ;
+C -1 ; WX 444 ; N ecircumflex ; B 25 -10 424 674 ;
+C -1 ; WX 722 ; N Uring ; B 14 -14 705 898 ;
+C -1 ; WX 722 ; N Udieresis ; B 14 -14 705 835 ;
+C -1 ; WX 444 ; N aogonek ; B 37 -165 469 460 ;
+C -1 ; WX 722 ; N Uacute ; B 14 -14 705 890 ;
+C -1 ; WX 500 ; N uogonek ; B 9 -155 487 450 ;
+C -1 ; WX 611 ; N Edieresis ; B 12 0 597 835 ;
+C -1 ; WX 722 ; N Dcroat ; B 16 0 685 662 ;
+C -1 ; WX 250 ; N commaaccent ; B 59 -218 184 -50 ;
+C -1 ; WX 760 ; N copyright ; B 38 -14 722 676 ;
+C -1 ; WX 611 ; N Emacron ; B 12 0 597 813 ;
+C -1 ; WX 444 ; N ccaron ; B 25 -10 412 674 ;
+C -1 ; WX 444 ; N aring ; B 37 -10 442 711 ;
+C -1 ; WX 722 ; N Ncommaaccent ; B 12 -198 707 662 ;
+C -1 ; WX 278 ; N lacute ; B 19 0 290 890 ;
+C -1 ; WX 444 ; N agrave ; B 37 -10 442 678 ;
+C -1 ; WX 611 ; N Tcommaaccent ; B 17 -218 593 662 ;
+C -1 ; WX 667 ; N Cacute ; B 28 -14 633 890 ;
+C -1 ; WX 444 ; N atilde ; B 37 -10 442 638 ;
+C -1 ; WX 611 ; N Edotaccent ; B 12 0 597 835 ;
+C -1 ; WX 389 ; N scaron ; B 39 -10 350 674 ;
+C -1 ; WX 389 ; N scedilla ; B 51 -215 348 460 ;
+C -1 ; WX 278 ; N iacute ; B 16 0 290 678 ;
+C -1 ; WX 471 ; N lozenge ; B 13 0 459 724 ;
+C -1 ; WX 667 ; N Rcaron ; B 17 0 659 886 ;
+C -1 ; WX 722 ; N Gcommaaccent ; B 32 -218 709 676 ;
+C -1 ; WX 500 ; N ucircumflex ; B 9 -10 479 674 ;
+C -1 ; WX 444 ; N acircumflex ; B 37 -10 442 674 ;
+C -1 ; WX 722 ; N Amacron ; B 15 0 706 813 ;
+C -1 ; WX 333 ; N rcaron ; B 5 0 335 674 ;
+C -1 ; WX 444 ; N ccedilla ; B 25 -215 412 460 ;
+C -1 ; WX 611 ; N Zdotaccent ; B 9 0 597 835 ;
+C -1 ; WX 556 ; N Thorn ; B 16 0 542 662 ;
+C -1 ; WX 722 ; N Omacron ; B 34 -14 688 813 ;
+C -1 ; WX 667 ; N Racute ; B 17 0 659 890 ;
+C -1 ; WX 556 ; N Sacute ; B 42 -14 491 890 ;
+C -1 ; WX 588 ; N dcaron ; B 27 -10 589 695 ;
+C -1 ; WX 722 ; N Umacron ; B 14 -14 705 813 ;
+C -1 ; WX 500 ; N uring ; B 9 -10 479 711 ;
+C -1 ; WX 300 ; N threesuperior ; B 15 262 291 676 ;
+C -1 ; WX 722 ; N Ograve ; B 34 -14 688 890 ;
+C -1 ; WX 722 ; N Agrave ; B 15 0 706 890 ;
+C -1 ; WX 722 ; N Abreve ; B 15 0 706 876 ;
+C -1 ; WX 564 ; N multiply ; B 38 8 527 497 ;
+C -1 ; WX 500 ; N uacute ; B 9 -10 479 678 ;
+C -1 ; WX 611 ; N Tcaron ; B 17 0 593 886 ;
+C -1 ; WX 476 ; N partialdiff ; B 17 -38 459 710 ;
+C -1 ; WX 500 ; N ydieresis ; B 14 -218 475 623 ;
+C -1 ; WX 722 ; N Nacute ; B 12 -11 707 890 ;
+C -1 ; WX 278 ; N icircumflex ; B -16 0 295 674 ;
+C -1 ; WX 611 ; N Ecircumflex ; B 12 0 597 886 ;
+C -1 ; WX 444 ; N adieresis ; B 37 -10 442 623 ;
+C -1 ; WX 444 ; N edieresis ; B 25 -10 424 623 ;
+C -1 ; WX 444 ; N cacute ; B 25 -10 413 678 ;
+C -1 ; WX 500 ; N nacute ; B 16 0 485 678 ;
+C -1 ; WX 500 ; N umacron ; B 9 -10 479 601 ;
+C -1 ; WX 722 ; N Ncaron ; B 12 -11 707 886 ;
+C -1 ; WX 333 ; N Iacute ; B 18 0 317 890 ;
+C -1 ; WX 564 ; N plusminus ; B 30 0 534 506 ;
+C -1 ; WX 200 ; N brokenbar ; B 67 -143 133 707 ;
+C -1 ; WX 760 ; N registered ; B 38 -14 722 676 ;
+C -1 ; WX 722 ; N Gbreve ; B 32 -14 709 876 ;
+C -1 ; WX 333 ; N Idotaccent ; B 18 0 315 835 ;
+C -1 ; WX 600 ; N summation ; B 15 -10 585 706 ;
+C -1 ; WX 611 ; N Egrave ; B 12 0 597 890 ;
+C -1 ; WX 333 ; N racute ; B 5 0 335 678 ;
+C -1 ; WX 500 ; N omacron ; B 29 -10 470 601 ;
+C -1 ; WX 611 ; N Zacute ; B 9 0 597 890 ;
+C -1 ; WX 611 ; N Zcaron ; B 9 0 597 886 ;
+C -1 ; WX 549 ; N greaterequal ; B 26 0 523 666 ;
+C -1 ; WX 722 ; N Eth ; B 16 0 685 662 ;
+C -1 ; WX 667 ; N Ccedilla ; B 28 -215 633 676 ;
+C -1 ; WX 278 ; N lcommaaccent ; B 19 -218 257 683 ;
+C -1 ; WX 326 ; N tcaron ; B 13 -10 318 722 ;
+C -1 ; WX 444 ; N eogonek ; B 25 -165 424 460 ;
+C -1 ; WX 722 ; N Uogonek ; B 14 -165 705 662 ;
+C -1 ; WX 722 ; N Aacute ; B 15 0 706 890 ;
+C -1 ; WX 722 ; N Adieresis ; B 15 0 706 835 ;
+C -1 ; WX 444 ; N egrave ; B 25 -10 424 678 ;
+C -1 ; WX 444 ; N zacute ; B 27 0 418 678 ;
+C -1 ; WX 278 ; N iogonek ; B 16 -165 265 683 ;
+C -1 ; WX 722 ; N Oacute ; B 34 -14 688 890 ;
+C -1 ; WX 500 ; N oacute ; B 29 -10 470 678 ;
+C -1 ; WX 444 ; N amacron ; B 37 -10 442 601 ;
+C -1 ; WX 389 ; N sacute ; B 51 -10 348 678 ;
+C -1 ; WX 278 ; N idieresis ; B -9 0 288 623 ;
+C -1 ; WX 722 ; N Ocircumflex ; B 34 -14 688 886 ;
+C -1 ; WX 722 ; N Ugrave ; B 14 -14 705 890 ;
+C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
+C -1 ; WX 500 ; N thorn ; B 5 -217 470 683 ;
+C -1 ; WX 300 ; N twosuperior ; B 1 270 296 676 ;
+C -1 ; WX 722 ; N Odieresis ; B 34 -14 688 835 ;
+C -1 ; WX 500 ; N mu ; B 36 -218 512 450 ;
+C -1 ; WX 278 ; N igrave ; B -8 0 253 678 ;
+C -1 ; WX 500 ; N ohungarumlaut ; B 29 -10 491 678 ;
+C -1 ; WX 611 ; N Eogonek ; B 12 -165 597 662 ;
+C -1 ; WX 500 ; N dcroat ; B 27 -10 500 683 ;
+C -1 ; WX 750 ; N threequarters ; B 15 -14 718 676 ;
+C -1 ; WX 556 ; N Scedilla ; B 42 -215 491 676 ;
+C -1 ; WX 344 ; N lcaron ; B 19 0 347 695 ;
+C -1 ; WX 722 ; N Kcommaaccent ; B 34 -198 723 662 ;
+C -1 ; WX 611 ; N Lacute ; B 12 0 598 890 ;
+C -1 ; WX 980 ; N trademark ; B 30 256 957 662 ;
+C -1 ; WX 444 ; N edotaccent ; B 25 -10 424 623 ;
+C -1 ; WX 333 ; N Igrave ; B 18 0 315 890 ;
+C -1 ; WX 333 ; N Imacron ; B 11 0 322 813 ;
+C -1 ; WX 611 ; N Lcaron ; B 12 0 598 676 ;
+C -1 ; WX 750 ; N onehalf ; B 31 -14 746 676 ;
+C -1 ; WX 549 ; N lessequal ; B 26 0 523 666 ;
+C -1 ; WX 500 ; N ocircumflex ; B 29 -10 470 674 ;
+C -1 ; WX 500 ; N ntilde ; B 16 0 485 638 ;
+C -1 ; WX 722 ; N Uhungarumlaut ; B 14 -14 705 890 ;
+C -1 ; WX 611 ; N Eacute ; B 12 0 597 890 ;
+C -1 ; WX 444 ; N emacron ; B 25 -10 424 601 ;
+C -1 ; WX 500 ; N gbreve ; B 28 -218 470 664 ;
+C -1 ; WX 750 ; N onequarter ; B 37 -14 718 676 ;
+C -1 ; WX 556 ; N Scaron ; B 42 -14 491 886 ;
+C -1 ; WX 556 ; N Scommaaccent ; B 42 -218 491 676 ;
+C -1 ; WX 722 ; N Ohungarumlaut ; B 34 -14 688 890 ;
+C -1 ; WX 400 ; N degree ; B 57 390 343 676 ;
+C -1 ; WX 500 ; N ograve ; B 29 -10 470 678 ;
+C -1 ; WX 667 ; N Ccaron ; B 28 -14 633 886 ;
+C -1 ; WX 500 ; N ugrave ; B 9 -10 479 678 ;
+C -1 ; WX 453 ; N radical ; B 2 -60 452 768 ;
+C -1 ; WX 722 ; N Dcaron ; B 16 0 685 886 ;
+C -1 ; WX 333 ; N rcommaaccent ; B 5 -218 335 460 ;
+C -1 ; WX 722 ; N Ntilde ; B 12 -11 707 850 ;
+C -1 ; WX 500 ; N otilde ; B 29 -10 470 638 ;
+C -1 ; WX 667 ; N Rcommaaccent ; B 17 -198 659 662 ;
+C -1 ; WX 611 ; N Lcommaaccent ; B 12 -218 598 662 ;
+C -1 ; WX 722 ; N Atilde ; B 15 0 706 850 ;
+C -1 ; WX 722 ; N Aogonek ; B 15 -165 738 674 ;
+C -1 ; WX 722 ; N Aring ; B 15 0 706 898 ;
+C -1 ; WX 722 ; N Otilde ; B 34 -14 688 850 ;
+C -1 ; WX 444 ; N zdotaccent ; B 27 0 418 623 ;
+C -1 ; WX 611 ; N Ecaron ; B 12 0 597 886 ;
+C -1 ; WX 333 ; N Iogonek ; B 18 -165 315 662 ;
+C -1 ; WX 500 ; N kcommaaccent ; B 7 -218 505 683 ;
+C -1 ; WX 564 ; N minus ; B 30 220 534 286 ;
+C -1 ; WX 333 ; N Icircumflex ; B 11 0 322 886 ;
+C -1 ; WX 500 ; N ncaron ; B 16 0 485 674 ;
+C -1 ; WX 278 ; N tcommaaccent ; B 13 -218 279 579 ;
+C -1 ; WX 564 ; N logicalnot ; B 30 108 534 386 ;
+C -1 ; WX 500 ; N odieresis ; B 29 -10 470 623 ;
+C -1 ; WX 500 ; N udieresis ; B 9 -10 479 623 ;
+C -1 ; WX 549 ; N notequal ; B 12 -31 537 547 ;
+C -1 ; WX 500 ; N gcommaaccent ; B 28 -218 470 749 ;
+C -1 ; WX 500 ; N eth ; B 29 -10 471 686 ;
+C -1 ; WX 444 ; N zcaron ; B 27 0 418 674 ;
+C -1 ; WX 500 ; N ncommaaccent ; B 16 -218 485 460 ;
+C -1 ; WX 300 ; N onesuperior ; B 57 270 248 676 ;
+C -1 ; WX 278 ; N imacron ; B 6 0 271 601 ;
+C -1 ; WX 500 ; N Euro ; B 0 0 0 0 ;
+EndCharMetrics
+StartKernData
+StartKernPairs 2073
+KPX A C -40
+KPX A Cacute -40
+KPX A Ccaron -40
+KPX A Ccedilla -40
+KPX A G -40
+KPX A Gbreve -40
+KPX A Gcommaaccent -40
+KPX A O -55
+KPX A Oacute -55
+KPX A Ocircumflex -55
+KPX A Odieresis -55
+KPX A Ograve -55
+KPX A Ohungarumlaut -55
+KPX A Omacron -55
+KPX A Oslash -55
+KPX A Otilde -55
+KPX A Q -55
+KPX A T -111
+KPX A Tcaron -111
+KPX A Tcommaaccent -111
+KPX A U -55
+KPX A Uacute -55
+KPX A Ucircumflex -55
+KPX A Udieresis -55
+KPX A Ugrave -55
+KPX A Uhungarumlaut -55
+KPX A Umacron -55
+KPX A Uogonek -55
+KPX A Uring -55
+KPX A V -135
+KPX A W -90
+KPX A Y -105
+KPX A Yacute -105
+KPX A Ydieresis -105
+KPX A quoteright -111
+KPX A v -74
+KPX A w -92
+KPX A y -92
+KPX A yacute -92
+KPX A ydieresis -92
+KPX Aacute C -40
+KPX Aacute Cacute -40
+KPX Aacute Ccaron -40
+KPX Aacute Ccedilla -40
+KPX Aacute G -40
+KPX Aacute Gbreve -40
+KPX Aacute Gcommaaccent -40
+KPX Aacute O -55
+KPX Aacute Oacute -55
+KPX Aacute Ocircumflex -55
+KPX Aacute Odieresis -55
+KPX Aacute Ograve -55
+KPX Aacute Ohungarumlaut -55
+KPX Aacute Omacron -55
+KPX Aacute Oslash -55
+KPX Aacute Otilde -55
+KPX Aacute Q -55
+KPX Aacute T -111
+KPX Aacute Tcaron -111
+KPX Aacute Tcommaaccent -111
+KPX Aacute U -55
+KPX Aacute Uacute -55
+KPX Aacute Ucircumflex -55
+KPX Aacute Udieresis -55
+KPX Aacute Ugrave -55
+KPX Aacute Uhungarumlaut -55
+KPX Aacute Umacron -55
+KPX Aacute Uogonek -55
+KPX Aacute Uring -55
+KPX Aacute V -135
+KPX Aacute W -90
+KPX Aacute Y -105
+KPX Aacute Yacute -105
+KPX Aacute Ydieresis -105
+KPX Aacute quoteright -111
+KPX Aacute v -74
+KPX Aacute w -92
+KPX Aacute y -92
+KPX Aacute yacute -92
+KPX Aacute ydieresis -92
+KPX Abreve C -40
+KPX Abreve Cacute -40
+KPX Abreve Ccaron -40
+KPX Abreve Ccedilla -40
+KPX Abreve G -40
+KPX Abreve Gbreve -40
+KPX Abreve Gcommaaccent -40
+KPX Abreve O -55
+KPX Abreve Oacute -55
+KPX Abreve Ocircumflex -55
+KPX Abreve Odieresis -55
+KPX Abreve Ograve -55
+KPX Abreve Ohungarumlaut -55
+KPX Abreve Omacron -55
+KPX Abreve Oslash -55
+KPX Abreve Otilde -55
+KPX Abreve Q -55
+KPX Abreve T -111
+KPX Abreve Tcaron -111
+KPX Abreve Tcommaaccent -111
+KPX Abreve U -55
+KPX Abreve Uacute -55
+KPX Abreve Ucircumflex -55
+KPX Abreve Udieresis -55
+KPX Abreve Ugrave -55
+KPX Abreve Uhungarumlaut -55
+KPX Abreve Umacron -55
+KPX Abreve Uogonek -55
+KPX Abreve Uring -55
+KPX Abreve V -135
+KPX Abreve W -90
+KPX Abreve Y -105
+KPX Abreve Yacute -105
+KPX Abreve Ydieresis -105
+KPX Abreve quoteright -111
+KPX Abreve v -74
+KPX Abreve w -92
+KPX Abreve y -92
+KPX Abreve yacute -92
+KPX Abreve ydieresis -92
+KPX Acircumflex C -40
+KPX Acircumflex Cacute -40
+KPX Acircumflex Ccaron -40
+KPX Acircumflex Ccedilla -40
+KPX Acircumflex G -40
+KPX Acircumflex Gbreve -40
+KPX Acircumflex Gcommaaccent -40
+KPX Acircumflex O -55
+KPX Acircumflex Oacute -55
+KPX Acircumflex Ocircumflex -55
+KPX Acircumflex Odieresis -55
+KPX Acircumflex Ograve -55
+KPX Acircumflex Ohungarumlaut -55
+KPX Acircumflex Omacron -55
+KPX Acircumflex Oslash -55
+KPX Acircumflex Otilde -55
+KPX Acircumflex Q -55
+KPX Acircumflex T -111
+KPX Acircumflex Tcaron -111
+KPX Acircumflex Tcommaaccent -111
+KPX Acircumflex U -55
+KPX Acircumflex Uacute -55
+KPX Acircumflex Ucircumflex -55
+KPX Acircumflex Udieresis -55
+KPX Acircumflex Ugrave -55
+KPX Acircumflex Uhungarumlaut -55
+KPX Acircumflex Umacron -55
+KPX Acircumflex Uogonek -55
+KPX Acircumflex Uring -55
+KPX Acircumflex V -135
+KPX Acircumflex W -90
+KPX Acircumflex Y -105
+KPX Acircumflex Yacute -105
+KPX Acircumflex Ydieresis -105
+KPX Acircumflex quoteright -111
+KPX Acircumflex v -74
+KPX Acircumflex w -92
+KPX Acircumflex y -92
+KPX Acircumflex yacute -92
+KPX Acircumflex ydieresis -92
+KPX Adieresis C -40
+KPX Adieresis Cacute -40
+KPX Adieresis Ccaron -40
+KPX Adieresis Ccedilla -40
+KPX Adieresis G -40
+KPX Adieresis Gbreve -40
+KPX Adieresis Gcommaaccent -40
+KPX Adieresis O -55
+KPX Adieresis Oacute -55
+KPX Adieresis Ocircumflex -55
+KPX Adieresis Odieresis -55
+KPX Adieresis Ograve -55
+KPX Adieresis Ohungarumlaut -55
+KPX Adieresis Omacron -55
+KPX Adieresis Oslash -55
+KPX Adieresis Otilde -55
+KPX Adieresis Q -55
+KPX Adieresis T -111
+KPX Adieresis Tcaron -111
+KPX Adieresis Tcommaaccent -111
+KPX Adieresis U -55
+KPX Adieresis Uacute -55
+KPX Adieresis Ucircumflex -55
+KPX Adieresis Udieresis -55
+KPX Adieresis Ugrave -55
+KPX Adieresis Uhungarumlaut -55
+KPX Adieresis Umacron -55
+KPX Adieresis Uogonek -55
+KPX Adieresis Uring -55
+KPX Adieresis V -135
+KPX Adieresis W -90
+KPX Adieresis Y -105
+KPX Adieresis Yacute -105
+KPX Adieresis Ydieresis -105
+KPX Adieresis quoteright -111
+KPX Adieresis v -74
+KPX Adieresis w -92
+KPX Adieresis y -92
+KPX Adieresis yacute -92
+KPX Adieresis ydieresis -92
+KPX Agrave C -40
+KPX Agrave Cacute -40
+KPX Agrave Ccaron -40
+KPX Agrave Ccedilla -40
+KPX Agrave G -40
+KPX Agrave Gbreve -40
+KPX Agrave Gcommaaccent -40
+KPX Agrave O -55
+KPX Agrave Oacute -55
+KPX Agrave Ocircumflex -55
+KPX Agrave Odieresis -55
+KPX Agrave Ograve -55
+KPX Agrave Ohungarumlaut -55
+KPX Agrave Omacron -55
+KPX Agrave Oslash -55
+KPX Agrave Otilde -55
+KPX Agrave Q -55
+KPX Agrave T -111
+KPX Agrave Tcaron -111
+KPX Agrave Tcommaaccent -111
+KPX Agrave U -55
+KPX Agrave Uacute -55
+KPX Agrave Ucircumflex -55
+KPX Agrave Udieresis -55
+KPX Agrave Ugrave -55
+KPX Agrave Uhungarumlaut -55
+KPX Agrave Umacron -55
+KPX Agrave Uogonek -55
+KPX Agrave Uring -55
+KPX Agrave V -135
+KPX Agrave W -90
+KPX Agrave Y -105
+KPX Agrave Yacute -105
+KPX Agrave Ydieresis -105
+KPX Agrave quoteright -111
+KPX Agrave v -74
+KPX Agrave w -92
+KPX Agrave y -92
+KPX Agrave yacute -92
+KPX Agrave ydieresis -92
+KPX Amacron C -40
+KPX Amacron Cacute -40
+KPX Amacron Ccaron -40
+KPX Amacron Ccedilla -40
+KPX Amacron G -40
+KPX Amacron Gbreve -40
+KPX Amacron Gcommaaccent -40
+KPX Amacron O -55
+KPX Amacron Oacute -55
+KPX Amacron Ocircumflex -55
+KPX Amacron Odieresis -55
+KPX Amacron Ograve -55
+KPX Amacron Ohungarumlaut -55
+KPX Amacron Omacron -55
+KPX Amacron Oslash -55
+KPX Amacron Otilde -55
+KPX Amacron Q -55
+KPX Amacron T -111
+KPX Amacron Tcaron -111
+KPX Amacron Tcommaaccent -111
+KPX Amacron U -55
+KPX Amacron Uacute -55
+KPX Amacron Ucircumflex -55
+KPX Amacron Udieresis -55
+KPX Amacron Ugrave -55
+KPX Amacron Uhungarumlaut -55
+KPX Amacron Umacron -55
+KPX Amacron Uogonek -55
+KPX Amacron Uring -55
+KPX Amacron V -135
+KPX Amacron W -90
+KPX Amacron Y -105
+KPX Amacron Yacute -105
+KPX Amacron Ydieresis -105
+KPX Amacron quoteright -111
+KPX Amacron v -74
+KPX Amacron w -92
+KPX Amacron y -92
+KPX Amacron yacute -92
+KPX Amacron ydieresis -92
+KPX Aogonek C -40
+KPX Aogonek Cacute -40
+KPX Aogonek Ccaron -40
+KPX Aogonek Ccedilla -40
+KPX Aogonek G -40
+KPX Aogonek Gbreve -40
+KPX Aogonek Gcommaaccent -40
+KPX Aogonek O -55
+KPX Aogonek Oacute -55
+KPX Aogonek Ocircumflex -55
+KPX Aogonek Odieresis -55
+KPX Aogonek Ograve -55
+KPX Aogonek Ohungarumlaut -55
+KPX Aogonek Omacron -55
+KPX Aogonek Oslash -55
+KPX Aogonek Otilde -55
+KPX Aogonek Q -55
+KPX Aogonek T -111
+KPX Aogonek Tcaron -111
+KPX Aogonek Tcommaaccent -111
+KPX Aogonek U -55
+KPX Aogonek Uacute -55
+KPX Aogonek Ucircumflex -55
+KPX Aogonek Udieresis -55
+KPX Aogonek Ugrave -55
+KPX Aogonek Uhungarumlaut -55
+KPX Aogonek Umacron -55
+KPX Aogonek Uogonek -55
+KPX Aogonek Uring -55
+KPX Aogonek V -135
+KPX Aogonek W -90
+KPX Aogonek Y -105
+KPX Aogonek Yacute -105
+KPX Aogonek Ydieresis -105
+KPX Aogonek quoteright -111
+KPX Aogonek v -74
+KPX Aogonek w -52
+KPX Aogonek y -52
+KPX Aogonek yacute -52
+KPX Aogonek ydieresis -52
+KPX Aring C -40
+KPX Aring Cacute -40
+KPX Aring Ccaron -40
+KPX Aring Ccedilla -40
+KPX Aring G -40
+KPX Aring Gbreve -40
+KPX Aring Gcommaaccent -40
+KPX Aring O -55
+KPX Aring Oacute -55
+KPX Aring Ocircumflex -55
+KPX Aring Odieresis -55
+KPX Aring Ograve -55
+KPX Aring Ohungarumlaut -55
+KPX Aring Omacron -55
+KPX Aring Oslash -55
+KPX Aring Otilde -55
+KPX Aring Q -55
+KPX Aring T -111
+KPX Aring Tcaron -111
+KPX Aring Tcommaaccent -111
+KPX Aring U -55
+KPX Aring Uacute -55
+KPX Aring Ucircumflex -55
+KPX Aring Udieresis -55
+KPX Aring Ugrave -55
+KPX Aring Uhungarumlaut -55
+KPX Aring Umacron -55
+KPX Aring Uogonek -55
+KPX Aring Uring -55
+KPX Aring V -135
+KPX Aring W -90
+KPX Aring Y -105
+KPX Aring Yacute -105
+KPX Aring Ydieresis -105
+KPX Aring quoteright -111
+KPX Aring v -74
+KPX Aring w -92
+KPX Aring y -92
+KPX Aring yacute -92
+KPX Aring ydieresis -92
+KPX Atilde C -40
+KPX Atilde Cacute -40
+KPX Atilde Ccaron -40
+KPX Atilde Ccedilla -40
+KPX Atilde G -40
+KPX Atilde Gbreve -40
+KPX Atilde Gcommaaccent -40
+KPX Atilde O -55
+KPX Atilde Oacute -55
+KPX Atilde Ocircumflex -55
+KPX Atilde Odieresis -55
+KPX Atilde Ograve -55
+KPX Atilde Ohungarumlaut -55
+KPX Atilde Omacron -55
+KPX Atilde Oslash -55
+KPX Atilde Otilde -55
+KPX Atilde Q -55
+KPX Atilde T -111
+KPX Atilde Tcaron -111
+KPX Atilde Tcommaaccent -111
+KPX Atilde U -55
+KPX Atilde Uacute -55
+KPX Atilde Ucircumflex -55
+KPX Atilde Udieresis -55
+KPX Atilde Ugrave -55
+KPX Atilde Uhungarumlaut -55
+KPX Atilde Umacron -55
+KPX Atilde Uogonek -55
+KPX Atilde Uring -55
+KPX Atilde V -135
+KPX Atilde W -90
+KPX Atilde Y -105
+KPX Atilde Yacute -105
+KPX Atilde Ydieresis -105
+KPX Atilde quoteright -111
+KPX Atilde v -74
+KPX Atilde w -92
+KPX Atilde y -92
+KPX Atilde yacute -92
+KPX Atilde ydieresis -92
+KPX B A -35
+KPX B Aacute -35
+KPX B Abreve -35
+KPX B Acircumflex -35
+KPX B Adieresis -35
+KPX B Agrave -35
+KPX B Amacron -35
+KPX B Aogonek -35
+KPX B Aring -35
+KPX B Atilde -35
+KPX B U -10
+KPX B Uacute -10
+KPX B Ucircumflex -10
+KPX B Udieresis -10
+KPX B Ugrave -10
+KPX B Uhungarumlaut -10
+KPX B Umacron -10
+KPX B Uogonek -10
+KPX B Uring -10
+KPX D A -40
+KPX D Aacute -40
+KPX D Abreve -40
+KPX D Acircumflex -40
+KPX D Adieresis -40
+KPX D Agrave -40
+KPX D Amacron -40
+KPX D Aogonek -40
+KPX D Aring -40
+KPX D Atilde -40
+KPX D V -40
+KPX D W -30
+KPX D Y -55
+KPX D Yacute -55
+KPX D Ydieresis -55
+KPX Dcaron A -40
+KPX Dcaron Aacute -40
+KPX Dcaron Abreve -40
+KPX Dcaron Acircumflex -40
+KPX Dcaron Adieresis -40
+KPX Dcaron Agrave -40
+KPX Dcaron Amacron -40
+KPX Dcaron Aogonek -40
+KPX Dcaron Aring -40
+KPX Dcaron Atilde -40
+KPX Dcaron V -40
+KPX Dcaron W -30
+KPX Dcaron Y -55
+KPX Dcaron Yacute -55
+KPX Dcaron Ydieresis -55
+KPX Dcroat A -40
+KPX Dcroat Aacute -40
+KPX Dcroat Abreve -40
+KPX Dcroat Acircumflex -40
+KPX Dcroat Adieresis -40
+KPX Dcroat Agrave -40
+KPX Dcroat Amacron -40
+KPX Dcroat Aogonek -40
+KPX Dcroat Aring -40
+KPX Dcroat Atilde -40
+KPX Dcroat V -40
+KPX Dcroat W -30
+KPX Dcroat Y -55
+KPX Dcroat Yacute -55
+KPX Dcroat Ydieresis -55
+KPX F A -74
+KPX F Aacute -74
+KPX F Abreve -74
+KPX F Acircumflex -74
+KPX F Adieresis -74
+KPX F Agrave -74
+KPX F Amacron -74
+KPX F Aogonek -74
+KPX F Aring -74
+KPX F Atilde -74
+KPX F a -15
+KPX F aacute -15
+KPX F abreve -15
+KPX F acircumflex -15
+KPX F adieresis -15
+KPX F agrave -15
+KPX F amacron -15
+KPX F aogonek -15
+KPX F aring -15
+KPX F atilde -15
+KPX F comma -80
+KPX F o -15
+KPX F oacute -15
+KPX F ocircumflex -15
+KPX F odieresis -15
+KPX F ograve -15
+KPX F ohungarumlaut -15
+KPX F omacron -15
+KPX F oslash -15
+KPX F otilde -15
+KPX F period -80
+KPX J A -60
+KPX J Aacute -60
+KPX J Abreve -60
+KPX J Acircumflex -60
+KPX J Adieresis -60
+KPX J Agrave -60
+KPX J Amacron -60
+KPX J Aogonek -60
+KPX J Aring -60
+KPX J Atilde -60
+KPX K O -30
+KPX K Oacute -30
+KPX K Ocircumflex -30
+KPX K Odieresis -30
+KPX K Ograve -30
+KPX K Ohungarumlaut -30
+KPX K Omacron -30
+KPX K Oslash -30
+KPX K Otilde -30
+KPX K e -25
+KPX K eacute -25
+KPX K ecaron -25
+KPX K ecircumflex -25
+KPX K edieresis -25
+KPX K edotaccent -25
+KPX K egrave -25
+KPX K emacron -25
+KPX K eogonek -25
+KPX K o -35
+KPX K oacute -35
+KPX K ocircumflex -35
+KPX K odieresis -35
+KPX K ograve -35
+KPX K ohungarumlaut -35
+KPX K omacron -35
+KPX K oslash -35
+KPX K otilde -35
+KPX K u -15
+KPX K uacute -15
+KPX K ucircumflex -15
+KPX K udieresis -15
+KPX K ugrave -15
+KPX K uhungarumlaut -15
+KPX K umacron -15
+KPX K uogonek -15
+KPX K uring -15
+KPX K y -25
+KPX K yacute -25
+KPX K ydieresis -25
+KPX Kcommaaccent O -30
+KPX Kcommaaccent Oacute -30
+KPX Kcommaaccent Ocircumflex -30
+KPX Kcommaaccent Odieresis -30
+KPX Kcommaaccent Ograve -30
+KPX Kcommaaccent Ohungarumlaut -30
+KPX Kcommaaccent Omacron -30
+KPX Kcommaaccent Oslash -30
+KPX Kcommaaccent Otilde -30
+KPX Kcommaaccent e -25
+KPX Kcommaaccent eacute -25
+KPX Kcommaaccent ecaron -25
+KPX Kcommaaccent ecircumflex -25
+KPX Kcommaaccent edieresis -25
+KPX Kcommaaccent edotaccent -25
+KPX Kcommaaccent egrave -25
+KPX Kcommaaccent emacron -25
+KPX Kcommaaccent eogonek -25
+KPX Kcommaaccent o -35
+KPX Kcommaaccent oacute -35
+KPX Kcommaaccent ocircumflex -35
+KPX Kcommaaccent odieresis -35
+KPX Kcommaaccent ograve -35
+KPX Kcommaaccent ohungarumlaut -35
+KPX Kcommaaccent omacron -35
+KPX Kcommaaccent oslash -35
+KPX Kcommaaccent otilde -35
+KPX Kcommaaccent u -15
+KPX Kcommaaccent uacute -15
+KPX Kcommaaccent ucircumflex -15
+KPX Kcommaaccent udieresis -15
+KPX Kcommaaccent ugrave -15
+KPX Kcommaaccent uhungarumlaut -15
+KPX Kcommaaccent umacron -15
+KPX Kcommaaccent uogonek -15
+KPX Kcommaaccent uring -15
+KPX Kcommaaccent y -25
+KPX Kcommaaccent yacute -25
+KPX Kcommaaccent ydieresis -25
+KPX L T -92
+KPX L Tcaron -92
+KPX L Tcommaaccent -92
+KPX L V -100
+KPX L W -74
+KPX L Y -100
+KPX L Yacute -100
+KPX L Ydieresis -100
+KPX L quoteright -92
+KPX L y -55
+KPX L yacute -55
+KPX L ydieresis -55
+KPX Lacute T -92
+KPX Lacute Tcaron -92
+KPX Lacute Tcommaaccent -92
+KPX Lacute V -100
+KPX Lacute W -74
+KPX Lacute Y -100
+KPX Lacute Yacute -100
+KPX Lacute Ydieresis -100
+KPX Lacute quoteright -92
+KPX Lacute y -55
+KPX Lacute yacute -55
+KPX Lacute ydieresis -55
+KPX Lcaron quoteright -92
+KPX Lcaron y -55
+KPX Lcaron yacute -55
+KPX Lcaron ydieresis -55
+KPX Lcommaaccent T -92
+KPX Lcommaaccent Tcaron -92
+KPX Lcommaaccent Tcommaaccent -92
+KPX Lcommaaccent V -100
+KPX Lcommaaccent W -74
+KPX Lcommaaccent Y -100
+KPX Lcommaaccent Yacute -100
+KPX Lcommaaccent Ydieresis -100
+KPX Lcommaaccent quoteright -92
+KPX Lcommaaccent y -55
+KPX Lcommaaccent yacute -55
+KPX Lcommaaccent ydieresis -55
+KPX Lslash T -92
+KPX Lslash Tcaron -92
+KPX Lslash Tcommaaccent -92
+KPX Lslash V -100
+KPX Lslash W -74
+KPX Lslash Y -100
+KPX Lslash Yacute -100
+KPX Lslash Ydieresis -100
+KPX Lslash quoteright -92
+KPX Lslash y -55
+KPX Lslash yacute -55
+KPX Lslash ydieresis -55
+KPX N A -35
+KPX N Aacute -35
+KPX N Abreve -35
+KPX N Acircumflex -35
+KPX N Adieresis -35
+KPX N Agrave -35
+KPX N Amacron -35
+KPX N Aogonek -35
+KPX N Aring -35
+KPX N Atilde -35
+KPX Nacute A -35
+KPX Nacute Aacute -35
+KPX Nacute Abreve -35
+KPX Nacute Acircumflex -35
+KPX Nacute Adieresis -35
+KPX Nacute Agrave -35
+KPX Nacute Amacron -35
+KPX Nacute Aogonek -35
+KPX Nacute Aring -35
+KPX Nacute Atilde -35
+KPX Ncaron A -35
+KPX Ncaron Aacute -35
+KPX Ncaron Abreve -35
+KPX Ncaron Acircumflex -35
+KPX Ncaron Adieresis -35
+KPX Ncaron Agrave -35
+KPX Ncaron Amacron -35
+KPX Ncaron Aogonek -35
+KPX Ncaron Aring -35
+KPX Ncaron Atilde -35
+KPX Ncommaaccent A -35
+KPX Ncommaaccent Aacute -35
+KPX Ncommaaccent Abreve -35
+KPX Ncommaaccent Acircumflex -35
+KPX Ncommaaccent Adieresis -35
+KPX Ncommaaccent Agrave -35
+KPX Ncommaaccent Amacron -35
+KPX Ncommaaccent Aogonek -35
+KPX Ncommaaccent Aring -35
+KPX Ncommaaccent Atilde -35
+KPX Ntilde A -35
+KPX Ntilde Aacute -35
+KPX Ntilde Abreve -35
+KPX Ntilde Acircumflex -35
+KPX Ntilde Adieresis -35
+KPX Ntilde Agrave -35
+KPX Ntilde Amacron -35
+KPX Ntilde Aogonek -35
+KPX Ntilde Aring -35
+KPX Ntilde Atilde -35
+KPX O A -35
+KPX O Aacute -35
+KPX O Abreve -35
+KPX O Acircumflex -35
+KPX O Adieresis -35
+KPX O Agrave -35
+KPX O Amacron -35
+KPX O Aogonek -35
+KPX O Aring -35
+KPX O Atilde -35
+KPX O T -40
+KPX O Tcaron -40
+KPX O Tcommaaccent -40
+KPX O V -50
+KPX O W -35
+KPX O X -40
+KPX O Y -50
+KPX O Yacute -50
+KPX O Ydieresis -50
+KPX Oacute A -35
+KPX Oacute Aacute -35
+KPX Oacute Abreve -35
+KPX Oacute Acircumflex -35
+KPX Oacute Adieresis -35
+KPX Oacute Agrave -35
+KPX Oacute Amacron -35
+KPX Oacute Aogonek -35
+KPX Oacute Aring -35
+KPX Oacute Atilde -35
+KPX Oacute T -40
+KPX Oacute Tcaron -40
+KPX Oacute Tcommaaccent -40
+KPX Oacute V -50
+KPX Oacute W -35
+KPX Oacute X -40
+KPX Oacute Y -50
+KPX Oacute Yacute -50
+KPX Oacute Ydieresis -50
+KPX Ocircumflex A -35
+KPX Ocircumflex Aacute -35
+KPX Ocircumflex Abreve -35
+KPX Ocircumflex Acircumflex -35
+KPX Ocircumflex Adieresis -35
+KPX Ocircumflex Agrave -35
+KPX Ocircumflex Amacron -35
+KPX Ocircumflex Aogonek -35
+KPX Ocircumflex Aring -35
+KPX Ocircumflex Atilde -35
+KPX Ocircumflex T -40
+KPX Ocircumflex Tcaron -40
+KPX Ocircumflex Tcommaaccent -40
+KPX Ocircumflex V -50
+KPX Ocircumflex W -35
+KPX Ocircumflex X -40
+KPX Ocircumflex Y -50
+KPX Ocircumflex Yacute -50
+KPX Ocircumflex Ydieresis -50
+KPX Odieresis A -35
+KPX Odieresis Aacute -35
+KPX Odieresis Abreve -35
+KPX Odieresis Acircumflex -35
+KPX Odieresis Adieresis -35
+KPX Odieresis Agrave -35
+KPX Odieresis Amacron -35
+KPX Odieresis Aogonek -35
+KPX Odieresis Aring -35
+KPX Odieresis Atilde -35
+KPX Odieresis T -40
+KPX Odieresis Tcaron -40
+KPX Odieresis Tcommaaccent -40
+KPX Odieresis V -50
+KPX Odieresis W -35
+KPX Odieresis X -40
+KPX Odieresis Y -50
+KPX Odieresis Yacute -50
+KPX Odieresis Ydieresis -50
+KPX Ograve A -35
+KPX Ograve Aacute -35
+KPX Ograve Abreve -35
+KPX Ograve Acircumflex -35
+KPX Ograve Adieresis -35
+KPX Ograve Agrave -35
+KPX Ograve Amacron -35
+KPX Ograve Aogonek -35
+KPX Ograve Aring -35
+KPX Ograve Atilde -35
+KPX Ograve T -40
+KPX Ograve Tcaron -40
+KPX Ograve Tcommaaccent -40
+KPX Ograve V -50
+KPX Ograve W -35
+KPX Ograve X -40
+KPX Ograve Y -50
+KPX Ograve Yacute -50
+KPX Ograve Ydieresis -50
+KPX Ohungarumlaut A -35
+KPX Ohungarumlaut Aacute -35
+KPX Ohungarumlaut Abreve -35
+KPX Ohungarumlaut Acircumflex -35
+KPX Ohungarumlaut Adieresis -35
+KPX Ohungarumlaut Agrave -35
+KPX Ohungarumlaut Amacron -35
+KPX Ohungarumlaut Aogonek -35
+KPX Ohungarumlaut Aring -35
+KPX Ohungarumlaut Atilde -35
+KPX Ohungarumlaut T -40
+KPX Ohungarumlaut Tcaron -40
+KPX Ohungarumlaut Tcommaaccent -40
+KPX Ohungarumlaut V -50
+KPX Ohungarumlaut W -35
+KPX Ohungarumlaut X -40
+KPX Ohungarumlaut Y -50
+KPX Ohungarumlaut Yacute -50
+KPX Ohungarumlaut Ydieresis -50
+KPX Omacron A -35
+KPX Omacron Aacute -35
+KPX Omacron Abreve -35
+KPX Omacron Acircumflex -35
+KPX Omacron Adieresis -35
+KPX Omacron Agrave -35
+KPX Omacron Amacron -35
+KPX Omacron Aogonek -35
+KPX Omacron Aring -35
+KPX Omacron Atilde -35
+KPX Omacron T -40
+KPX Omacron Tcaron -40
+KPX Omacron Tcommaaccent -40
+KPX Omacron V -50
+KPX Omacron W -35
+KPX Omacron X -40
+KPX Omacron Y -50
+KPX Omacron Yacute -50
+KPX Omacron Ydieresis -50
+KPX Oslash A -35
+KPX Oslash Aacute -35
+KPX Oslash Abreve -35
+KPX Oslash Acircumflex -35
+KPX Oslash Adieresis -35
+KPX Oslash Agrave -35
+KPX Oslash Amacron -35
+KPX Oslash Aogonek -35
+KPX Oslash Aring -35
+KPX Oslash Atilde -35
+KPX Oslash T -40
+KPX Oslash Tcaron -40
+KPX Oslash Tcommaaccent -40
+KPX Oslash V -50
+KPX Oslash W -35
+KPX Oslash X -40
+KPX Oslash Y -50
+KPX Oslash Yacute -50
+KPX Oslash Ydieresis -50
+KPX Otilde A -35
+KPX Otilde Aacute -35
+KPX Otilde Abreve -35
+KPX Otilde Acircumflex -35
+KPX Otilde Adieresis -35
+KPX Otilde Agrave -35
+KPX Otilde Amacron -35
+KPX Otilde Aogonek -35
+KPX Otilde Aring -35
+KPX Otilde Atilde -35
+KPX Otilde T -40
+KPX Otilde Tcaron -40
+KPX Otilde Tcommaaccent -40
+KPX Otilde V -50
+KPX Otilde W -35
+KPX Otilde X -40
+KPX Otilde Y -50
+KPX Otilde Yacute -50
+KPX Otilde Ydieresis -50
+KPX P A -92
+KPX P Aacute -92
+KPX P Abreve -92
+KPX P Acircumflex -92
+KPX P Adieresis -92
+KPX P Agrave -92
+KPX P Amacron -92
+KPX P Aogonek -92
+KPX P Aring -92
+KPX P Atilde -92
+KPX P a -15
+KPX P aacute -15
+KPX P abreve -15
+KPX P acircumflex -15
+KPX P adieresis -15
+KPX P agrave -15
+KPX P amacron -15
+KPX P aogonek -15
+KPX P aring -15
+KPX P atilde -15
+KPX P comma -111
+KPX P period -111
+KPX Q U -10
+KPX Q Uacute -10
+KPX Q Ucircumflex -10
+KPX Q Udieresis -10
+KPX Q Ugrave -10
+KPX Q Uhungarumlaut -10
+KPX Q Umacron -10
+KPX Q Uogonek -10
+KPX Q Uring -10
+KPX R O -40
+KPX R Oacute -40
+KPX R Ocircumflex -40
+KPX R Odieresis -40
+KPX R Ograve -40
+KPX R Ohungarumlaut -40
+KPX R Omacron -40
+KPX R Oslash -40
+KPX R Otilde -40
+KPX R T -60
+KPX R Tcaron -60
+KPX R Tcommaaccent -60
+KPX R U -40
+KPX R Uacute -40
+KPX R Ucircumflex -40
+KPX R Udieresis -40
+KPX R Ugrave -40
+KPX R Uhungarumlaut -40
+KPX R Umacron -40
+KPX R Uogonek -40
+KPX R Uring -40
+KPX R V -80
+KPX R W -55
+KPX R Y -65
+KPX R Yacute -65
+KPX R Ydieresis -65
+KPX Racute O -40
+KPX Racute Oacute -40
+KPX Racute Ocircumflex -40
+KPX Racute Odieresis -40
+KPX Racute Ograve -40
+KPX Racute Ohungarumlaut -40
+KPX Racute Omacron -40
+KPX Racute Oslash -40
+KPX Racute Otilde -40
+KPX Racute T -60
+KPX Racute Tcaron -60
+KPX Racute Tcommaaccent -60
+KPX Racute U -40
+KPX Racute Uacute -40
+KPX Racute Ucircumflex -40
+KPX Racute Udieresis -40
+KPX Racute Ugrave -40
+KPX Racute Uhungarumlaut -40
+KPX Racute Umacron -40
+KPX Racute Uogonek -40
+KPX Racute Uring -40
+KPX Racute V -80
+KPX Racute W -55
+KPX Racute Y -65
+KPX Racute Yacute -65
+KPX Racute Ydieresis -65
+KPX Rcaron O -40
+KPX Rcaron Oacute -40
+KPX Rcaron Ocircumflex -40
+KPX Rcaron Odieresis -40
+KPX Rcaron Ograve -40
+KPX Rcaron Ohungarumlaut -40
+KPX Rcaron Omacron -40
+KPX Rcaron Oslash -40
+KPX Rcaron Otilde -40
+KPX Rcaron T -60
+KPX Rcaron Tcaron -60
+KPX Rcaron Tcommaaccent -60
+KPX Rcaron U -40
+KPX Rcaron Uacute -40
+KPX Rcaron Ucircumflex -40
+KPX Rcaron Udieresis -40
+KPX Rcaron Ugrave -40
+KPX Rcaron Uhungarumlaut -40
+KPX Rcaron Umacron -40
+KPX Rcaron Uogonek -40
+KPX Rcaron Uring -40
+KPX Rcaron V -80
+KPX Rcaron W -55
+KPX Rcaron Y -65
+KPX Rcaron Yacute -65
+KPX Rcaron Ydieresis -65
+KPX Rcommaaccent O -40
+KPX Rcommaaccent Oacute -40
+KPX Rcommaaccent Ocircumflex -40
+KPX Rcommaaccent Odieresis -40
+KPX Rcommaaccent Ograve -40
+KPX Rcommaaccent Ohungarumlaut -40
+KPX Rcommaaccent Omacron -40
+KPX Rcommaaccent Oslash -40
+KPX Rcommaaccent Otilde -40
+KPX Rcommaaccent T -60
+KPX Rcommaaccent Tcaron -60
+KPX Rcommaaccent Tcommaaccent -60
+KPX Rcommaaccent U -40
+KPX Rcommaaccent Uacute -40
+KPX Rcommaaccent Ucircumflex -40
+KPX Rcommaaccent Udieresis -40
+KPX Rcommaaccent Ugrave -40
+KPX Rcommaaccent Uhungarumlaut -40
+KPX Rcommaaccent Umacron -40
+KPX Rcommaaccent Uogonek -40
+KPX Rcommaaccent Uring -40
+KPX Rcommaaccent V -80
+KPX Rcommaaccent W -55
+KPX Rcommaaccent Y -65
+KPX Rcommaaccent Yacute -65
+KPX Rcommaaccent Ydieresis -65
+KPX T A -93
+KPX T Aacute -93
+KPX T Abreve -93
+KPX T Acircumflex -93
+KPX T Adieresis -93
+KPX T Agrave -93
+KPX T Amacron -93
+KPX T Aogonek -93
+KPX T Aring -93
+KPX T Atilde -93
+KPX T O -18
+KPX T Oacute -18
+KPX T Ocircumflex -18
+KPX T Odieresis -18
+KPX T Ograve -18
+KPX T Ohungarumlaut -18
+KPX T Omacron -18
+KPX T Oslash -18
+KPX T Otilde -18
+KPX T a -80
+KPX T aacute -80
+KPX T abreve -80
+KPX T acircumflex -80
+KPX T adieresis -40
+KPX T agrave -40
+KPX T amacron -40
+KPX T aogonek -80
+KPX T aring -80
+KPX T atilde -40
+KPX T colon -50
+KPX T comma -74
+KPX T e -70
+KPX T eacute -70
+KPX T ecaron -70
+KPX T ecircumflex -70
+KPX T edieresis -30
+KPX T edotaccent -70
+KPX T egrave -70
+KPX T emacron -30
+KPX T eogonek -70
+KPX T hyphen -92
+KPX T i -35
+KPX T iacute -35
+KPX T iogonek -35
+KPX T o -80
+KPX T oacute -80
+KPX T ocircumflex -80
+KPX T odieresis -80
+KPX T ograve -80
+KPX T ohungarumlaut -80
+KPX T omacron -80
+KPX T oslash -80
+KPX T otilde -80
+KPX T period -74
+KPX T r -35
+KPX T racute -35
+KPX T rcaron -35
+KPX T rcommaaccent -35
+KPX T semicolon -55
+KPX T u -45
+KPX T uacute -45
+KPX T ucircumflex -45
+KPX T udieresis -45
+KPX T ugrave -45
+KPX T uhungarumlaut -45
+KPX T umacron -45
+KPX T uogonek -45
+KPX T uring -45
+KPX T w -80
+KPX T y -80
+KPX T yacute -80
+KPX T ydieresis -80
+KPX Tcaron A -93
+KPX Tcaron Aacute -93
+KPX Tcaron Abreve -93
+KPX Tcaron Acircumflex -93
+KPX Tcaron Adieresis -93
+KPX Tcaron Agrave -93
+KPX Tcaron Amacron -93
+KPX Tcaron Aogonek -93
+KPX Tcaron Aring -93
+KPX Tcaron Atilde -93
+KPX Tcaron O -18
+KPX Tcaron Oacute -18
+KPX Tcaron Ocircumflex -18
+KPX Tcaron Odieresis -18
+KPX Tcaron Ograve -18
+KPX Tcaron Ohungarumlaut -18
+KPX Tcaron Omacron -18
+KPX Tcaron Oslash -18
+KPX Tcaron Otilde -18
+KPX Tcaron a -80
+KPX Tcaron aacute -80
+KPX Tcaron abreve -80
+KPX Tcaron acircumflex -80
+KPX Tcaron adieresis -40
+KPX Tcaron agrave -40
+KPX Tcaron amacron -40
+KPX Tcaron aogonek -80
+KPX Tcaron aring -80
+KPX Tcaron atilde -40
+KPX Tcaron colon -50
+KPX Tcaron comma -74
+KPX Tcaron e -70
+KPX Tcaron eacute -70
+KPX Tcaron ecaron -70
+KPX Tcaron ecircumflex -30
+KPX Tcaron edieresis -30
+KPX Tcaron edotaccent -70
+KPX Tcaron egrave -70
+KPX Tcaron emacron -30
+KPX Tcaron eogonek -70
+KPX Tcaron hyphen -92
+KPX Tcaron i -35
+KPX Tcaron iacute -35
+KPX Tcaron iogonek -35
+KPX Tcaron o -80
+KPX Tcaron oacute -80
+KPX Tcaron ocircumflex -80
+KPX Tcaron odieresis -80
+KPX Tcaron ograve -80
+KPX Tcaron ohungarumlaut -80
+KPX Tcaron omacron -80
+KPX Tcaron oslash -80
+KPX Tcaron otilde -80
+KPX Tcaron period -74
+KPX Tcaron r -35
+KPX Tcaron racute -35
+KPX Tcaron rcaron -35
+KPX Tcaron rcommaaccent -35
+KPX Tcaron semicolon -55
+KPX Tcaron u -45
+KPX Tcaron uacute -45
+KPX Tcaron ucircumflex -45
+KPX Tcaron udieresis -45
+KPX Tcaron ugrave -45
+KPX Tcaron uhungarumlaut -45
+KPX Tcaron umacron -45
+KPX Tcaron uogonek -45
+KPX Tcaron uring -45
+KPX Tcaron w -80
+KPX Tcaron y -80
+KPX Tcaron yacute -80
+KPX Tcaron ydieresis -80
+KPX Tcommaaccent A -93
+KPX Tcommaaccent Aacute -93
+KPX Tcommaaccent Abreve -93
+KPX Tcommaaccent Acircumflex -93
+KPX Tcommaaccent Adieresis -93
+KPX Tcommaaccent Agrave -93
+KPX Tcommaaccent Amacron -93
+KPX Tcommaaccent Aogonek -93
+KPX Tcommaaccent Aring -93
+KPX Tcommaaccent Atilde -93
+KPX Tcommaaccent O -18
+KPX Tcommaaccent Oacute -18
+KPX Tcommaaccent Ocircumflex -18
+KPX Tcommaaccent Odieresis -18
+KPX Tcommaaccent Ograve -18
+KPX Tcommaaccent Ohungarumlaut -18
+KPX Tcommaaccent Omacron -18
+KPX Tcommaaccent Oslash -18
+KPX Tcommaaccent Otilde -18
+KPX Tcommaaccent a -80
+KPX Tcommaaccent aacute -80
+KPX Tcommaaccent abreve -80
+KPX Tcommaaccent acircumflex -80
+KPX Tcommaaccent adieresis -40
+KPX Tcommaaccent agrave -40
+KPX Tcommaaccent amacron -40
+KPX Tcommaaccent aogonek -80
+KPX Tcommaaccent aring -80
+KPX Tcommaaccent atilde -40
+KPX Tcommaaccent colon -50
+KPX Tcommaaccent comma -74
+KPX Tcommaaccent e -70
+KPX Tcommaaccent eacute -70
+KPX Tcommaaccent ecaron -70
+KPX Tcommaaccent ecircumflex -30
+KPX Tcommaaccent edieresis -30
+KPX Tcommaaccent edotaccent -70
+KPX Tcommaaccent egrave -30
+KPX Tcommaaccent emacron -70
+KPX Tcommaaccent eogonek -70
+KPX Tcommaaccent hyphen -92
+KPX Tcommaaccent i -35
+KPX Tcommaaccent iacute -35
+KPX Tcommaaccent iogonek -35
+KPX Tcommaaccent o -80
+KPX Tcommaaccent oacute -80
+KPX Tcommaaccent ocircumflex -80
+KPX Tcommaaccent odieresis -80
+KPX Tcommaaccent ograve -80
+KPX Tcommaaccent ohungarumlaut -80
+KPX Tcommaaccent omacron -80
+KPX Tcommaaccent oslash -80
+KPX Tcommaaccent otilde -80
+KPX Tcommaaccent period -74
+KPX Tcommaaccent r -35
+KPX Tcommaaccent racute -35
+KPX Tcommaaccent rcaron -35
+KPX Tcommaaccent rcommaaccent -35
+KPX Tcommaaccent semicolon -55
+KPX Tcommaaccent u -45
+KPX Tcommaaccent uacute -45
+KPX Tcommaaccent ucircumflex -45
+KPX Tcommaaccent udieresis -45
+KPX Tcommaaccent ugrave -45
+KPX Tcommaaccent uhungarumlaut -45
+KPX Tcommaaccent umacron -45
+KPX Tcommaaccent uogonek -45
+KPX Tcommaaccent uring -45
+KPX Tcommaaccent w -80
+KPX Tcommaaccent y -80
+KPX Tcommaaccent yacute -80
+KPX Tcommaaccent ydieresis -80
+KPX U A -40
+KPX U Aacute -40
+KPX U Abreve -40
+KPX U Acircumflex -40
+KPX U Adieresis -40
+KPX U Agrave -40
+KPX U Amacron -40
+KPX U Aogonek -40
+KPX U Aring -40
+KPX U Atilde -40
+KPX Uacute A -40
+KPX Uacute Aacute -40
+KPX Uacute Abreve -40
+KPX Uacute Acircumflex -40
+KPX Uacute Adieresis -40
+KPX Uacute Agrave -40
+KPX Uacute Amacron -40
+KPX Uacute Aogonek -40
+KPX Uacute Aring -40
+KPX Uacute Atilde -40
+KPX Ucircumflex A -40
+KPX Ucircumflex Aacute -40
+KPX Ucircumflex Abreve -40
+KPX Ucircumflex Acircumflex -40
+KPX Ucircumflex Adieresis -40
+KPX Ucircumflex Agrave -40
+KPX Ucircumflex Amacron -40
+KPX Ucircumflex Aogonek -40
+KPX Ucircumflex Aring -40
+KPX Ucircumflex Atilde -40
+KPX Udieresis A -40
+KPX Udieresis Aacute -40
+KPX Udieresis Abreve -40
+KPX Udieresis Acircumflex -40
+KPX Udieresis Adieresis -40
+KPX Udieresis Agrave -40
+KPX Udieresis Amacron -40
+KPX Udieresis Aogonek -40
+KPX Udieresis Aring -40
+KPX Udieresis Atilde -40
+KPX Ugrave A -40
+KPX Ugrave Aacute -40
+KPX Ugrave Abreve -40
+KPX Ugrave Acircumflex -40
+KPX Ugrave Adieresis -40
+KPX Ugrave Agrave -40
+KPX Ugrave Amacron -40
+KPX Ugrave Aogonek -40
+KPX Ugrave Aring -40
+KPX Ugrave Atilde -40
+KPX Uhungarumlaut A -40
+KPX Uhungarumlaut Aacute -40
+KPX Uhungarumlaut Abreve -40
+KPX Uhungarumlaut Acircumflex -40
+KPX Uhungarumlaut Adieresis -40
+KPX Uhungarumlaut Agrave -40
+KPX Uhungarumlaut Amacron -40
+KPX Uhungarumlaut Aogonek -40
+KPX Uhungarumlaut Aring -40
+KPX Uhungarumlaut Atilde -40
+KPX Umacron A -40
+KPX Umacron Aacute -40
+KPX Umacron Abreve -40
+KPX Umacron Acircumflex -40
+KPX Umacron Adieresis -40
+KPX Umacron Agrave -40
+KPX Umacron Amacron -40
+KPX Umacron Aogonek -40
+KPX Umacron Aring -40
+KPX Umacron Atilde -40
+KPX Uogonek A -40
+KPX Uogonek Aacute -40
+KPX Uogonek Abreve -40
+KPX Uogonek Acircumflex -40
+KPX Uogonek Adieresis -40
+KPX Uogonek Agrave -40
+KPX Uogonek Amacron -40
+KPX Uogonek Aogonek -40
+KPX Uogonek Aring -40
+KPX Uogonek Atilde -40
+KPX Uring A -40
+KPX Uring Aacute -40
+KPX Uring Abreve -40
+KPX Uring Acircumflex -40
+KPX Uring Adieresis -40
+KPX Uring Agrave -40
+KPX Uring Amacron -40
+KPX Uring Aogonek -40
+KPX Uring Aring -40
+KPX Uring Atilde -40
+KPX V A -135
+KPX V Aacute -135
+KPX V Abreve -135
+KPX V Acircumflex -135
+KPX V Adieresis -135
+KPX V Agrave -135
+KPX V Amacron -135
+KPX V Aogonek -135
+KPX V Aring -135
+KPX V Atilde -135
+KPX V G -15
+KPX V Gbreve -15
+KPX V Gcommaaccent -15
+KPX V O -40
+KPX V Oacute -40
+KPX V Ocircumflex -40
+KPX V Odieresis -40
+KPX V Ograve -40
+KPX V Ohungarumlaut -40
+KPX V Omacron -40
+KPX V Oslash -40
+KPX V Otilde -40
+KPX V a -111
+KPX V aacute -111
+KPX V abreve -111
+KPX V acircumflex -71
+KPX V adieresis -71
+KPX V agrave -71
+KPX V amacron -71
+KPX V aogonek -111
+KPX V aring -111
+KPX V atilde -71
+KPX V colon -74
+KPX V comma -129
+KPX V e -111
+KPX V eacute -111
+KPX V ecaron -71
+KPX V ecircumflex -71
+KPX V edieresis -71
+KPX V edotaccent -111
+KPX V egrave -71
+KPX V emacron -71
+KPX V eogonek -111
+KPX V hyphen -100
+KPX V i -60
+KPX V iacute -60
+KPX V icircumflex -20
+KPX V idieresis -20
+KPX V igrave -20
+KPX V imacron -20
+KPX V iogonek -60
+KPX V o -129
+KPX V oacute -129
+KPX V ocircumflex -129
+KPX V odieresis -89
+KPX V ograve -89
+KPX V ohungarumlaut -129
+KPX V omacron -89
+KPX V oslash -129
+KPX V otilde -89
+KPX V period -129
+KPX V semicolon -74
+KPX V u -75
+KPX V uacute -75
+KPX V ucircumflex -75
+KPX V udieresis -75
+KPX V ugrave -75
+KPX V uhungarumlaut -75
+KPX V umacron -75
+KPX V uogonek -75
+KPX V uring -75
+KPX W A -120
+KPX W Aacute -120
+KPX W Abreve -120
+KPX W Acircumflex -120
+KPX W Adieresis -120
+KPX W Agrave -120
+KPX W Amacron -120
+KPX W Aogonek -120
+KPX W Aring -120
+KPX W Atilde -120
+KPX W O -10
+KPX W Oacute -10
+KPX W Ocircumflex -10
+KPX W Odieresis -10
+KPX W Ograve -10
+KPX W Ohungarumlaut -10
+KPX W Omacron -10
+KPX W Oslash -10
+KPX W Otilde -10
+KPX W a -80
+KPX W aacute -80
+KPX W abreve -80
+KPX W acircumflex -80
+KPX W adieresis -80
+KPX W agrave -80
+KPX W amacron -80
+KPX W aogonek -80
+KPX W aring -80
+KPX W atilde -80
+KPX W colon -37
+KPX W comma -92
+KPX W e -80
+KPX W eacute -80
+KPX W ecaron -80
+KPX W ecircumflex -80
+KPX W edieresis -40
+KPX W edotaccent -80
+KPX W egrave -40
+KPX W emacron -40
+KPX W eogonek -80
+KPX W hyphen -65
+KPX W i -40
+KPX W iacute -40
+KPX W iogonek -40
+KPX W o -80
+KPX W oacute -80
+KPX W ocircumflex -80
+KPX W odieresis -80
+KPX W ograve -80
+KPX W ohungarumlaut -80
+KPX W omacron -80
+KPX W oslash -80
+KPX W otilde -80
+KPX W period -92
+KPX W semicolon -37
+KPX W u -50
+KPX W uacute -50
+KPX W ucircumflex -50
+KPX W udieresis -50
+KPX W ugrave -50
+KPX W uhungarumlaut -50
+KPX W umacron -50
+KPX W uogonek -50
+KPX W uring -50
+KPX W y -73
+KPX W yacute -73
+KPX W ydieresis -73
+KPX Y A -120
+KPX Y Aacute -120
+KPX Y Abreve -120
+KPX Y Acircumflex -120
+KPX Y Adieresis -120
+KPX Y Agrave -120
+KPX Y Amacron -120
+KPX Y Aogonek -120
+KPX Y Aring -120
+KPX Y Atilde -120
+KPX Y O -30
+KPX Y Oacute -30
+KPX Y Ocircumflex -30
+KPX Y Odieresis -30
+KPX Y Ograve -30
+KPX Y Ohungarumlaut -30
+KPX Y Omacron -30
+KPX Y Oslash -30
+KPX Y Otilde -30
+KPX Y a -100
+KPX Y aacute -100
+KPX Y abreve -100
+KPX Y acircumflex -100
+KPX Y adieresis -60
+KPX Y agrave -60
+KPX Y amacron -60
+KPX Y aogonek -100
+KPX Y aring -100
+KPX Y atilde -60
+KPX Y colon -92
+KPX Y comma -129
+KPX Y e -100
+KPX Y eacute -100
+KPX Y ecaron -100
+KPX Y ecircumflex -100
+KPX Y edieresis -60
+KPX Y edotaccent -100
+KPX Y egrave -60
+KPX Y emacron -60
+KPX Y eogonek -100
+KPX Y hyphen -111
+KPX Y i -55
+KPX Y iacute -55
+KPX Y iogonek -55
+KPX Y o -110
+KPX Y oacute -110
+KPX Y ocircumflex -110
+KPX Y odieresis -70
+KPX Y ograve -70
+KPX Y ohungarumlaut -110
+KPX Y omacron -70
+KPX Y oslash -110
+KPX Y otilde -70
+KPX Y period -129
+KPX Y semicolon -92
+KPX Y u -111
+KPX Y uacute -111
+KPX Y ucircumflex -111
+KPX Y udieresis -71
+KPX Y ugrave -71
+KPX Y uhungarumlaut -111
+KPX Y umacron -71
+KPX Y uogonek -111
+KPX Y uring -111
+KPX Yacute A -120
+KPX Yacute Aacute -120
+KPX Yacute Abreve -120
+KPX Yacute Acircumflex -120
+KPX Yacute Adieresis -120
+KPX Yacute Agrave -120
+KPX Yacute Amacron -120
+KPX Yacute Aogonek -120
+KPX Yacute Aring -120
+KPX Yacute Atilde -120
+KPX Yacute O -30
+KPX Yacute Oacute -30
+KPX Yacute Ocircumflex -30
+KPX Yacute Odieresis -30
+KPX Yacute Ograve -30
+KPX Yacute Ohungarumlaut -30
+KPX Yacute Omacron -30
+KPX Yacute Oslash -30
+KPX Yacute Otilde -30
+KPX Yacute a -100
+KPX Yacute aacute -100
+KPX Yacute abreve -100
+KPX Yacute acircumflex -100
+KPX Yacute adieresis -60
+KPX Yacute agrave -60
+KPX Yacute amacron -60
+KPX Yacute aogonek -100
+KPX Yacute aring -100
+KPX Yacute atilde -60
+KPX Yacute colon -92
+KPX Yacute comma -129
+KPX Yacute e -100
+KPX Yacute eacute -100
+KPX Yacute ecaron -100
+KPX Yacute ecircumflex -100
+KPX Yacute edieresis -60
+KPX Yacute edotaccent -100
+KPX Yacute egrave -60
+KPX Yacute emacron -60
+KPX Yacute eogonek -100
+KPX Yacute hyphen -111
+KPX Yacute i -55
+KPX Yacute iacute -55
+KPX Yacute iogonek -55
+KPX Yacute o -110
+KPX Yacute oacute -110
+KPX Yacute ocircumflex -110
+KPX Yacute odieresis -70
+KPX Yacute ograve -70
+KPX Yacute ohungarumlaut -110
+KPX Yacute omacron -70
+KPX Yacute oslash -110
+KPX Yacute otilde -70
+KPX Yacute period -129
+KPX Yacute semicolon -92
+KPX Yacute u -111
+KPX Yacute uacute -111
+KPX Yacute ucircumflex -111
+KPX Yacute udieresis -71
+KPX Yacute ugrave -71
+KPX Yacute uhungarumlaut -111
+KPX Yacute umacron -71
+KPX Yacute uogonek -111
+KPX Yacute uring -111
+KPX Ydieresis A -120
+KPX Ydieresis Aacute -120
+KPX Ydieresis Abreve -120
+KPX Ydieresis Acircumflex -120
+KPX Ydieresis Adieresis -120
+KPX Ydieresis Agrave -120
+KPX Ydieresis Amacron -120
+KPX Ydieresis Aogonek -120
+KPX Ydieresis Aring -120
+KPX Ydieresis Atilde -120
+KPX Ydieresis O -30
+KPX Ydieresis Oacute -30
+KPX Ydieresis Ocircumflex -30
+KPX Ydieresis Odieresis -30
+KPX Ydieresis Ograve -30
+KPX Ydieresis Ohungarumlaut -30
+KPX Ydieresis Omacron -30
+KPX Ydieresis Oslash -30
+KPX Ydieresis Otilde -30
+KPX Ydieresis a -100
+KPX Ydieresis aacute -100
+KPX Ydieresis abreve -100
+KPX Ydieresis acircumflex -100
+KPX Ydieresis adieresis -60
+KPX Ydieresis agrave -60
+KPX Ydieresis amacron -60
+KPX Ydieresis aogonek -100
+KPX Ydieresis aring -100
+KPX Ydieresis atilde -100
+KPX Ydieresis colon -92
+KPX Ydieresis comma -129
+KPX Ydieresis e -100
+KPX Ydieresis eacute -100
+KPX Ydieresis ecaron -100
+KPX Ydieresis ecircumflex -100
+KPX Ydieresis edieresis -60
+KPX Ydieresis edotaccent -100
+KPX Ydieresis egrave -60
+KPX Ydieresis emacron -60
+KPX Ydieresis eogonek -100
+KPX Ydieresis hyphen -111
+KPX Ydieresis i -55
+KPX Ydieresis iacute -55
+KPX Ydieresis iogonek -55
+KPX Ydieresis o -110
+KPX Ydieresis oacute -110
+KPX Ydieresis ocircumflex -110
+KPX Ydieresis odieresis -70
+KPX Ydieresis ograve -70
+KPX Ydieresis ohungarumlaut -110
+KPX Ydieresis omacron -70
+KPX Ydieresis oslash -110
+KPX Ydieresis otilde -70
+KPX Ydieresis period -129
+KPX Ydieresis semicolon -92
+KPX Ydieresis u -111
+KPX Ydieresis uacute -111
+KPX Ydieresis ucircumflex -111
+KPX Ydieresis udieresis -71
+KPX Ydieresis ugrave -71
+KPX Ydieresis uhungarumlaut -111
+KPX Ydieresis umacron -71
+KPX Ydieresis uogonek -111
+KPX Ydieresis uring -111
+KPX a v -20
+KPX a w -15
+KPX aacute v -20
+KPX aacute w -15
+KPX abreve v -20
+KPX abreve w -15
+KPX acircumflex v -20
+KPX acircumflex w -15
+KPX adieresis v -20
+KPX adieresis w -15
+KPX agrave v -20
+KPX agrave w -15
+KPX amacron v -20
+KPX amacron w -15
+KPX aogonek v -20
+KPX aogonek w -15
+KPX aring v -20
+KPX aring w -15
+KPX atilde v -20
+KPX atilde w -15
+KPX b period -40
+KPX b u -20
+KPX b uacute -20
+KPX b ucircumflex -20
+KPX b udieresis -20
+KPX b ugrave -20
+KPX b uhungarumlaut -20
+KPX b umacron -20
+KPX b uogonek -20
+KPX b uring -20
+KPX b v -15
+KPX c y -15
+KPX c yacute -15
+KPX c ydieresis -15
+KPX cacute y -15
+KPX cacute yacute -15
+KPX cacute ydieresis -15
+KPX ccaron y -15
+KPX ccaron yacute -15
+KPX ccaron ydieresis -15
+KPX ccedilla y -15
+KPX ccedilla yacute -15
+KPX ccedilla ydieresis -15
+KPX comma quotedblright -70
+KPX comma quoteright -70
+KPX e g -15
+KPX e gbreve -15
+KPX e gcommaaccent -15
+KPX e v -25
+KPX e w -25
+KPX e x -15
+KPX e y -15
+KPX e yacute -15
+KPX e ydieresis -15
+KPX eacute g -15
+KPX eacute gbreve -15
+KPX eacute gcommaaccent -15
+KPX eacute v -25
+KPX eacute w -25
+KPX eacute x -15
+KPX eacute y -15
+KPX eacute yacute -15
+KPX eacute ydieresis -15
+KPX ecaron g -15
+KPX ecaron gbreve -15
+KPX ecaron gcommaaccent -15
+KPX ecaron v -25
+KPX ecaron w -25
+KPX ecaron x -15
+KPX ecaron y -15
+KPX ecaron yacute -15
+KPX ecaron ydieresis -15
+KPX ecircumflex g -15
+KPX ecircumflex gbreve -15
+KPX ecircumflex gcommaaccent -15
+KPX ecircumflex v -25
+KPX ecircumflex w -25
+KPX ecircumflex x -15
+KPX ecircumflex y -15
+KPX ecircumflex yacute -15
+KPX ecircumflex ydieresis -15
+KPX edieresis g -15
+KPX edieresis gbreve -15
+KPX edieresis gcommaaccent -15
+KPX edieresis v -25
+KPX edieresis w -25
+KPX edieresis x -15
+KPX edieresis y -15
+KPX edieresis yacute -15
+KPX edieresis ydieresis -15
+KPX edotaccent g -15
+KPX edotaccent gbreve -15
+KPX edotaccent gcommaaccent -15
+KPX edotaccent v -25
+KPX edotaccent w -25
+KPX edotaccent x -15
+KPX edotaccent y -15
+KPX edotaccent yacute -15
+KPX edotaccent ydieresis -15
+KPX egrave g -15
+KPX egrave gbreve -15
+KPX egrave gcommaaccent -15
+KPX egrave v -25
+KPX egrave w -25
+KPX egrave x -15
+KPX egrave y -15
+KPX egrave yacute -15
+KPX egrave ydieresis -15
+KPX emacron g -15
+KPX emacron gbreve -15
+KPX emacron gcommaaccent -15
+KPX emacron v -25
+KPX emacron w -25
+KPX emacron x -15
+KPX emacron y -15
+KPX emacron yacute -15
+KPX emacron ydieresis -15
+KPX eogonek g -15
+KPX eogonek gbreve -15
+KPX eogonek gcommaaccent -15
+KPX eogonek v -25
+KPX eogonek w -25
+KPX eogonek x -15
+KPX eogonek y -15
+KPX eogonek yacute -15
+KPX eogonek ydieresis -15
+KPX f a -10
+KPX f aacute -10
+KPX f abreve -10
+KPX f acircumflex -10
+KPX f adieresis -10
+KPX f agrave -10
+KPX f amacron -10
+KPX f aogonek -10
+KPX f aring -10
+KPX f atilde -10
+KPX f dotlessi -50
+KPX f f -25
+KPX f i -20
+KPX f iacute -20
+KPX f quoteright 55
+KPX g a -5
+KPX g aacute -5
+KPX g abreve -5
+KPX g acircumflex -5
+KPX g adieresis -5
+KPX g agrave -5
+KPX g amacron -5
+KPX g aogonek -5
+KPX g aring -5
+KPX g atilde -5
+KPX gbreve a -5
+KPX gbreve aacute -5
+KPX gbreve abreve -5
+KPX gbreve acircumflex -5
+KPX gbreve adieresis -5
+KPX gbreve agrave -5
+KPX gbreve amacron -5
+KPX gbreve aogonek -5
+KPX gbreve aring -5
+KPX gbreve atilde -5
+KPX gcommaaccent a -5
+KPX gcommaaccent aacute -5
+KPX gcommaaccent abreve -5
+KPX gcommaaccent acircumflex -5
+KPX gcommaaccent adieresis -5
+KPX gcommaaccent agrave -5
+KPX gcommaaccent amacron -5
+KPX gcommaaccent aogonek -5
+KPX gcommaaccent aring -5
+KPX gcommaaccent atilde -5
+KPX h y -5
+KPX h yacute -5
+KPX h ydieresis -5
+KPX i v -25
+KPX iacute v -25
+KPX icircumflex v -25
+KPX idieresis v -25
+KPX igrave v -25
+KPX imacron v -25
+KPX iogonek v -25
+KPX k e -10
+KPX k eacute -10
+KPX k ecaron -10
+KPX k ecircumflex -10
+KPX k edieresis -10
+KPX k edotaccent -10
+KPX k egrave -10
+KPX k emacron -10
+KPX k eogonek -10
+KPX k o -10
+KPX k oacute -10
+KPX k ocircumflex -10
+KPX k odieresis -10
+KPX k ograve -10
+KPX k ohungarumlaut -10
+KPX k omacron -10
+KPX k oslash -10
+KPX k otilde -10
+KPX k y -15
+KPX k yacute -15
+KPX k ydieresis -15
+KPX kcommaaccent e -10
+KPX kcommaaccent eacute -10
+KPX kcommaaccent ecaron -10
+KPX kcommaaccent ecircumflex -10
+KPX kcommaaccent edieresis -10
+KPX kcommaaccent edotaccent -10
+KPX kcommaaccent egrave -10
+KPX kcommaaccent emacron -10
+KPX kcommaaccent eogonek -10
+KPX kcommaaccent o -10
+KPX kcommaaccent oacute -10
+KPX kcommaaccent ocircumflex -10
+KPX kcommaaccent odieresis -10
+KPX kcommaaccent ograve -10
+KPX kcommaaccent ohungarumlaut -10
+KPX kcommaaccent omacron -10
+KPX kcommaaccent oslash -10
+KPX kcommaaccent otilde -10
+KPX kcommaaccent y -15
+KPX kcommaaccent yacute -15
+KPX kcommaaccent ydieresis -15
+KPX l w -10
+KPX lacute w -10
+KPX lcommaaccent w -10
+KPX lslash w -10
+KPX n v -40
+KPX n y -15
+KPX n yacute -15
+KPX n ydieresis -15
+KPX nacute v -40
+KPX nacute y -15
+KPX nacute yacute -15
+KPX nacute ydieresis -15
+KPX ncaron v -40
+KPX ncaron y -15
+KPX ncaron yacute -15
+KPX ncaron ydieresis -15
+KPX ncommaaccent v -40
+KPX ncommaaccent y -15
+KPX ncommaaccent yacute -15
+KPX ncommaaccent ydieresis -15
+KPX ntilde v -40
+KPX ntilde y -15
+KPX ntilde yacute -15
+KPX ntilde ydieresis -15
+KPX o v -15
+KPX o w -25
+KPX o y -10
+KPX o yacute -10
+KPX o ydieresis -10
+KPX oacute v -15
+KPX oacute w -25
+KPX oacute y -10
+KPX oacute yacute -10
+KPX oacute ydieresis -10
+KPX ocircumflex v -15
+KPX ocircumflex w -25
+KPX ocircumflex y -10
+KPX ocircumflex yacute -10
+KPX ocircumflex ydieresis -10
+KPX odieresis v -15
+KPX odieresis w -25
+KPX odieresis y -10
+KPX odieresis yacute -10
+KPX odieresis ydieresis -10
+KPX ograve v -15
+KPX ograve w -25
+KPX ograve y -10
+KPX ograve yacute -10
+KPX ograve ydieresis -10
+KPX ohungarumlaut v -15
+KPX ohungarumlaut w -25
+KPX ohungarumlaut y -10
+KPX ohungarumlaut yacute -10
+KPX ohungarumlaut ydieresis -10
+KPX omacron v -15
+KPX omacron w -25
+KPX omacron y -10
+KPX omacron yacute -10
+KPX omacron ydieresis -10
+KPX oslash v -15
+KPX oslash w -25
+KPX oslash y -10
+KPX oslash yacute -10
+KPX oslash ydieresis -10
+KPX otilde v -15
+KPX otilde w -25
+KPX otilde y -10
+KPX otilde yacute -10
+KPX otilde ydieresis -10
+KPX p y -10
+KPX p yacute -10
+KPX p ydieresis -10
+KPX period quotedblright -70
+KPX period quoteright -70
+KPX quotedblleft A -80
+KPX quotedblleft Aacute -80
+KPX quotedblleft Abreve -80
+KPX quotedblleft Acircumflex -80
+KPX quotedblleft Adieresis -80
+KPX quotedblleft Agrave -80
+KPX quotedblleft Amacron -80
+KPX quotedblleft Aogonek -80
+KPX quotedblleft Aring -80
+KPX quotedblleft Atilde -80
+KPX quoteleft A -80
+KPX quoteleft Aacute -80
+KPX quoteleft Abreve -80
+KPX quoteleft Acircumflex -80
+KPX quoteleft Adieresis -80
+KPX quoteleft Agrave -80
+KPX quoteleft Amacron -80
+KPX quoteleft Aogonek -80
+KPX quoteleft Aring -80
+KPX quoteleft Atilde -80
+KPX quoteleft quoteleft -74
+KPX quoteright d -50
+KPX quoteright dcroat -50
+KPX quoteright l -10
+KPX quoteright lacute -10
+KPX quoteright lcommaaccent -10
+KPX quoteright lslash -10
+KPX quoteright quoteright -74
+KPX quoteright r -50
+KPX quoteright racute -50
+KPX quoteright rcaron -50
+KPX quoteright rcommaaccent -50
+KPX quoteright s -55
+KPX quoteright sacute -55
+KPX quoteright scaron -55
+KPX quoteright scedilla -55
+KPX quoteright scommaaccent -55
+KPX quoteright space -74
+KPX quoteright t -18
+KPX quoteright tcommaaccent -18
+KPX quoteright v -50
+KPX r comma -40
+KPX r g -18
+KPX r gbreve -18
+KPX r gcommaaccent -18
+KPX r hyphen -20
+KPX r period -55
+KPX racute comma -40
+KPX racute g -18
+KPX racute gbreve -18
+KPX racute gcommaaccent -18
+KPX racute hyphen -20
+KPX racute period -55
+KPX rcaron comma -40
+KPX rcaron g -18
+KPX rcaron gbreve -18
+KPX rcaron gcommaaccent -18
+KPX rcaron hyphen -20
+KPX rcaron period -55
+KPX rcommaaccent comma -40
+KPX rcommaaccent g -18
+KPX rcommaaccent gbreve -18
+KPX rcommaaccent gcommaaccent -18
+KPX rcommaaccent hyphen -20
+KPX rcommaaccent period -55
+KPX space A -55
+KPX space Aacute -55
+KPX space Abreve -55
+KPX space Acircumflex -55
+KPX space Adieresis -55
+KPX space Agrave -55
+KPX space Amacron -55
+KPX space Aogonek -55
+KPX space Aring -55
+KPX space Atilde -55
+KPX space T -18
+KPX space Tcaron -18
+KPX space Tcommaaccent -18
+KPX space V -50
+KPX space W -30
+KPX space Y -90
+KPX space Yacute -90
+KPX space Ydieresis -90
+KPX v a -25
+KPX v aacute -25
+KPX v abreve -25
+KPX v acircumflex -25
+KPX v adieresis -25
+KPX v agrave -25
+KPX v amacron -25
+KPX v aogonek -25
+KPX v aring -25
+KPX v atilde -25
+KPX v comma -65
+KPX v e -15
+KPX v eacute -15
+KPX v ecaron -15
+KPX v ecircumflex -15
+KPX v edieresis -15
+KPX v edotaccent -15
+KPX v egrave -15
+KPX v emacron -15
+KPX v eogonek -15
+KPX v o -20
+KPX v oacute -20
+KPX v ocircumflex -20
+KPX v odieresis -20
+KPX v ograve -20
+KPX v ohungarumlaut -20
+KPX v omacron -20
+KPX v oslash -20
+KPX v otilde -20
+KPX v period -65
+KPX w a -10
+KPX w aacute -10
+KPX w abreve -10
+KPX w acircumflex -10
+KPX w adieresis -10
+KPX w agrave -10
+KPX w amacron -10
+KPX w aogonek -10
+KPX w aring -10
+KPX w atilde -10
+KPX w comma -65
+KPX w o -10
+KPX w oacute -10
+KPX w ocircumflex -10
+KPX w odieresis -10
+KPX w ograve -10
+KPX w ohungarumlaut -10
+KPX w omacron -10
+KPX w oslash -10
+KPX w otilde -10
+KPX w period -65
+KPX x e -15
+KPX x eacute -15
+KPX x ecaron -15
+KPX x ecircumflex -15
+KPX x edieresis -15
+KPX x edotaccent -15
+KPX x egrave -15
+KPX x emacron -15
+KPX x eogonek -15
+KPX y comma -65
+KPX y period -65
+KPX yacute comma -65
+KPX yacute period -65
+KPX ydieresis comma -65
+KPX ydieresis period -65
+EndKernPairs
+EndKernData
+EndFontMetrics
diff --git a/php/extras/fonts/ps/ZapfDingbats.afm b/php/extras/fonts/ps/ZapfDingbats.afm
new file mode 100644
index 000000000..b2745053e
--- /dev/null
+++ b/php/extras/fonts/ps/ZapfDingbats.afm
@@ -0,0 +1,225 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1988, 1989, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Thu May 1 15:14:13 1997
+Comment UniqueID 43082
+Comment VMusage 45775 55535
+FontName ZapfDingbats
+FullName ITC Zapf Dingbats
+FamilyName ZapfDingbats
+Weight Medium
+ItalicAngle 0
+IsFixedPitch false
+CharacterSet Special
+FontBBox -1 -143 981 820
+UnderlinePosition -100
+UnderlineThickness 50
+Version 002.000
+Notice Copyright (c) 1985, 1987, 1988, 1989, 1997 Adobe Systems Incorporated. All Rights Reserved.ITC Zapf Dingbats is a registered trademark of International Typeface Corporation.
+EncodingScheme FontSpecific
+StdHW 28
+StdVW 90
+StartCharMetrics 202
+C 32 ; WX 278 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 974 ; N a1 ; B 35 72 939 621 ;
+C 34 ; WX 961 ; N a2 ; B 35 81 927 611 ;
+C 35 ; WX 974 ; N a202 ; B 35 72 939 621 ;
+C 36 ; WX 980 ; N a3 ; B 35 0 945 692 ;
+C 37 ; WX 719 ; N a4 ; B 34 139 685 566 ;
+C 38 ; WX 789 ; N a5 ; B 35 -14 755 705 ;
+C 39 ; WX 790 ; N a119 ; B 35 -14 755 705 ;
+C 40 ; WX 791 ; N a118 ; B 35 -13 761 705 ;
+C 41 ; WX 690 ; N a117 ; B 34 138 655 553 ;
+C 42 ; WX 960 ; N a11 ; B 35 123 925 568 ;
+C 43 ; WX 939 ; N a12 ; B 35 134 904 559 ;
+C 44 ; WX 549 ; N a13 ; B 29 -11 516 705 ;
+C 45 ; WX 855 ; N a14 ; B 34 59 820 632 ;
+C 46 ; WX 911 ; N a15 ; B 35 50 876 642 ;
+C 47 ; WX 933 ; N a16 ; B 35 139 899 550 ;
+C 48 ; WX 911 ; N a105 ; B 35 50 876 642 ;
+C 49 ; WX 945 ; N a17 ; B 35 139 909 553 ;
+C 50 ; WX 974 ; N a18 ; B 35 104 938 587 ;
+C 51 ; WX 755 ; N a19 ; B 34 -13 721 705 ;
+C 52 ; WX 846 ; N a20 ; B 36 -14 811 705 ;
+C 53 ; WX 762 ; N a21 ; B 35 0 727 692 ;
+C 54 ; WX 761 ; N a22 ; B 35 0 727 692 ;
+C 55 ; WX 571 ; N a23 ; B -1 -68 571 661 ;
+C 56 ; WX 677 ; N a24 ; B 36 -13 642 705 ;
+C 57 ; WX 763 ; N a25 ; B 35 0 728 692 ;
+C 58 ; WX 760 ; N a26 ; B 35 0 726 692 ;
+C 59 ; WX 759 ; N a27 ; B 35 0 725 692 ;
+C 60 ; WX 754 ; N a28 ; B 35 0 720 692 ;
+C 61 ; WX 494 ; N a6 ; B 35 0 460 692 ;
+C 62 ; WX 552 ; N a7 ; B 35 0 517 692 ;
+C 63 ; WX 537 ; N a8 ; B 35 0 503 692 ;
+C 64 ; WX 577 ; N a9 ; B 35 96 542 596 ;
+C 65 ; WX 692 ; N a10 ; B 35 -14 657 705 ;
+C 66 ; WX 786 ; N a29 ; B 35 -14 751 705 ;
+C 67 ; WX 788 ; N a30 ; B 35 -14 752 705 ;
+C 68 ; WX 788 ; N a31 ; B 35 -14 753 705 ;
+C 69 ; WX 790 ; N a32 ; B 35 -14 756 705 ;
+C 70 ; WX 793 ; N a33 ; B 35 -13 759 705 ;
+C 71 ; WX 794 ; N a34 ; B 35 -13 759 705 ;
+C 72 ; WX 816 ; N a35 ; B 35 -14 782 705 ;
+C 73 ; WX 823 ; N a36 ; B 35 -14 787 705 ;
+C 74 ; WX 789 ; N a37 ; B 35 -14 754 705 ;
+C 75 ; WX 841 ; N a38 ; B 35 -14 807 705 ;
+C 76 ; WX 823 ; N a39 ; B 35 -14 789 705 ;
+C 77 ; WX 833 ; N a40 ; B 35 -14 798 705 ;
+C 78 ; WX 816 ; N a41 ; B 35 -13 782 705 ;
+C 79 ; WX 831 ; N a42 ; B 35 -14 796 705 ;
+C 80 ; WX 923 ; N a43 ; B 35 -14 888 705 ;
+C 81 ; WX 744 ; N a44 ; B 35 0 710 692 ;
+C 82 ; WX 723 ; N a45 ; B 35 0 688 692 ;
+C 83 ; WX 749 ; N a46 ; B 35 0 714 692 ;
+C 84 ; WX 790 ; N a47 ; B 34 -14 756 705 ;
+C 85 ; WX 792 ; N a48 ; B 35 -14 758 705 ;
+C 86 ; WX 695 ; N a49 ; B 35 -14 661 706 ;
+C 87 ; WX 776 ; N a50 ; B 35 -6 741 699 ;
+C 88 ; WX 768 ; N a51 ; B 35 -7 734 699 ;
+C 89 ; WX 792 ; N a52 ; B 35 -14 757 705 ;
+C 90 ; WX 759 ; N a53 ; B 35 0 725 692 ;
+C 91 ; WX 707 ; N a54 ; B 35 -13 672 704 ;
+C 92 ; WX 708 ; N a55 ; B 35 -14 672 705 ;
+C 93 ; WX 682 ; N a56 ; B 35 -14 647 705 ;
+C 94 ; WX 701 ; N a57 ; B 35 -14 666 705 ;
+C 95 ; WX 826 ; N a58 ; B 35 -14 791 705 ;
+C 96 ; WX 815 ; N a59 ; B 35 -14 780 705 ;
+C 97 ; WX 789 ; N a60 ; B 35 -14 754 705 ;
+C 98 ; WX 789 ; N a61 ; B 35 -14 754 705 ;
+C 99 ; WX 707 ; N a62 ; B 34 -14 673 705 ;
+C 100 ; WX 687 ; N a63 ; B 36 0 651 692 ;
+C 101 ; WX 696 ; N a64 ; B 35 0 661 691 ;
+C 102 ; WX 689 ; N a65 ; B 35 0 655 692 ;
+C 103 ; WX 786 ; N a66 ; B 34 -14 751 705 ;
+C 104 ; WX 787 ; N a67 ; B 35 -14 752 705 ;
+C 105 ; WX 713 ; N a68 ; B 35 -14 678 705 ;
+C 106 ; WX 791 ; N a69 ; B 35 -14 756 705 ;
+C 107 ; WX 785 ; N a70 ; B 36 -14 751 705 ;
+C 108 ; WX 791 ; N a71 ; B 35 -14 757 705 ;
+C 109 ; WX 873 ; N a72 ; B 35 -14 838 705 ;
+C 110 ; WX 761 ; N a73 ; B 35 0 726 692 ;
+C 111 ; WX 762 ; N a74 ; B 35 0 727 692 ;
+C 112 ; WX 762 ; N a203 ; B 35 0 727 692 ;
+C 113 ; WX 759 ; N a75 ; B 35 0 725 692 ;
+C 114 ; WX 759 ; N a204 ; B 35 0 725 692 ;
+C 115 ; WX 892 ; N a76 ; B 35 0 858 705 ;
+C 116 ; WX 892 ; N a77 ; B 35 -14 858 692 ;
+C 117 ; WX 788 ; N a78 ; B 35 -14 754 705 ;
+C 118 ; WX 784 ; N a79 ; B 35 -14 749 705 ;
+C 119 ; WX 438 ; N a81 ; B 35 -14 403 705 ;
+C 120 ; WX 138 ; N a82 ; B 35 0 104 692 ;
+C 121 ; WX 277 ; N a83 ; B 35 0 242 692 ;
+C 122 ; WX 415 ; N a84 ; B 35 0 380 692 ;
+C 123 ; WX 392 ; N a97 ; B 35 263 357 705 ;
+C 124 ; WX 392 ; N a98 ; B 34 263 357 705 ;
+C 125 ; WX 668 ; N a99 ; B 35 263 633 705 ;
+C 126 ; WX 668 ; N a100 ; B 36 263 634 705 ;
+C 128 ; WX 390 ; N a89 ; B 35 -14 356 705 ;
+C 129 ; WX 390 ; N a90 ; B 35 -14 355 705 ;
+C 130 ; WX 317 ; N a93 ; B 35 0 283 692 ;
+C 131 ; WX 317 ; N a94 ; B 35 0 283 692 ;
+C 132 ; WX 276 ; N a91 ; B 35 0 242 692 ;
+C 133 ; WX 276 ; N a92 ; B 35 0 242 692 ;
+C 134 ; WX 509 ; N a205 ; B 35 0 475 692 ;
+C 135 ; WX 509 ; N a85 ; B 35 0 475 692 ;
+C 136 ; WX 410 ; N a206 ; B 35 0 375 692 ;
+C 137 ; WX 410 ; N a86 ; B 35 0 375 692 ;
+C 138 ; WX 234 ; N a87 ; B 35 -14 199 705 ;
+C 139 ; WX 234 ; N a88 ; B 35 -14 199 705 ;
+C 140 ; WX 334 ; N a95 ; B 35 0 299 692 ;
+C 141 ; WX 334 ; N a96 ; B 35 0 299 692 ;
+C 161 ; WX 732 ; N a101 ; B 35 -143 697 806 ;
+C 162 ; WX 544 ; N a102 ; B 56 -14 488 706 ;
+C 163 ; WX 544 ; N a103 ; B 34 -14 508 705 ;
+C 164 ; WX 910 ; N a104 ; B 35 40 875 651 ;
+C 165 ; WX 667 ; N a106 ; B 35 -14 633 705 ;
+C 166 ; WX 760 ; N a107 ; B 35 -14 726 705 ;
+C 167 ; WX 760 ; N a108 ; B 0 121 758 569 ;
+C 168 ; WX 776 ; N a112 ; B 35 0 741 705 ;
+C 169 ; WX 595 ; N a111 ; B 34 -14 560 705 ;
+C 170 ; WX 694 ; N a110 ; B 35 -14 659 705 ;
+C 171 ; WX 626 ; N a109 ; B 34 0 591 705 ;
+C 172 ; WX 788 ; N a120 ; B 35 -14 754 705 ;
+C 173 ; WX 788 ; N a121 ; B 35 -14 754 705 ;
+C 174 ; WX 788 ; N a122 ; B 35 -14 754 705 ;
+C 175 ; WX 788 ; N a123 ; B 35 -14 754 705 ;
+C 176 ; WX 788 ; N a124 ; B 35 -14 754 705 ;
+C 177 ; WX 788 ; N a125 ; B 35 -14 754 705 ;
+C 178 ; WX 788 ; N a126 ; B 35 -14 754 705 ;
+C 179 ; WX 788 ; N a127 ; B 35 -14 754 705 ;
+C 180 ; WX 788 ; N a128 ; B 35 -14 754 705 ;
+C 181 ; WX 788 ; N a129 ; B 35 -14 754 705 ;
+C 182 ; WX 788 ; N a130 ; B 35 -14 754 705 ;
+C 183 ; WX 788 ; N a131 ; B 35 -14 754 705 ;
+C 184 ; WX 788 ; N a132 ; B 35 -14 754 705 ;
+C 185 ; WX 788 ; N a133 ; B 35 -14 754 705 ;
+C 186 ; WX 788 ; N a134 ; B 35 -14 754 705 ;
+C 187 ; WX 788 ; N a135 ; B 35 -14 754 705 ;
+C 188 ; WX 788 ; N a136 ; B 35 -14 754 705 ;
+C 189 ; WX 788 ; N a137 ; B 35 -14 754 705 ;
+C 190 ; WX 788 ; N a138 ; B 35 -14 754 705 ;
+C 191 ; WX 788 ; N a139 ; B 35 -14 754 705 ;
+C 192 ; WX 788 ; N a140 ; B 35 -14 754 705 ;
+C 193 ; WX 788 ; N a141 ; B 35 -14 754 705 ;
+C 194 ; WX 788 ; N a142 ; B 35 -14 754 705 ;
+C 195 ; WX 788 ; N a143 ; B 35 -14 754 705 ;
+C 196 ; WX 788 ; N a144 ; B 35 -14 754 705 ;
+C 197 ; WX 788 ; N a145 ; B 35 -14 754 705 ;
+C 198 ; WX 788 ; N a146 ; B 35 -14 754 705 ;
+C 199 ; WX 788 ; N a147 ; B 35 -14 754 705 ;
+C 200 ; WX 788 ; N a148 ; B 35 -14 754 705 ;
+C 201 ; WX 788 ; N a149 ; B 35 -14 754 705 ;
+C 202 ; WX 788 ; N a150 ; B 35 -14 754 705 ;
+C 203 ; WX 788 ; N a151 ; B 35 -14 754 705 ;
+C 204 ; WX 788 ; N a152 ; B 35 -14 754 705 ;
+C 205 ; WX 788 ; N a153 ; B 35 -14 754 705 ;
+C 206 ; WX 788 ; N a154 ; B 35 -14 754 705 ;
+C 207 ; WX 788 ; N a155 ; B 35 -14 754 705 ;
+C 208 ; WX 788 ; N a156 ; B 35 -14 754 705 ;
+C 209 ; WX 788 ; N a157 ; B 35 -14 754 705 ;
+C 210 ; WX 788 ; N a158 ; B 35 -14 754 705 ;
+C 211 ; WX 788 ; N a159 ; B 35 -14 754 705 ;
+C 212 ; WX 894 ; N a160 ; B 35 58 860 634 ;
+C 213 ; WX 838 ; N a161 ; B 35 152 803 540 ;
+C 214 ; WX 1016 ; N a163 ; B 34 152 981 540 ;
+C 215 ; WX 458 ; N a164 ; B 35 -127 422 820 ;
+C 216 ; WX 748 ; N a196 ; B 35 94 698 597 ;
+C 217 ; WX 924 ; N a165 ; B 35 140 890 552 ;
+C 218 ; WX 748 ; N a192 ; B 35 94 698 597 ;
+C 219 ; WX 918 ; N a166 ; B 35 166 884 526 ;
+C 220 ; WX 927 ; N a167 ; B 35 32 892 660 ;
+C 221 ; WX 928 ; N a168 ; B 35 129 891 562 ;
+C 222 ; WX 928 ; N a169 ; B 35 128 893 563 ;
+C 223 ; WX 834 ; N a170 ; B 35 155 799 537 ;
+C 224 ; WX 873 ; N a171 ; B 35 93 838 599 ;
+C 225 ; WX 828 ; N a172 ; B 35 104 791 588 ;
+C 226 ; WX 924 ; N a173 ; B 35 98 889 594 ;
+C 227 ; WX 924 ; N a162 ; B 35 98 889 594 ;
+C 228 ; WX 917 ; N a174 ; B 35 0 882 692 ;
+C 229 ; WX 930 ; N a175 ; B 35 84 896 608 ;
+C 230 ; WX 931 ; N a176 ; B 35 84 896 608 ;
+C 231 ; WX 463 ; N a177 ; B 35 -99 429 791 ;
+C 232 ; WX 883 ; N a178 ; B 35 71 848 623 ;
+C 233 ; WX 836 ; N a179 ; B 35 44 802 648 ;
+C 234 ; WX 836 ; N a193 ; B 35 44 802 648 ;
+C 235 ; WX 867 ; N a180 ; B 35 101 832 591 ;
+C 236 ; WX 867 ; N a199 ; B 35 101 832 591 ;
+C 237 ; WX 696 ; N a181 ; B 35 44 661 648 ;
+C 238 ; WX 696 ; N a200 ; B 35 44 661 648 ;
+C 239 ; WX 874 ; N a182 ; B 35 77 840 619 ;
+C 241 ; WX 874 ; N a201 ; B 35 73 840 615 ;
+C 242 ; WX 760 ; N a183 ; B 35 0 725 692 ;
+C 243 ; WX 946 ; N a184 ; B 35 160 911 533 ;
+C 244 ; WX 771 ; N a197 ; B 34 37 736 655 ;
+C 245 ; WX 865 ; N a185 ; B 35 207 830 481 ;
+C 246 ; WX 771 ; N a194 ; B 34 37 736 655 ;
+C 247 ; WX 888 ; N a198 ; B 34 -19 853 712 ;
+C 248 ; WX 967 ; N a186 ; B 35 124 932 568 ;
+C 249 ; WX 888 ; N a195 ; B 34 -19 853 712 ;
+C 250 ; WX 831 ; N a187 ; B 35 113 796 579 ;
+C 251 ; WX 873 ; N a188 ; B 36 118 838 578 ;
+C 252 ; WX 927 ; N a189 ; B 35 150 891 542 ;
+C 253 ; WX 970 ; N a190 ; B 35 76 931 616 ;
+C 254 ; WX 918 ; N a191 ; B 34 99 884 593 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/php/extras/fonts/ps/cp1250.cpg b/php/extras/fonts/ps/cp1250.cpg
new file mode 100644
index 000000000..e3000af83
--- /dev/null
+++ b/php/extras/fonts/ps/cp1250.cpg
@@ -0,0 +1,258 @@
+% Windows code page 1250 (Central Europe)
+
+0x0000 0x00 % 00
+0x0000 0x01 % 01
+0x0000 0x02 % 02
+0x0000 0x03 % 03
+0x0000 0x04 % 04
+0x0000 0x05 % 05
+0x0000 0x06 % 06
+0x0000 0x07 % 07
+0x0000 0x08 % 08
+0x0000 0x09 % 09
+0x0000 0x0A % 10
+0x0000 0x0B % 11
+0x0000 0x0C % 12
+0x0000 0x0D % 13
+0x0000 0x0E % 14
+0x0000 0x0F % 15
+0x0000 0x10 % 16
+0x0000 0x11 % 17
+0x0000 0x12 % 18
+0x0000 0x13 % 19
+0x0000 0x14 % 20
+0x0000 0x15 % 21
+0x0000 0x16 % 22
+0x0000 0x17 % 23
+0x0000 0x18 % 24
+0x0000 0x19 % 25
+0x0000 0x1A % 26
+0x0000 0x1B % 27
+0x0000 0x1C % 28
+0x0000 0x1D % 29
+0x0000 0x1E % 30
+0x0000 0x1F % 31
+0x0020 0x20 % 32
+0x0021 0x21 % 33
+0x0022 0x22 % 34
+0x0023 0x23 % 35
+0x0024 0x24 % 36
+0x0025 0x25 % 37
+0x0026 0x26 % 38
+0x0027 0x27 % 39
+0x0028 0x28 % 40
+0x0029 0x29 % 41
+0x002A 0x2A % 42
+0x002B 0x2B % 43
+0x002C 0x2C % 44
+0x002D 0x2D % 45
+0x002E 0x2E % 46
+0x002F 0x2F % 47
+0x0030 0x30 % 48
+0x0031 0x31 % 49
+0x0032 0x32 % 50
+0x0033 0x33 % 51
+0x0034 0x34 % 52
+0x0035 0x35 % 53
+0x0036 0x36 % 54
+0x0037 0x37 % 55
+0x0038 0x38 % 56
+0x0039 0x39 % 57
+0x003A 0x3A % 58
+0x003B 0x3B % 59
+0x003C 0x3C % 60
+0x003D 0x3D % 61
+0x003E 0x3E % 62
+0x003F 0x3F % 63
+0x0040 0x40 % 64
+0x0041 0x41 % 65
+0x0042 0x42 % 66
+0x0043 0x43 % 67
+0x0044 0x44 % 68
+0x0045 0x45 % 69
+0x0046 0x46 % 70
+0x0047 0x47 % 71
+0x0048 0x48 % 72
+0x0049 0x49 % 73
+0x004A 0x4A % 74
+0x004B 0x4B % 75
+0x004C 0x4C % 76
+0x004D 0x4D % 77
+0x004E 0x4E % 78
+0x004F 0x4F % 79
+0x0050 0x50 % 80
+0x0051 0x51 % 81
+0x0052 0x52 % 82
+0x0053 0x53 % 83
+0x0054 0x54 % 84
+0x0055 0x55 % 85
+0x0056 0x56 % 86
+0x0057 0x57 % 87
+0x0058 0x58 % 88
+0x0059 0x59 % 89
+0x005A 0x5A % 90
+0x005B 0x5B % 91
+0x005C 0x5C % 92
+0x005D 0x5D % 93
+0x005E 0x5E % 94
+0x005F 0x5F % 95
+0x0060 0x60 % 96
+0x0061 0x61 % 97
+0x0062 0x62 % 98
+0x0063 0x63 % 99
+0x0064 0x64 % 100
+0x0065 0x65 % 101
+0x0066 0x66 % 102
+0x0067 0x67 % 103
+0x0068 0x68 % 104
+0x0069 0x69 % 105
+0x006A 0x6A % 106
+0x006B 0x6B % 107
+0x006C 0x6C % 108
+0x006D 0x6D % 109
+0x006E 0x6E % 110
+0x006F 0x6F % 111
+0x0070 0x70 % 112
+0x0071 0x71 % 113
+0x0072 0x72 % 114
+0x0073 0x73 % 115
+0x0074 0x74 % 116
+0x0075 0x75 % 117
+0x0076 0x76 % 118
+0x0077 0x77 % 119
+0x0078 0x78 % 120
+0x0079 0x79 % 121
+0x007A 0x7A % 122
+0x007B 0x7B % 123
+0x007C 0x7C % 124
+0x007D 0x7D % 125
+0x007E 0x7E % 126
+0x0000 0x7F % 127
+0x20AC 0x80 % 128
+0x0000 0x81 % 129
+0x201A 0x82 % 130
+0x0000 0x83 % 131
+0x201E 0x84 % 132
+0x2026 0x85 % 133
+0x2020 0x86 % 134
+0x2021 0x87 % 135
+0x0000 0x88 % 136
+0x2030 0x89 % 137
+0x0160 0x8A % 138
+0x2039 0x8B % 139
+0x015A 0x8C % 140
+0x0164 0x8D % 141
+0x017D 0x8E % 142
+0x0179 0x8F % 143
+0x0000 0x90 % 144
+0x2018 0x91 % 145
+0x2019 0x92 % 146
+0x201C 0x93 % 147
+0x201D 0x94 % 148
+0x2022 0x95 % 149
+0x2013 0x96 % 150
+0x2014 0x97 % 151
+0x0000 0x98 % 152
+0x2122 0x99 % 153
+0x0161 0x9A % 154
+0x203A 0x9B % 155
+0x015B 0x9C % 156
+0x0165 0x9D % 157
+0x017E 0x9E % 158
+0x017A 0x9F % 159
+0x0020 0xA0 % 160
+0x02C7 0xA1 % 161
+0x02D8 0xA2 % 162
+0x0141 0xA3 % 163
+0x00A4 0xA4 % 164
+0x0104 0xA5 % 165
+0x00A6 0xA6 % 166
+0x00A7 0xA7 % 167
+0x00A8 0xA8 % 168
+0x00A9 0xA9 % 169
+0x015E 0xAA % 170
+0x00AB 0xAB % 171
+0x00AC 0xAC % 172
+0x002D 0xAD % 173
+0x00AE 0xAE % 174
+0x017B 0xAF % 175
+0x00B0 0xB0 % 176
+0x00B1 0xB1 % 177
+0x02DB 0xB2 % 178
+0x0142 0xB3 % 179
+0x00B4 0xB4 % 180
+0x03BC 0xB5 % 181
+0x00B6 0xB6 % 182
+0x00B7 0xB7 % 183
+0x00B8 0xB8 % 184
+0x0105 0xB9 % 185
+0x015F 0xBA % 186
+0x00BB 0xBB % 187
+0x013D 0xBC % 188
+0x02DD 0xBD % 189
+0x013E 0xBE % 190
+0x017C 0xBF % 191
+0x0154 0xC0 % 192
+0x00C1 0xC1 % 193
+0x00C2 0xC2 % 194
+0x0102 0xC3 % 195
+0x00C4 0xC4 % 196
+0x0139 0xC5 % 197
+0x0106 0xC6 % 198
+0x00C7 0xC7 % 199
+0x010C 0xC8 % 200
+0x00C9 0xC9 % 201
+0x0118 0xCA % 202
+0x00CB 0xCB % 203
+0x011A 0xCC % 204
+0x00CD 0xCD % 205
+0x00CE 0xCE % 206
+0x010E 0xCF % 207
+0x00D0 0xD0 % 208
+0x0143 0xD1 % 209
+0x0147 0xD2 % 210
+0x00D3 0xD3 % 211
+0x00D4 0xD4 % 212
+0x0150 0xD5 % 213
+0x00D6 0xD6 % 214
+0x00D7 0xD7 % 215
+0x0158 0xD8 % 216
+0x016E 0xD9 % 217
+0x00DA 0xDA % 218
+0x0170 0xDB % 219
+0x00DC 0xDC % 220
+0x00DD 0xDD % 221
+0x0162 0xDE % 222
+0x00DF 0xDF % 223
+0x0155 0xE0 % 224
+0x00E1 0xE1 % 225
+0x00E2 0xE2 % 226
+0x0103 0xE3 % 227
+0x00E4 0xE4 % 228
+0x013A 0xE5 % 229
+0x0107 0xE6 % 230
+0x00E7 0xE7 % 231
+0x010D 0xE8 % 232
+0x00E9 0xE9 % 233
+0x0119 0xEA % 234
+0x00EB 0xEB % 235
+0x011B 0xEC % 236
+0x00ED 0xED % 237
+0x00EE 0xEE % 238
+0x010F 0xEF % 239
+0x00F0 0xF0 % 240
+0x0144 0xF1 % 241
+0x0148 0xF2 % 242
+0x00F3 0xF3 % 243
+0x00F4 0xF4 % 244
+0x0151 0xF5 % 245
+0x00F6 0xF6 % 246
+0x00F7 0xF7 % 247
+0x0159 0xF8 % 248
+0x016F 0xF9 % 249
+0x00FA 0xFA % 250
+0x0171 0xFB % 251
+0x00FC 0xFC % 252
+0x00FD 0xFD % 253
+0x0163 0xFE % 254
+0x02D9 0xFF % 255
diff --git a/php/extras/fonts/ps/cp1250.enc b/php/extras/fonts/ps/cp1250.enc
new file mode 100644
index 000000000..600e82ffa
--- /dev/null
+++ b/php/extras/fonts/ps/cp1250.enc
@@ -0,0 +1,221 @@
+% Encoding definition for PDFlib
+% Windows code page 1250 (Central Europe)
+
+space 32 % 0x20
+exclam 33 % 0x21
+quotedbl 34 % 0x22
+numbersign 35 % 0x23
+dollar 36 % 0x24
+percent 37 % 0x25
+ampersand 38 % 0x26
+quotesingle 39 % 0x27
+parenleft 40 % 0x28
+parenright 41 % 0x29
+asterisk 42 % 0x2A
+plus 43 % 0x2B
+comma 44 % 0x2C
+hyphen 45 % 0x2D
+period 46 % 0x2E
+slash 47 % 0x2F
+zero 48 % 0x30
+one 49 % 0x31
+two 50 % 0x32
+three 51 % 0x33
+four 52 % 0x34
+five 53 % 0x35
+six 54 % 0x36
+seven 55 % 0x37
+eight 56 % 0x38
+nine 57 % 0x39
+colon 58 % 0x3A
+semicolon 59 % 0x3B
+less 60 % 0x3C
+equal 61 % 0x3D
+greater 62 % 0x3E
+question 63 % 0x3F
+at 64 % 0x40
+A 65 % 0x41
+B 66 % 0x42
+C 67 % 0x43
+D 68 % 0x44
+E 69 % 0x45
+F 70 % 0x46
+G 71 % 0x47
+H 72 % 0x48
+I 73 % 0x49
+J 74 % 0x4A
+K 75 % 0x4B
+L 76 % 0x4C
+M 77 % 0x4D
+N 78 % 0x4E
+O 79 % 0x4F
+P 80 % 0x50
+Q 81 % 0x51
+R 82 % 0x52
+S 83 % 0x53
+T 84 % 0x54
+U 85 % 0x55
+V 86 % 0x56
+W 87 % 0x57
+X 88 % 0x58
+Y 89 % 0x59
+Z 90 % 0x5A
+bracketleft 91 % 0x5B
+backslash 92 % 0x5C
+bracketright 93 % 0x5D
+asciicircum 94 % 0x5E
+underscore 95 % 0x5F
+grave 96 % 0x60
+a 97 % 0x61
+b 98 % 0x62
+c 99 % 0x63
+d 100 % 0x64
+e 101 % 0x65
+f 102 % 0x66
+g 103 % 0x67
+h 104 % 0x68
+i 105 % 0x69
+j 106 % 0x6A
+k 107 % 0x6B
+l 108 % 0x6C
+m 109 % 0x6D
+n 110 % 0x6E
+o 111 % 0x6F
+p 112 % 0x70
+q 113 % 0x71
+r 114 % 0x72
+s 115 % 0x73
+t 116 % 0x74
+u 117 % 0x75
+v 118 % 0x76
+w 119 % 0x77
+x 120 % 0x78
+y 121 % 0x79
+z 122 % 0x7A
+braceleft 123 % 0x7B
+bar 124 % 0x7C
+braceright 125 % 0x7D
+asciitilde 126 % 0x7E
+Euro 128 % 0x80
+quotesinglbase 130 % 0x82
+quotedblbase 132 % 0x84
+ellipsis 133 % 0x85
+dagger 134 % 0x86
+daggerdbl 135 % 0x87
+perthousand 137 % 0x89
+Scaron 138 % 0x8A
+guilsinglleft 139 % 0x8B
+Sacute 140 % 0x8C
+Tcaron 141 % 0x8D
+Zcaron 142 % 0x8E
+Zacute 143 % 0x8F
+quoteleft 145 % 0x91
+quoteright 146 % 0x92
+quotedblleft 147 % 0x93
+quotedblright 148 % 0x94
+bullet 149 % 0x95
+endash 150 % 0x96
+emdash 151 % 0x97
+trademark 153 % 0x99
+scaron 154 % 0x9A
+guilsinglright 155 % 0x9B
+sacute 156 % 0x9C
+tcaron 157 % 0x9D
+zcaron 158 % 0x9E
+zacute 159 % 0x9F
+space 160 % 0xA0
+caron 161 % 0xA1
+breve 162 % 0xA2
+Lslash 163 % 0xA3
+currency 164 % 0xA4
+Aogonek 165 % 0xA5
+brokenbar 166 % 0xA6
+section 167 % 0xA7
+dieresis 168 % 0xA8
+copyright 169 % 0xA9
+Scedilla 170 % 0xAA
+guillemotleft 171 % 0xAB
+logicalnot 172 % 0xAC
+hyphen 173 % 0xAD
+registered 174 % 0xAE
+Zdotaccent 175 % 0xAF
+degree 176 % 0xB0
+plusminus 177 % 0xB1
+ogonek 178 % 0xB2
+lslash 179 % 0xB3
+acute 180 % 0xB4
+mu 181 % 0xB5
+paragraph 182 % 0xB6
+periodcentered 183 % 0xB7
+cedilla 184 % 0xB8
+aogonek 185 % 0xB9
+scedilla 186 % 0xBA
+guillemotright 187 % 0xBB
+Lcaron 188 % 0xBC
+hungarumlaut 189 % 0xBD
+lcaron 190 % 0xBE
+zdotaccent 191 % 0xBF
+Racute 192 % 0xC0
+Aacute 193 % 0xC1
+Acircumflex 194 % 0xC2
+Abreve 195 % 0xC3
+Adieresis 196 % 0xC4
+Lacute 197 % 0xC5
+Cacute 198 % 0xC6
+Ccedilla 199 % 0xC7
+Ccaron 200 % 0xC8
+Eacute 201 % 0xC9
+Eogonek 202 % 0xCA
+Edieresis 203 % 0xCB
+Ecaron 204 % 0xCC
+Iacute 205 % 0xCD
+Icircumflex 206 % 0xCE
+Dcaron 207 % 0xCF
+Eth 208 % 0xD0
+Nacute 209 % 0xD1
+Ncaron 210 % 0xD2
+Oacute 211 % 0xD3
+Ocircumflex 212 % 0xD4
+Ohungarumlaut 213 % 0xD5
+Odieresis 214 % 0xD6
+multiply 215 % 0xD7
+Rcaron 216 % 0xD8
+Uring 217 % 0xD9
+Uacute 218 % 0xDA
+Uhungarumlaut 219 % 0xDB
+Udieresis 220 % 0xDC
+Yacute 221 % 0xDD
+Tcommaaccent 222 % 0xDE
+germandbls 223 % 0xDF
+racute 224 % 0xE0
+aacute 225 % 0xE1
+acircumflex 226 % 0xE2
+abreve 227 % 0xE3
+adieresis 228 % 0xE4
+lacute 229 % 0xE5
+cacute 230 % 0xE6
+ccedilla 231 % 0xE7
+ccaron 232 % 0xE8
+eacute 233 % 0xE9
+eogonek 234 % 0xEA
+edieresis 235 % 0xEB
+ecaron 236 % 0xEC
+iacute 237 % 0xED
+icircumflex 238 % 0xEE
+dcaron 239 % 0xEF
+eth 240 % 0xF0
+nacute 241 % 0xF1
+ncaron 242 % 0xF2
+oacute 243 % 0xF3
+ocircumflex 244 % 0xF4
+ohungarumlaut 245 % 0xF5
+odieresis 246 % 0xF6
+divide 247 % 0xF7
+rcaron 248 % 0xF8
+uring 249 % 0xF9
+uacute 250 % 0xFA
+uhungarumlaut 251 % 0xFB
+udieresis 252 % 0xFC
+yacute 253 % 0xFD
+tcommaaccent 254 % 0xFE
+dotaccent 255 % 0xFF
diff --git a/php/extras/fonts/ps/cp1251.cpg b/php/extras/fonts/ps/cp1251.cpg
new file mode 100644
index 000000000..4cda607dc
--- /dev/null
+++ b/php/extras/fonts/ps/cp1251.cpg
@@ -0,0 +1,226 @@
+% Windows code page 1251 (Cyrillic)
+
+0x0020 0x20
+0x0021 0x21
+0x0022 0x22
+0x0023 0x23
+0x0024 0x24
+0x0025 0x25
+0x0026 0x26
+0x0027 0x27
+0x0028 0x28
+0x0029 0x29
+0x002A 0x2A
+0x002B 0x2B
+0x002C 0x2C
+0x002D 0x2D
+0x002E 0x2E
+0x002F 0x2F
+0x0030 0x30
+0x0031 0x31
+0x0032 0x32
+0x0033 0x33
+0x0034 0x34
+0x0035 0x35
+0x0036 0x36
+0x0037 0x37
+0x0038 0x38
+0x0039 0x39
+0x003A 0x3A
+0x003B 0x3B
+0x003C 0x3C
+0x003D 0x3D
+0x003E 0x3E
+0x003F 0x3F
+0x0040 0x40
+0x0041 0x41
+0x0042 0x42
+0x0043 0x43
+0x0044 0x44
+0x0045 0x45
+0x0046 0x46
+0x0047 0x47
+0x0048 0x48
+0x0049 0x49
+0x004A 0x4A
+0x004B 0x4B
+0x004C 0x4C
+0x004D 0x4D
+0x004E 0x4E
+0x004F 0x4F
+0x0050 0x50
+0x0051 0x51
+0x0052 0x52
+0x0053 0x53
+0x0054 0x54
+0x0055 0x55
+0x0056 0x56
+0x0057 0x57
+0x0058 0x58
+0x0059 0x59
+0x005A 0x5A
+0x005B 0x5B
+0x005C 0x5C
+0x005D 0x5D
+0x005E 0x5E
+0x005F 0x5F
+0x0060 0x60
+0x0061 0x61
+0x0062 0x62
+0x0063 0x63
+0x0064 0x64
+0x0065 0x65
+0x0066 0x66
+0x0067 0x67
+0x0068 0x68
+0x0069 0x69
+0x006A 0x6A
+0x006B 0x6B
+0x006C 0x6C
+0x006D 0x6D
+0x006E 0x6E
+0x006F 0x6F
+0x0070 0x70
+0x0071 0x71
+0x0072 0x72
+0x0073 0x73
+0x0074 0x74
+0x0075 0x75
+0x0076 0x76
+0x0077 0x77
+0x0078 0x78
+0x0079 0x79
+0x007A 0x7A
+0x007B 0x7B
+0x007C 0x7C
+0x007D 0x7D
+0x007E 0x7E
+0x0000 0x7F
+0x0402 0x80
+0x0403 0x81
+0x201A 0x82
+0x0453 0x83
+0x201E 0x84
+0x2026 0x85
+0x2020 0x86
+0x2021 0x87
+0x20AC 0x88
+0x2030 0x89
+0x0409 0x8A
+0x2039 0x8B
+0x040A 0x8C
+0x040C 0x8D
+0x040B 0x8E
+0x040F 0x8F
+0x0452 0x90
+0x2018 0x91
+0x2019 0x92
+0x201C 0x93
+0x201D 0x94
+0x2022 0x95
+0x2013 0x96
+0x2014 0x97
+ % 0x98
+0x2122 0x99
+0x0459 0x9A
+0x203A 0x9B
+0x045A 0x9C
+0x045C 0x9D
+0x045B 0x9E
+0x045F 0x9F
+0x00A0 0xA0
+0x040E 0xA1
+0x045E 0xA2
+0x0408 0xA3
+0x00A4 0xA4
+0x0490 0xA5
+0x00A6 0xA6
+0x00A7 0xA7
+0x0401 0xA8
+0x00A9 0xA9
+0x0404 0xAA
+0x00AB 0xAB
+0x00AC 0xAC
+0x00AD 0xAD
+0x00AE 0xAE
+0x0407 0xAF
+0x00B0 0xB0
+0x00B1 0xB1
+0x0406 0xB2
+0x0456 0xB3
+0x0491 0xB4
+0x00B5 0xB5
+0x00B6 0xB6
+0x00B7 0xB7
+0x0451 0xB8
+0x2116 0xB9
+0x0454 0xBA
+0x00BB 0xBB
+0x0458 0xBC
+0x0405 0xBD
+0x0455 0xBE
+0x0457 0xBF
+0x0410 0xC0
+0x0411 0xC1
+0x0412 0xC2
+0x0413 0xC3
+0x0414 0xC4
+0x0415 0xC5
+0x0416 0xC6
+0x0417 0xC7
+0x0418 0xC8
+0x0419 0xC9
+0x041A 0xCA
+0x041B 0xCB
+0x041C 0xCC
+0x041D 0xCD
+0x041E 0xCE
+0x041F 0xCF
+0x0420 0xD0
+0x0421 0xD1
+0x0422 0xD2
+0x0423 0xD3
+0x0424 0xD4
+0x0425 0xD5
+0x0426 0xD6
+0x0427 0xD7
+0x0428 0xD8
+0x0429 0xD9
+0x042A 0xDA
+0x042B 0xDB
+0x042C 0xDC
+0x042D 0xDD
+0x042E 0xDE
+0x042F 0xDF
+0x0430 0xE0
+0x0431 0xE1
+0x0432 0xE2
+0x0433 0xE3
+0x0434 0xE4
+0x0435 0xE5
+0x0436 0xE6
+0x0437 0xE7
+0x0438 0xE8
+0x0439 0xE9
+0x043A 0xEA
+0x043B 0xEB
+0x043C 0xEC
+0x043D 0xED
+0x043E 0xEE
+0x043F 0xEF
+0x0440 0xF0
+0x0441 0xF1
+0x0442 0xF2
+0x0443 0xF3
+0x0444 0xF4
+0x0445 0xF5
+0x0446 0xF6
+0x0447 0xF7
+0x0448 0xF8
+0x0449 0xF9
+0x044A 0xFA
+0x044B 0xFB
+0x044C 0xFC
+0x044D 0xFD
+0x044E 0xFE
+0x044F 0xFF
diff --git a/php/extras/fonts/ps/cp1252.cpg b/php/extras/fonts/ps/cp1252.cpg
new file mode 100644
index 000000000..5d3107ec8
--- /dev/null
+++ b/php/extras/fonts/ps/cp1252.cpg
@@ -0,0 +1,226 @@
+% Windows code page 1252 (Latin 1)
+
+0x0020 0x20 % 32
+0x0021 0x21 % 33
+0x0022 0x22 % 34
+0x0023 0x23 % 35
+0x0024 0x24 % 36
+0x0025 0x25 % 37
+0x0026 0x26 % 38
+0x0027 0x27 % 39
+0x0028 0x28 % 40
+0x0029 0x29 % 41
+0x002A 0x2A % 42
+0x002B 0x2B % 43
+0x002C 0x2C % 44
+0x002D 0x2D % 45
+0x002E 0x2E % 46
+0x002F 0x2F % 47
+0x0030 0x30 % 48
+0x0031 0x31 % 49
+0x0032 0x32 % 50
+0x0033 0x33 % 51
+0x0034 0x34 % 52
+0x0035 0x35 % 53
+0x0036 0x36 % 54
+0x0037 0x37 % 55
+0x0038 0x38 % 56
+0x0039 0x39 % 57
+0x003A 0x3A % 58
+0x003B 0x3B % 59
+0x003C 0x3C % 60
+0x003D 0x3D % 61
+0x003E 0x3E % 62
+0x003F 0x3F % 63
+0x0040 0x40 % 64
+0x0041 0x41 % 65
+0x0042 0x42 % 66
+0x0043 0x43 % 67
+0x0044 0x44 % 68
+0x0045 0x45 % 69
+0x0046 0x46 % 70
+0x0047 0x47 % 71
+0x0048 0x48 % 72
+0x0049 0x49 % 73
+0x004A 0x4A % 74
+0x004B 0x4B % 75
+0x004C 0x4C % 76
+0x004D 0x4D % 77
+0x004E 0x4E % 78
+0x004F 0x4F % 79
+0x0050 0x50 % 80
+0x0051 0x51 % 81
+0x0052 0x52 % 82
+0x0053 0x53 % 83
+0x0054 0x54 % 84
+0x0055 0x55 % 85
+0x0056 0x56 % 86
+0x0057 0x57 % 87
+0x0058 0x58 % 88
+0x0059 0x59 % 89
+0x005A 0x5A % 90
+0x005B 0x5B % 91
+0x005C 0x5C % 92
+0x005D 0x5D % 93
+0x005E 0x5E % 94
+0x005F 0x5F % 95
+0x0060 0x60 % 96
+0x0061 0x61 % 97
+0x0062 0x62 % 98
+0x0063 0x63 % 99
+0x0064 0x64 % 100
+0x0065 0x65 % 101
+0x0066 0x66 % 102
+0x0067 0x67 % 103
+0x0068 0x68 % 104
+0x0069 0x69 % 105
+0x006A 0x6A % 106
+0x006B 0x6B % 107
+0x006C 0x6C % 108
+0x006D 0x6D % 109
+0x006E 0x6E % 110
+0x006F 0x6F % 111
+0x0070 0x70 % 112
+0x0071 0x71 % 113
+0x0072 0x72 % 114
+0x0073 0x73 % 115
+0x0074 0x74 % 116
+0x0075 0x75 % 117
+0x0076 0x76 % 118
+0x0077 0x77 % 119
+0x0078 0x78 % 120
+0x0079 0x79 % 121
+0x007A 0x7A % 122
+0x007B 0x7B % 123
+0x007C 0x7C % 124
+0x007D 0x7D % 125
+0x007E 0x7E % 126
+0x2022 0x7F % 127
+0x20AC 0x80 % 128
+0x2022 0x81 % 129
+0x201A 0x82 % 130
+0x0192 0x83 % 131
+0x201E 0x84 % 132
+0x2026 0x85 % 133
+0x2020 0x86 % 134
+0x2021 0x87 % 135
+0x02C6 0x88 % 136
+0x2030 0x89 % 137
+0x0160 0x8A % 138
+0x2039 0x8B % 139
+0x0152 0x8C % 140
+0x2022 0x8D % 141
+0x017D 0x8E % 142
+0x2022 0x8F % 143
+0x2022 0x90 % 144
+0x2018 0x91 % 145
+0x2019 0x92 % 146
+0x201C 0x93 % 147
+0x201D 0x94 % 148
+0x2022 0x95 % 149
+0x2013 0x96 % 150
+0x2014 0x97 % 151
+0x02DC 0x98 % 152
+0x2122 0x99 % 153
+0x0161 0x9A % 154
+0x203A 0x9B % 155
+0x0153 0x9C % 156
+0x2022 0x9D % 157
+0x017E 0x9E % 158
+0x0178 0x9F % 159
+0x0020 0xA0 % 160
+0x00A1 0xA1 % 161
+0x00A2 0xA2 % 162
+0x00A3 0xA3 % 163
+0x00A4 0xA4 % 164
+0x00A5 0xA5 % 165
+0x00A6 0xA6 % 166
+0x00A7 0xA7 % 167
+0x00A8 0xA8 % 168
+0x00A9 0xA9 % 169
+0x00AA 0xAA % 170
+0x00AB 0xAB % 171
+0x00AC 0xAC % 172
+0x002D 0xAD % 173
+0x00AE 0xAE % 174
+0x00AF 0xAF % 175
+0x00B0 0xB0 % 176
+0x00B1 0xB1 % 177
+0x00B2 0xB2 % 178
+0x00B3 0xB3 % 179
+0x00B4 0xB4 % 180
+0x03BC 0xB5 % 181
+0x00B6 0xB6 % 182
+0x00B7 0xB7 % 183
+0x00B8 0xB8 % 184
+0x00B9 0xB9 % 185
+0x00BA 0xBA % 186
+0x00BB 0xBB % 187
+0x00BC 0xBC % 188
+0x00BD 0xBD % 189
+0x00BE 0xBE % 190
+0x00BF 0xBF % 191
+0x00C0 0xC0 % 192
+0x00C1 0xC1 % 193
+0x00C2 0xC2 % 194
+0x00C3 0xC3 % 195
+0x00C4 0xC4 % 196
+0x00C5 0xC5 % 197
+0x00C6 0xC6 % 198
+0x00C7 0xC7 % 199
+0x00C8 0xC8 % 200
+0x00C9 0xC9 % 201
+0x00CA 0xCA % 202
+0x00CB 0xCB % 203
+0x00CC 0xCC % 204
+0x00CD 0xCD % 205
+0x00CE 0xCE % 206
+0x00CF 0xCF % 207
+0x00D0 0xD0 % 208
+0x00D1 0xD1 % 209
+0x00D2 0xD2 % 210
+0x00D3 0xD3 % 211
+0x00D4 0xD4 % 212
+0x00D5 0xD5 % 213
+0x00D6 0xD6 % 214
+0x00D7 0xD7 % 215
+0x00D8 0xD8 % 216
+0x00D9 0xD9 % 217
+0x00DA 0xDA % 218
+0x00DB 0xDB % 219
+0x00DC 0xDC % 220
+0x00DD 0xDD % 221
+0x00DE 0xDE % 222
+0x00DF 0xDF % 223
+0x00E0 0xE0 % 224
+0x00E1 0xE1 % 225
+0x00E2 0xE2 % 226
+0x00E3 0xE3 % 227
+0x00E4 0xE4 % 228
+0x00E5 0xE5 % 229
+0x00E6 0xE6 % 230
+0x00E7 0xE7 % 231
+0x00E8 0xE8 % 232
+0x00E9 0xE9 % 233
+0x00EA 0xEA % 234
+0x00EB 0xEB % 235
+0x00EC 0xEC % 236
+0x00ED 0xED % 237
+0x00EE 0xEE % 238
+0x00EF 0xEF % 239
+0x00F0 0xF0 % 240
+0x00F1 0xF1 % 241
+0x00F2 0xF2 % 242
+0x00F3 0xF3 % 243
+0x00F4 0xF4 % 244
+0x00F5 0xF5 % 245
+0x00F6 0xF6 % 246
+0x00F7 0xF7 % 247
+0x00F8 0xF8 % 248
+0x00F9 0xF9 % 249
+0x00FA 0xFA % 250
+0x00FB 0xFB % 251
+0x00FC 0xFC % 252
+0x00FD 0xFD % 253
+0x00FE 0xFE % 254
+0x00FF 0xFF % 255
diff --git a/php/extras/fonts/ps/cp1253.cpg b/php/extras/fonts/ps/cp1253.cpg
new file mode 100644
index 000000000..164842c43
--- /dev/null
+++ b/php/extras/fonts/ps/cp1253.cpg
@@ -0,0 +1,225 @@
+% Windows code page 1253 (Greek)
+
+0x0020 0x20
+0x0021 0x21
+0x0022 0x22
+0x0023 0x23
+0x0024 0x24
+0x0025 0x25
+0x0026 0x26
+0x0027 0x27
+0x0028 0x28
+0x0029 0x29
+0x002A 0x2A
+0x002B 0x2B
+0x002C 0x2C
+0x002D 0x2D
+0x002E 0x2E
+0x002F 0x2F
+0x0030 0x30
+0x0031 0x31
+0x0032 0x32
+0x0033 0x33
+0x0034 0x34
+0x0035 0x35
+0x0036 0x36
+0x0037 0x37
+0x0038 0x38
+0x0039 0x39
+0x003A 0x3A
+0x003B 0x3B
+0x003C 0x3C
+0x003D 0x3D
+0x003E 0x3E
+0x003F 0x3F
+0x0040 0x40
+0x0041 0x41
+0x0042 0x42
+0x0043 0x43
+0x0044 0x44
+0x0045 0x45
+0x0046 0x46
+0x0047 0x47
+0x0048 0x48
+0x0049 0x49
+0x004A 0x4A
+0x004B 0x4B
+0x004C 0x4C
+0x004D 0x4D
+0x004E 0x4E
+0x004F 0x4F
+0x0050 0x50
+0x0051 0x51
+0x0052 0x52
+0x0053 0x53
+0x0054 0x54
+0x0055 0x55
+0x0056 0x56
+0x0057 0x57
+0x0058 0x58
+0x0059 0x59
+0x005A 0x5A
+0x005B 0x5B
+0x005C 0x5C
+0x005D 0x5D
+0x005E 0x5E
+0x005F 0x5F
+0x0060 0x60
+0x0061 0x61
+0x0062 0x62
+0x0063 0x63
+0x0064 0x64
+0x0065 0x65
+0x0066 0x66
+0x0067 0x67
+0x0068 0x68
+0x0069 0x69
+0x006A 0x6A
+0x006B 0x6B
+0x006C 0x6C
+0x006D 0x6D
+0x006E 0x6E
+0x006F 0x6F
+0x0070 0x70
+0x0071 0x71
+0x0072 0x72
+0x0073 0x73
+0x0074 0x74
+0x0075 0x75
+0x0076 0x76
+0x0077 0x77
+0x0078 0x78
+0x0079 0x79
+0x007A 0x7A
+0x007B 0x7B
+0x007C 0x7C
+0x007D 0x7D
+0x007E 0x7E
+0x0000 0x7F
+0x20AC 0x80
+ % 0x81
+0x201A 0x82
+0x0192 0x83
+0x201E 0x84
+0x2026 0x85
+0x2020 0x86
+0x2021 0x87
+ % 0x88
+0x2030 0x89
+ % 0x8A
+0x2039 0x8B
+ % 0x8C
+ % 0x8D
+ % 0x8E
+ % 0x8F
+ % 0x90
+0x2018 0x91
+0x2019 0x92
+0x201C 0x93
+0x201D 0x94
+0x2022 0x95
+0x2013 0x96
+0x2014 0x97
+ % 0x98
+0x2122 0x99
+ % 0x9A
+0x203A 0x9B
+ % 0x9C
+ % 0x9D
+ % 0x9E
+ % 0x9F
+0x00A0 0xA0
+0x0385 0xA1
+0x0386 0xA2
+0x00A3 0xA3
+0x00A4 0xA4
+0x00A5 0xA5
+0x00A6 0xA6
+0x00A7 0xA7
+0x00A8 0xA8
+0x00A9 0xA9
+0x00AA 0xAA
+0x00AB 0xAB
+0x00AC 0xAC
+0x00AD 0xAD
+0x00AE 0xAE
+0x2015 0xAF
+0x00B0 0xB0
+0x00B1 0xB1
+0x00B2 0xB2
+0x00B3 0xB3
+0x0384 0xB4
+0x00B5 0xB5
+0x00B6 0xB6
+0x00B7 0xB7
+0x0388 0xB8
+0x0389 0xB9
+0x038A 0xBA
+0x00BB 0xBB
+0x038C 0xBC
+0x00BD 0xBD
+0x038E 0xBE
+0x038F 0xBF
+0x0390 0xC0
+0x0391 0xC1
+0x0392 0xC2
+0x0393 0xC3
+0x0394 0xC4
+0x0395 0xC5
+0x0396 0xC6
+0x0397 0xC7
+0x0398 0xC8
+0x0399 0xC9
+0x039A 0xCA
+0x039B 0xCB
+0x039C 0xCC
+0x039D 0xCD
+0x039E 0xCE
+0x039F 0xCF
+0x03A0 0xD0
+0x03A1 0xD1
+ % 0xD2 undefined
+0x03A3 0xD3
+0x03A4 0xD4
+0x03A5 0xD5
+0x03A6 0xD6
+0x03A7 0xD7
+0x03A8 0xD8
+0x03A9 0xD9
+0x03AA 0xDA
+0x03AB 0xDB
+0x03AC 0xDC
+0x03AD 0xDD
+0x03AE 0xDE
+0x03AF 0xDF
+0x03B0 0xE0
+0x03B1 0xE1
+0x03B2 0xE2
+0x03B3 0xE3
+0x03B4 0xE4
+0x03B5 0xE5
+0x03B6 0xE6
+0x03B7 0xE7
+0x03B8 0xE8
+0x03B9 0xE9
+0x03BA 0xEA
+0x03BB 0xEB
+0x03BC 0xEC
+0x03BD 0xED
+0x03BE 0xEE
+0x03BF 0xEF
+0x03C0 0xF0
+0x03C1 0xF1
+0x03C2 0xF2
+0x03C3 0xF3
+0x03C4 0xF4
+0x03C5 0xF5
+0x03C6 0xF6
+0x03C7 0xF7
+0x03C8 0xF8
+0x03C9 0xF9
+0x03CA 0xFA
+0x03CB 0xFB
+0x03CC 0xFC
+0x03CD 0xFD
+0x03CE 0xFE
diff --git a/php/extras/fonts/ps/cp1254.cpg b/php/extras/fonts/ps/cp1254.cpg
new file mode 100644
index 000000000..114cbbb7f
--- /dev/null
+++ b/php/extras/fonts/ps/cp1254.cpg
@@ -0,0 +1,226 @@
+% Windows code page 1254 (Turkish)
+
+0x0020 0x20
+0x0021 0x21
+0x0022 0x22
+0x0023 0x23
+0x0024 0x24
+0x0025 0x25
+0x0026 0x26
+0x0027 0x27
+0x0028 0x28
+0x0029 0x29
+0x002A 0x2A
+0x002B 0x2B
+0x002C 0x2C
+0x002D 0x2D
+0x002E 0x2E
+0x002F 0x2F
+0x0030 0x30
+0x0031 0x31
+0x0032 0x32
+0x0033 0x33
+0x0034 0x34
+0x0035 0x35
+0x0036 0x36
+0x0037 0x37
+0x0038 0x38
+0x0039 0x39
+0x003A 0x3A
+0x003B 0x3B
+0x003C 0x3C
+0x003D 0x3D
+0x003E 0x3E
+0x003F 0x3F
+0x0040 0x40
+0x0041 0x41
+0x0042 0x42
+0x0043 0x43
+0x0044 0x44
+0x0045 0x45
+0x0046 0x46
+0x0047 0x47
+0x0048 0x48
+0x0049 0x49
+0x004A 0x4A
+0x004B 0x4B
+0x004C 0x4C
+0x004D 0x4D
+0x004E 0x4E
+0x004F 0x4F
+0x0050 0x50
+0x0051 0x51
+0x0052 0x52
+0x0053 0x53
+0x0054 0x54
+0x0055 0x55
+0x0056 0x56
+0x0057 0x57
+0x0058 0x58
+0x0059 0x59
+0x005A 0x5A
+0x005B 0x5B
+0x005C 0x5C
+0x005D 0x5D
+0x005E 0x5E
+0x005F 0x5F
+0x0060 0x60
+0x0061 0x61
+0x0062 0x62
+0x0063 0x63
+0x0064 0x64
+0x0065 0x65
+0x0066 0x66
+0x0067 0x67
+0x0068 0x68
+0x0069 0x69
+0x006A 0x6A
+0x006B 0x6B
+0x006C 0x6C
+0x006D 0x6D
+0x006E 0x6E
+0x006F 0x6F
+0x0070 0x70
+0x0071 0x71
+0x0072 0x72
+0x0073 0x73
+0x0074 0x74
+0x0075 0x75
+0x0076 0x76
+0x0077 0x77
+0x0078 0x78
+0x0079 0x79
+0x007A 0x7A
+0x007B 0x7B
+0x007C 0x7C
+0x007D 0x7D
+0x007E 0x7E
+0x0000 0x7F
+0x20AC 0x80
+ % 0x81
+0x201A 0x82
+0x0192 0x83
+0x201E 0x84
+0x2026 0x85
+0x2020 0x86
+0x2021 0x87
+0x02C6 0x88
+0x2030 0x89
+0x0160 0x8A
+0x2039 0x8B
+0x0152 0x8C
+ % 0x8D
+ % 0x8E
+ % 0x8F
+ % 0x90
+0x2018 0x91
+0x2019 0x92
+0x201C 0x93
+0x201D 0x94
+0x2022 0x95
+0x2013 0x96
+0x2014 0x97
+0x02DC 0x98
+0x2122 0x99
+0x0161 0x9A
+0x203A 0x9B
+0x0153 0x9C
+ % 0x9D
+ % 0x9E
+0x0178 0x9F
+0x00A0 0xA0
+0x00A1 0xA1
+0x00A2 0xA2
+0x00A3 0xA3
+0x00A4 0xA4
+0x00A5 0xA5
+0x00A6 0xA6
+0x00A7 0xA7
+0x00A8 0xA8
+0x00A9 0xA9
+0x00AA 0xAA
+0x00AB 0xAB
+0x00AC 0xAC
+0x00AD 0xAD
+0x00AE 0xAE
+0x00AF 0xAF
+0x00B0 0xB0
+0x00B1 0xB1
+0x00B2 0xB2
+0x00B3 0xB3
+0x00B4 0xB4
+0x00B5 0xB5
+0x00B6 0xB6
+0x00B7 0xB7
+0x00B8 0xB8
+0x00B9 0xB9
+0x00BA 0xBA
+0x00BB 0xBB
+0x00BC 0xBC
+0x00BD 0xBD
+0x00BE 0xBE
+0x00BF 0xBF
+0x00C0 0xC0
+0x00C1 0xC1
+0x00C2 0xC2
+0x00C3 0xC3
+0x00C4 0xC4
+0x00C5 0xC5
+0x00C6 0xC6
+0x00C7 0xC7
+0x00C8 0xC8
+0x00C9 0xC9
+0x00CA 0xCA
+0x00CB 0xCB
+0x00CC 0xCC
+0x00CD 0xCD
+0x00CE 0xCE
+0x00CF 0xCF
+0x011E 0xD0
+0x00D1 0xD1
+0x00D2 0xD2
+0x00D3 0xD3
+0x00D4 0xD4
+0x00D5 0xD5
+0x00D6 0xD6
+0x00D7 0xD7
+0x00D8 0xD8
+0x00D9 0xD9
+0x00DA 0xDA
+0x00DB 0xDB
+0x00DC 0xDC
+0x0130 0xDD
+0x015E 0xDE
+0x00DF 0xDF
+0x00E0 0xE0
+0x00E1 0xE1
+0x00E2 0xE2
+0x00E3 0xE3
+0x00E4 0xE4
+0x00E5 0xE5
+0x00E6 0xE6
+0x00E7 0xE7
+0x00E8 0xE8
+0x00E9 0xE9
+0x00EA 0xEA
+0x00EB 0xEB
+0x00EC 0xEC
+0x00ED 0xED
+0x00EE 0xEE
+0x00EF 0xEF
+0x011F 0xF0
+0x00F1 0xF1
+0x00F2 0xF2
+0x00F3 0xF3
+0x00F4 0xF4
+0x00F5 0xF5
+0x00F6 0xF6
+0x00F7 0xF7
+0x00F8 0xF8
+0x00F9 0xF9
+0x00FA 0xFA
+0x00FB 0xFB
+0x00FC 0xFC
+0x0131 0xFD
+0x015F 0xFE
+0x00FF 0xFF
diff --git a/php/extras/fonts/ps/cp1255.cpg b/php/extras/fonts/ps/cp1255.cpg
new file mode 100644
index 000000000..546c0c8f8
--- /dev/null
+++ b/php/extras/fonts/ps/cp1255.cpg
@@ -0,0 +1,226 @@
+% Windows code page 1255 (Hebrew)
+
+0x0020 0x20
+0x0021 0x21
+0x0022 0x22
+0x0023 0x23
+0x0024 0x24
+0x0025 0x25
+0x0026 0x26
+0x0027 0x27
+0x0028 0x28
+0x0029 0x29
+0x002A 0x2A
+0x002B 0x2B
+0x002C 0x2C
+0x002D 0x2D
+0x002E 0x2E
+0x002F 0x2F
+0x0030 0x30
+0x0031 0x31
+0x0032 0x32
+0x0033 0x33
+0x0034 0x34
+0x0035 0x35
+0x0036 0x36
+0x0037 0x37
+0x0038 0x38
+0x0039 0x39
+0x003A 0x3A
+0x003B 0x3B
+0x003C 0x3C
+0x003D 0x3D
+0x003E 0x3E
+0x003F 0x3F
+0x0040 0x40
+0x0041 0x41
+0x0042 0x42
+0x0043 0x43
+0x0044 0x44
+0x0045 0x45
+0x0046 0x46
+0x0047 0x47
+0x0048 0x48
+0x0049 0x49
+0x004A 0x4A
+0x004B 0x4B
+0x004C 0x4C
+0x004D 0x4D
+0x004E 0x4E
+0x004F 0x4F
+0x0050 0x50
+0x0051 0x51
+0x0052 0x52
+0x0053 0x53
+0x0054 0x54
+0x0055 0x55
+0x0056 0x56
+0x0057 0x57
+0x0058 0x58
+0x0059 0x59
+0x005A 0x5A
+0x005B 0x5B
+0x005C 0x5C
+0x005D 0x5D
+0x005E 0x5E
+0x005F 0x5F
+0x0060 0x60
+0x0061 0x61
+0x0062 0x62
+0x0063 0x63
+0x0064 0x64
+0x0065 0x65
+0x0066 0x66
+0x0067 0x67
+0x0068 0x68
+0x0069 0x69
+0x006A 0x6A
+0x006B 0x6B
+0x006C 0x6C
+0x006D 0x6D
+0x006E 0x6E
+0x006F 0x6F
+0x0070 0x70
+0x0071 0x71
+0x0072 0x72
+0x0073 0x73
+0x0074 0x74
+0x0075 0x75
+0x0076 0x76
+0x0077 0x77
+0x0078 0x78
+0x0079 0x79
+0x007A 0x7A
+0x007B 0x7B
+0x007C 0x7C
+0x007D 0x7D
+0x007E 0x7E
+0x0000 0x7F
+0x20AC 0x80
+ % 0x81
+0x201A 0x82
+0x0192 0x83
+0x201E 0x84
+0x2026 0x85
+0x2020 0x86
+0x2021 0x87
+0x02C6 0x88
+0x2030 0x89
+ % 0x8A
+0x2039 0x8B
+ % 0x8C
+ % 0x8D
+ % 0x8E
+ % 0x8F
+ % 0x90
+0x2018 0x91
+0x2019 0x92
+0x201C 0x93
+0x201D 0x94
+0x2022 0x95
+0x2013 0x96
+0x2014 0x97
+0x02DC 0x98
+0x2122 0x99
+ % 0x9A
+0x203A 0x9B
+ % 0x9C
+ % 0x9D
+ % 0x9E
+ % 0x9F
+0x00A0 0xA0
+0x00A1 0xA1
+0x00A2 0xA2
+0x00A3 0xA3
+0x20AA 0xA4
+0x00A5 0xA5
+0x00A6 0xA6
+0x00A7 0xA7
+0x00A8 0xA8
+0x00A9 0xA9
+0x00D7 0xAA
+0x00AB 0xAB
+0x00AC 0xAC
+0x00AD 0xAD
+0x00AE 0xAE
+0x00AF 0xAF
+0x00B0 0xB0
+0x00B1 0xB1
+0x00B2 0xB2
+0x00B3 0xB3
+0x00B4 0xB4
+0x00B5 0xB5
+0x00B6 0xB6
+0x00B7 0xB7
+0x00B8 0xB8
+0x00B9 0xB9
+0x00F7 0xBA
+0x00BB 0xBB
+0x00BC 0xBC
+0x00BD 0xBD
+0x00BE 0xBE
+0x00BF 0xBF
+0x05B0 0xC0
+0x05B1 0xC1
+0x05B2 0xC2
+0x05B3 0xC3
+0x05B4 0xC4
+0x05B5 0xC5
+0x05B6 0xC6
+0x05B7 0xC7
+0x05B8 0xC8
+0x05B9 0xC9
+ % 0xCA
+0x05BB 0xCB
+0x05BC 0xCC
+0x05BD 0xCD
+0x05BE 0xCE
+0x05BF 0xCF
+0x05C0 0xD0
+0x05C1 0xD1
+0x05C2 0xD2
+0x05C3 0xD3
+0x05F0 0xD4
+0x05F1 0xD5
+0x05F2 0xD6
+0x05F3 0xD7 % not in AGL!
+0x05F4 0xD8 % not in AGL!
+ % 0xD9
+ % 0xDA
+ % 0xDB
+ % 0xDC
+ % 0xDD
+ % 0xDE
+ % 0xDF
+0x05D0 0xE0
+0x05D1 0xE1
+0x05D2 0xE2
+0x05D3 0xE3
+0x05D4 0xE4
+0x05D5 0xE5
+0x05D6 0xE6
+0x05D7 0xE7
+0x05D8 0xE8
+0x05D9 0xE9
+0x05DA 0xEA
+0x05DB 0xEB
+0x05DC 0xEC
+0x05DD 0xED
+0x05DE 0xEE
+0x05DF 0xEF
+0x05E0 0xF0
+0x05E1 0xF1
+0x05E2 0xF2
+0x05E3 0xF3
+0x05E4 0xF4
+0x05E5 0xF5
+0x05E6 0xF6
+0x05E7 0xF7
+0x05E8 0xF8
+0x05E9 0xF9
+0x05EA 0xFA
+ % 0xFB
+ % 0xFC
+0x200E 0xFD
+0x200F 0xFE
+ % 0xFF
diff --git a/php/extras/fonts/ps/cp1256.cpg b/php/extras/fonts/ps/cp1256.cpg
new file mode 100644
index 000000000..2551fcd6e
--- /dev/null
+++ b/php/extras/fonts/ps/cp1256.cpg
@@ -0,0 +1,226 @@
+% Windows code page 1256 (Arabic)
+
+0x0020 0x20
+0x0021 0x21
+0x0022 0x22
+0x0023 0x23
+0x0024 0x24
+0x0025 0x25
+0x0026 0x26
+0x0027 0x27
+0x0028 0x28
+0x0029 0x29
+0x002A 0x2A
+0x002B 0x2B
+0x002C 0x2C
+0x002D 0x2D
+0x002E 0x2E
+0x002F 0x2F
+0x0030 0x30
+0x0031 0x31
+0x0032 0x32
+0x0033 0x33
+0x0034 0x34
+0x0035 0x35
+0x0036 0x36
+0x0037 0x37
+0x0038 0x38
+0x0039 0x39
+0x003A 0x3A
+0x003B 0x3B
+0x003C 0x3C
+0x003D 0x3D
+0x003E 0x3E
+0x003F 0x3F
+0x0040 0x40
+0x0041 0x41
+0x0042 0x42
+0x0043 0x43
+0x0044 0x44
+0x0045 0x45
+0x0046 0x46
+0x0047 0x47
+0x0048 0x48
+0x0049 0x49
+0x004A 0x4A
+0x004B 0x4B
+0x004C 0x4C
+0x004D 0x4D
+0x004E 0x4E
+0x004F 0x4F
+0x0050 0x50
+0x0051 0x51
+0x0052 0x52
+0x0053 0x53
+0x0054 0x54
+0x0055 0x55
+0x0056 0x56
+0x0057 0x57
+0x0058 0x58
+0x0059 0x59
+0x005A 0x5A
+0x005B 0x5B
+0x005C 0x5C
+0x005D 0x5D
+0x005E 0x5E
+0x005F 0x5F
+0x0060 0x60
+0x0061 0x61
+0x0062 0x62
+0x0063 0x63
+0x0064 0x64
+0x0065 0x65
+0x0066 0x66
+0x0067 0x67
+0x0068 0x68
+0x0069 0x69
+0x006A 0x6A
+0x006B 0x6B
+0x006C 0x6C
+0x006D 0x6D
+0x006E 0x6E
+0x006F 0x6F
+0x0070 0x70
+0x0071 0x71
+0x0072 0x72
+0x0073 0x73
+0x0074 0x74
+0x0075 0x75
+0x0076 0x76
+0x0077 0x77
+0x0078 0x78
+0x0079 0x79
+0x007A 0x7A
+0x007B 0x7B
+0x007C 0x7C
+0x007D 0x7D
+0x007E 0x7E
+0x0000 0x7F
+0x20AC 0x80
+0x067E 0x81
+0x201A 0x82
+0x0192 0x83
+0x201E 0x84
+0x2026 0x85
+0x2020 0x86
+0x2021 0x87
+0x02C6 0x88
+0x2030 0x89
+0x0679 0x8A
+0x2039 0x8B
+0x0152 0x8C
+0x0686 0x8D
+0x0698 0x8E
+0x0688 0x8F
+0x06AF 0x90
+0x2018 0x91
+0x2019 0x92
+0x201C 0x93
+0x201D 0x94
+0x2022 0x95
+0x2013 0x96
+0x2014 0x97
+0x06A9 0x98 % won't work in PDF since it's not in AGL!
+0x2122 0x99
+0x0691 0x9A
+0x203A 0x9B
+0x0153 0x9C
+0x200C 0x9D
+0x200D 0x9E
+0x06BA 0x9F
+0x00A0 0xA0
+0x060C 0xA1
+0x00A2 0xA2
+0x00A3 0xA3
+0x00A4 0xA4
+0x00A5 0xA5
+0x00A6 0xA6
+0x00A7 0xA7
+0x00A8 0xA8
+0x00A9 0xA9
+0x06BE 0xAA % won't work in PDF since it's not in AGL!
+0x00AB 0xAB
+0x00AC 0xAC
+0x00AD 0xAD
+0x00AE 0xAE
+0x00AF 0xAF
+0x00B0 0xB0
+0x00B1 0xB1
+0x00B2 0xB2
+0x00B3 0xB3
+0x00B4 0xB4
+0x00B5 0xB5
+0x00B6 0xB6
+0x00B7 0xB7
+0x00B8 0xB8
+0x00B9 0xB9
+0x061B 0xBA
+0x00BB 0xBB
+0x00BC 0xBC
+0x00BD 0xBD
+0x00BE 0xBE
+0x061F 0xBF
+0x06C1 0xC0 % won't work in PDF since it's not in AGL!
+0x0621 0xC1
+0x0622 0xC2
+0x0623 0xC3
+0x0624 0xC4
+0x0625 0xC5
+0x0626 0xC6
+0x0627 0xC7
+0x0628 0xC8
+0x0629 0xC9
+0x062A 0xCA
+0x062B 0xCB
+0x062C 0xCC
+0x062D 0xCD
+0x062E 0xCE
+0x062F 0xCF
+0x0630 0xD0
+0x0631 0xD1
+0x0632 0xD2
+0x0633 0xD3
+0x0634 0xD4
+0x0635 0xD5
+0x0636 0xD6
+0x00D7 0xD7
+0x0637 0xD8
+0x0638 0xD9
+0x0639 0xDA
+0x063A 0xDB
+0x0640 0xDC
+0x0641 0xDD
+0x0642 0xDE
+0x0643 0xDF
+0x00E0 0xE0
+0x0644 0xE1
+0x00E2 0xE2
+0x0645 0xE3
+0x0646 0xE4
+0x0647 0xE5
+0x0648 0xE6
+0x00E7 0xE7
+0x00E8 0xE8
+0x00E9 0xE9
+0x00EA 0xEA
+0x00EB 0xEB
+0x0649 0xEC
+0x064A 0xED
+0x00EE 0xEE
+0x00EF 0xEF
+0x064B 0xF0
+0x064C 0xF1
+0x064D 0xF2
+0x064E 0xF3
+0x00F4 0xF4
+0x064F 0xF5
+0x0650 0xF6
+0x00F7 0xF7
+0x0651 0xF8
+0x00F9 0xF9
+0x0652 0xFA
+0x00FB 0xFB
+0x00FC 0xFC
+0x200E 0xFD
+0x200F 0xFE
+0x06D2 0xFF
diff --git a/php/extras/fonts/ps/cp1257.cpg b/php/extras/fonts/ps/cp1257.cpg
new file mode 100644
index 000000000..6d993881f
--- /dev/null
+++ b/php/extras/fonts/ps/cp1257.cpg
@@ -0,0 +1,226 @@
+% Windows code page 1257 (Baltic)
+
+0x0020 0x20
+0x0021 0x21
+0x0022 0x22
+0x0023 0x23
+0x0024 0x24
+0x0025 0x25
+0x0026 0x26
+0x0027 0x27
+0x0028 0x28
+0x0029 0x29
+0x002A 0x2A
+0x002B 0x2B
+0x002C 0x2C
+0x002D 0x2D
+0x002E 0x2E
+0x002F 0x2F
+0x0030 0x30
+0x0031 0x31
+0x0032 0x32
+0x0033 0x33
+0x0034 0x34
+0x0035 0x35
+0x0036 0x36
+0x0037 0x37
+0x0038 0x38
+0x0039 0x39
+0x003A 0x3A
+0x003B 0x3B
+0x003C 0x3C
+0x003D 0x3D
+0x003E 0x3E
+0x003F 0x3F
+0x0040 0x40
+0x0041 0x41
+0x0042 0x42
+0x0043 0x43
+0x0044 0x44
+0x0045 0x45
+0x0046 0x46
+0x0047 0x47
+0x0048 0x48
+0x0049 0x49
+0x004A 0x4A
+0x004B 0x4B
+0x004C 0x4C
+0x004D 0x4D
+0x004E 0x4E
+0x004F 0x4F
+0x0050 0x50
+0x0051 0x51
+0x0052 0x52
+0x0053 0x53
+0x0054 0x54
+0x0055 0x55
+0x0056 0x56
+0x0057 0x57
+0x0058 0x58
+0x0059 0x59
+0x005A 0x5A
+0x005B 0x5B
+0x005C 0x5C
+0x005D 0x5D
+0x005E 0x5E
+0x005F 0x5F
+0x0060 0x60
+0x0061 0x61
+0x0062 0x62
+0x0063 0x63
+0x0064 0x64
+0x0065 0x65
+0x0066 0x66
+0x0067 0x67
+0x0068 0x68
+0x0069 0x69
+0x006A 0x6A
+0x006B 0x6B
+0x006C 0x6C
+0x006D 0x6D
+0x006E 0x6E
+0x006F 0x6F
+0x0070 0x70
+0x0071 0x71
+0x0072 0x72
+0x0073 0x73
+0x0074 0x74
+0x0075 0x75
+0x0076 0x76
+0x0077 0x77
+0x0078 0x78
+0x0079 0x79
+0x007A 0x7A
+0x007B 0x7B
+0x007C 0x7C
+0x007D 0x7D
+0x007E 0x7E
+0x0000 0x7F
+0x20AC 0x80
+ % 0x81
+0x201A 0x82
+ % 0x83
+0x201E 0x84
+0x2026 0x85
+0x2020 0x86
+0x2021 0x87
+ % 0x88
+0x2030 0x89
+ % 0x8A
+0x2039 0x8B
+ % 0x8C
+0x00A8 0x8D
+0x02C7 0x8E
+0x00B8 0x8F
+ % 0x90
+0x2018 0x91
+0x2019 0x92
+0x201C 0x93
+0x201D 0x94
+0x2022 0x95
+0x2013 0x96
+0x2014 0x97
+ % 0x98
+0x2122 0x99
+ % 0x9A
+0x203A 0x9B
+ % 0x9C
+0x00AF 0x9D
+0x02DB 0x9E
+ % 0x9F
+0x00A0 0xA0
+ % 0xA1
+0x00A2 0xA2
+0x00A3 0xA3
+0x00A4 0xA4
+ % 0xA5
+0x00A6 0xA6
+0x00A7 0xA7
+0x00D8 0xA8
+0x00A9 0xA9
+0x0156 0xAA
+0x00AB 0xAB
+0x00AC 0xAC
+0x00AD 0xAD
+0x00AE 0xAE
+0x00C6 0xAF
+0x00B0 0xB0
+0x00B1 0xB1
+0x00B2 0xB2
+0x00B3 0xB3
+0x00B4 0xB4
+0x00B5 0xB5
+0x00B6 0xB6
+0x00B7 0xB7
+0x00F8 0xB8
+0x00B9 0xB9
+0x0157 0xBA
+0x00BB 0xBB
+0x00BC 0xBC
+0x00BD 0xBD
+0x00BE 0xBE
+0x00E6 0xBF
+0x0104 0xC0
+0x012E 0xC1
+0x0100 0xC2
+0x0106 0xC3
+0x00C4 0xC4
+0x00C5 0xC5
+0x0118 0xC6
+0x0112 0xC7
+0x010C 0xC8
+0x00C9 0xC9
+0x0179 0xCA
+0x0116 0xCB
+0x0122 0xCC
+0x0136 0xCD
+0x012A 0xCE
+0x013B 0xCF
+0x0160 0xD0
+0x0143 0xD1
+0x0145 0xD2
+0x00D3 0xD3
+0x014C 0xD4
+0x00D5 0xD5
+0x00D6 0xD6
+0x00D7 0xD7
+0x0172 0xD8
+0x0141 0xD9
+0x015A 0xDA
+0x016A 0xDB
+0x00DC 0xDC
+0x017B 0xDD
+0x017D 0xDE
+0x00DF 0xDF
+0x0105 0xE0
+0x012F 0xE1
+0x0101 0xE2
+0x0107 0xE3
+0x00E4 0xE4
+0x00E5 0xE5
+0x0119 0xE6
+0x0113 0xE7
+0x010D 0xE8
+0x00E9 0xE9
+0x017A 0xEA
+0x0117 0xEB
+0x0123 0xEC
+0x0137 0xED
+0x012B 0xEE
+0x013C 0xEF
+0x0161 0xF0
+0x0144 0xF1
+0x0146 0xF2
+0x00F3 0xF3
+0x014D 0xF4
+0x00F5 0xF5
+0x00F6 0xF6
+0x00F7 0xF7
+0x0173 0xF8
+0x0142 0xF9
+0x015B 0xFA
+0x016B 0xFB
+0x00FC 0xFC
+0x017C 0xFD
+0x017E 0xFE
+0x02D9 0xFF
diff --git a/php/extras/fonts/ps/cp1258.cpg b/php/extras/fonts/ps/cp1258.cpg
new file mode 100644
index 000000000..334b20c34
--- /dev/null
+++ b/php/extras/fonts/ps/cp1258.cpg
@@ -0,0 +1,226 @@
+% Windows code page 1258 (Viet Nam)
+
+0x0020 0x20
+0x0021 0x21
+0x0022 0x22
+0x0023 0x23
+0x0024 0x24
+0x0025 0x25
+0x0026 0x26
+0x0027 0x27
+0x0028 0x28
+0x0029 0x29
+0x002A 0x2A
+0x002B 0x2B
+0x002C 0x2C
+0x002D 0x2D
+0x002E 0x2E
+0x002F 0x2F
+0x0030 0x30
+0x0031 0x31
+0x0032 0x32
+0x0033 0x33
+0x0034 0x34
+0x0035 0x35
+0x0036 0x36
+0x0037 0x37
+0x0038 0x38
+0x0039 0x39
+0x003A 0x3A
+0x003B 0x3B
+0x003C 0x3C
+0x003D 0x3D
+0x003E 0x3E
+0x003F 0x3F
+0x0040 0x40
+0x0041 0x41
+0x0042 0x42
+0x0043 0x43
+0x0044 0x44
+0x0045 0x45
+0x0046 0x46
+0x0047 0x47
+0x0048 0x48
+0x0049 0x49
+0x004A 0x4A
+0x004B 0x4B
+0x004C 0x4C
+0x004D 0x4D
+0x004E 0x4E
+0x004F 0x4F
+0x0050 0x50
+0x0051 0x51
+0x0052 0x52
+0x0053 0x53
+0x0054 0x54
+0x0055 0x55
+0x0056 0x56
+0x0057 0x57
+0x0058 0x58
+0x0059 0x59
+0x005A 0x5A
+0x005B 0x5B
+0x005C 0x5C
+0x005D 0x5D
+0x005E 0x5E
+0x005F 0x5F
+0x0060 0x60
+0x0061 0x61
+0x0062 0x62
+0x0063 0x63
+0x0064 0x64
+0x0065 0x65
+0x0066 0x66
+0x0067 0x67
+0x0068 0x68
+0x0069 0x69
+0x006A 0x6A
+0x006B 0x6B
+0x006C 0x6C
+0x006D 0x6D
+0x006E 0x6E
+0x006F 0x6F
+0x0070 0x70
+0x0071 0x71
+0x0072 0x72
+0x0073 0x73
+0x0074 0x74
+0x0075 0x75
+0x0076 0x76
+0x0077 0x77
+0x0078 0x78
+0x0079 0x79
+0x007A 0x7A
+0x007B 0x7B
+0x007C 0x7C
+0x007D 0x7D
+0x007E 0x7E
+0x0000 0x7F
+0x20AC 0x80
+ % 0x81
+0x201A 0x82
+0x0192 0x83
+0x201E 0x84
+0x2026 0x85
+0x2020 0x86
+0x2021 0x87
+0x02C6 0x88
+0x2030 0x89
+ % 0x8A
+0x2039 0x8B
+0x0152 0x8C
+ % 0x8D
+ % 0x8E
+ % 0x8F
+ % 0x90
+0x2018 0x91
+0x2019 0x92
+0x201C 0x93
+0x201D 0x94
+0x2022 0x95
+0x2013 0x96
+0x2014 0x97
+0x02DC 0x98
+0x2122 0x99
+ % 0x9A
+0x203A 0x9B
+0x0153 0x9C
+ % 0x9D
+ % 0x9E
+0x0178 0x9F
+0x00A0 0xA0
+0x00A1 0xA1
+0x00A2 0xA2
+0x00A3 0xA3
+0x00A4 0xA4
+0x00A5 0xA5
+0x00A6 0xA6
+0x00A7 0xA7
+0x00A8 0xA8
+0x00A9 0xA9
+0x00AA 0xAA
+0x00AB 0xAB
+0x00AC 0xAC
+0x00AD 0xAD
+0x00AE 0xAE
+0x00AF 0xAF
+0x00B0 0xB0
+0x00B1 0xB1
+0x00B2 0xB2
+0x00B3 0xB3
+0x00B4 0xB4
+0x00B5 0xB5
+0x00B6 0xB6
+0x00B7 0xB7
+0x00B8 0xB8
+0x00B9 0xB9
+0x00BA 0xBA
+0x00BB 0xBB
+0x00BC 0xBC
+0x00BD 0xBD
+0x00BE 0xBE
+0x00BF 0xBF
+0x00C0 0xC0
+0x00C1 0xC1
+0x00C2 0xC2
+0x0102 0xC3
+0x00C4 0xC4
+0x00C5 0xC5
+0x00C6 0xC6
+0x00C7 0xC7
+0x00C8 0xC8
+0x00C9 0xC9
+0x00CA 0xCA
+0x00CB 0xCB
+0x0300 0xCC
+0x00CD 0xCD
+0x00CE 0xCE
+0x00CF 0xCF
+0x0110 0xD0
+0x00D1 0xD1
+0x0309 0xD2
+0x00D3 0xD3
+0x00D4 0xD4
+0x01A0 0xD5
+0x00D6 0xD6
+0x00D7 0xD7
+0x00D8 0xD8
+0x00D9 0xD9
+0x00DA 0xDA
+0x00DB 0xDB
+0x00DC 0xDC
+0x01AF 0xDD
+0x0303 0xDE
+0x00DF 0xDF
+0x00E0 0xE0
+0x00E1 0xE1
+0x00E2 0xE2
+0x0103 0xE3
+0x00E4 0xE4
+0x00E5 0xE5
+0x00E6 0xE6
+0x00E7 0xE7
+0x00E8 0xE8
+0x00E9 0xE9
+0x00EA 0xEA
+0x00EB 0xEB
+0x0301 0xEC
+0x00ED 0xED
+0x00EE 0xEE
+0x00EF 0xEF
+0x0111 0xF0
+0x00F1 0xF1
+0x0323 0xF2
+0x00F3 0xF3
+0x00F4 0xF4
+0x01A1 0xF5
+0x00F6 0xF6
+0x00F7 0xF7
+0x00F8 0xF8
+0x00F9 0xF9
+0x00FA 0xFA
+0x00FB 0xFB
+0x00FC 0xFC
+0x01B0 0xFD
+0x20AB 0xFE
+0x00FF 0xFF
diff --git a/php/extras/fonts/ps/iso8859-10.cpg b/php/extras/fonts/ps/iso8859-10.cpg
new file mode 100644
index 000000000..3403da5a9
--- /dev/null
+++ b/php/extras/fonts/ps/iso8859-10.cpg
@@ -0,0 +1,228 @@
+% Encoding definition for PDFlib
+% ISO 8859-10 (Latin-6)
+% Latin-6 is a variation of Latin-4 and covers the Nordic area.
+
+0x0020 0x20
+0x0021 0x21
+0x0022 0x22
+0x0023 0x23
+0x0024 0x24
+0x0025 0x25
+0x0026 0x26
+0x0027 0x27
+0x0028 0x28
+0x0029 0x29
+0x002A 0x2A
+0x002B 0x2B
+0x002C 0x2C
+0x002D 0x2D
+0x002E 0x2E
+0x002F 0x2F
+0x0030 0x30
+0x0031 0x31
+0x0032 0x32
+0x0033 0x33
+0x0034 0x34
+0x0035 0x35
+0x0036 0x36
+0x0037 0x37
+0x0038 0x38
+0x0039 0x39
+0x003A 0x3A
+0x003B 0x3B
+0x003C 0x3C
+0x003D 0x3D
+0x003E 0x3E
+0x003F 0x3F
+0x0040 0x40
+0x0041 0x41
+0x0042 0x42
+0x0043 0x43
+0x0044 0x44
+0x0045 0x45
+0x0046 0x46
+0x0047 0x47
+0x0048 0x48
+0x0049 0x49
+0x004A 0x4A
+0x004B 0x4B
+0x004C 0x4C
+0x004D 0x4D
+0x004E 0x4E
+0x004F 0x4F
+0x0050 0x50
+0x0051 0x51
+0x0052 0x52
+0x0053 0x53
+0x0054 0x54
+0x0055 0x55
+0x0056 0x56
+0x0057 0x57
+0x0058 0x58
+0x0059 0x59
+0x005A 0x5A
+0x005B 0x5B
+0x005C 0x5C
+0x005D 0x5D
+0x005E 0x5E
+0x005F 0x5F
+0x0060 0x60
+0x0061 0x61
+0x0062 0x62
+0x0063 0x63
+0x0064 0x64
+0x0065 0x65
+0x0066 0x66
+0x0067 0x67
+0x0068 0x68
+0x0069 0x69
+0x006A 0x6A
+0x006B 0x6B
+0x006C 0x6C
+0x006D 0x6D
+0x006E 0x6E
+0x006F 0x6F
+0x0070 0x70
+0x0071 0x71
+0x0072 0x72
+0x0073 0x73
+0x0074 0x74
+0x0075 0x75
+0x0076 0x76
+0x0077 0x77
+0x0078 0x78
+0x0079 0x79
+0x007A 0x7A
+0x007B 0x7B
+0x007C 0x7C
+0x007D 0x7D
+0x007E 0x7E
+0x0000 0x7F
+0x0000 0x80
+0x0000 0x81
+0x0000 0x82
+0x0000 0x83
+0x0000 0x84
+0x0000 0x85
+0x0000 0x86
+0x0000 0x87
+0x0000 0x88
+0x0000 0x89
+0x0000 0x8A
+0x0000 0x8B
+0x0000 0x8C
+0x0000 0x8D
+0x0000 0x8E
+0x0000 0x8F
+0x0000 0x90
+0x0000 0x91
+0x0000 0x92
+0x0000 0x93
+0x0000 0x94
+0x0000 0x95
+0x0000 0x96
+0x0000 0x97
+0x0000 0x98
+0x0000 0x99
+0x0000 0x9A
+0x0000 0x9B
+0x0000 0x9C
+0x0000 0x9D
+0x0000 0x9E
+0x0000 0x9F
+0x00A0 0xA0
+0x0104 0xA1
+0x0112 0xA2
+0x0122 0xA3
+0x012A 0xA4
+0x0128 0xA5
+0x0136 0xA6
+0x00A7 0xA7
+0x013B 0xA8
+0x0110 0xA9
+0x0160 0xAA
+0x0166 0xAB
+0x017D 0xAC
+0x00AD 0xAD
+0x016A 0xAE
+0x014A 0xAF
+0x00B0 0xB0
+0x0105 0xB1
+0x0113 0xB2
+0x0123 0xB3
+0x012B 0xB4
+0x0129 0xB5
+0x0137 0xB6
+0x00B7 0xB7
+0x013C 0xB8
+0x0111 0xB9
+0x0161 0xBA
+0x0167 0xBB
+0x017E 0xBC
+0x2015 0xBD
+0x016B 0xBE
+0x014B 0xBF
+0x0100 0xC0
+0x00C1 0xC1
+0x00C2 0xC2
+0x00C3 0xC3
+0x00C4 0xC4
+0x00C5 0xC5
+0x00C6 0xC6
+0x012E 0xC7
+0x010C 0xC8
+0x00C9 0xC9
+0x0118 0xCA
+0x00CB 0xCB
+0x0116 0xCC
+0x00CD 0xCD
+0x00CE 0xCE
+0x00CF 0xCF
+0x00D0 0xD0
+0x0145 0xD1
+0x014C 0xD2
+0x00D3 0xD3
+0x00D4 0xD4
+0x00D5 0xD5
+0x00D6 0xD6
+0x0168 0xD7
+0x00D8 0xD8
+0x0172 0xD9
+0x00DA 0xDA
+0x00DB 0xDB
+0x00DC 0xDC
+0x00DD 0xDD
+0x00DE 0xDE
+0x00DF 0xDF
+0x0101 0xE0
+0x00E1 0xE1
+0x00E2 0xE2
+0x00E3 0xE3
+0x00E4 0xE4
+0x00E5 0xE5
+0x00E6 0xE6
+0x012F 0xE7
+0x010D 0xE8
+0x00E9 0xE9
+0x0119 0xEA
+0x00EB 0xEB
+0x0117 0xEC
+0x00ED 0xED
+0x00EE 0xEE
+0x00EF 0xEF
+0x00F0 0xF0
+0x0146 0xF1
+0x014D 0xF2
+0x00F3 0xF3
+0x00F4 0xF4
+0x00F5 0xF5
+0x00F6 0xF6
+0x0169 0xF7
+0x00F8 0xF8
+0x0173 0xF9
+0x00FA 0xFA
+0x00FB 0xFB
+0x00FC 0xFC
+0x00FD 0xFD
+0x00FE 0xFE
+0x0138 0xFF
diff --git a/php/extras/fonts/ps/iso8859-13.cpg b/php/extras/fonts/ps/iso8859-13.cpg
new file mode 100644
index 000000000..0e33d85a8
--- /dev/null
+++ b/php/extras/fonts/ps/iso8859-13.cpg
@@ -0,0 +1,195 @@
+% Encoding definition for PDFlib
+% ISO 8859-13 (Latin-7)
+% Latin-7 covers Baltic languages.
+
+0x0020 0x20
+0x0021 0x21
+0x0022 0x22
+0x0023 0x23
+0x0024 0x24
+0x0025 0x25
+0x0026 0x26
+0x0027 0x27
+0x0028 0x28
+0x0029 0x29
+0x002A 0x2A
+0x002B 0x2B
+0x002C 0x2C
+0x002D 0x2D
+0x002E 0x2E
+0x002F 0x2F
+0x0030 0x30
+0x0031 0x31
+0x0032 0x32
+0x0033 0x33
+0x0034 0x34
+0x0035 0x35
+0x0036 0x36
+0x0037 0x37
+0x0038 0x38
+0x0039 0x39
+0x003A 0x3A
+0x003B 0x3B
+0x003C 0x3C
+0x003D 0x3D
+0x003E 0x3E
+0x003F 0x3F
+0x0040 0x40
+0x0041 0x41
+0x0042 0x42
+0x0043 0x43
+0x0044 0x44
+0x0045 0x45
+0x0046 0x46
+0x0047 0x47
+0x0048 0x48
+0x0049 0x49
+0x004A 0x4A
+0x004B 0x4B
+0x004C 0x4C
+0x004D 0x4D
+0x004E 0x4E
+0x004F 0x4F
+0x0050 0x50
+0x0051 0x51
+0x0052 0x52
+0x0053 0x53
+0x0054 0x54
+0x0055 0x55
+0x0056 0x56
+0x0057 0x57
+0x0058 0x58
+0x0059 0x59
+0x005A 0x5A
+0x005B 0x5B
+0x005C 0x5C
+0x005D 0x5D
+0x005E 0x5E
+0x005F 0x5F
+0x0060 0x60
+0x0061 0x61
+0x0062 0x62
+0x0063 0x63
+0x0064 0x64
+0x0065 0x65
+0x0066 0x66
+0x0067 0x67
+0x0068 0x68
+0x0069 0x69
+0x006A 0x6A
+0x006B 0x6B
+0x006C 0x6C
+0x006D 0x6D
+0x006E 0x6E
+0x006F 0x6F
+0x0070 0x70
+0x0071 0x71
+0x0072 0x72
+0x0073 0x73
+0x0074 0x74
+0x0075 0x75
+0x0076 0x76
+0x0077 0x77
+0x0078 0x78
+0x0079 0x79
+0x007A 0x7A
+0x007B 0x7B
+0x007C 0x7C
+0x007D 0x7D
+0x007E 0x7E
+0x00A0 0xA0
+0x201D 0xA1
+0x00A2 0xA2
+0x00A3 0xA3
+0x00A4 0xA4
+0x201E 0xA5
+0x00A6 0xA6
+0x00A7 0xA7
+0x00D8 0xA8
+0x00A9 0xA9
+0x0156 0xAA
+0x00AB 0xAB
+0x00AC 0xAC
+0x00AD 0xAD
+0x00AE 0xAE
+0x00C6 0xAF
+0x00B0 0xB0
+0x00B1 0xB1
+0x00B2 0xB2
+0x00B3 0xB3
+0x201C 0xB4
+0x00B5 0xB5
+0x00B6 0xB6
+0x00B7 0xB7
+0x00F8 0xB8
+0x00B9 0xB9
+0x0157 0xBA
+0x00BB 0xBB
+0x00BC 0xBC
+0x00BD 0xBD
+0x00BE 0xBE
+0x00E6 0xBF
+0x0104 0xC0
+0x012E 0xC1
+0x0100 0xC2
+0x0106 0xC3
+0x00C4 0xC4
+0x00C5 0xC5
+0x0118 0xC6
+0x0112 0xC7
+0x010C 0xC8
+0x00C9 0xC9
+0x0179 0xCA
+0x0116 0xCB
+0x0122 0xCC
+0x0136 0xCD
+0x012A 0xCE
+0x013B 0xCF
+0x0160 0xD0
+0x0143 0xD1
+0x0145 0xD2
+0x00D3 0xD3
+0x014C 0xD4
+0x00D5 0xD5
+0x00D6 0xD6
+0x00D7 0xD7
+0x0172 0xD8
+0x0141 0xD9
+0x015A 0xDA
+0x016A 0xDB
+0x00DC 0xDC
+0x017B 0xDD
+0x017D 0xDE
+0x00DF 0xDF
+0x0105 0xE0
+0x012F 0xE1
+0x0101 0xE2
+0x0107 0xE3
+0x00E4 0xE4
+0x00E5 0xE5
+0x0119 0xE6
+0x0113 0xE7
+0x010D 0xE8
+0x00E9 0xE9
+0x017A 0xEA
+0x0117 0xEB
+0x0123 0xEC
+0x0137 0xED
+0x012B 0xEE
+0x013C 0xEF
+0x0161 0xF0
+0x0144 0xF1
+0x0146 0xF2
+0x00F3 0xF3
+0x014D 0xF4
+0x00F5 0xF5
+0x00F6 0xF6
+0x00F7 0xF7
+0x0173 0xF8
+0x0142 0xF9
+0x015B 0xFA
+0x016B 0xFB
+0x00FC 0xFC
+0x017C 0xFD
+0x017E 0xFE
+0x2019 0xFF
diff --git a/php/extras/fonts/ps/iso8859-14.cpg b/php/extras/fonts/ps/iso8859-14.cpg
new file mode 100644
index 000000000..8e93f5d4a
--- /dev/null
+++ b/php/extras/fonts/ps/iso8859-14.cpg
@@ -0,0 +1,195 @@
+% Encoding definition for PDFlib
+% ISO 8859-14 (Latin-8)
+% Latin-8 covers Celtic.
+
+0x0020 0x20
+0x0021 0x21
+0x0022 0x22
+0x0023 0x23
+0x0024 0x24
+0x0025 0x25
+0x0026 0x26
+0x0027 0x27
+0x0028 0x28
+0x0029 0x29
+0x002A 0x2A
+0x002B 0x2B
+0x002C 0x2C
+0x002D 0x2D
+0x002E 0x2E
+0x002F 0x2F
+0x0030 0x30
+0x0031 0x31
+0x0032 0x32
+0x0033 0x33
+0x0034 0x34
+0x0035 0x35
+0x0036 0x36
+0x0037 0x37
+0x0038 0x38
+0x0039 0x39
+0x003A 0x3A
+0x003B 0x3B
+0x003C 0x3C
+0x003D 0x3D
+0x003E 0x3E
+0x003F 0x3F
+0x0040 0x40
+0x0041 0x41
+0x0042 0x42
+0x0043 0x43
+0x0044 0x44
+0x0045 0x45
+0x0046 0x46
+0x0047 0x47
+0x0048 0x48
+0x0049 0x49
+0x004A 0x4A
+0x004B 0x4B
+0x004C 0x4C
+0x004D 0x4D
+0x004E 0x4E
+0x004F 0x4F
+0x0050 0x50
+0x0051 0x51
+0x0052 0x52
+0x0053 0x53
+0x0054 0x54
+0x0055 0x55
+0x0056 0x56
+0x0057 0x57
+0x0058 0x58
+0x0059 0x59
+0x005A 0x5A
+0x005B 0x5B
+0x005C 0x5C
+0x005D 0x5D
+0x005E 0x5E
+0x005F 0x5F
+0x0060 0x60
+0x0061 0x61
+0x0062 0x62
+0x0063 0x63
+0x0064 0x64
+0x0065 0x65
+0x0066 0x66
+0x0067 0x67
+0x0068 0x68
+0x0069 0x69
+0x006A 0x6A
+0x006B 0x6B
+0x006C 0x6C
+0x006D 0x6D
+0x006E 0x6E
+0x006F 0x6F
+0x0070 0x70
+0x0071 0x71
+0x0072 0x72
+0x0073 0x73
+0x0074 0x74
+0x0075 0x75
+0x0076 0x76
+0x0077 0x77
+0x0078 0x78
+0x0079 0x79
+0x007A 0x7A
+0x007B 0x7B
+0x007C 0x7C
+0x007D 0x7D
+0x007E 0x7E
+0x00A0 0xA0
+0x1E02 0xA1 % won't work in PDF since it's not in AGL!
+0x1E03 0xA2 % won't work in PDF since it's not in AGL!
+0x00A3 0xA3
+0x010A 0xA4
+0x010B 0xA5
+0x1E0A 0xA6 % won't work in PDF since it's not in AGL!
+0x00A7 0xA7
+0x1E80 0xA8
+0x00A9 0xA9
+0x1E82 0xAA
+0x1E0B 0xAB % won't work in PDF since it's not in AGL!
+0x1EF2 0xAC
+0x00AD 0xAD
+0x00AE 0xAE
+0x0178 0xAF
+0x1E1E 0xB0 % won't work in PDF since it's not in AGL!
+0x1E1F 0xB1 % won't work in PDF since it's not in AGL!
+0x0120 0xB2
+0x0121 0xB3
+0x1E40 0xB4 % won't work in PDF since it's not in AGL!
+0x1E41 0xB5 % won't work in PDF since it's not in AGL!
+0x00B6 0xB6
+0x1E56 0xB7 % won't work in PDF since it's not in AGL!
+0x1E81 0xB8
+0x1E57 0xB9 % won't work in PDF since it's not in AGL!
+0x1E83 0xBA
+0x1E60 0xBB % won't work in PDF since it's not in AGL!
+0x1EF3 0xBC
+0x1E84 0xBD
+0x1E85 0xBE
+0x1E61 0xBF % won't work in PDF since it's not in AGL!
+0x00C0 0xC0
+0x00C1 0xC1
+0x00C2 0xC2
+0x00C3 0xC3
+0x00C4 0xC4
+0x00C5 0xC5
+0x00C6 0xC6
+0x00C7 0xC7
+0x00C8 0xC8
+0x00C9 0xC9
+0x00CA 0xCA
+0x00CB 0xCB
+0x00CC 0xCC
+0x00CD 0xCD
+0x00CE 0xCE
+0x00CF 0xCF
+0x0174 0xD0
+0x00D1 0xD1
+0x00D2 0xD2
+0x00D3 0xD3
+0x00D4 0xD4
+0x00D5 0xD5
+0x00D6 0xD6
+0x1E6A 0xD7 % won't work in PDF since it's not in AGL!
+0x00D8 0xD8
+0x00D9 0xD9
+0x00DA 0xDA
+0x00DB 0xDB
+0x00DC 0xDC
+0x00DD 0xDD
+0x0176 0xDE
+0x00DF 0xDF
+0x00E0 0xE0
+0x00E1 0xE1
+0x00E2 0xE2
+0x00E3 0xE3
+0x00E4 0xE4
+0x00E5 0xE5
+0x00E6 0xE6
+0x00E7 0xE7
+0x00E8 0xE8
+0x00E9 0xE9
+0x00EA 0xEA
+0x00EB 0xEB
+0x00EC 0xEC
+0x00ED 0xED
+0x00EE 0xEE
+0x00EF 0xEF
+0x0175 0xF0
+0x00F1 0xF1
+0x00F2 0xF2
+0x00F3 0xF3
+0x00F4 0xF4
+0x00F5 0xF5
+0x00F6 0xF6
+0x1E6B 0xF7 % won't work in PDF since it's not in AGL!
+0x00F8 0xF8
+0x00F9 0xF9
+0x00FA 0xFA
+0x00FB 0xFB
+0x00FC 0xFC
+0x00FD 0xFD
+0x0177 0xFE
+0x00FF 0xFF
diff --git a/php/extras/fonts/ps/iso8859-15.cpg b/php/extras/fonts/ps/iso8859-15.cpg
new file mode 100644
index 000000000..14e9c4b43
--- /dev/null
+++ b/php/extras/fonts/ps/iso8859-15.cpg
@@ -0,0 +1,262 @@
+% Encoding definition for PDFlib
+% ISO 8859-15 (Latin-9)
+% Latin-9 is a variation of Latin-1 which adds the Euro character
+% as well as some missing French and Finish characters.
+% Latin-9 is sometimes also dubbed Latin-0.
+
+0x0000 0x00 % 00
+0x0000 0x01 % 01
+0x0000 0x02 % 02
+0x0000 0x03 % 03
+0x0000 0x04 % 04
+0x0000 0x05 % 05
+0x0000 0x06 % 06
+0x0000 0x07 % 07
+0x0000 0x08 % 08
+0x0000 0x09 % 09
+0x0000 0x0A % 10
+0x0000 0x0B % 11
+0x0000 0x0C % 12
+0x0000 0x0D % 13
+0x0000 0x0E % 14
+0x0000 0x0F % 15
+0x0000 0x10 % 16
+0x0000 0x11 % 17
+0x0000 0x12 % 18
+0x0000 0x13 % 19
+0x0000 0x14 % 20
+0x0000 0x15 % 21
+0x0000 0x16 % 22
+0x0000 0x17 % 23
+0x0000 0x18 % 24
+0x0000 0x19 % 25
+0x0000 0x1A % 26
+0x0000 0x1B % 27
+0x0000 0x1C % 28
+0x0000 0x1D % 29
+0x0000 0x1E % 30
+0x0000 0x1F % 31
+0x0020 0x20 % 32
+0x0021 0x21 % 33
+0x0022 0x22 % 34
+0x0023 0x23 % 35
+0x0024 0x24 % 36
+0x0025 0x25 % 37
+0x0026 0x26 % 38
+0x0027 0x27 % 39
+0x0028 0x28 % 40
+0x0029 0x29 % 41
+0x002A 0x2A % 42
+0x002B 0x2B % 43
+0x002C 0x2C % 44
+0x002D 0x2D % 45
+0x002E 0x2E % 46
+0x002F 0x2F % 47
+0x0030 0x30 % 48
+0x0031 0x31 % 49
+0x0032 0x32 % 50
+0x0033 0x33 % 51
+0x0034 0x34 % 52
+0x0035 0x35 % 53
+0x0036 0x36 % 54
+0x0037 0x37 % 55
+0x0038 0x38 % 56
+0x0039 0x39 % 57
+0x003A 0x3A % 58
+0x003B 0x3B % 59
+0x003C 0x3C % 60
+0x003D 0x3D % 61
+0x003E 0x3E % 62
+0x003F 0x3F % 63
+0x0040 0x40 % 64
+0x0041 0x41 % 65
+0x0042 0x42 % 66
+0x0043 0x43 % 67
+0x0044 0x44 % 68
+0x0045 0x45 % 69
+0x0046 0x46 % 70
+0x0047 0x47 % 71
+0x0048 0x48 % 72
+0x0049 0x49 % 73
+0x004A 0x4A % 74
+0x004B 0x4B % 75
+0x004C 0x4C % 76
+0x004D 0x4D % 77
+0x004E 0x4E % 78
+0x004F 0x4F % 79
+0x0050 0x50 % 80
+0x0051 0x51 % 81
+0x0052 0x52 % 82
+0x0053 0x53 % 83
+0x0054 0x54 % 84
+0x0055 0x55 % 85
+0x0056 0x56 % 86
+0x0057 0x57 % 87
+0x0058 0x58 % 88
+0x0059 0x59 % 89
+0x005A 0x5A % 90
+0x005B 0x5B % 91
+0x005C 0x5C % 92
+0x005D 0x5D % 93
+0x005E 0x5E % 94
+0x005F 0x5F % 95
+0x0060 0x60 % 96
+0x0061 0x61 % 97
+0x0062 0x62 % 98
+0x0063 0x63 % 99
+0x0064 0x64 % 100
+0x0065 0x65 % 101
+0x0066 0x66 % 102
+0x0067 0x67 % 103
+0x0068 0x68 % 104
+0x0069 0x69 % 105
+0x006A 0x6A % 106
+0x006B 0x6B % 107
+0x006C 0x6C % 108
+0x006D 0x6D % 109
+0x006E 0x6E % 110
+0x006F 0x6F % 111
+0x0070 0x70 % 112
+0x0071 0x71 % 113
+0x0072 0x72 % 114
+0x0073 0x73 % 115
+0x0074 0x74 % 116
+0x0075 0x75 % 117
+0x0076 0x76 % 118
+0x0077 0x77 % 119
+0x0078 0x78 % 120
+0x0079 0x79 % 121
+0x007A 0x7A % 122
+0x007B 0x7B % 123
+0x007C 0x7C % 124
+0x007D 0x7D % 125
+0x007E 0x7E % 126
+0x0000 0x7F % 127
+0x0000 0x80 % 128
+0x0000 0x81 % 129
+0x0000 0x82 % 130
+0x0000 0x83 % 131
+0x0000 0x84 % 132
+0x0000 0x85 % 133
+0x0000 0x86 % 134
+0x0000 0x87 % 135
+0x0000 0x88 % 136
+0x0000 0x89 % 137
+0x0000 0x8A % 138
+0x0000 0x8B % 139
+0x0000 0x8C % 140
+0x0000 0x8D % 141
+0x0000 0x8E % 142
+0x0000 0x8F % 143
+0x0000 0x90 % 144
+0x0000 0x91 % 145
+0x0000 0x92 % 146
+0x0000 0x93 % 147
+0x0000 0x94 % 148
+0x0000 0x95 % 149
+0x0000 0x96 % 150
+0x0000 0x97 % 151
+0x0000 0x98 % 152
+0x0000 0x99 % 153
+0x0000 0x9A % 154
+0x0000 0x9B % 155
+0x0000 0x9C % 156
+0x0000 0x9D % 157
+0x0000 0x9E % 158
+0x0000 0x9F % 159
+0x0020 0xA0 % 160
+0x00A1 0xA1 % 161
+0x00A2 0xA2 % 162
+0x00A3 0xA3 % 163
+0x20AC 0xA4 % 164
+0x00A5 0xA5 % 165
+0x0160 0xA6 % 166
+0x00A7 0xA7 % 167
+0x0161 0xA8 % 168
+0x00A9 0xA9 % 169
+0x00AA 0xAA % 170
+0x00AB 0xAB % 171
+0x00AC 0xAC % 172
+0x002D 0xAD % 173
+0x00AE 0xAE % 174
+0x00AF 0xAF % 175
+0x00B0 0xB0 % 176
+0x00B1 0xB1 % 177
+0x00B2 0xB2 % 178
+0x00B3 0xB3 % 179
+0x017D 0xB4 % 180
+0x03BC 0xB5 % 181
+0x00B6 0xB6 % 182
+0x2022 0xB7 % 183
+0x017E 0xB8 % 184
+0x00B9 0xB9 % 185
+0x00BA 0xBA % 186
+0x00BB 0xBB % 187
+0x0152 0xBC % 188
+0x0153 0xBD % 189
+0x0178 0xBE % 190
+0x00BF 0xBF % 191
+0x00C0 0xC0 % 192
+0x00C1 0xC1 % 193
+0x00C2 0xC2 % 194
+0x00C3 0xC3 % 195
+0x00C4 0xC4 % 196
+0x00C5 0xC5 % 197
+0x00C6 0xC6 % 198
+0x00C7 0xC7 % 199
+0x00C8 0xC8 % 200
+0x00C9 0xC9 % 201
+0x00CA 0xCA % 202
+0x00CB 0xCB % 203
+0x00CC 0xCC % 204
+0x00CD 0xCD % 205
+0x00CE 0xCE % 206
+0x00CF 0xCF % 207
+0x00D0 0xD0 % 208
+0x00D1 0xD1 % 209
+0x00D2 0xD2 % 210
+0x00D3 0xD3 % 211
+0x00D4 0xD4 % 212
+0x00D5 0xD5 % 213
+0x00D6 0xD6 % 214
+0x00D7 0xD7 % 215
+0x00D8 0xD8 % 216
+0x00D9 0xD9 % 217
+0x00DA 0xDA % 218
+0x00DB 0xDB % 219
+0x00DC 0xDC % 220
+0x00DD 0xDD % 221
+0x00DE 0xDE % 222
+0x00DF 0xDF % 223
+0x00E0 0xE0 % 224
+0x00E1 0xE1 % 225
+0x00E2 0xE2 % 226
+0x00E3 0xE3 % 227
+0x00E4 0xE4 % 228
+0x00E5 0xE5 % 229
+0x00E6 0xE6 % 230
+0x00E7 0xE7 % 231
+0x00E8 0xE8 % 232
+0x00E9 0xE9 % 233
+0x00EA 0xEA % 234
+0x00EB 0xEB % 235
+0x00EC 0xEC % 236
+0x00ED 0xED % 237
+0x00EE 0xEE % 238
+0x00EF 0xEF % 239
+0x00F0 0xF0 % 240
+0x00F1 0xF1 % 241
+0x00F2 0xF2 % 242
+0x00F3 0xF3 % 243
+0x00F4 0xF4 % 244
+0x00F5 0xF5 % 245
+0x00F6 0xF6 % 246
+0x00F7 0xF7 % 247
+0x00F8 0xF8 % 248
+0x00F9 0xF9 % 249
+0x00FA 0xFA % 250
+0x00FB 0xFB % 251
+0x00FC 0xFC % 252
+0x00FD 0xFD % 253
+0x00FE 0xFE % 254
+0x00FF 0xFF % 255
diff --git a/php/extras/fonts/ps/iso8859-15.enc b/php/extras/fonts/ps/iso8859-15.enc
new file mode 100644
index 000000000..8463c13e4
--- /dev/null
+++ b/php/extras/fonts/ps/iso8859-15.enc
@@ -0,0 +1,197 @@
+% Encoding definition for PDFlib
+% ISO 8859-15 (Latin-9)
+% Latin-9 is a variation of Latin-1 which adds the Euro character
+% as well as some missing French and Finish characters.
+% Latin-9 is sometimes also dubbed Latin-0.
+
+space 32 % 0x20
+exclam 33 % 0x21
+quotedbl 34 % 0x22
+numbersign 35 % 0x23
+dollar 36 % 0x24
+percent 37 % 0x25
+ampersand 38 % 0x26
+quotesingle 39 % 0x27
+parenleft 40 % 0x28
+parenright 41 % 0x29
+asterisk 42 % 0x2A
+plus 43 % 0x2B
+comma 44 % 0x2C
+hyphen 45 % 0x2D
+period 46 % 0x2E
+slash 47 % 0x2F
+zero 48 % 0x30
+one 49 % 0x31
+two 50 % 0x32
+three 51 % 0x33
+four 52 % 0x34
+five 53 % 0x35
+six 54 % 0x36
+seven 55 % 0x37
+eight 56 % 0x38
+nine 57 % 0x39
+colon 58 % 0x3A
+semicolon 59 % 0x3B
+less 60 % 0x3C
+equal 61 % 0x3D
+greater 62 % 0x3E
+question 63 % 0x3F
+at 64 % 0x40
+A 65 % 0x41
+B 66 % 0x42
+C 67 % 0x43
+D 68 % 0x44
+E 69 % 0x45
+F 70 % 0x46
+G 71 % 0x47
+H 72 % 0x48
+I 73 % 0x49
+J 74 % 0x4A
+K 75 % 0x4B
+L 76 % 0x4C
+M 77 % 0x4D
+N 78 % 0x4E
+O 79 % 0x4F
+P 80 % 0x50
+Q 81 % 0x51
+R 82 % 0x52
+S 83 % 0x53
+T 84 % 0x54
+U 85 % 0x55
+V 86 % 0x56
+W 87 % 0x57
+X 88 % 0x58
+Y 89 % 0x59
+Z 90 % 0x5A
+bracketleft 91 % 0x5B
+backslash 92 % 0x5C
+bracketright 93 % 0x5D
+asciicircum 94 % 0x5E
+underscore 95 % 0x5F
+grave 96 % 0x60
+a 97 % 0x61
+b 98 % 0x62
+c 99 % 0x63
+d 100 % 0x64
+e 101 % 0x65
+f 102 % 0x66
+g 103 % 0x67
+h 104 % 0x68
+i 105 % 0x69
+j 106 % 0x6A
+k 107 % 0x6B
+l 108 % 0x6C
+m 109 % 0x6D
+n 110 % 0x6E
+o 111 % 0x6F
+p 112 % 0x70
+q 113 % 0x71
+r 114 % 0x72
+s 115 % 0x73
+t 116 % 0x74
+u 117 % 0x75
+v 118 % 0x76
+w 119 % 0x77
+x 120 % 0x78
+y 121 % 0x79
+z 122 % 0x7A
+braceleft 123 % 0x7B
+bar 124 % 0x7C
+braceright 125 % 0x7D
+asciitilde 126 % 0x7E
+space 160 % 0xA0
+exclamdown 161 % 0xA1
+cent 162 % 0xA2
+sterling 163 % 0xA3
+Euro 164 % 0xA4
+yen 165 % 0xA5
+Scaron 166 % 0xA6
+section 167 % 0xA7
+scaron 168 % 0xA8
+copyright 169 % 0xA9
+ordfeminine 170 % 0xAA
+guillemotleft 171 % 0xAB
+logicalnot 172 % 0xAC
+hyphen 173 % 0xAD
+registered 174 % 0xAE
+macron 175 % 0xAF
+degree 176 % 0xB0
+plusminus 177 % 0xB1
+twosuperior 178 % 0xB2
+threesuperior 179 % 0xB3
+Zcaron 180 % 0xB4
+mu 181 % 0xB5
+paragraph 182 % 0xB6
+bullet 183 % 0xB7
+zcaron 184 % 0xB8
+onesuperior 185 % 0xB9
+ordmasculine 186 % 0xBA
+guillemotright 187 % 0xBB
+OE 188 % 0xBC
+oe 189 % 0xBD
+Ydieresis 190 % 0xBE
+questiondown 191 % 0xBF
+Agrave 192 % 0xC0
+Aacute 193 % 0xC1
+Acircumflex 194 % 0xC2
+Atilde 195 % 0xC3
+Adieresis 196 % 0xC4
+Aring 197 % 0xC5
+AE 198 % 0xC6
+Ccedilla 199 % 0xC7
+Egrave 200 % 0xC8
+Eacute 201 % 0xC9
+Ecircumflex 202 % 0xCA
+Edieresis 203 % 0xCB
+Igrave 204 % 0xCC
+Iacute 205 % 0xCD
+Icircumflex 206 % 0xCE
+Idieresis 207 % 0xCF
+Eth 208 % 0xD0
+Ntilde 209 % 0xD1
+Ograve 210 % 0xD2
+Oacute 211 % 0xD3
+Ocircumflex 212 % 0xD4
+Otilde 213 % 0xD5
+Odieresis 214 % 0xD6
+multiply 215 % 0xD7
+Oslash 216 % 0xD8
+Ugrave 217 % 0xD9
+Uacute 218 % 0xDA
+Ucircumflex 219 % 0xDB
+Udieresis 220 % 0xDC
+Yacute 221 % 0xDD
+Thorn 222 % 0xDE
+germandbls 223 % 0xDF
+agrave 224 % 0xE0
+aacute 225 % 0xE1
+acircumflex 226 % 0xE2
+atilde 227 % 0xE3
+adieresis 228 % 0xE4
+aring 229 % 0xE5
+ae 230 % 0xE6
+ccedilla 231 % 0xE7
+egrave 232 % 0xE8
+eacute 233 % 0xE9
+ecircumflex 234 % 0xEA
+edieresis 235 % 0xEB
+igrave 236 % 0xEC
+iacute 237 % 0xED
+icircumflex 238 % 0xEE
+idieresis 239 % 0xEF
+eth 240 % 0xF0
+ntilde 241 % 0xF1
+ograve 242 % 0xF2
+oacute 243 % 0xF3
+ocircumflex 244 % 0xF4
+otilde 245 % 0xF5
+odieresis 246 % 0xF6
+divide 247 % 0xF7
+oslash 248 % 0xF8
+ugrave 249 % 0xF9
+uacute 250 % 0xFA
+ucircumflex 251 % 0xFB
+udieresis 252 % 0xFC
+yacute 253 % 0xFD
+thorn 254 % 0xFE
+ydieresis 255 % 0xFF
diff --git a/php/extras/fonts/ps/iso8859-16.cpg b/php/extras/fonts/ps/iso8859-16.cpg
new file mode 100644
index 000000000..f445adb75
--- /dev/null
+++ b/php/extras/fonts/ps/iso8859-16.cpg
@@ -0,0 +1,195 @@
+% Encoding definition for PDFlib
+% ISO 8859-16 (Latin-10)
+% Latin-10 covers Hungarian, Polish, Romanian, and Slovenian.
+
+0x0020 0x20
+0x0021 0x21
+0x0022 0x22
+0x0023 0x23
+0x0024 0x24
+0x0025 0x25
+0x0026 0x26
+0x0027 0x27
+0x0028 0x28
+0x0029 0x29
+0x002A 0x2A
+0x002B 0x2B
+0x002C 0x2C
+0x002D 0x2D
+0x002E 0x2E
+0x002F 0x2F
+0x0030 0x30
+0x0031 0x31
+0x0032 0x32
+0x0033 0x33
+0x0034 0x34
+0x0035 0x35
+0x0036 0x36
+0x0037 0x37
+0x0038 0x38
+0x0039 0x39
+0x003A 0x3A
+0x003B 0x3B
+0x003C 0x3C
+0x003D 0x3D
+0x003E 0x3E
+0x003F 0x3F
+0x0040 0x40
+0x0041 0x41
+0x0042 0x42
+0x0043 0x43
+0x0044 0x44
+0x0045 0x45
+0x0046 0x46
+0x0047 0x47
+0x0048 0x48
+0x0049 0x49
+0x004A 0x4A
+0x004B 0x4B
+0x004C 0x4C
+0x004D 0x4D
+0x004E 0x4E
+0x004F 0x4F
+0x0050 0x50
+0x0051 0x51
+0x0052 0x52
+0x0053 0x53
+0x0054 0x54
+0x0055 0x55
+0x0056 0x56
+0x0057 0x57
+0x0058 0x58
+0x0059 0x59
+0x005A 0x5A
+0x005B 0x5B
+0x005C 0x5C
+0x005D 0x5D
+0x005E 0x5E
+0x005F 0x5F
+0x0060 0x60
+0x0061 0x61
+0x0062 0x62
+0x0063 0x63
+0x0064 0x64
+0x0065 0x65
+0x0066 0x66
+0x0067 0x67
+0x0068 0x68
+0x0069 0x69
+0x006A 0x6A
+0x006B 0x6B
+0x006C 0x6C
+0x006D 0x6D
+0x006E 0x6E
+0x006F 0x6F
+0x0070 0x70
+0x0071 0x71
+0x0072 0x72
+0x0073 0x73
+0x0074 0x74
+0x0075 0x75
+0x0076 0x76
+0x0077 0x77
+0x0078 0x78
+0x0079 0x79
+0x007A 0x7A
+0x007B 0x7B
+0x007C 0x7C
+0x007D 0x7D
+0x007E 0x7E
+0x00A0 0xA0
+0x0104 0xA1
+0x0105 0xA2
+0x0141 0xA3
+0x20AC 0xA4
+0x201E 0xA5
+0x0160 0xA6
+0x00A7 0xA7
+0x0161 0xA8
+0x00A9 0xA9
+0x0218 0xAA
+0x00AB 0xAB
+0x0179 0xAC
+0x00AD 0xAD
+0x017A 0xAE
+0x017B 0xAF
+0x00B0 0xB0
+0x00B1 0xB1
+0x010C 0xB2
+0x0142 0xB3
+0x017D 0xB4
+0x201D 0xB5
+0x00B6 0xB6
+0x00B7 0xB7
+0x017E 0xB8
+0x010D 0xB9
+0x0219 0xBA
+0x00BB 0xBB
+0x0152 0xBC
+0x0153 0xBD
+0x0178 0xBE
+0x017C 0xBF
+0x00C0 0xC0
+0x00C1 0xC1
+0x00C2 0xC2
+0x0102 0xC3
+0x00C4 0xC4
+0x0106 0xC5
+0x00C6 0xC6
+0x00C7 0xC7
+0x00C8 0xC8
+0x00C9 0xC9
+0x00CA 0xCA
+0x00CB 0xCB
+0x00CC 0xCC
+0x00CD 0xCD
+0x00CE 0xCE
+0x00CF 0xCF
+0x0110 0xD0
+0x0143 0xD1
+0x00D2 0xD2
+0x00D3 0xD3
+0x00D4 0xD4
+0x0150 0xD5
+0x00D6 0xD6
+0x015A 0xD7
+0x0170 0xD8
+0x00D9 0xD9
+0x00DA 0xDA
+0x00DB 0xDB
+0x00DC 0xDC
+0x0118 0xDD
+0x021A 0xDE
+0x00DF 0xDF
+0x00E0 0xE0
+0x00E1 0xE1
+0x00E2 0xE2
+0x0103 0xE3
+0x00E4 0xE4
+0x0107 0xE5
+0x00E6 0xE6
+0x00E7 0xE7
+0x00E8 0xE8
+0x00E9 0xE9
+0x00EA 0xEA
+0x00EB 0xEB
+0x00EC 0xEC
+0x00ED 0xED
+0x00EE 0xEE
+0x00EF 0xEF
+0x0111 0xF0
+0x0144 0xF1
+0x00F2 0xF2
+0x00F3 0xF3
+0x00F4 0xF4
+0x0151 0xF5
+0x00F6 0xF6
+0x015B 0xF7
+0x0171 0xF8
+0x00F9 0xF9
+0x00FA 0xFA
+0x00FB 0xFB
+0x00FC 0xFC
+0x0119 0xFD
+0x021B 0xFE
+0x00FF 0xFF
diff --git a/php/extras/fonts/ps/iso8859-2.cpg b/php/extras/fonts/ps/iso8859-2.cpg
new file mode 100644
index 000000000..b18643aeb
--- /dev/null
+++ b/php/extras/fonts/ps/iso8859-2.cpg
@@ -0,0 +1,261 @@
+% Encoding definition for PDFlib
+% ISO 8859-2 (Latin-2)
+% The Latin 2 character set supports the Slavic languages
+% of Central Europe which use the Latin alphabet.
+
+0x0000 0x00 % 00
+0x0000 0x01 % 01
+0x0000 0x02 % 02
+0x0000 0x03 % 03
+0x0000 0x04 % 04
+0x0000 0x05 % 05
+0x0000 0x06 % 06
+0x0000 0x07 % 07
+0x0000 0x08 % 08
+0x0000 0x09 % 09
+0x0000 0x0A % 10
+0x0000 0x0B % 11
+0x0000 0x0C % 12
+0x0000 0x0D % 13
+0x0000 0x0E % 14
+0x0000 0x0F % 15
+0x0000 0x10 % 16
+0x0000 0x11 % 17
+0x0000 0x12 % 18
+0x0000 0x13 % 19
+0x0000 0x14 % 20
+0x0000 0x15 % 21
+0x0000 0x16 % 22
+0x0000 0x17 % 23
+0x0000 0x18 % 24
+0x0000 0x19 % 25
+0x0000 0x1A % 26
+0x0000 0x1B % 27
+0x0000 0x1C % 28
+0x0000 0x1D % 29
+0x0000 0x1E % 30
+0x0000 0x1F % 31
+0x0020 0x20 % 32
+0x0021 0x21 % 33
+0x0022 0x22 % 34
+0x0023 0x23 % 35
+0x0024 0x24 % 36
+0x0025 0x25 % 37
+0x0026 0x26 % 38
+0x0027 0x27 % 39
+0x0028 0x28 % 40
+0x0029 0x29 % 41
+0x002A 0x2A % 42
+0x002B 0x2B % 43
+0x002C 0x2C % 44
+0x002D 0x2D % 45
+0x002E 0x2E % 46
+0x002F 0x2F % 47
+0x0030 0x30 % 48
+0x0031 0x31 % 49
+0x0032 0x32 % 50
+0x0033 0x33 % 51
+0x0034 0x34 % 52
+0x0035 0x35 % 53
+0x0036 0x36 % 54
+0x0037 0x37 % 55
+0x0038 0x38 % 56
+0x0039 0x39 % 57
+0x003A 0x3A % 58
+0x003B 0x3B % 59
+0x003C 0x3C % 60
+0x003D 0x3D % 61
+0x003E 0x3E % 62
+0x003F 0x3F % 63
+0x0040 0x40 % 64
+0x0041 0x41 % 65
+0x0042 0x42 % 66
+0x0043 0x43 % 67
+0x0044 0x44 % 68
+0x0045 0x45 % 69
+0x0046 0x46 % 70
+0x0047 0x47 % 71
+0x0048 0x48 % 72
+0x0049 0x49 % 73
+0x004A 0x4A % 74
+0x004B 0x4B % 75
+0x004C 0x4C % 76
+0x004D 0x4D % 77
+0x004E 0x4E % 78
+0x004F 0x4F % 79
+0x0050 0x50 % 80
+0x0051 0x51 % 81
+0x0052 0x52 % 82
+0x0053 0x53 % 83
+0x0054 0x54 % 84
+0x0055 0x55 % 85
+0x0056 0x56 % 86
+0x0057 0x57 % 87
+0x0058 0x58 % 88
+0x0059 0x59 % 89
+0x005A 0x5A % 90
+0x005B 0x5B % 91
+0x005C 0x5C % 92
+0x005D 0x5D % 93
+0x005E 0x5E % 94
+0x005F 0x5F % 95
+0x0060 0x60 % 96
+0x0061 0x61 % 97
+0x0062 0x62 % 98
+0x0063 0x63 % 99
+0x0064 0x64 % 100
+0x0065 0x65 % 101
+0x0066 0x66 % 102
+0x0067 0x67 % 103
+0x0068 0x68 % 104
+0x0069 0x69 % 105
+0x006A 0x6A % 106
+0x006B 0x6B % 107
+0x006C 0x6C % 108
+0x006D 0x6D % 109
+0x006E 0x6E % 110
+0x006F 0x6F % 111
+0x0070 0x70 % 112
+0x0071 0x71 % 113
+0x0072 0x72 % 114
+0x0073 0x73 % 115
+0x0074 0x74 % 116
+0x0075 0x75 % 117
+0x0076 0x76 % 118
+0x0077 0x77 % 119
+0x0078 0x78 % 120
+0x0079 0x79 % 121
+0x007A 0x7A % 122
+0x007B 0x7B % 123
+0x007C 0x7C % 124
+0x007D 0x7D % 125
+0x007E 0x7E % 126
+0x0000 0x7F % 127
+0x0000 0x80 % 128
+0x0000 0x81 % 129
+0x0000 0x82 % 130
+0x0000 0x83 % 131
+0x0000 0x84 % 132
+0x0000 0x85 % 133
+0x0000 0x86 % 134
+0x0000 0x87 % 135
+0x0000 0x88 % 136
+0x0000 0x89 % 137
+0x0000 0x8A % 138
+0x0000 0x8B % 139
+0x0000 0x8C % 140
+0x0000 0x8D % 141
+0x0000 0x8E % 142
+0x0000 0x8F % 143
+0x0000 0x90 % 144
+0x0000 0x91 % 145
+0x0000 0x92 % 146
+0x0000 0x93 % 147
+0x0000 0x94 % 148
+0x0000 0x95 % 149
+0x0000 0x96 % 150
+0x0000 0x97 % 151
+0x0000 0x98 % 152
+0x0000 0x99 % 153
+0x0000 0x9A % 154
+0x0000 0x9B % 155
+0x0000 0x9C % 156
+0x0000 0x9D % 157
+0x0000 0x9E % 158
+0x0000 0x9F % 159
+0x0020 0xA0 % 160
+0x0104 0xA1 % 161
+0x02D8 0xA2 % 162
+0x0141 0xA3 % 163
+0x00A4 0xA4 % 164
+0x013D 0xA5 % 165
+0x015A 0xA6 % 166
+0x00A7 0xA7 % 167
+0x00A8 0xA8 % 168
+0x0160 0xA9 % 169
+0x015E 0xAA % 170
+0x0164 0xAB % 171
+0x0179 0xAC % 172
+0x002D 0xAD % 173
+0x017D 0xAE % 174
+0x017B 0xAF % 175
+0x00B0 0xB0 % 176
+0x0105 0xB1 % 177
+0x02DB 0xB2 % 178
+0x0142 0xB3 % 179
+0x00B4 0xB4 % 180
+0x013E 0xB5 % 181
+0x015B 0xB6 % 182
+0x02C7 0xB7 % 183
+0x00B8 0xB8 % 184
+0x0161 0xB9 % 185
+0x015F 0xBA % 186
+0x0165 0xBB % 187
+0x017A 0xBC % 188
+0x02DD 0xBD % 189
+0x017E 0xBE % 190
+0x017C 0xBF % 191
+0x0154 0xC0 % 192
+0x00C1 0xC1 % 193
+0x00C2 0xC2 % 194
+0x0102 0xC3 % 195
+0x00C4 0xC4 % 196
+0x0139 0xC5 % 197
+0x0106 0xC6 % 198
+0x00C7 0xC7 % 199
+0x010C 0xC8 % 200
+0x00C9 0xC9 % 201
+0x0118 0xCA % 202
+0x00CB 0xCB % 203
+0x011A 0xCC % 204
+0x00CD 0xCD % 205
+0x00CE 0xCE % 206
+0x010E 0xCF % 207
+0x00D0 0xD0 % 208
+0x0143 0xD1 % 209
+0x0147 0xD2 % 210
+0x00D3 0xD3 % 211
+0x00D4 0xD4 % 212
+0x0150 0xD5 % 213
+0x00D6 0xD6 % 214
+0x00D7 0xD7 % 215
+0x0158 0xD8 % 216
+0x016E 0xD9 % 217
+0x00DA 0xDA % 218
+0x0170 0xDB % 219
+0x00DC 0xDC % 220
+0x00DD 0xDD % 221
+0x0162 0xDE % 222
+0x00DF 0xDF % 223
+0x0155 0xE0 % 224
+0x00E1 0xE1 % 225
+0x00E2 0xE2 % 226
+0x0103 0xE3 % 227
+0x00E4 0xE4 % 228
+0x013A 0xE5 % 229
+0x0107 0xE6 % 230
+0x00E7 0xE7 % 231
+0x010D 0xE8 % 232
+0x00E9 0xE9 % 233
+0x0119 0xEA % 234
+0x00EB 0xEB % 235
+0x011B 0xEC % 236
+0x00ED 0xED % 237
+0x00EE 0xEE % 238
+0x010F 0xEF % 239
+0x0111 0xF0 % 240
+0x0144 0xF1 % 241
+0x0148 0xF2 % 242
+0x00F3 0xF3 % 243
+0x00F4 0xF4 % 244
+0x0151 0xF5 % 245
+0x00F6 0xF6 % 246
+0x00F7 0xF7 % 247
+0x0159 0xF8 % 248
+0x016F 0xF9 % 249
+0x00FA 0xFA % 250
+0x0171 0xFB % 251
+0x00FC 0xFC % 252
+0x00FD 0xFD % 253
+0x0163 0xFE % 254
+0x02D9 0xFF % 255
diff --git a/php/extras/fonts/ps/iso8859-2.enc b/php/extras/fonts/ps/iso8859-2.enc
new file mode 100644
index 000000000..e1094ad87
--- /dev/null
+++ b/php/extras/fonts/ps/iso8859-2.enc
@@ -0,0 +1,197 @@
+% Encoding definition for PDFlib
+% ISO 8859-2 (Latin-2)
+% The Latin 2 character set supports the Slavic languages
+% of Central Europe which use the Latin alphabet.
+
+space 32 % 0x20
+exclam 33 % 0x21
+quotedbl 34 % 0x22
+numbersign 35 % 0x23
+dollar 36 % 0x24
+percent 37 % 0x25
+ampersand 38 % 0x26
+quotesingle 39 % 0x27
+parenleft 40 % 0x28
+parenright 41 % 0x29
+asterisk 42 % 0x2A
+plus 43 % 0x2B
+comma 44 % 0x2C
+hyphen 45 % 0x2D
+period 46 % 0x2E
+slash 47 % 0x2F
+zero 48 % 0x30
+one 49 % 0x31
+two 50 % 0x32
+three 51 % 0x33
+four 52 % 0x34
+five 53 % 0x35
+six 54 % 0x36
+seven 55 % 0x37
+eight 56 % 0x38
+nine 57 % 0x39
+colon 58 % 0x3A
+semicolon 59 % 0x3B
+less 60 % 0x3C
+equal 61 % 0x3D
+greater 62 % 0x3E
+question 63 % 0x3F
+at 64 % 0x40
+A 65 % 0x41
+B 66 % 0x42
+C 67 % 0x43
+D 68 % 0x44
+E 69 % 0x45
+F 70 % 0x46
+G 71 % 0x47
+H 72 % 0x48
+I 73 % 0x49
+J 74 % 0x4A
+K 75 % 0x4B
+L 76 % 0x4C
+M 77 % 0x4D
+N 78 % 0x4E
+O 79 % 0x4F
+P 80 % 0x50
+Q 81 % 0x51
+R 82 % 0x52
+S 83 % 0x53
+T 84 % 0x54
+U 85 % 0x55
+V 86 % 0x56
+W 87 % 0x57
+X 88 % 0x58
+Y 89 % 0x59
+Z 90 % 0x5A
+bracketleft 91 % 0x5B
+backslash 92 % 0x5C
+bracketright 93 % 0x5D
+asciicircum 94 % 0x5E
+underscore 95 % 0x5F
+grave 96 % 0x60
+a 97 % 0x61
+b 98 % 0x62
+c 99 % 0x63
+d 100 % 0x64
+e 101 % 0x65
+f 102 % 0x66
+g 103 % 0x67
+h 104 % 0x68
+i 105 % 0x69
+j 106 % 0x6A
+k 107 % 0x6B
+l 108 % 0x6C
+m 109 % 0x6D
+n 110 % 0x6E
+o 111 % 0x6F
+p 112 % 0x70
+q 113 % 0x71
+r 114 % 0x72
+s 115 % 0x73
+t 116 % 0x74
+u 117 % 0x75
+v 118 % 0x76
+w 119 % 0x77
+x 120 % 0x78
+y 121 % 0x79
+z 122 % 0x7A
+braceleft 123 % 0x7B
+bar 124 % 0x7C
+braceright 125 % 0x7D
+asciitilde 126 % 0x7E
+space 160 % 0xA0
+Aogonek 161 % 0xA1
+breve 162 % 0xA2
+Lslash 163 % 0xA3
+currency 164 % 0xA4
+Lcaron 165 % 0xA5
+Sacute 166 % 0xA6
+section 167 % 0xA7
+dieresis 168 % 0xA8
+Scaron 169 % 0xA9
+Scedilla 170 % 0xAA
+Tcaron 171 % 0xAB
+Zacute 172 % 0xAC
+hyphen 173 % 0xAD
+Zcaron 174 % 0xAE
+Zdotaccent 175 % 0xAF
+degree 176 % 0xB0
+aogonek 177 % 0xB1
+ogonek 178 % 0xB2
+lslash 179 % 0xB3
+acute 180 % 0xB4
+lcaron 181 % 0xB5
+sacute 182 % 0xB6
+caron 183 % 0xB7
+cedilla 184 % 0xB8
+scaron 185 % 0xB9
+scedilla 186 % 0xBA
+tcaron 187 % 0xBB
+zacute 188 % 0xBC
+hungarumlaut 189 % 0xBD
+zcaron 190 % 0xBE
+zdotaccent 191 % 0xBF
+Racute 192 % 0xC0
+Aacute 193 % 0xC1
+Acircumflex 194 % 0xC2
+Abreve 195 % 0xC3
+Adieresis 196 % 0xC4
+Lacute 197 % 0xC5
+Cacute 198 % 0xC6
+Ccedilla 199 % 0xC7
+Ccaron 200 % 0xC8
+Eacute 201 % 0xC9
+Eogonek 202 % 0xCA
+Edieresis 203 % 0xCB
+Ecaron 204 % 0xCC
+Iacute 205 % 0xCD
+Icircumflex 206 % 0xCE
+Dcaron 207 % 0xCF
+Eth 208 % 0xD0
+Nacute 209 % 0xD1
+Ncaron 210 % 0xD2
+Oacute 211 % 0xD3
+Ocircumflex 212 % 0xD4
+Ohungarumlaut 213 % 0xD5
+Odieresis 214 % 0xD6
+multiply 215 % 0xD7
+Rcaron 216 % 0xD8
+Uring 217 % 0xD9
+Uacute 218 % 0xDA
+Uhungarumlaut 219 % 0xDB
+Udieresis 220 % 0xDC
+Yacute 221 % 0xDD
+Tcommaaccent 222 % 0xDE Tcedilla in Unicode, but Tcommaaccent in
+ % Adobe fonts
+germandbls 223 % 0xDF
+racute 224 % 0xE0
+aacute 225 % 0xE1
+acircumflex 226 % 0xE2
+abreve 227 % 0xE3
+adieresis 228 % 0xE4
+lacute 229 % 0xE5
+cacute 230 % 0xE6
+ccedilla 231 % 0xE7
+ccaron 232 % 0xE8
+eacute 233 % 0xE9
+eogonek 234 % 0xEA
+edieresis 235 % 0xEB
+ecaron 236 % 0xEC
+iacute 237 % 0xED
+icircumflex 238 % 0xEE
+dcaron 239 % 0xEF
+dcroat 240 % 0xF0
+nacute 241 % 0xF1
+ncaron 242 % 0xF2
+oacute 243 % 0xF3
+ocircumflex 244 % 0xF4
+ohungarumlaut 245 % 0xF5
+odieresis 246 % 0xF6
+divide 247 % 0xF7
+rcaron 248 % 0xF8
+uring 249 % 0xF9
+uacute 250 % 0xFA
+uhungarumlaut 251 % 0xFB
+udieresis 252 % 0xFC
+yacute 253 % 0xFD
+tcommaaccent 254 % 0xFE see Tcommaaccent (0xDE)
+dotaccent 255 % 0xFF
diff --git a/php/extras/fonts/ps/iso8859-3.cpg b/php/extras/fonts/ps/iso8859-3.cpg
new file mode 100644
index 000000000..65c7bb335
--- /dev/null
+++ b/php/extras/fonts/ps/iso8859-3.cpg
@@ -0,0 +1,188 @@
+% Encoding definition for PDFlib
+% ISO 8859-3 (Latin-3)
+% Latin-3 covers Esperanto and Maltese.
+
+0x0020 0x20
+0x0021 0x21
+0x0022 0x22
+0x0023 0x23
+0x0024 0x24
+0x0025 0x25
+0x0026 0x26
+0x0027 0x27
+0x0028 0x28
+0x0029 0x29
+0x002A 0x2A
+0x002B 0x2B
+0x002C 0x2C
+0x002D 0x2D
+0x002E 0x2E
+0x002F 0x2F
+0x0030 0x30
+0x0031 0x31
+0x0032 0x32
+0x0033 0x33
+0x0034 0x34
+0x0035 0x35
+0x0036 0x36
+0x0037 0x37
+0x0038 0x38
+0x0039 0x39
+0x003A 0x3A
+0x003B 0x3B
+0x003C 0x3C
+0x003D 0x3D
+0x003E 0x3E
+0x003F 0x3F
+0x0040 0x40
+0x0041 0x41
+0x0042 0x42
+0x0043 0x43
+0x0044 0x44
+0x0045 0x45
+0x0046 0x46
+0x0047 0x47
+0x0048 0x48
+0x0049 0x49
+0x004A 0x4A
+0x004B 0x4B
+0x004C 0x4C
+0x004D 0x4D
+0x004E 0x4E
+0x004F 0x4F
+0x0050 0x50
+0x0051 0x51
+0x0052 0x52
+0x0053 0x53
+0x0054 0x54
+0x0055 0x55
+0x0056 0x56
+0x0057 0x57
+0x0058 0x58
+0x0059 0x59
+0x005A 0x5A
+0x005B 0x5B
+0x005C 0x5C
+0x005D 0x5D
+0x005E 0x5E
+0x005F 0x5F
+0x0060 0x60
+0x0061 0x61
+0x0062 0x62
+0x0063 0x63
+0x0064 0x64
+0x0065 0x65
+0x0066 0x66
+0x0067 0x67
+0x0068 0x68
+0x0069 0x69
+0x006A 0x6A
+0x006B 0x6B
+0x006C 0x6C
+0x006D 0x6D
+0x006E 0x6E
+0x006F 0x6F
+0x0070 0x70
+0x0071 0x71
+0x0072 0x72
+0x0073 0x73
+0x0074 0x74
+0x0075 0x75
+0x0076 0x76
+0x0077 0x77
+0x0078 0x78
+0x0079 0x79
+0x007A 0x7A
+0x007B 0x7B
+0x007C 0x7C
+0x007D 0x7D
+0x007E 0x7E
+0x00A0 0xA0
+0x0126 0xA1
+0x02D8 0xA2
+0x00A3 0xA3
+0x00A4 0xA4
+0x0124 0xA6
+0x00A7 0xA7
+0x00A8 0xA8
+0x0130 0xA9
+0x015E 0xAA
+0x011E 0xAB
+0x0134 0xAC
+0x00AD 0xAD
+0x017B 0xAF
+0x00B0 0xB0
+0x0127 0xB1
+0x00B2 0xB2
+0x00B3 0xB3
+0x00B4 0xB4
+0x00B5 0xB5
+0x0125 0xB6
+0x00B7 0xB7
+0x00B8 0xB8
+0x0131 0xB9
+0x015F 0xBA
+0x011F 0xBB
+0x0135 0xBC
+0x00BD 0xBD
+0x017C 0xBF
+0x00C0 0xC0
+0x00C1 0xC1
+0x00C2 0xC2
+0x00C4 0xC4
+0x010A 0xC5
+0x0108 0xC6
+0x00C7 0xC7
+0x00C8 0xC8
+0x00C9 0xC9
+0x00CA 0xCA
+0x00CB 0xCB
+0x00CC 0xCC
+0x00CD 0xCD
+0x00CE 0xCE
+0x00CF 0xCF
+0x00D1 0xD1
+0x00D2 0xD2
+0x00D3 0xD3
+0x00D4 0xD4
+0x0120 0xD5
+0x00D6 0xD6
+0x00D7 0xD7
+0x011C 0xD8
+0x00D9 0xD9
+0x00DA 0xDA
+0x00DB 0xDB
+0x00DC 0xDC
+0x016C 0xDD
+0x015C 0xDE
+0x00DF 0xDF
+0x00E0 0xE0
+0x00E1 0xE1
+0x00E2 0xE2
+0x00E4 0xE4
+0x010B 0xE5
+0x0109 0xE6
+0x00E7 0xE7
+0x00E8 0xE8
+0x00E9 0xE9
+0x00EA 0xEA
+0x00EB 0xEB
+0x00EC 0xEC
+0x00ED 0xED
+0x00EE 0xEE
+0x00EF 0xEF
+0x00F1 0xF1
+0x00F2 0xF2
+0x00F3 0xF3
+0x00F4 0xF4
+0x0121 0xF5
+0x00F6 0xF6
+0x00F7 0xF7
+0x011D 0xF8
+0x00F9 0xF9
+0x00FA 0xFA
+0x00FB 0xFB
+0x00FC 0xFC
+0x016D 0xFD
+0x015D 0xFE
+0x02D9 0xFF
diff --git a/php/extras/fonts/ps/iso8859-4.cpg b/php/extras/fonts/ps/iso8859-4.cpg
new file mode 100644
index 000000000..c3825dc1b
--- /dev/null
+++ b/php/extras/fonts/ps/iso8859-4.cpg
@@ -0,0 +1,195 @@
+% Encoding definition for PDFlib
+% ISO 8859-4 (Latin-4)
+% Latin-4 covers Estonian, the Baltic languages, Greenlandic, and Lappish.
+
+0x0020 0x20
+0x0021 0x21
+0x0022 0x22
+0x0023 0x23
+0x0024 0x24
+0x0025 0x25
+0x0026 0x26
+0x0027 0x27
+0x0028 0x28
+0x0029 0x29
+0x002A 0x2A
+0x002B 0x2B
+0x002C 0x2C
+0x002D 0x2D
+0x002E 0x2E
+0x002F 0x2F
+0x0030 0x30
+0x0031 0x31
+0x0032 0x32
+0x0033 0x33
+0x0034 0x34
+0x0035 0x35
+0x0036 0x36
+0x0037 0x37
+0x0038 0x38
+0x0039 0x39
+0x003A 0x3A
+0x003B 0x3B
+0x003C 0x3C
+0x003D 0x3D
+0x003E 0x3E
+0x003F 0x3F
+0x0040 0x40
+0x0041 0x41
+0x0042 0x42
+0x0043 0x43
+0x0044 0x44
+0x0045 0x45
+0x0046 0x46
+0x0047 0x47
+0x0048 0x48
+0x0049 0x49
+0x004A 0x4A
+0x004B 0x4B
+0x004C 0x4C
+0x004D 0x4D
+0x004E 0x4E
+0x004F 0x4F
+0x0050 0x50
+0x0051 0x51
+0x0052 0x52
+0x0053 0x53
+0x0054 0x54
+0x0055 0x55
+0x0056 0x56
+0x0057 0x57
+0x0058 0x58
+0x0059 0x59
+0x005A 0x5A
+0x005B 0x5B
+0x005C 0x5C
+0x005D 0x5D
+0x005E 0x5E
+0x005F 0x5F
+0x0060 0x60
+0x0061 0x61
+0x0062 0x62
+0x0063 0x63
+0x0064 0x64
+0x0065 0x65
+0x0066 0x66
+0x0067 0x67
+0x0068 0x68
+0x0069 0x69
+0x006A 0x6A
+0x006B 0x6B
+0x006C 0x6C
+0x006D 0x6D
+0x006E 0x6E
+0x006F 0x6F
+0x0070 0x70
+0x0071 0x71
+0x0072 0x72
+0x0073 0x73
+0x0074 0x74
+0x0075 0x75
+0x0076 0x76
+0x0077 0x77
+0x0078 0x78
+0x0079 0x79
+0x007A 0x7A
+0x007B 0x7B
+0x007C 0x7C
+0x007D 0x7D
+0x007E 0x7E
+0x00A0 0xA0
+0x0104 0xA1
+0x0138 0xA2
+0x0156 0xA3
+0x00A4 0xA4
+0x0128 0xA5
+0x013B 0xA6
+0x00A7 0xA7
+0x00A8 0xA8
+0x0160 0xA9
+0x0112 0xAA
+0x0122 0xAB
+0x0166 0xAC
+0x00AD 0xAD
+0x017D 0xAE
+0x00AF 0xAF
+0x00B0 0xB0
+0x0105 0xB1
+0x02DB 0xB2
+0x0157 0xB3
+0x00B4 0xB4
+0x0129 0xB5
+0x013C 0xB6
+0x02C7 0xB7
+0x00B8 0xB8
+0x0161 0xB9
+0x0113 0xBA
+0x0123 0xBB
+0x0167 0xBC
+0x014A 0xBD
+0x017E 0xBE
+0x014B 0xBF
+0x0100 0xC0
+0x00C1 0xC1
+0x00C2 0xC2
+0x00C3 0xC3
+0x00C4 0xC4
+0x00C5 0xC5
+0x00C6 0xC6
+0x012E 0xC7
+0x010C 0xC8
+0x00C9 0xC9
+0x0118 0xCA
+0x00CB 0xCB
+0x0116 0xCC
+0x00CD 0xCD
+0x00CE 0xCE
+0x012A 0xCF
+0x0110 0xD0
+0x0145 0xD1
+0x014C 0xD2
+0x0136 0xD3
+0x00D4 0xD4
+0x00D5 0xD5
+0x00D6 0xD6
+0x00D7 0xD7
+0x00D8 0xD8
+0x0172 0xD9
+0x00DA 0xDA
+0x00DB 0xDB
+0x00DC 0xDC
+0x0168 0xDD
+0x016A 0xDE
+0x00DF 0xDF
+0x0101 0xE0
+0x00E1 0xE1
+0x00E2 0xE2
+0x00E3 0xE3
+0x00E4 0xE4
+0x00E5 0xE5
+0x00E6 0xE6
+0x012F 0xE7
+0x010D 0xE8
+0x00E9 0xE9
+0x0119 0xEA
+0x00EB 0xEB
+0x0117 0xEC
+0x00ED 0xED
+0x00EE 0xEE
+0x012B 0xEF
+0x0111 0xF0
+0x0146 0xF1
+0x014D 0xF2
+0x0137 0xF3
+0x00F4 0xF4
+0x00F5 0xF5
+0x00F6 0xF6
+0x00F7 0xF7
+0x00F8 0xF8
+0x0173 0xF9
+0x00FA 0xFA
+0x00FB 0xFB
+0x00FC 0xFC
+0x0169 0xFD
+0x016B 0xFE
+0x02D9 0xFF
diff --git a/php/extras/fonts/ps/iso8859-5.cpg b/php/extras/fonts/ps/iso8859-5.cpg
new file mode 100644
index 000000000..9dcc8211a
--- /dev/null
+++ b/php/extras/fonts/ps/iso8859-5.cpg
@@ -0,0 +1,195 @@
+% Encoding definition for PDFlib
+% ISO 8859-5 (Cyrillic)
+% ISO 8859-5 covers Bulgarian, Russian, and Serbian.
+
+0x0020 0x20
+0x0021 0x21
+0x0022 0x22
+0x0023 0x23
+0x0024 0x24
+0x0025 0x25
+0x0026 0x26
+0x0027 0x27
+0x0028 0x28
+0x0029 0x29
+0x002A 0x2A
+0x002B 0x2B
+0x002C 0x2C
+0x002D 0x2D
+0x002E 0x2E
+0x002F 0x2F
+0x0030 0x30
+0x0031 0x31
+0x0032 0x32
+0x0033 0x33
+0x0034 0x34
+0x0035 0x35
+0x0036 0x36
+0x0037 0x37
+0x0038 0x38
+0x0039 0x39
+0x003A 0x3A
+0x003B 0x3B
+0x003C 0x3C
+0x003D 0x3D
+0x003E 0x3E
+0x003F 0x3F
+0x0040 0x40
+0x0041 0x41
+0x0042 0x42
+0x0043 0x43
+0x0044 0x44
+0x0045 0x45
+0x0046 0x46
+0x0047 0x47
+0x0048 0x48
+0x0049 0x49
+0x004A 0x4A
+0x004B 0x4B
+0x004C 0x4C
+0x004D 0x4D
+0x004E 0x4E
+0x004F 0x4F
+0x0050 0x50
+0x0051 0x51
+0x0052 0x52
+0x0053 0x53
+0x0054 0x54
+0x0055 0x55
+0x0056 0x56
+0x0057 0x57
+0x0058 0x58
+0x0059 0x59
+0x005A 0x5A
+0x005B 0x5B
+0x005C 0x5C
+0x005D 0x5D
+0x005E 0x5E
+0x005F 0x5F
+0x0060 0x60
+0x0061 0x61
+0x0062 0x62
+0x0063 0x63
+0x0064 0x64
+0x0065 0x65
+0x0066 0x66
+0x0067 0x67
+0x0068 0x68
+0x0069 0x69
+0x006A 0x6A
+0x006B 0x6B
+0x006C 0x6C
+0x006D 0x6D
+0x006E 0x6E
+0x006F 0x6F
+0x0070 0x70
+0x0071 0x71
+0x0072 0x72
+0x0073 0x73
+0x0074 0x74
+0x0075 0x75
+0x0076 0x76
+0x0077 0x77
+0x0078 0x78
+0x0079 0x79
+0x007A 0x7A
+0x007B 0x7B
+0x007C 0x7C
+0x007D 0x7D
+0x007E 0x7E
+0x00A0 0xA0
+0x0401 0xA1
+0x0402 0xA2
+0x0403 0xA3
+0x0404 0xA4
+0x0405 0xA5
+0x0406 0xA6
+0x0407 0xA7
+0x0408 0xA8
+0x0409 0xA9
+0x040A 0xAA
+0x040B 0xAB
+0x040C 0xAC
+0x00AD 0xAD
+0x040E 0xAE
+0x040F 0xAF
+0x0410 0xB0
+0x0411 0xB1
+0x0412 0xB2
+0x0413 0xB3
+0x0414 0xB4
+0x0415 0xB5
+0x0416 0xB6
+0x0417 0xB7
+0x0418 0xB8
+0x0419 0xB9
+0x041A 0xBA
+0x041B 0xBB
+0x041C 0xBC
+0x041D 0xBD
+0x041E 0xBE
+0x041F 0xBF
+0x0420 0xC0
+0x0421 0xC1
+0x0422 0xC2
+0x0423 0xC3
+0x0424 0xC4
+0x0425 0xC5
+0x0426 0xC6
+0x0427 0xC7
+0x0428 0xC8
+0x0429 0xC9
+0x042A 0xCA
+0x042B 0xCB
+0x042C 0xCC
+0x042D 0xCD
+0x042E 0xCE
+0x042F 0xCF
+0x0430 0xD0
+0x0431 0xD1
+0x0432 0xD2
+0x0433 0xD3
+0x0434 0xD4
+0x0435 0xD5
+0x0436 0xD6
+0x0437 0xD7
+0x0438 0xD8
+0x0439 0xD9
+0x043A 0xDA
+0x043B 0xDB
+0x043C 0xDC
+0x043D 0xDD
+0x043E 0xDE
+0x043F 0xDF
+0x0440 0xE0
+0x0441 0xE1
+0x0442 0xE2
+0x0443 0xE3
+0x0444 0xE4
+0x0445 0xE5
+0x0446 0xE6
+0x0447 0xE7
+0x0448 0xE8
+0x0449 0xE9
+0x044A 0xEA
+0x044B 0xEB
+0x044C 0xEC
+0x044D 0xED
+0x044E 0xEE
+0x044F 0xEF
+0x2116 0xF0
+0x0451 0xF1
+0x0452 0xF2
+0x0453 0xF3
+0x0454 0xF4
+0x0455 0xF5
+0x0456 0xF6
+0x0457 0xF7
+0x0458 0xF8
+0x0459 0xF9
+0x045A 0xFA
+0x045B 0xFB
+0x045C 0xFC
+0x00A7 0xFD
+0x045E 0xFE
+0x045F 0xFF
diff --git a/php/extras/fonts/ps/iso8859-6.cpg b/php/extras/fonts/ps/iso8859-6.cpg
new file mode 100644
index 000000000..7a7487dae
--- /dev/null
+++ b/php/extras/fonts/ps/iso8859-6.cpg
@@ -0,0 +1,150 @@
+% Encoding definition for PDFlib
+% ISO 8859-6 (Arabic)
+% ISO 8859-6 covers Arabic, but not Persian or Pakistani/Urdu.
+
+0x0020 0x20
+0x0021 0x21
+0x0022 0x22
+0x0023 0x23
+0x0024 0x24
+0x0025 0x25
+0x0026 0x26
+0x0027 0x27
+0x0028 0x28
+0x0029 0x29
+0x002A 0x2A
+0x002B 0x2B
+0x002C 0x2C
+0x002D 0x2D
+0x002E 0x2E
+0x002F 0x2F
+0x0660 0x30
+0x0661 0x31
+0x0662 0x32
+0x0663 0x33
+0x0664 0x34
+0x0665 0x35
+0x0666 0x36
+0x0667 0x37
+0x0668 0x38
+0x0669 0x39
+0x003A 0x3A
+0x003B 0x3B
+0x003C 0x3C
+0x003D 0x3D
+0x003E 0x3E
+0x003F 0x3F
+0x0040 0x40
+0x0041 0x41
+0x0042 0x42
+0x0043 0x43
+0x0044 0x44
+0x0045 0x45
+0x0046 0x46
+0x0047 0x47
+0x0048 0x48
+0x0049 0x49
+0x004A 0x4A
+0x004B 0x4B
+0x004C 0x4C
+0x004D 0x4D
+0x004E 0x4E
+0x004F 0x4F
+0x0050 0x50
+0x0051 0x51
+0x0052 0x52
+0x0053 0x53
+0x0054 0x54
+0x0055 0x55
+0x0056 0x56
+0x0057 0x57
+0x0058 0x58
+0x0059 0x59
+0x005A 0x5A
+0x005B 0x5B
+0x005C 0x5C
+0x005D 0x5D
+0x005E 0x5E
+0x005F 0x5F
+0x0060 0x60
+0x0061 0x61
+0x0062 0x62
+0x0063 0x63
+0x0064 0x64
+0x0065 0x65
+0x0066 0x66
+0x0067 0x67
+0x0068 0x68
+0x0069 0x69
+0x006A 0x6A
+0x006B 0x6B
+0x006C 0x6C
+0x006D 0x6D
+0x006E 0x6E
+0x006F 0x6F
+0x0070 0x70
+0x0071 0x71
+0x0072 0x72
+0x0073 0x73
+0x0074 0x74
+0x0075 0x75
+0x0076 0x76
+0x0077 0x77
+0x0078 0x78
+0x0079 0x79
+0x007A 0x7A
+0x007B 0x7B
+0x007C 0x7C
+0x007D 0x7D
+0x007E 0x7E
+0x00A0 0xA0
+0x00A4 0xA4
+0x060C 0xAC
+0x00AD 0xAD
+0x061B 0xBB
+0x061F 0xBF
+0x0621 0xC1
+0x0622 0xC2
+0x0623 0xC3
+0x0624 0xC4
+0x0625 0xC5
+0x0626 0xC6
+0x0627 0xC7
+0x0628 0xC8
+0x0629 0xC9
+0x062A 0xCA
+0x062B 0xCB
+0x062C 0xCC
+0x062D 0xCD
+0x062E 0xCE
+0x062F 0xCF
+0x0630 0xD0
+0x0631 0xD1
+0x0632 0xD2
+0x0633 0xD3
+0x0634 0xD4
+0x0635 0xD5
+0x0636 0xD6
+0x0637 0xD7
+0x0638 0xD8
+0x0639 0xD9
+0x063A 0xDA
+0x0640 0xE0
+0x0641 0xE1
+0x0642 0xE2
+0x0643 0xE3
+0x0644 0xE4
+0x0645 0xE5
+0x0646 0xE6
+0x0647 0xE7
+0x0648 0xE8
+0x0649 0xE9
+0x064A 0xEA
+0x064B 0xEB
+0x064C 0xEC
+0x064D 0xED
+0x064E 0xEE
+0x064F 0xEF
+0x0650 0xF0
+0x0651 0xF1
+0x0652 0xF2
diff --git a/php/extras/fonts/ps/iso8859-7.cpg b/php/extras/fonts/ps/iso8859-7.cpg
new file mode 100644
index 000000000..a089156ff
--- /dev/null
+++ b/php/extras/fonts/ps/iso8859-7.cpg
@@ -0,0 +1,189 @@
+% Encoding definition for PDFlib
+% ISO 8859-7 (Greek)
+% ISO 8859-7 covers modern Greek.
+
+0x0020 0x20
+0x0021 0x21
+0x0022 0x22
+0x0023 0x23
+0x0024 0x24
+0x0025 0x25
+0x0026 0x26
+0x0027 0x27
+0x0028 0x28
+0x0029 0x29
+0x002A 0x2A
+0x002B 0x2B
+0x002C 0x2C
+0x002D 0x2D
+0x002E 0x2E
+0x002F 0x2F
+0x0030 0x30
+0x0031 0x31
+0x0032 0x32
+0x0033 0x33
+0x0034 0x34
+0x0035 0x35
+0x0036 0x36
+0x0037 0x37
+0x0038 0x38
+0x0039 0x39
+0x003A 0x3A
+0x003B 0x3B
+0x003C 0x3C
+0x003D 0x3D
+0x003E 0x3E
+0x003F 0x3F
+0x0040 0x40
+0x0041 0x41
+0x0042 0x42
+0x0043 0x43
+0x0044 0x44
+0x0045 0x45
+0x0046 0x46
+0x0047 0x47
+0x0048 0x48
+0x0049 0x49
+0x004A 0x4A
+0x004B 0x4B
+0x004C 0x4C
+0x004D 0x4D
+0x004E 0x4E
+0x004F 0x4F
+0x0050 0x50
+0x0051 0x51
+0x0052 0x52
+0x0053 0x53
+0x0054 0x54
+0x0055 0x55
+0x0056 0x56
+0x0057 0x57
+0x0058 0x58
+0x0059 0x59
+0x005A 0x5A
+0x005B 0x5B
+0x005C 0x5C
+0x005D 0x5D
+0x005E 0x5E
+0x005F 0x5F
+0x0060 0x60
+0x0061 0x61
+0x0062 0x62
+0x0063 0x63
+0x0064 0x64
+0x0065 0x65
+0x0066 0x66
+0x0067 0x67
+0x0068 0x68
+0x0069 0x69
+0x006A 0x6A
+0x006B 0x6B
+0x006C 0x6C
+0x006D 0x6D
+0x006E 0x6E
+0x006F 0x6F
+0x0070 0x70
+0x0071 0x71
+0x0072 0x72
+0x0073 0x73
+0x0074 0x74
+0x0075 0x75
+0x0076 0x76
+0x0077 0x77
+0x0078 0x78
+0x0079 0x79
+0x007A 0x7A
+0x007B 0x7B
+0x007C 0x7C
+0x007D 0x7D
+0x007E 0x7E
+0x00A0 0xA0
+0x2018 0xA1
+0x2019 0xA2
+0x00A3 0xA3
+0x00A6 0xA6
+0x00A7 0xA7
+0x00A8 0xA8
+0x00A9 0xA9
+0x00AB 0xAB
+0x00AC 0xAC
+0x00AD 0xAD
+0x2015 0xAF
+0x00B0 0xB0
+0x00B1 0xB1
+0x00B2 0xB2
+0x00B3 0xB3
+0x0384 0xB4
+0x0385 0xB5
+0x0386 0xB6
+0x00B7 0xB7
+0x0388 0xB8
+0x0389 0xB9
+0x038A 0xBA
+0x00BB 0xBB
+0x038C 0xBC
+0x00BD 0xBD
+0x038E 0xBE
+0x038F 0xBF
+0x0390 0xC0
+0x0391 0xC1
+0x0392 0xC2
+0x0393 0xC3
+0x0394 0xC4
+0x0395 0xC5
+0x0396 0xC6
+0x0397 0xC7
+0x0398 0xC8
+0x0399 0xC9
+0x039A 0xCA
+0x039B 0xCB
+0x039C 0xCC
+0x039D 0xCD
+0x039E 0xCE
+0x039F 0xCF
+0x03A0 0xD0
+0x03A1 0xD1
+0x03A3 0xD3
+0x03A4 0xD4
+0x03A5 0xD5
+0x03A6 0xD6
+0x03A7 0xD7
+0x03A8 0xD8
+0x03A9 0xD9
+0x03AA 0xDA
+0x03AB 0xDB
+0x03AC 0xDC
+0x03AD 0xDD
+0x03AE 0xDE
+0x03AF 0xDF
+0x03B0 0xE0
+0x03B1 0xE1
+0x03B2 0xE2
+0x03B3 0xE3
+0x03B4 0xE4
+0x03B5 0xE5
+0x03B6 0xE6
+0x03B7 0xE7
+0x03B8 0xE8
+0x03B9 0xE9
+0x03BA 0xEA
+0x03BB 0xEB
+0x03BC 0xEC
+0x03BD 0xED
+0x03BE 0xEE
+0x03BF 0xEF
+0x03C0 0xF0
+0x03C1 0xF1
+0x03C2 0xF2
+0x03C3 0xF3
+0x03C4 0xF4
+0x03C5 0xF5
+0x03C6 0xF6
+0x03C7 0xF7
+0x03C8 0xF8
+0x03C9 0xF9
+0x03CA 0xFA
+0x03CB 0xFB
+0x03CC 0xFC
+0x03CD 0xFD
+0x03CE 0xFE
diff --git a/php/extras/fonts/ps/iso8859-8.cpg b/php/extras/fonts/ps/iso8859-8.cpg
new file mode 100644
index 000000000..2970e0177
--- /dev/null
+++ b/php/extras/fonts/ps/iso8859-8.cpg
@@ -0,0 +1,159 @@
+% Encoding definition for PDFlib
+% ISO 8859-8 (Hebrew)
+% ISO 8859-8 covers Hebrew and Yiddish.
+
+0x0020 0x20
+0x0021 0x21
+0x0022 0x22
+0x0023 0x23
+0x0024 0x24
+0x0025 0x25
+0x0026 0x26
+0x0027 0x27
+0x0028 0x28
+0x0029 0x29
+0x002A 0x2A
+0x002B 0x2B
+0x002C 0x2C
+0x002D 0x2D
+0x002E 0x2E
+0x002F 0x2F
+0x0030 0x30
+0x0031 0x31
+0x0032 0x32
+0x0033 0x33
+0x0034 0x34
+0x0035 0x35
+0x0036 0x36
+0x0037 0x37
+0x0038 0x38
+0x0039 0x39
+0x003A 0x3A
+0x003B 0x3B
+0x003C 0x3C
+0x003D 0x3D
+0x003E 0x3E
+0x003F 0x3F
+0x0040 0x40
+0x0041 0x41
+0x0042 0x42
+0x0043 0x43
+0x0044 0x44
+0x0045 0x45
+0x0046 0x46
+0x0047 0x47
+0x0048 0x48
+0x0049 0x49
+0x004A 0x4A
+0x004B 0x4B
+0x004C 0x4C
+0x004D 0x4D
+0x004E 0x4E
+0x004F 0x4F
+0x0050 0x50
+0x0051 0x51
+0x0052 0x52
+0x0053 0x53
+0x0054 0x54
+0x0055 0x55
+0x0056 0x56
+0x0057 0x57
+0x0058 0x58
+0x0059 0x59
+0x005A 0x5A
+0x005B 0x5B
+0x005C 0x5C
+0x005D 0x5D
+0x005E 0x5E
+0x005F 0x5F
+0x0060 0x60
+0x0061 0x61
+0x0062 0x62
+0x0063 0x63
+0x0064 0x64
+0x0065 0x65
+0x0066 0x66
+0x0067 0x67
+0x0068 0x68
+0x0069 0x69
+0x006A 0x6A
+0x006B 0x6B
+0x006C 0x6C
+0x006D 0x6D
+0x006E 0x6E
+0x006F 0x6F
+0x0070 0x70
+0x0071 0x71
+0x0072 0x72
+0x0073 0x73
+0x0074 0x74
+0x0075 0x75
+0x0076 0x76
+0x0077 0x77
+0x0078 0x78
+0x0079 0x79
+0x007A 0x7A
+0x007B 0x7B
+0x007C 0x7C
+0x007D 0x7D
+0x007E 0x7E
+0x00A0 0xA0
+0x00A2 0xA2
+0x00A3 0xA3
+0x00A4 0xA4
+0x00A5 0xA5
+0x00A6 0xA6
+0x00A7 0xA7
+0x00A8 0xA8
+0x00A9 0xA9
+0x00D7 0xAA
+0x00AB 0xAB
+0x00AC 0xAC
+0x00AD 0xAD
+0x00AE 0xAE
+0x00AF 0xAF % should probably be 0x203E, but this is missing in AGL
+0x00B0 0xB0
+0x00B1 0xB1
+0x00B2 0xB2
+0x00B3 0xB3
+0x00B4 0xB4
+0x00B5 0xB5
+0x00B6 0xB6
+0x00B7 0xB7
+0x00B8 0xB8
+0x00B9 0xB9
+0x00F7 0xBA
+0x00BB 0xBB
+0x00BC 0xBC
+0x00BD 0xBD
+0x00BE 0xBE
+0x2017 0xDF
+0x05D0 0xE0
+0x05D1 0xE1
+0x05D2 0xE2
+0x05D3 0xE3
+0x05D4 0xE4
+0x05D5 0xE5
+0x05D6 0xE6
+0x05D7 0xE7
+0x05D8 0xE8
+0x05D9 0xE9
+0x05DA 0xEA
+0x05DB 0xEB
+0x05DC 0xEC
+0x05DD 0xED
+0x05DE 0xEE
+0x05DF 0xEF
+0x05E0 0xF0
+0x05E1 0xF1
+0x05E2 0xF2
+0x05E3 0xF3
+0x05E4 0xF4
+0x05E5 0xF5
+0x05E6 0xF6
+0x05E7 0xF7
+0x05E8 0xF8
+0x05E9 0xF9
+0x05EA 0xFA
+0x200E 0xFD
+0x200F 0xFE
diff --git a/php/extras/fonts/ps/iso8859-9.cpg b/php/extras/fonts/ps/iso8859-9.cpg
new file mode 100644
index 000000000..314196c30
--- /dev/null
+++ b/php/extras/fonts/ps/iso8859-9.cpg
@@ -0,0 +1,265 @@
+% Encoding definition for PDFlib
+% ISO 8859-9 (Latin Alphabet No. 5) (yes, that's right: 5 not 9!)
+% The Latin 5 = 8859-9 character set supports Danish, Dutch, English,
+% Finnish, French, German, Irish, Italian, Norwegian, Portuguese, Spanish,
+% Swedish, and Turkish.
+%
+% In addition, this encoding contains the characters 130-159 as defined
+% in the Turkish Windows codepage 1254.
+
+0x0000 0x00 % 00
+0x0000 0x01 % 01
+0x0000 0x02 % 02
+0x0000 0x03 % 03
+0x0000 0x04 % 04
+0x0000 0x05 % 05
+0x0000 0x06 % 06
+0x0000 0x07 % 07
+0x0000 0x08 % 08
+0x0000 0x09 % 09
+0x0000 0x0A % 10
+0x0000 0x0B % 11
+0x0000 0x0C % 12
+0x0000 0x0D % 13
+0x0000 0x0E % 14
+0x0000 0x0F % 15
+0x0000 0x10 % 16
+0x0000 0x11 % 17
+0x0000 0x12 % 18
+0x0000 0x13 % 19
+0x0000 0x14 % 20
+0x0000 0x15 % 21
+0x0000 0x16 % 22
+0x0000 0x17 % 23
+0x0000 0x18 % 24
+0x0000 0x19 % 25
+0x0000 0x1A % 26
+0x0000 0x1B % 27
+0x0000 0x1C % 28
+0x0000 0x1D % 29
+0x0000 0x1E % 30
+0x0000 0x1F % 31
+0x0020 0x20 % 32
+0x0021 0x21 % 33
+0x0022 0x22 % 34
+0x0023 0x23 % 35
+0x0024 0x24 % 36
+0x0025 0x25 % 37
+0x0026 0x26 % 38
+0x0027 0x27 % 39
+0x0028 0x28 % 40
+0x0029 0x29 % 41
+0x002A 0x2A % 42
+0x002B 0x2B % 43
+0x002C 0x2C % 44
+0x002D 0x2D % 45
+0x002E 0x2E % 46
+0x002F 0x2F % 47
+0x0030 0x30 % 48
+0x0031 0x31 % 49
+0x0032 0x32 % 50
+0x0033 0x33 % 51
+0x0034 0x34 % 52
+0x0035 0x35 % 53
+0x0036 0x36 % 54
+0x0037 0x37 % 55
+0x0038 0x38 % 56
+0x0039 0x39 % 57
+0x003A 0x3A % 58
+0x003B 0x3B % 59
+0x003C 0x3C % 60
+0x003D 0x3D % 61
+0x003E 0x3E % 62
+0x003F 0x3F % 63
+0x0040 0x40 % 64
+0x0041 0x41 % 65
+0x0042 0x42 % 66
+0x0043 0x43 % 67
+0x0044 0x44 % 68
+0x0045 0x45 % 69
+0x0046 0x46 % 70
+0x0047 0x47 % 71
+0x0048 0x48 % 72
+0x0049 0x49 % 73
+0x004A 0x4A % 74
+0x004B 0x4B % 75
+0x004C 0x4C % 76
+0x004D 0x4D % 77
+0x004E 0x4E % 78
+0x004F 0x4F % 79
+0x0050 0x50 % 80
+0x0051 0x51 % 81
+0x0052 0x52 % 82
+0x0053 0x53 % 83
+0x0054 0x54 % 84
+0x0055 0x55 % 85
+0x0056 0x56 % 86
+0x0057 0x57 % 87
+0x0058 0x58 % 88
+0x0059 0x59 % 89
+0x005A 0x5A % 90
+0x005B 0x5B % 91
+0x005C 0x5C % 92
+0x005D 0x5D % 93
+0x005E 0x5E % 94
+0x005F 0x5F % 95
+0x0060 0x60 % 96
+0x0061 0x61 % 97
+0x0062 0x62 % 98
+0x0063 0x63 % 99
+0x0064 0x64 % 100
+0x0065 0x65 % 101
+0x0066 0x66 % 102
+0x0067 0x67 % 103
+0x0068 0x68 % 104
+0x0069 0x69 % 105
+0x006A 0x6A % 106
+0x006B 0x6B % 107
+0x006C 0x6C % 108
+0x006D 0x6D % 109
+0x006E 0x6E % 110
+0x006F 0x6F % 111
+0x0070 0x70 % 112
+0x0071 0x71 % 113
+0x0072 0x72 % 114
+0x0073 0x73 % 115
+0x0074 0x74 % 116
+0x0075 0x75 % 117
+0x0076 0x76 % 118
+0x0077 0x77 % 119
+0x0078 0x78 % 120
+0x0079 0x79 % 121
+0x007A 0x7A % 122
+0x007B 0x7B % 123
+0x007C 0x7C % 124
+0x007D 0x7D % 125
+0x007E 0x7E % 126
+0x0000 0x7F % 127
+0x0000 0x80 % 128
+0x0000 0x81 % 129
+0x201A 0x82 % 130
+0x0192 0x83 % 131
+0x201E 0x84 % 132
+0x2026 0x85 % 133
+0x2020 0x86 % 134
+0x2021 0x87 % 135
+0x02C6 0x88 % 136
+0x2030 0x89 % 137
+0x0160 0x8A % 138
+0x2039 0x8B % 139
+0x0152 0x8C % 140
+0x0000 0x8D % 141
+0x0000 0x8E % 142
+0x0000 0x8F % 143
+0x0000 0x90 % 144
+0x2018 0x91 % 145
+0x2019 0x92 % 146
+0x201C 0x93 % 147
+0x201D 0x94 % 148
+0x2022 0x95 % 149
+0x2013 0x96 % 150
+0x2014 0x97 % 151
+0x02DC 0x98 % 152
+0x2122 0x99 % 153
+0x0161 0x9A % 154
+0x203A 0x9B % 155
+0x0153 0x9C % 156
+0x0000 0x9D % 157
+0x0000 0x9E % 158
+0x0178 0x9F % 159
+0x0020 0xA0 % 160
+0x00A1 0xA1 % 161
+0x00A2 0xA2 % 162
+0x00A3 0xA3 % 163
+0x00A4 0xA4 % 164
+0x00A5 0xA5 % 165
+0x00A6 0xA6 % 166
+0x00A7 0xA7 % 167
+0x00A8 0xA8 % 168
+0x00A9 0xA9 % 169
+0x00AA 0xAA % 170
+0x00AB 0xAB % 171
+0x00AC 0xAC % 172
+0x002D 0xAD % 173
+0x00AE 0xAE % 174
+0x00AF 0xAF % 175
+0x00B0 0xB0 % 176
+0x00B1 0xB1 % 177
+0x00B2 0xB2 % 178
+0x00B3 0xB3 % 179
+0x00B4 0xB4 % 180
+0x03BC 0xB5 % 181
+0x00B6 0xB6 % 182
+0x00B7 0xB7 % 183
+0x00B8 0xB8 % 184
+0x00B9 0xB9 % 185
+0x00BA 0xBA % 186
+0x00BB 0xBB % 187
+0x00BC 0xBC % 188
+0x00BD 0xBD % 189
+0x00BE 0xBE % 190
+0x00BF 0xBF % 191
+0x00C0 0xC0 % 192
+0x00C1 0xC1 % 193
+0x00C2 0xC2 % 194
+0x00C3 0xC3 % 195
+0x00C4 0xC4 % 196
+0x00C5 0xC5 % 197
+0x00C6 0xC6 % 198
+0x00C7 0xC7 % 199
+0x00C8 0xC8 % 200
+0x00C9 0xC9 % 201
+0x00CA 0xCA % 202
+0x00CB 0xCB % 203
+0x00CC 0xCC % 204
+0x00CD 0xCD % 205
+0x00CE 0xCE % 206
+0x00CF 0xCF % 207
+0x011E 0xD0 % 208
+0x00D1 0xD1 % 209
+0x00D2 0xD2 % 210
+0x00D3 0xD3 % 211
+0x00D4 0xD4 % 212
+0x00D5 0xD5 % 213
+0x00D6 0xD6 % 214
+0x00D7 0xD7 % 215
+0x00D8 0xD8 % 216
+0x00D9 0xD9 % 217
+0x00DA 0xDA % 218
+0x00DB 0xDB % 219
+0x00DC 0xDC % 220
+0x0130 0xDD % 221
+0x0218 0xDE % 222
+0x00DF 0xDF % 223
+0x00E0 0xE0 % 224
+0x00E1 0xE1 % 225
+0x00E2 0xE2 % 226
+0x00E3 0xE3 % 227
+0x00E4 0xE4 % 228
+0x00E5 0xE5 % 229
+0x00E6 0xE6 % 230
+0x00E7 0xE7 % 231
+0x00E8 0xE8 % 232
+0x00E9 0xE9 % 233
+0x00EA 0xEA % 234
+0x00EB 0xEB % 235
+0x00EC 0xEC % 236
+0x00ED 0xED % 237
+0x00EE 0xEE % 238
+0x00EF 0xEF % 239
+0x011F 0xF0 % 240
+0x00F1 0xF1 % 241
+0x00F2 0xF2 % 242
+0x00F3 0xF3 % 243
+0x00F4 0xF4 % 244
+0x00F5 0xF5 % 245
+0x00F6 0xF6 % 246
+0x00F7 0xF7 % 247
+0x00F8 0xF8 % 248
+0x00F9 0xF9 % 249
+0x00FA 0xFA % 250
+0x00FB 0xFB % 251
+0x00FC 0xFC % 252
+0x0131 0xFD % 253
+0x0219 0xFE % 254
+0x00FF 0xFF % 255
diff --git a/php/extras/fonts/ps/iso8859-9.enc b/php/extras/fonts/ps/iso8859-9.enc
new file mode 100644
index 000000000..57f1335d7
--- /dev/null
+++ b/php/extras/fonts/ps/iso8859-9.enc
@@ -0,0 +1,224 @@
+% Encoding definition for PDFlib
+% ISO 8859-9 (Latin Alphabet No. 5) (yes, that's right: 5 not 9!)
+% The Latin 5 = 8859-9 character set supports Danish, Dutch, English,
+% Finnish, French, German, Irish, Italian, Norwegian, Portuguese, Spanish,
+% Swedish, and Turkish.
+%
+% In addition, this encoding contains the characters 130-159 as defined
+% in the Turkish Windows codepage 1254.
+
+space 32
+exclam 33
+quotedbl 34
+numbersign 35
+dollar 36
+percent 37
+ampersand 38
+quotesingle 39
+parenleft 40
+parenright 41
+asterisk 42
+plus 43
+comma 44
+hyphen 45
+period 46
+slash 47
+zero 48
+one 49
+two 50
+three 51
+four 52
+five 53
+six 54
+seven 55
+eight 56
+nine 57
+colon 58
+semicolon 59
+less 60
+equal 61
+greater 62
+question 63
+at 64
+A 65
+B 66
+C 67
+D 68
+E 69
+F 70
+G 71
+H 72
+I 73
+J 74
+K 75
+L 76
+M 77
+N 78
+O 79
+P 80
+Q 81
+R 82
+S 83
+T 84
+U 85
+V 86
+W 87
+X 88
+Y 89
+Z 90
+bracketleft 91
+backslash 92
+bracketright 93
+asciicircum 94
+underscore 95
+grave 96
+a 97
+b 98
+c 99
+d 100
+e 101
+f 102
+g 103
+h 104
+i 105
+j 106
+k 107
+l 108
+m 109
+n 110
+o 111
+p 112
+q 113
+r 114
+s 115
+t 116
+u 117
+v 118
+w 119
+x 120
+y 121
+z 122
+braceleft 123
+bar 124
+braceright 125
+asciitilde 126
+quotesinglbase 130 % start of Windows additional characters
+florin 131
+quotedblbase 132
+ellipsis 133
+dagger 134
+daggerdbl 135
+circumflex 136
+perthousand 137
+Scaron 138
+guilsinglleft 139
+OE 140
+quoteleft 145
+quoteright 146
+quotedblleft 147
+quotedblright 148
+bullet 149
+endash 150
+emdash 151
+tilde 152
+trademark 153
+scaron 154
+guilsinglright 155
+oe 156
+Ydieresis 159 % end of Windows additional characters
+space 160
+exclamdown 161
+cent 162
+sterling 163
+currency 164
+yen 165
+brokenbar 166
+section 167
+dieresis 168
+copyright 169
+ordfeminine 170
+guillemotleft 171
+logicalnot 172
+hyphen 173
+registered 174
+macron 175
+degree 176
+plusminus 177
+twosuperior 178
+threesuperior 179
+acute 180
+mu 181
+paragraph 182
+periodcentered 183
+cedilla 184
+onesuperior 185
+ordmasculine 186
+guillemotright 187
+onequarter 188
+onehalf 189
+threequarters 190
+questiondown 191
+Agrave 192
+Aacute 193
+Acircumflex 194
+Atilde 195
+Adieresis 196
+Aring 197
+AE 198
+Ccedilla 199
+Egrave 200
+Eacute 201
+Ecircumflex 202
+Edieresis 203
+Igrave 204
+Iacute 205
+Icircumflex 206
+Idieresis 207
+Gbreve 208
+Ntilde 209
+Ograve 210
+Oacute 211
+Ocircumflex 212
+Otilde 213
+Odieresis 214
+multiply 215
+Oslash 216
+Ugrave 217
+Uacute 218
+Ucircumflex 219
+Udieresis 220
+Idotaccent 221
+Scommaaccent 222
+germandbls 223
+agrave 224
+aacute 225
+acircumflex 226
+atilde 227
+adieresis 228
+aring 229
+ae 230
+ccedilla 231
+egrave 232
+eacute 233
+ecircumflex 234
+edieresis 235
+igrave 236
+iacute 237
+icircumflex 238
+idieresis 239
+gbreve 240
+ntilde 241
+ograve 242
+oacute 243
+ocircumflex 244
+otilde 245
+odieresis 246
+divide 247
+oslash 248
+ugrave 249
+uacute 250
+ucircumflex 251
+udieresis 252
+dotlessi 253
+scommaaccent 254
+ydieresis 255
diff --git a/php/extras/fonts/ps/lcdxsr.afm b/php/extras/fonts/ps/lcdxsr.afm
new file mode 100644
index 000000000..3372f0343
--- /dev/null
+++ b/php/extras/fonts/ps/lcdxsr.afm
@@ -0,0 +1,497 @@
+StartFontMetrics 2.0
+Comment Copyright (c) 2000 Bigelow & Holmes Inc. and Y&Y, Inc.
+Comment Patents pending. All Rights Reserved.
+Comment Lucidux is a trademark of Bigelow & Holmes Inc.
+Comment CreationDate: 2000 Mar 04 11:21:33
+Comment For other Bigelow & Holmes fonts see http://www.YandY.com
+Version 000.200
+Notice Copyright (C) 2000 Bigelow & Holmes Inc. and Y&Y, Inc. All rights reserved.
+FullName Lucidux Sans
+FamilyName LuciduxSans
+Weight Normal
+ItalicAngle 0
+IsFixedPitch false
+UnderlinePosition -100
+UnderlineThickness 50
+FontName LuciduxSans
+FontBBox -76 -211 972 993
+Comment UniqueID 5096729
+CapHeight 723
+XHeight 530
+Ascender 771
+Descender -193
+EncodingScheme AdobeStandardEncoding
+StartCharMetrics 337
+C 32 ; WX 278 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 278 ; N exclam ; B 91 0 187 723 ;
+C 34 ; WX 355 ; N quotedbl ; B 45 530 310 771 ;
+C 35 ; WX 556 ; N numbersign ; B 12 0 544 723 ;
+C 36 ; WX 556 ; N dollar ; B 50 -60 460 783 ;
+C 37 ; WX 889 ; N percent ; B 54 -18 835 741 ;
+C 38 ; WX 667 ; N ampersand ; B 27 -18 631 741 ;
+C 40 ; WX 333 ; N parenleft ; B 64 -145 293 771 ;
+C 41 ; WX 333 ; N parenright ; B 40 -145 269 771 ;
+C 42 ; WX 389 ; N asterisk ; B 19 367 370 723 ;
+C 43 ; WX 584 ; N plus ; B 51 48 533 530 ;
+C 44 ; WX 278 ; N comma ; B 79 -157 199 120 ;
+C 45 ; WX 333 ; N hyphen ; B 43 253 290 325 ;
+C 46 ; WX 278 ; N period ; B 79 0 199 120 ;
+C 47 ; WX 278 ; N slash ; B -29 -145 307 723 ;
+C 48 ; WX 556 ; N zero ; B 39 -18 517 741 ;
+C 49 ; WX 556 ; N one ; B 112 0 498 741 ;
+C 50 ; WX 556 ; N two ; B 50 0 460 741 ;
+C 51 ; WX 556 ; N three ; B 75 -18 472 741 ;
+C 52 ; WX 556 ; N four ; B 15 0 523 723 ;
+C 53 ; WX 556 ; N five ; B 79 -18 472 723 ;
+C 54 ; WX 556 ; N six ; B 41 -18 501 741 ;
+C 55 ; WX 556 ; N seven ; B 66 0 530 723 ;
+C 56 ; WX 556 ; N eight ; B 48 -18 532 741 ;
+C 57 ; WX 556 ; N nine ; B 41 -18 501 741 ;
+C 58 ; WX 278 ; N colon ; B 91 0 187 530 ;
+C 59 ; WX 278 ; N semicolon ; B 91 -157 187 530 ;
+C 60 ; WX 584 ; N less ; B 51 48 533 530 ;
+C 61 ; WX 584 ; N equal ; B 51 163 533 416 ;
+C 62 ; WX 584 ; N greater ; B 51 48 533 530 ;
+C 63 ; WX 556 ; N question ; B 67 0 495 741 ;
+C 64 ; WX 1015 ; N at ; B 123 -18 901 741 ;
+C 65 ; WX 667 ; N A ; B 9 0 655 723 ;
+C 66 ; WX 667 ; N B ; B 81 0 601 723 ;
+C 67 ; WX 722 ; N C ; B 57 -18 660 741 ;
+C 68 ; WX 722 ; N D ; B 81 0 677 723 ;
+C 69 ; WX 667 ; N E ; B 93 0 639 723 ;
+C 70 ; WX 611 ; N F ; B 93 0 584 723 ;
+C 71 ; WX 778 ; N G ; B 45 -18 686 741 ;
+C 72 ; WX 722 ; N H ; B 81 0 641 723 ;
+C 73 ; WX 278 ; N I ; B 88 0 190 723 ;
+C 74 ; WX 500 ; N J ; B 24 -145 410 723 ;
+C 75 ; WX 667 ; N K ; B 93 0 643 723 ;
+C 76 ; WX 556 ; N L ; B 81 0 537 723 ;
+C 77 ; WX 833 ; N M ; B 81 0 752 723 ;
+C 78 ; WX 722 ; N N ; B 81 0 641 723 ;
+C 79 ; WX 778 ; N O ; B 45 -18 733 741 ;
+C 80 ; WX 667 ; N P ; B 81 0 644 723 ;
+C 81 ; WX 778 ; N Q ; B 45 -145 800 741 ;
+C 82 ; WX 722 ; N R ; B 81 0 700 723 ;
+C 83 ; WX 667 ; N S ; B 59 -18 607 741 ;
+C 84 ; WX 611 ; N T ; B 10 0 601 723 ;
+C 85 ; WX 722 ; N U ; B 81 -18 641 723 ;
+C 86 ; WX 667 ; N V ; B 17 0 661 723 ;
+C 87 ; WX 944 ; N W ; B 12 0 932 723 ;
+C 88 ; WX 667 ; N X ; B 13 0 653 723 ;
+C 89 ; WX 667 ; N Y ; B 15 0 653 723 ;
+C 90 ; WX 611 ; N Z ; B 50 0 561 723 ;
+C 91 ; WX 278 ; N bracketleft ; B 73 -145 266 771 ;
+C 92 ; WX 278 ; N backslash ; B -29 -145 307 723 ;
+C 93 ; WX 278 ; N bracketright ; B 13 -145 205 771 ;
+C 94 ; WX 469 ; N asciicircum ; B 18 289 451 723 ;
+C 95 ; WX 556 ; N underscore ; B 48 -72 508 0 ;
+C 97 ; WX 556 ; N a ; B 46 -12 536 542 ;
+C 98 ; WX 556 ; N b ; B 75 -12 514 771 ;
+C 99 ; WX 500 ; N c ; B 42 -12 452 542 ;
+C 100 ; WX 556 ; N d ; B 42 -12 481 771 ;
+C 101 ; WX 556 ; N e ; B 42 -12 498 542 ;
+C 102 ; WX 278 ; N f ; B 15 0 307 783 ;
+C 103 ; WX 556 ; N g ; B 42 -205 484 542 ;
+C 104 ; WX 556 ; N h ; B 75 0 487 771 ;
+C 105 ; WX 222 ; N i ; B 63 0 159 723 ;
+C 106 ; WX 222 ; N j ; B -76 -205 162 723 ;
+C 107 ; WX 500 ; N k ; B 75 0 491 771 ;
+C 108 ; WX 222 ; N l ; B 63 0 159 771 ;
+C 109 ; WX 833 ; N m ; B 75 0 764 542 ;
+C 110 ; WX 556 ; N n ; B 75 0 487 542 ;
+C 111 ; WX 556 ; N o ; B 42 -12 514 542 ;
+C 112 ; WX 556 ; N p ; B 75 -193 514 542 ;
+C 113 ; WX 556 ; N q ; B 42 -193 481 542 ;
+C 114 ; WX 333 ; N r ; B 75 0 326 542 ;
+C 115 ; WX 500 ; N s ; B 57 -12 443 542 ;
+C 116 ; WX 278 ; N t ; B 14 -12 273 636 ;
+C 117 ; WX 556 ; N u ; B 69 -12 481 530 ;
+C 118 ; WX 500 ; N v ; B 9 0 494 530 ;
+C 119 ; WX 722 ; N w ; B 6 0 715 530 ;
+C 120 ; WX 500 ; N x ; B 14 0 485 530 ;
+C 121 ; WX 500 ; N y ; B 9 -193 494 530 ;
+C 122 ; WX 500 ; N z ; B 36 0 464 530 ;
+C 123 ; WX 334 ; N braceleft ; B 12 -145 277 771 ;
+C 124 ; WX 260 ; N bar ; B 94 -145 166 771 ;
+C 125 ; WX 334 ; N braceright ; B 57 -145 322 771 ;
+C 126 ; WX 584 ; N asciitilde ; B 51 201 533 377 ;
+C 161 ; WX 333 ; N exclamdown ; B 118 -193 215 530 ;
+C 162 ; WX 556 ; N cent ; B 84 0 495 723 ;
+C 163 ; WX 556 ; N sterling ; B 59 0 472 741 ;
+C 165 ; WX 556 ; N yen ; B 12 0 526 723 ;
+C 167 ; WX 556 ; N section ; B 63 -163 493 741 ;
+C 168 ; WX 556 ; N currency ; B 60 143 497 580 ;
+C 169 ; WX 191 ; N quotesingle ; B 35 506 156 771 ;
+C 171 ; WX 556 ; N guillemotleft ; B 56 48 490 482 ;
+C 180 ; WX 278 ; N periodcentered ; B 79 240 199 360 ;
+C 182 ; WX 537 ; N paragraph ; B 43 -145 441 723 ;
+C 187 ; WX 556 ; N guillemotright ; B 66 48 500 482 ;
+C 191 ; WX 611 ; N questiondown ; B 90 -211 518 530 ;
+C 193 ; WX 333 ; N grave ; B 52 626 281 783 ;
+C 194 ; WX 333 ; N acute ; B 63 626 292 783 ;
+C 195 ; WX 333 ; N circumflex ; B -4 626 337 783 ;
+C 196 ; WX 333 ; N tilde ; B 4 626 329 741 ;
+C 197 ; WX 333 ; N macron ; B 10 627 323 699 ;
+C 198 ; WX 333 ; N breve ; B 4 626 329 783 ;
+C 199 ; WX 333 ; N dotaccent ; B 118 626 215 723 ;
+C 200 ; WX 333 ; N dieresis ; B 28 626 305 711 ;
+C 202 ; WX 333 ; N ring ; B 56 626 277 848 ;
+C 203 ; WX 333 ; N cedilla ; B 84 -211 253 0 ;
+C 205 ; WX 333 ; N hungarumlaut ; B -25 626 358 783 ;
+C 206 ; WX 333 ; N ogonek ; B 83 -181 250 0 ;
+C 207 ; WX 333 ; N caron ; B -4 626 337 783 ;
+C 225 ; WX 1000 ; N AE ; B 9 0 972 723 ;
+C 227 ; WX 370 ; N ordfeminine ; B 42 402 348 741 ;
+C 232 ; WX 556 ; N Lslash ; B 8 0 537 723 ;
+C 233 ; WX 778 ; N Oslash ; B 45 -18 733 741 ;
+C 234 ; WX 1000 ; N OE ; B 45 -18 972 741 ;
+C 235 ; WX 365 ; N ordmasculine ; B 36 402 329 741 ;
+C 241 ; WX 889 ; N ae ; B 46 -12 831 542 ;
+C 245 ; WX 222 ; N dotlessi ; B 63 0 159 530 ;
+C 248 ; WX 222 ; N lslash ; B -3 0 225 771 ;
+C 249 ; WX 611 ; N oslash ; B 70 -12 541 542 ;
+C 250 ; WX 944 ; N oe ; B 42 -12 885 542 ;
+C 251 ; WX 611 ; N germandbls ; B 63 -12 569 783 ;
+C -1 ; WX 667 ; N Aacute ; B 9 0 655 940 ;
+C -1 ; WX 667 ; N Abreve ; B 9 0 655 940 ;
+C -1 ; WX 667 ; N Acircumflex ; B 9 0 655 940 ;
+C -1 ; WX 667 ; N Adieresis ; B 9 0 655 868 ;
+C -1 ; WX 667 ; N Agrave ; B 9 0 655 940 ;
+C -1 ; WX 667 ; N Amacron ; B 9 0 655 856 ;
+C -1 ; WX 667 ; N Aogonek ; B 9 -181 655 723 ;
+C -1 ; WX 667 ; N Aring ; B 9 0 655 945 ;
+C -1 ; WX 667 ; N Atilde ; B 9 0 655 898 ;
+C -1 ; WX 722 ; N Cacute ; B 57 -18 660 940 ;
+C -1 ; WX 722 ; N Ccaron ; B 57 -18 660 940 ;
+C -1 ; WX 722 ; N Ccedilla ; B 57 -211 660 741 ;
+C -1 ; WX 722 ; N Ccircumflex ; B 57 -18 660 940 ;
+C -1 ; WX 722 ; N Cdotaccent ; B 57 -18 660 880 ;
+C -1 ; WX 722 ; N Dcaron ; B 81 0 677 940 ;
+C -1 ; WX 722 ; N Dcroat ; B 2 0 677 723 ;
+C -1 ; WX 667 ; N Eacute ; B 93 0 639 940 ;
+C -1 ; WX 667 ; N Ebreve ; B 93 0 639 940 ;
+C -1 ; WX 667 ; N Ecaron ; B 93 0 639 940 ;
+C -1 ; WX 667 ; N Ecircumflex ; B 93 0 639 940 ;
+C -1 ; WX 667 ; N Edieresis ; B 93 0 639 868 ;
+C -1 ; WX 667 ; N Edotaccent ; B 93 0 639 880 ;
+C -1 ; WX 667 ; N Egrave ; B 93 0 639 940 ;
+C -1 ; WX 667 ; N Emacron ; B 93 0 639 856 ;
+C -1 ; WX 722 ; N Eng ; B 81 -205 641 723 ;
+C -1 ; WX 667 ; N Eogonek ; B 93 -181 639 723 ;
+C -1 ; WX 722 ; N Eth ; B 2 0 677 723 ;
+C -1 ; WX 556 ; N Euro ; B 0 -18 527 740 ;
+C -1 ; WX 778 ; N Gbreve ; B 45 -18 686 940 ;
+C -1 ; WX 778 ; N Gcircumflex ; B 45 -18 686 940 ;
+C -1 ; WX 778 ; N Gcommaaccent ; B 45 -211 686 741 ;
+C -1 ; WX 778 ; N Gdotaccent ; B 45 -18 686 880 ;
+C -1 ; WX 722 ; N Hbar ; B 8 0 714 723 ;
+C -1 ; WX 722 ; N Hcircumflex ; B 81 0 641 940 ;
+C -1 ; WX 735 ; N IJ ; B 88 -145 645 723 ;
+C -1 ; WX 278 ; N Iacute ; B 78 0 307 940 ;
+C -1 ; WX 278 ; N Ibreve ; B -24 0 301 940 ;
+C -1 ; WX 278 ; N Icircumflex ; B -32 0 309 940 ;
+C -1 ; WX 278 ; N Idieresis ; B 0 0 277 868 ;
+C -1 ; WX 278 ; N Idotaccent ; B 88 0 190 880 ;
+C -1 ; WX 278 ; N Igrave ; B -18 0 211 940 ;
+C -1 ; WX 278 ; N Imacron ; B -18 0 295 856 ;
+C -1 ; WX 278 ; N Iogonek ; B 59 -181 226 723 ;
+C -1 ; WX 278 ; N Itilde ; B -24 0 301 898 ;
+C -1 ; WX 500 ; N Jcircumflex ; B 24 -145 517 940 ;
+C -1 ; WX 667 ; N Kcommaaccent ; B 93 -211 643 723 ;
+C -1 ; WX 556 ; N Lacute ; B 81 0 537 940 ;
+C -1 ; WX 556 ; N Lcaron ; B 81 0 537 723 ;
+C -1 ; WX 556 ; N Lcommaaccent ; B 81 -211 537 723 ;
+C -1 ; WX 556 ; N Ldot ; B 81 0 537 723 ;
+C -1 ; WX 722 ; N Nacute ; B 81 0 641 940 ;
+C -1 ; WX 722 ; N Ncaron ; B 81 0 641 940 ;
+C -1 ; WX 722 ; N Ncommaaccent ; B 81 -211 641 723 ;
+C -1 ; WX 722 ; N Ntilde ; B 81 0 641 898 ;
+C -1 ; WX 778 ; N Oacute ; B 45 -18 733 940 ;
+C -1 ; WX 778 ; N Obreve ; B 45 -18 733 940 ;
+C -1 ; WX 778 ; N Ocircumflex ; B 45 -18 733 940 ;
+C -1 ; WX 778 ; N Odieresis ; B 45 -18 733 868 ;
+C -1 ; WX 778 ; N Ograve ; B 45 -18 733 940 ;
+C -1 ; WX 778 ; N Ohungarumlaut ; B 45 -18 733 940 ;
+C -1 ; WX 778 ; N Omacron ; B 45 -18 733 856 ;
+C -1 ; WX 778 ; N Otilde ; B 45 -18 733 898 ;
+C -1 ; WX 722 ; N Racute ; B 81 0 700 940 ;
+C -1 ; WX 722 ; N Rcaron ; B 81 0 700 940 ;
+C -1 ; WX 722 ; N Rcommaaccent ; B 81 -211 700 723 ;
+C -1 ; WX 667 ; N Sacute ; B 59 -18 607 940 ;
+C -1 ; WX 667 ; N Scaron ; B 59 -18 607 940 ;
+C -1 ; WX 667 ; N Scedilla ; B 59 -191 607 741 ;
+C -1 ; WX 667 ; N Scircumflex ; B 59 -18 607 940 ;
+C -1 ; WX 667 ; N Scommaaccent ; B 59 -211 607 741 ;
+C -1 ; WX 611 ; N Tbar ; B 10 0 601 723 ;
+C -1 ; WX 611 ; N Tcaron ; B 10 0 601 940 ;
+C -1 ; WX 611 ; N Tcedilla ; B 10 -191 601 723 ;
+C -1 ; WX 611 ; N Tcommaaccent ; B 10 -211 601 723 ;
+C -1 ; WX 667 ; N Thorn ; B 81 0 644 723 ;
+C -1 ; WX 722 ; N Uacute ; B 81 -18 641 940 ;
+C -1 ; WX 722 ; N Ubreve ; B 81 -18 641 940 ;
+C -1 ; WX 722 ; N Ucircumflex ; B 81 -18 641 940 ;
+C -1 ; WX 722 ; N Udieresis ; B 81 -18 641 868 ;
+C -1 ; WX 722 ; N Ugrave ; B 81 -18 641 940 ;
+C -1 ; WX 722 ; N Uhungarumlaut ; B 81 -18 641 940 ;
+C -1 ; WX 722 ; N Umacron ; B 81 -18 641 856 ;
+C -1 ; WX 722 ; N Uogonek ; B 81 -181 641 723 ;
+C -1 ; WX 722 ; N Uring ; B 81 -18 641 993 ;
+C -1 ; WX 722 ; N Utilde ; B 81 -18 641 898 ;
+C -1 ; WX 944 ; N Wcircumflex ; B 12 0 932 940 ;
+C -1 ; WX 667 ; N Yacute ; B 15 0 653 940 ;
+C -1 ; WX 667 ; N Ycircumflex ; B 15 0 653 940 ;
+C -1 ; WX 667 ; N Ydieresis ; B 15 0 653 868 ;
+C -1 ; WX 611 ; N Zacute ; B 50 0 561 940 ;
+C -1 ; WX 611 ; N Zcaron ; B 50 0 561 940 ;
+C -1 ; WX 611 ; N Zdotaccent ; B 50 0 561 880 ;
+C -1 ; WX 556 ; N aacute ; B 46 -12 536 783 ;
+C -1 ; WX 556 ; N abreve ; B 46 -12 536 783 ;
+C -1 ; WX 556 ; N acircumflex ; B 46 -12 536 783 ;
+C -1 ; WX 556 ; N adieresis ; B 46 -12 536 711 ;
+C -1 ; WX 333 ; N afii57929 ; B 118 549 215 771 ;
+C -1 ; WX 556 ; N agrave ; B 46 -12 536 783 ;
+C -1 ; WX 556 ; N amacron ; B 46 -12 536 699 ;
+C -1 ; WX 556 ; N aogonek ; B 46 -181 536 542 ;
+C -1 ; WX 333 ; N apostrophe ; B 118 549 215 771 ;
+C -1 ; WX 556 ; N aring ; B 46 -12 536 848 ;
+C -1 ; WX 556 ; N atilde ; B 46 -12 536 741 ;
+C -1 ; WX 260 ; N brokenbar ; B 94 -145 166 771 ;
+C -1 ; WX 500 ; N cacute ; B 42 -12 453 783 ;
+C -1 ; WX 500 ; N ccaron ; B 42 -12 467 783 ;
+C -1 ; WX 500 ; N ccedilla ; B 42 -211 452 542 ;
+C -1 ; WX 500 ; N ccircumflex ; B 42 -12 467 783 ;
+C -1 ; WX 500 ; N cdotaccent ; B 42 -12 452 723 ;
+C -1 ; WX 333 ; N commaaccent ; B 86 -211 253 -54 ;
+C -1 ; WX 737 ; N copyright ; B 7 0 730 723 ;
+C -1 ; WX 615 ; N dcaron ; B 42 -12 615 771 ;
+C -1 ; WX 556 ; N dcroat ; B 42 -12 553 771 ;
+C -1 ; WX 400 ; N degree ; B 55 452 345 741 ;
+C -1 ; WX 584 ; N divide ; B 51 0 533 578 ;
+C -1 ; WX 222 ; N dotlessj ; B -76 -205 162 530 ;
+C -1 ; WX 556 ; N eacute ; B 42 -12 498 783 ;
+C -1 ; WX 556 ; N ebreve ; B 42 -12 498 783 ;
+C -1 ; WX 556 ; N ecaron ; B 42 -12 498 783 ;
+C -1 ; WX 556 ; N ecircumflex ; B 42 -12 498 783 ;
+C -1 ; WX 556 ; N edieresis ; B 42 -12 498 711 ;
+C -1 ; WX 556 ; N edotaccent ; B 42 -12 498 723 ;
+C -1 ; WX 556 ; N egrave ; B 42 -12 498 783 ;
+C -1 ; WX 556 ; N emacron ; B 42 -12 498 699 ;
+C -1 ; WX 556 ; N eng ; B 75 -205 487 542 ;
+C -1 ; WX 556 ; N eogonek ; B 42 -181 498 542 ;
+C -1 ; WX 602 ; N eth ; B 42 -12 560 818 ;
+C -1 ; WX 556 ; N gbreve ; B 42 -205 484 783 ;
+C -1 ; WX 556 ; N gcircumflex ; B 42 -205 484 783 ;
+C -1 ; WX 556 ; N gcommaaccent ; B 42 -205 484 848 ;
+C -1 ; WX 556 ; N gdotaccent ; B 42 -205 484 723 ;
+C -1 ; WX 556 ; N hbar ; B 3 0 487 771 ;
+C -1 ; WX 556 ; N hcircumflex ; B 75 0 487 976 ;
+C -1 ; WX 222 ; N iacute ; B 50 0 279 783 ;
+C -1 ; WX 222 ; N ibreve ; B -52 0 273 783 ;
+C -1 ; WX 222 ; N icircumflex ; B -60 0 281 783 ;
+C -1 ; WX 222 ; N idieresis ; B -28 0 249 711 ;
+C -1 ; WX 222 ; N igrave ; B -46 0 183 783 ;
+C -1 ; WX 444 ; N ij ; B 63 -205 384 723 ;
+C -1 ; WX 222 ; N imacron ; B -46 0 267 699 ;
+C -1 ; WX 222 ; N iogonek ; B 30 -181 197 723 ;
+C -1 ; WX 222 ; N itilde ; B -52 0 273 741 ;
+C -1 ; WX 222 ; N jcircumflex ; B -76 -205 276 783 ;
+C -1 ; WX 500 ; N kcommaaccent ; B 75 -211 491 771 ;
+C -1 ; WX 500 ; N kgreenlandic ; B 75 0 491 530 ;
+C -1 ; WX 222 ; N lacute ; B 39 0 268 976 ;
+C -1 ; WX 292 ; N lcaron ; B 63 0 298 771 ;
+C -1 ; WX 222 ; N lcommaaccent ; B 39 -211 206 771 ;
+C -1 ; WX 334 ; N ldot ; B 63 0 328 771 ;
+C -1 ; WX 584 ; N logicalnot ; B 42 145 524 434 ;
+C -1 ; WX 222 ; N longs ; B 4 0 250 783 ;
+C -1 ; WX 556 ; N mu ; B 69 -193 481 530 ;
+C -1 ; WX 584 ; N multiply ; B 58 55 526 523 ;
+C -1 ; WX 556 ; N nacute ; B 75 0 487 783 ;
+C -1 ; WX 604 ; N napostrophe ; B 0 0 535 771 ;
+C -1 ; WX 278 ; N nbspace ; B 0 0 0 0 ;
+C -1 ; WX 556 ; N ncaron ; B 75 0 487 783 ;
+C -1 ; WX 556 ; N ncommaaccent ; B 75 -211 487 542 ;
+C -1 ; WX 556 ; N ntilde ; B 75 0 487 741 ;
+C -1 ; WX 556 ; N oacute ; B 42 -12 514 783 ;
+C -1 ; WX 556 ; N obreve ; B 42 -12 514 783 ;
+C -1 ; WX 556 ; N ocircumflex ; B 42 -12 514 783 ;
+C -1 ; WX 556 ; N odieresis ; B 42 -12 514 711 ;
+C -1 ; WX 556 ; N ograve ; B 42 -12 514 783 ;
+C -1 ; WX 556 ; N ohungarumlaut ; B 42 -12 548 783 ;
+C -1 ; WX 556 ; N omacron ; B 42 -12 514 699 ;
+C -1 ; WX 834 ; N onehalf ; B 57 -18 774 741 ;
+C -1 ; WX 834 ; N onequarter ; B 57 -18 774 741 ;
+C -1 ; WX 333 ; N onesuperior ; B 60 289 229 734 ;
+C -1 ; WX 556 ; N otilde ; B 42 -12 514 741 ;
+C -1 ; WX 584 ; N plusminus ; B 51 0 533 578 ;
+C -1 ; WX 333 ; N racute ; B 75 0 353 783 ;
+C -1 ; WX 333 ; N rcaron ; B 2 0 343 783 ;
+C -1 ; WX 333 ; N rcommaaccent ; B 75 -211 326 542 ;
+C -1 ; WX 737 ; N registered ; B 7 0 730 723 ;
+C -1 ; WX 500 ; N sacute ; B 57 -12 443 783 ;
+C -1 ; WX 500 ; N scaron ; B 57 -12 443 783 ;
+C -1 ; WX 500 ; N scedilla ; B 57 -191 443 542 ;
+C -1 ; WX 500 ; N scircumflex ; B 57 -12 443 783 ;
+C -1 ; WX 500 ; N scommaaccent ; B 57 -211 443 542 ;
+C -1 ; WX 333 ; N sfthyphen ; B 43 253 290 325 ;
+C -1 ; WX 278 ; N tbar ; B 14 -12 273 636 ;
+C -1 ; WX 375 ; N tcaron ; B 14 -12 352 824 ;
+C -1 ; WX 278 ; N tcedilla ; B 14 -191 273 636 ;
+C -1 ; WX 278 ; N tcommaaccent ; B 14 -211 273 636 ;
+C -1 ; WX 556 ; N thorn ; B 75 -193 514 771 ;
+C -1 ; WX 834 ; N threequarters ; B 54 -18 780 741 ;
+C -1 ; WX 333 ; N threesuperior ; B 36 278 304 734 ;
+C -1 ; WX 333 ; N twosuperior ; B 36 289 312 734 ;
+C -1 ; WX 556 ; N uacute ; B 69 -12 481 783 ;
+C -1 ; WX 556 ; N ubreve ; B 69 -12 481 783 ;
+C -1 ; WX 556 ; N ucircumflex ; B 69 -12 481 783 ;
+C -1 ; WX 556 ; N udieresis ; B 69 -12 481 711 ;
+C -1 ; WX 556 ; N ugrave ; B 69 -12 481 783 ;
+C -1 ; WX 556 ; N uhungarumlaut ; B 69 -12 525 783 ;
+C -1 ; WX 556 ; N umacron ; B 69 -12 481 699 ;
+C -1 ; WX 556 ; N uni20AC ; B 0 -18 527 740 ;
+C -1 ; WX 556 ; N uogonek ; B 69 -181 481 530 ;
+C -1 ; WX 556 ; N uring ; B 69 -12 481 848 ;
+C -1 ; WX 556 ; N utilde ; B 69 -12 481 741 ;
+C -1 ; WX 722 ; N wcircumflex ; B 6 0 715 783 ;
+C -1 ; WX 500 ; N yacute ; B 9 -193 494 783 ;
+C -1 ; WX 500 ; N ycircumflex ; B 9 -193 494 783 ;
+C -1 ; WX 500 ; N ydieresis ; B 9 -193 494 711 ;
+C -1 ; WX 500 ; N zacute ; B 36 0 464 783 ;
+C -1 ; WX 500 ; N zcaron ; B 36 0 464 783 ;
+C -1 ; WX 500 ; N zdotaccent ; B 36 0 464 723 ;
+EndCharMetrics
+StartComposites 132
+CC Aacute 2 ; PCC A 0 0 ; PCC acute 210 157 ;
+CC Abreve 2 ; PCC A 0 0 ; PCC breve 169 157 ;
+CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 168 157 ;
+CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 168 157 ;
+CC Agrave 2 ; PCC A 0 0 ; PCC grave 126 157 ;
+CC Amacron 2 ; PCC A 0 0 ; PCC macron 169 157 ;
+CC Atilde 2 ; PCC A 0 0 ; PCC tilde 168 157 ;
+CC Cacute 2 ; PCC C 0 0 ; PCC acute 281 157 ;
+CC Ccaron 2 ; PCC C 0 0 ; PCC caron 250 157 ;
+CC Ccircumflex 2 ; PCC C 0 0 ; PCC circumflex 250 157 ;
+CC Cdotaccent 2 ; PCC C 0 0 ; PCC dotaccent 250 157 ;
+CC Dcaron 2 ; PCC D 0 0 ; PCC caron 167 157 ;
+CC Eacute 2 ; PCC E 0 0 ; PCC acute 240 157 ;
+CC Ebreve 2 ; PCC E 0 0 ; PCC breve 193 157 ;
+CC Ecaron 2 ; PCC E 0 0 ; PCC caron 191 157 ;
+CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 199 157 ;
+CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 192 157 ;
+CC Edotaccent 2 ; PCC E 0 0 ; PCC dotaccent 192 157 ;
+CC Egrave 2 ; PCC E 0 0 ; PCC grave 156 157 ;
+CC Emacron 2 ; PCC E 0 0 ; PCC macron 186 157 ;
+CC Gbreve 2 ; PCC G 0 0 ; PCC breve 256 157 ;
+CC Gcircumflex 2 ; PCC G 0 0 ; PCC circumflex 256 157 ;
+CC Gdotaccent 2 ; PCC G 0 0 ; PCC dotaccent 257 157 ;
+CC Hcircumflex 2 ; PCC H 0 0 ; PCC circumflex 194 157 ;
+CC Iacute 2 ; PCC I 0 0 ; PCC acute 15 157 ;
+CC Ibreve 2 ; PCC I 0 0 ; PCC breve -28 157 ;
+CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -28 157 ;
+CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -28 157 ;
+CC Idotaccent 2 ; PCC I 0 0 ; PCC dotaccent -27 157 ;
+CC Igrave 2 ; PCC I 0 0 ; PCC grave -70 157 ;
+CC Imacron 2 ; PCC I 0 0 ; PCC macron -28 157 ;
+CC Itilde 2 ; PCC I 0 0 ; PCC tilde -28 157 ;
+CC Jcircumflex 2 ; PCC J 0 0 ; PCC circumflex 180 157 ;
+CC Lacute 2 ; PCC L 0 0 ; PCC acute 24 157 ;
+CC Ldot 2 ; PCC L 0 0 ; PCC dotaccent 245 -313 ;
+CC Nacute 2 ; PCC N 0 0 ; PCC acute 226 157 ;
+CC Ncaron 2 ; PCC N 0 0 ; PCC caron 195 157 ;
+CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 207 157 ;
+CC Oacute 2 ; PCC O 0 0 ; PCC acute 265 157 ;
+CC Obreve 2 ; PCC O 0 0 ; PCC breve 222 157 ;
+CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 222 157 ;
+CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 222 157 ;
+CC Ograve 2 ; PCC O 0 0 ; PCC grave 180 157 ;
+CC Ohungarumlaut 2 ; PCC O 0 0 ; PCC hungarumlaut 301 157 ;
+CC Omacron 2 ; PCC O 0 0 ; PCC macron 222 157 ;
+CC Otilde 2 ; PCC O 0 0 ; PCC tilde 222 157 ;
+CC Racute 2 ; PCC R 0 0 ; PCC acute 192 157 ;
+CC Rcaron 2 ; PCC R 0 0 ; PCC caron 143 157 ;
+CC Sacute 2 ; PCC S 0 0 ; PCC acute 193 157 ;
+CC Scaron 2 ; PCC S 0 0 ; PCC caron 162 157 ;
+CC Scircumflex 2 ; PCC S 0 0 ; PCC circumflex 161 157 ;
+CC Tcaron 2 ; PCC T 0 0 ; PCC caron 139 157 ;
+CC Uacute 2 ; PCC U 0 0 ; PCC acute 243 157 ;
+CC Ubreve 2 ; PCC U 0 0 ; PCC breve 201 157 ;
+CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 201 157 ;
+CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 201 157 ;
+CC Ugrave 2 ; PCC U 0 0 ; PCC grave 159 157 ;
+CC Uhungarumlaut 2 ; PCC U 0 0 ; PCC hungarumlaut 269 157 ;
+CC Umacron 2 ; PCC U 0 0 ; PCC macron 201 157 ;
+CC Uring 2 ; PCC U 0 0 ; PCC ring 201 145 ;
+CC Utilde 2 ; PCC U 0 0 ; PCC tilde 201 157 ;
+CC Wcircumflex 2 ; PCC W 0 0 ; PCC circumflex 311 157 ;
+CC Yacute 2 ; PCC Y 0 0 ; PCC acute 213 157 ;
+CC Ycircumflex 2 ; PCC Y 0 0 ; PCC circumflex 178 157 ;
+CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 178 157 ;
+CC Zacute 2 ; PCC Z 0 0 ; PCC acute 170 157 ;
+CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 145 157 ;
+CC Zdotaccent 2 ; PCC Z 0 0 ; PCC dotaccent 145 157 ;
+CC aacute 2 ; PCC a 0 0 ; PCC acute 158 0 ;
+CC abreve 2 ; PCC a 0 0 ; PCC breve 121 0 ;
+CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 116 0 ;
+CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 107 0 ;
+CC agrave 2 ; PCC a 0 0 ; PCC grave 74 0 ;
+CC amacron 2 ; PCC a 0 0 ; PCC macron 106 0 ;
+CC aring 2 ; PCC a 0 0 ; PCC ring 116 0 ;
+CC atilde 2 ; PCC a 0 0 ; PCC tilde 101 0 ;
+CC cacute 2 ; PCC c 0 0 ; PCC acute 161 0 ;
+CC ccaron 2 ; PCC c 0 0 ; PCC caron 130 0 ;
+CC ccircumflex 2 ; PCC c 0 0 ; PCC circumflex 130 0 ;
+CC cdotaccent 2 ; PCC c 0 0 ; PCC dotaccent 130 0 ;
+CC eacute 2 ; PCC e 0 0 ; PCC acute 154 0 ;
+CC ebreve 2 ; PCC e 0 0 ; PCC breve 111 0 ;
+CC ecaron 2 ; PCC e 0 0 ; PCC caron 112 0 ;
+CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 117 0 ;
+CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 118 0 ;
+CC edotaccent 2 ; PCC e 0 0 ; PCC dotaccent 112 0 ;
+CC egrave 2 ; PCC e 0 0 ; PCC grave 69 0 ;
+CC emacron 2 ; PCC e 0 0 ; PCC macron 111 0 ;
+CC gbreve 2 ; PCC g 0 0 ; PCC breve 126 0 ;
+CC gcircumflex 2 ; PCC g 0 0 ; PCC circumflex 125 0 ;
+CC gdotaccent 2 ; PCC g 0 0 ; PCC dotaccent 120 0 ;
+CC hcircumflex 2 ; PCC h 0 0 ; PCC circumflex 115 193 ;
+CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -13 0 ;
+CC ibreve 2 ; PCC dotlessi 0 0 ; PCC breve -56 0 ;
+CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -56 0 ;
+CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -56 0 ;
+CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -98 0 ;
+CC imacron 2 ; PCC dotlessi 0 0 ; PCC macron -56 0 ;
+CC itilde 2 ; PCC dotlessi 0 0 ; PCC tilde -56 0 ;
+CC lacute 2 ; PCC l 0 0 ; PCC acute -24 193 ;
+CC nacute 2 ; PCC n 0 0 ; PCC acute 139 0 ;
+CC ncaron 2 ; PCC n 0 0 ; PCC caron 119 0 ;
+CC ntilde 2 ; PCC n 0 0 ; PCC tilde 107 0 ;
+CC oacute 2 ; PCC o 0 0 ; PCC acute 154 0 ;
+CC obreve 2 ; PCC o 0 0 ; PCC breve 111 0 ;
+CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 111 0 ;
+CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 111 0 ;
+CC ograve 2 ; PCC o 0 0 ; PCC grave 69 0 ;
+CC ohungarumlaut 2 ; PCC o 0 0 ; PCC hungarumlaut 190 0 ;
+CC omacron 2 ; PCC o 0 0 ; PCC macron 111 0 ;
+CC otilde 2 ; PCC o 0 0 ; PCC tilde 111 0 ;
+CC racute 2 ; PCC r 0 0 ; PCC acute 61 0 ;
+CC rcaron 2 ; PCC r 0 0 ; PCC caron 6 0 ;
+CC sacute 2 ; PCC s 0 0 ; PCC acute 133 0 ;
+CC scaron 2 ; PCC s 0 0 ; PCC caron 102 0 ;
+CC scircumflex 2 ; PCC s 0 0 ; PCC circumflex 101 0 ;
+CC uacute 2 ; PCC u 0 0 ; PCC acute 151 0 ;
+CC ubreve 2 ; PCC u 0 0 ; PCC breve 108 0 ;
+CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 108 0 ;
+CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 108 0 ;
+CC ugrave 2 ; PCC u 0 0 ; PCC grave 72 0 ;
+CC uhungarumlaut 2 ; PCC u 0 0 ; PCC hungarumlaut 167 0 ;
+CC umacron 2 ; PCC u 0 0 ; PCC macron 108 0 ;
+CC uring 2 ; PCC u 0 0 ; PCC ring 108 0 ;
+CC utilde 2 ; PCC u 0 0 ; PCC tilde 108 0 ;
+CC wcircumflex 2 ; PCC w 0 0 ; PCC circumflex 198 0 ;
+CC yacute 2 ; PCC y 0 0 ; PCC acute 127 0 ;
+CC ycircumflex 2 ; PCC y 0 0 ; PCC circumflex 91 0 ;
+CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 91 0 ;
+CC zacute 2 ; PCC z 0 0 ; PCC acute 115 0 ;
+CC zcaron 2 ; PCC z 0 0 ; PCC caron 85 0 ;
+CC zdotaccent 2 ; PCC z 0 0 ; PCC dotaccent 82 0 ;
+EndComposites
+EndFontMetrics
diff --git a/php/extras/fonts/ps/lcdxsr.pfa b/php/extras/fonts/ps/lcdxsr.pfa
new file mode 100644
index 000000000..629ce3053
--- /dev/null
+++ b/php/extras/fonts/ps/lcdxsr.pfa
@@ -0,0 +1,946 @@
+%!PS-AdobeFont-1.1: LuciduxSans 000.200
+%%CreationDate: 2000 Mar 04 11:21:33
+
+% Copyright (C) 2000 Bigelow & Holmes Inc. and Y&Y, Inc.
+% Patents pending. All Rights Reserved.
+% Lucidux is a trademark of Bigelow & Holmes Inc.
+
+% Permission is hereby granted, free of charge, to any person obtaining a
+% copy of these Fonts and associated documentation files (the "Font Software"),
+% to deal in the Font Software, including without limitation the rights to
+% use, copy, merge, publish, distribute, sublicense, and/or sell copies of
+% the Font Software, and to permit persons to whom the Font Software is
+% furnished to do so, subject to the following conditions:
+
+% The above copyright, trademark, patent notices and this permission notice
+% shall be included in all copies of one or more of the Software.
+
+% The Font Software may not be modified, alterered, or added to, and in
+% particular the designs of glyphs or characters in the Fonts may not be
+% modified nor may additional glyphs or characters be added to the Fonts,
+% except that composite characters composed of two or more characters in the
+% Fonts may be created using the seac (Standard Encoding Accented Character)
+% Type 1 operator.
+
+% THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+% EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+% MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
+% COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BIGELOW &
+% HOLMES INC. OR Y&Y, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+% LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR
+% CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+% ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+% OTHER DEALINGS IN THE FONT SOFTWARE.
+
+% Except as contained in this notice, the names of Bigelow & Holmes Inc.
+% and Y&Y, Inc. shall not be used in advertising or otherwise to promote
+% the sale, use or other dealings in this Font Software without prior
+% written authorization from the Bigelow & Holmes Inc. and Y&Y, Inc.
+
+% For further information, contact:
+% mailto:support@yandy.com or mailto:design@bigelowandholmes.com
+% For other Bigelow & Holmes fonts see http://www.YandY.com
+
+12 dict begin
+/FontInfo 9 dict dup begin
+ /version (000.200) readonly def
+ /Notice (Copyright (C) 2000 Bigelow & Holmes Inc. and Y&Y, Inc. All rights reserved.) readonly def
+ /FullName (Lucidux Sans) readonly def
+ /FamilyName (LuciduxSans) readonly def
+ /Weight (Normal) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -100 def
+ /UnderlineThickness 50 def
+end readonly def
+/FontName /LuciduxSans def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding StandardEncoding def
+/FontBBox{-76 -211 932 993}readonly def
+/UniqueID 5096729 def
+currentdict end
+currentfile eexec
+8053514D28EC28DA1630165FAB262882D3FD7667933E8516EE9710995B33AD6AFA66AE56E3B4F8
+1A010BA2D16746155E0B46B8233AF9FC6FB5A1DE6E6D7277AEC5CE81679028F3B440619FB93E88
+614EBEE63F9A83374DA4CF45FCBBACEBE22717D34438C9B2E3DC7580F497AC697EA20AC096930F
+E90934EA8FFE999902BA55F2149DEADDCBC4CF03F530F526450856BF8F3CE1C247AA6810D725B6
+E4CB0C6B7DC3B7B5FBE22909A1ED01A6BCEFAE9A709DB1D61BF8A223420C27BC28535F3C5C58CE
+BD7239771F455E727EB9C9025F7B0B98D9C49F8A33E8C9A67A30CBC40719B9902A42978F54386A
+B019C6EED778074F809506075C7CF394AFF792A52C36CC8FCE79BAABF945F6AB3AE924FBF89F12
+D0D56822E09D7226051E5235D975B5A7E02610477A9B9148DA4E93861FF37C54BBB2F3196A5A37
+94CC7C8B06CB9817A184DD7B41CF130CA812FD511CC539DA6AE1E3D8D57C26DC2630D87CA276CB
+0B55BEC3BB4626608A4DE50E3CBF313230AFAA9E86F83366003B63876ED7072ADF068B03629105
+DE8544254F4129096C4FCB741029ECA3DBF8402BF0027BD8429F4C0E4A691B9DB7BA0BB6D0B3D2
+76619C3FA1475D1BA1FAD4C5B40B63D5B85E1245256B455D0A4ED46CD28F119131B2838E932481
+125EDC015EF47C67EB10A5731F52ACC0B85572C16D2752367D0D949148DF67F9C11A5C58489D18
+F47204970B36C16A540CDA197D74AC1E2254032FFCC6714FE366A738531F78B2C05734BE1A6213
+6C6CDB890D290C32464359ACAE204BBC7B80AC79A14D8A755400ABD2B23BAF9C3E3D992141F8F9
+C97ED2B563D69C87826A3FB0E39EA086C35A4F7A56AD6365793F5F6168C0343059BE346958E71A
+16BABC2E5B30DB1EA0CCC7A4366F49434FD92EE9CE371FD39CC3B253BA16BEB8C682A31B9F3F68
+B4EECA96055FA79C9EBBA6C36CEE00083986CAA5C8DE818400D2801DBFBFE48E01EACC97EA6A4C
+43BE6013355C5F85F2BC86A716675CC0598A7AA3DEF4A4B348FC065EBCC0CA7BD95676E189BDA2
+4453E4DB797CA557B29167E4439C59E97CFF0B50422EFA7FEA7669CB43413B7B38CF6155E1650C
+1364A263E17D900FA58ECC3BB1815AE05917608E9EE42DE02BA771FC20E4F02DD92686EA09D218
+E4E9F79C77789FFEB2AA92342FF6D36B225A4E03C2C83982F8BC735F64DB3D9CC25EFB579147B3
+F249703EB296678A8B58C23CAF5F38AAF9016239CED770BB08A06C0B09E670700E18B5FAEDF27B
+9FCB06586A86FCF79E224138554F2A23D84473DD561A66FC017994B3CA2F0D957FC0D2DFDC5A4A
+A1A5AA5F3C41A3397F19F6ECEBC55CA2C9A32A307EE08FEFA3D9D396E3A0564ABAA069DAC2F814
+2E0E56B0C5AC36E457C6193AB40DCAB58560839805BAB0E4B9344D9AE12C393C6EF0827BCD6B5C
+A045A532CE56B61BED6FD4133347CFF6857AD0A508811538828830DC61F68767120F8AD87035B0
+2106FA9EBDF337E877D5C0720AA1EC5166DADF2781833DBB6C3215A1051AE3B8D3607F5413CEAA
+E2583927E617D159478382DD27A2A282DF8C6E1D0C0EEC94948DC03917AB8FFB091ADAC2691CCB
+8A2F5538A14B3C016D76AD2C6BF376A8504216F000D2F7C1CC7556C8DBAA59FB2E0448A8BDCD83
+7B6C431FF52807D26086B6E01357331EAF8A1321A81ACB52FFCC19ACD507FE1BD2244375AC2749
+D77C536435C7DC6F5BB0C5B86883CED544C59301C4F49DA43987229A772C9DAC343953F214D9BD
+FE395EED13BC6FF3540C742CE162EEB87EA338240949925BE3F30B6951CEDAB4E70D07AEE75497
+6C2D472F749B4CE70485FF108C03B22FA9AF82D709B7D36014B0C430369FAD731D551650B576D6
+5682A370A527915CE8965940EA14F4892FB924033832E5693C2E075F4F4F798F0FAD9A8DB5C7D8
+7BDB56792B42D75F2E60C7ACFE9BF889167AF920C2712658D2664C6DE96E42010D62A6A7CB68ED
+43F642BFB37D8397E90C15C8EFAC45D2BCB95BD92F364BDD79254D518FACB99A9439AB8D2376FD
+E0DA89DC340E2B643A909715B710C7EAC4CBDC7A477F76E98EFF9E9BEE906558BDB1D8946DC603
+56D217C2468CCF79809AFB4BC8CFFF9FB1087279A6C99975157B8EAF1C05C2DED789877EBE1E0F
+2D1CE8F7B577BFFF25BF813A92493CE528471F6C3CC588FDC42DADE958787DBE995166033598F2
+189E5411259F5AFD4AAE5892EDA4EB096A82521949823F8345EA98741924497799215AA0B4AE62
+F18D763EC2E0477AAA2C640D8248D7A03B9FD251B9F395648D735DCA676619B65849077997D848
+A6FCCA750A37A2BB0D5AE6C3C4662342012D67968BE19FAD25944F4445D0FC4AB007B418B1CBB3
+E09FF54944D9573EBE8720842BB0B80C5A6023AB192425DE90FFF3F4B8A7AE3D1B53FB50C904A5
+8BF66D41042EC1D0F82977847868583A3349B75C4985A20E4CB9D14E5E8B185DA22C6AC87E2795
+17294469F982F80FB0C12CC961B6E3DA953EC91E2262EFEE86C28D5082858D23D262D4EC3D9F96
+8D597B4370CFB02826BFA1435CC974356D54EDFBF02A115151FB0E70626E8EF2B8F969056F9E3C
+B74E9E88925C6A1321F632971DB929CCDB9CBF1D3732E8FDBCCB7F81F10C59C0C3429C7B0C2CFA
+B4B9F533999BC632BD5A2C01B58AC7032E0EEEEF273D9C703E936D26DB1569B81E63B41BA5CE1E
+E0A00268D8E7F2A30AD7DC5737604FF4A7CE6541DB6BDC400275C85162B4E5A2C67006F757BD2A
+992AA8526CAE3B57B6391D133802F8BD42BAF94C64D81FF90DE05F64AA745A7D239D911BE6526B
+5B115848656071426246C52998F63410187DDD218B3F366095FC745A99F90FCB4CE3CF236891A6
+1F802DA5D207C0ACE85A74955B936B971252327D2F448BE84E8E2074B341E84AFA0A18C0DFDAD5
+B1596AB057D3B35E15E7CD138A501E8F2EBD5E3F66D2AEBD82059D6A736512A65325CBAF512EA8
+BF44EC8479533E087F5F0AA450F31167D4CF10DFD5D2B9CAAD27630B90356CCBB23E3E63A5BE07
+D8EAEBFEFE0435C8CAABC390B8B11E9F83B8A2C7714EAF839C9127C9961B3CEACAFD512D77D536
+F259CCCF425183B2D0D288BBEAEA0DD6DC638BE3DEA5157567765393DDECA3BEEDDC236BBFD10C
+A6C1CD40F377BA53CE9F68876798F0DED447C2339633590790E4637BDB988ECDF7AA467B9B9C86
+AD4BBCB524027E44E87A394A411B73521E413222D2FF815CC6D06EB75C088917296B3109794876
+5CFF25166BCEF3E7CC4217481453099C0BBE280749B6FA99DA273551A98A5446E9084C75FE4CCA
+DAECD7CAE2CB1A38842E5C9ADF9CA2D3D584E66B283E0DB1CD1A14D784FAD53B95B1B1EC7AA1F8
+10496924DCAA826B6FD34CFB4317F6CCF8DBB440593EAEB7FB9E1EBC9BAFFC3BEB5A68FF5790F6
+65F9359942DCB2332627DD69E4A547675204A09BFBAAAC819F39AFA8660102A9F684864E5E1FCA
+5D08ADC38400F8E64D7B6075F1C2A0E015D8E42CDAD33EFE41B03C6646AB385AF6F05430083334
+CDDDAF29FC0C8E1B76811A7C343A4E4CFDD49511CC2178D70FE73B5FBA6AC71A7DA5098FEDE0E2
+803B1E3F7AE072A607FB4E08C5F04D544FB6488F2448BFBC53E6B8C91A5C79CC07D052A41E6870
+AADBC8D12285068BEF96878889A6D18445EC8F6643D9F0ED1C0F433A91AC4475C9F0C5B507180C
+2696835B60CEF5E418C218D0714AC70C9595A73CAEAF72FE85CFAEA24EAE7CE5D2426AEF85193A
+F7BF243732C450F38A5117C8C21B4FF7C59D2056DAE2FEBD4E2BEFB92C770490FC1F2287C9C4F5
+A74493A14017650C8A2C613600B7D2F0D26F26ABA9113F33F127E7BBB42245BB1B36449C9A1086
+920C9F50022A98EA1638F3D08A1FCCCB60AD0CEA217BA0DA2C4C86F31DACA71AED80728C7000C6
+EA8A00BD1C7F13A072975F5D1913ED0FE8496817116472D07F9618BF40743B4C4777FA8B84518A
+2B60586D0D18A807E991565A4636B203EA7D2E69363F6E719DFAE7D9C0760F80C65F6FA3CEA15B
+0CED811395AEF9E52C8E31510E13C6B5F32C3789945E9989D723EFDA8FCE2207A1053F0005B9D5
+A7C734CB4317FA4C8E1928548474131E8D582FDFDE73AE4AC928B7D55D5E7FA71F20E220317B93
+61E0F3CEA7CE57D22F09BF0D7871CBFEEEC115BD914914126AAC1C5800D5036B32E1DBC78A303A
+71C13F9E6EB178DE3A78C328DE953F0666E296C7BB0044636CABA978D0C129390CC49BE39A7BC1
+BF2DB4B2537C260C53393512567DFE2EACC33675924DAFECDD4DC26CDA41572EEDB8A24698835F
+E325FA5423EB048EE8120FB303DEBEDD8061D186CC5BC0685B2E2067344ECD682ED40A52CFDF19
+F688CC1CA231B5538BCC0FF05CF8CB5F12392108875FE3C68DE432F9560F9C7C6944C85679260D
+1067FF0291CEBBD4A9EB4F2272ABA4E5CBF9DFD51D62265B6766F21B5CAE3F7C217907DE6CB9D9
+4E96BA17C260AD66DF8CCC311631985F53E2267B139DEC948EAA38DB6D3EB06B40580403816F31
+5788F094FF4AF03DA3528B9E0DA5F902679C63E4F4B1E04DBB7F1B267274868B8E06FFADFC82AD
+078CE7462B01750ABC72276CFD035841DF8666D5FCDF41CE59059EFB22976B876293A1ADEA7502
+92342A3D65AECDEC0C108EEC0239EC4390245630EDF6212E9CD5D1200A4B68E1ADD82F69BA313A
+2F5D24E4882A2EBA16A8405C69189E7EBD76815B0E7D79FB7A8D26F05BD01D74F851AB6BD3182C
+9D2563EAE67E6BBB8E3BBDDE19EB95FB1402AA140D874562A0E8022A621EC94DC2D5669283D994
+6615DDEFB717DE7B2B96971E35DE1AEB667BCC78E4C1FF02E7FEC18ABEC52C8FFAB65A7E665767
+1591C53A681C7F8CE929C04FAFAA990BF4258F468C12ECA77542646B84F41A625866C87888BF73
+D689417E37D0E93255A1F11D9AFE300853D10C1720EF855A5212044E41BA74B70C82A455485AB5
+1D146FC66E7693977573366A87143385091E2EB54EDCE5F830AB7F2C83FE7EDDD26A959CFC6516
+ADBA9F9ECB389BC5900C4305D9FA6A2F2E24D61819D88FA7E28AE04F6B72656BE4D40873C8F4EA
+9DED9CA2889902EC325F2E1A5A36E140501470A7EA0E1ED34C06400E5ED32C1133F8E154535AAE
+67599192C4F0715DA1FF146B7473744D78CBC392335D5C9C1504C191C863979E688C7A2F1A25CD
+8B23A5E945767D01DB6BAB2EAA40BC27ECD156645802777F679E2F62A0A3EDE2EB45C32DE35EBE
+CC5BC15F6C0ED1A086E43271318622FFA20438F0184647BC44174EC75181A42E15DE4D1E7D62A6
+728432956F3A2816A18E961B346DDC72A23C55A92F8F3CD66B0234433570F88A4DC5EC39954408
+3671FB30791F330A89ADFBC9BF900A8A6A2B34DA74415ECA67AA64F71C72FF2D8C38183D83DA9C
+E2734899F5105690C5414BA2C8E2461B01BA8671BC23762CACDEE38309135CFAEC26606CB1A3A8
+C57A8686560AB0FD8728CF15B8CB8631FD5201EF8C146E5E623A96FA4C46794169DB0069316CD9
+FE9AC0CCE1EEC3CBBC5995FBDB5713244D45CD2BB8B613752B11D78DCC4C4860E583DD0609009C
+1180407725FF461106D38DE9AAA31694ABE3609792A274DF009EB1B6A26BED165AF16EF31CC2AB
+81DCEB391E358ADB3350C44016FE62E8E24093EC4F96DB1A567608768FB9F5D905E6E93CA7E525
+015086AE47B86ED1E9BCE519618E29E575D35BCC86CFAF55A3BC97B3E4A9F2032597E114F6DC37
+34E561E6328A679D15BC3FCEDB77FBC3B591FB00AEC53F1D5AF3405ECAC6AB5FF107190C786C58
+0E1AFF4F6A4CDF5008B3928C303CF2345F473B4F2884B7A47BE58C33DB853A60E7F4E82662CD0C
+C1F765A2C07F373A79C2E23962ADD4D8E382D88A1517F180632345B87186540F2C14A71EE12529
+704ADF4A63566B705701C5A70A9040BD71A74FA1641987B7B543EF0577FF76B4964CED0B33FF1E
+4EA9A7412D7C8ACCE0774069BCB69C1878A8ABF2E15F4C1098DBC7215D812B9E9860584E21568A
+A555C83C1F8D88517C4C11798EC3D9014E4B6097633E590A7986C604BC7F3A3FC77F2F5BDA178D
+72A60BD2259164877AAA4740002C741B458C882CD9BE11370ADC879230028EFB60C49D7020B4E9
+A3FC085A2CC1FF06434919442F83DC161EB9D305C5654919ADC8E4AFC70EFEE8D958CAD2E063F1
+BFCDD7E81BB014693D1AC4C85DAA9996BE10D62C8BDDB5CF76143D2CAD519A079F2F942240D304
+22927B867F6026625B58CF93657F4981EC7E56A771AA09A5D800A51F5AA1CF7336CC6EFFEA9310
+F41C214DD71CB8F73262892A2ECA58A12682294CEA304D13F06DDAC6B2082EC655F6B609884D29
+9FDA364C10B303242D6D8814633A0252542008ECAFB8C4E33B6A2CA752A5BFCD749C2DD8C3F4E2
+00A2DF6856E9C60784C6C8E11128ED8B569C4ECE2A881F35AE772FA912A0DD36A190FE93A4D1E5
+D7B3B7A483B8A6B492ECF2950EA60FC6A186EE781440215D2815484C809FE95C68E1CAC2165B35
+1062FE875D0EBFB8A0EE594DBEAA00AA5A6FB1D9EAF5EA72053B6874F0070FC55E6B725AABEA3A
+798DA02D83B329F741DE52842DC0AE88ABD9EB501F3C27CF774A5BF5260391CD2255CEAB7CD8A6
+013EB32ECD4911779608E9105597DF344FA1AB7D6D48007CD2542C09AE6559AAC5753A2C55EE34
+E60F4EBD3F9944B6F0FF3BFB23EB7F0AB987C5E43AD5CDE34DB19690372E6F062226FCEC37480C
+463F2A68778B1A0CA62B3B36F7EEE1CA5DA157450A36ADC254910F1FCC8E0B07686FDE5851ED54
+64384D567DF300E3C6A7055F0F660A10AAC5DC83611AFFF400F3C7DDE4C051B2F65EC785228DBB
+2CFE39580A7A004329F982006A7F7ACF0BE4972ADD9E9BEFE46070BDCBC17EDABBF51BF4F3FC66
+D423DFB9BC25A7F8F3A808240725BFE76C5A04731A94AB7B30F22EDB4DE3A1614CF335AE975154
+CCA71F0A946DBF7E6E77EAA47B0A029C595DBEB7AEEC924B1C8E24394A5648F92838A83B089602
+3B89686C0E27C6A03F96D7292128BBBE808B238D3A7D5221DB704AC862427EC3C5E2DFC2D0C8D5
+17923B2BF68215A518A73A7986AB5C8A1F6FC3CE276158F679FF5DF42592EBD30D208E43E75036
+06EAD4A5D34F92F315FD005B2ED4000096DEA6DC821040178C197C9B2A8140258E6082BB296DF6
+D23E7720D07DFD8FD92CF4FAA31DC8BFEE27CF4AD8F88BCA915173BAF3D97C0F88B09880682666
+BAF1FEBA3F9B9F536779BBB3A320524FFF8FC7A3DB515A52A71C5BAEE6669CCCDF066C56A2F421
+C3B9389AEAFADD980B67B6A66768F2EEA740CFB26B1C4C4CF76ACD3440B06CB2A081987E28D485
+CABBF28245029F196AB03A8AA25B25C5459245F44089B975752B21C355C637C5453D2616A86E02
+96FA0E32780BCF172DC482591142C1E8CD535E81A4E78C1EA4F08DD91FE25ED45CCCFC854ABA7A
+8D58A32A9A904C39B7D4C86729E7CA2E6F40B1524FBE5B9987F51C41A0ECEADCF2EFFE55997415
+3D17158249262C26B487780B68FA0D6DB7AE493D6F7552B25ED6AB044057D3326B311CD5520255
+3E3E94877516E51E85E43E4988F8CE24E50E7D45BBC94252C4C3C31F79C5E1CAD52F44CD9EA7C6
+4837850836959BA2316D16C3C2C65B966D17BEEA4F9D496D4112A4F8FC18564A803FF314A73038
+FC6B0110D9AF9A81B79CCFB941AA6F58C338331F52070C229C6DA54683CD115BC452266E75B9C4
+889CCF3FE006A9ADD933639EEEC1F4BDB661BDD7D7628FF71EE7DF89E2EE15CEEECBD62C654D24
+B85DCAD9DE021B063AE17C44A9E9A59B7462201C0B4B810DCFB22F0EC0F0CCDA94B5A7B8E6A7F1
+42493296D571C06DAA25B45E832956BDE6CD4FACEF81AAD0A160406AA2E98923E6189B748CF86D
+290372D8A27A054AAB2A68DA3B4B66E4657068AF14E11774EC5092F311CCA7FAE0F43D6E34F94C
+48F21570D4F6CDAAB269BDE27F26EE6876FDD0D32A1098FBEA9F2EC5357EC79C7B837D2752C9E5
+29734C699C97369229D3B2CFD746CBBDD6225D566008F39DE9BCAAB9359672A76217531FFC99E5
+99CBF243723B63BEED88C4CBDDC82461FCD2E72F41C204B7A84951702127FD44FF3640B6EC2845
+95BD25958D049D265314E6AC041B99A1C27CF4BD5B18D39FF948C8CF77028AAC0E0E6274D5F384
+2F966C6D374E3455CDD6DA17B3B1BDDAF283536599B73BDC5D3E65487001D87A29F1EF12164728
+9A0E1EFA01E6DD31E312300EFA75011F259CDED61B4C2A23A0178A33154A51035F37AAA4DED2E5
+AC2382CCC6E01620F1D4E9213165AA757084A7281ADB76C5A8ED35AD9ABB7AFC9FEF262B259A86
+745A984B0EBA446744639E4034232AEAA3E3567C2A7400D452B7BD66F7844A114C280BAE434C15
+FA5002E88AC093E5621DA4EB030B318D0DF1718BF5C12AA07421176CE9A505351813D861DC8C0D
+8D8126D1BD084DE7DF796F5A4CB5FDEB055EDF5DEE1D24BC967470DCAADBA990F5849C8BDCAEFD
+8931EB87FF6F20DED07C17607DB1A1DFF20E81067158CAC2ED889FF645C65CC11BCF6C8D4517B6
+1EBC49132AFCCAC38C26241F7CAEA714336C15913A50401D2E8DB548A9393CE05E7786DCC03E10
+D8275587100DC5E28701EEB32378A3F95B8B97D5DC62AAD185925E40A914EDE5DF31ACD9550CCA
+5F4B0EC8DD28054784296573FA721DC4034748BCAB8F3C6B362ABE3128CB8B3BDB3F8FA43E904C
+0159D0AD292A86775C0590BD02F08FE7503C8629B9897FF267955D2B68AC90C470726329F05DD7
+549B350478DB1D400D7D9CB1F97F15BEE7F450EEC2150B5222F8611EA2AF5419F0157E6EE7E224
+F7C6635A4AB6B29843FAD05D34744DEAB615E63B60A02CCF7F9F1AE66BBB3C95432E38F46AB48A
+59D90EB091ABC2EADC69624D2A4C9FDD3186BF3FC2668DAD5B1B3CF95D41C95451F0E52525077C
+AEAF54DDE7538AB080C0038EB005D764F0E73BBF5FCDC004147A5652B53A3368209C22B6416BA4
+225D803F4EDA10E4E09F1FD57D04E75BF40927A0E2D962441F0703C6B991CC2CD0B8BFE902E255
+5A132B7B6EE6630A274D854FBC4458615A7501B4DC76B70CAD3EEE085C0189B842FD238BD60EE8
+2E3520AAA7E72F40FBE61E773E523494AC8CD0477A52951453281E49F95B892D1A526DF6829C27
+A50AC15B87D980E511521CEDDC4CE04B6AD483423D42004E8D9A052CCDEDB7D7EE3881B6C02040
+CF3CFB1FA12D10B73C076732E41BD793615B2CABB3CC5ADF4C1A27984430C453C5DEEEC73CC60D
+69B63D1FF1227D2ABDC41C1C12BF589B16B8907636448C75D331C73539E5E3AC72A44851ED8818
+25B4D8E1C1E27FD29771F34210C153BDAB1BBCF90C40D6109C9806390F5DE097A064D5F9EEEA98
+D8EACC7BCC552ACB0929291DDA60C2985E53124D64A61A90A41C2D139E77F66552664DCDCC01F7
+201B16C0F4A05D4F015C8D77B52F7E37115B988C2CD96CD06B1A762778AE60A0A04AEA6BC01A3F
+113700E3C4204E479DB89AE43AEF82BA7357FE02E342403A3B854440D39635291E0F7394EA120F
+0FA9BE1AD225338237F31118DE454E5DD06FDBF6B037F4E504A6B520A6E56B2DFE522F477358A7
+998FEAC7016D09B5C884C0C40FA81749F76C5D477B2CD1D841D6AB75D4C5E4FB7B0E8CE3D47830
+8BAB4737D603AB7A93AC4D78CF6551DC96DCEF69A2CE79F0A0BD7CAC00580820E0C1A2C459B9A1
+CBC96C839D8E9ABB7A3A02AC70E93F46657D85A6E20E879A261B6E05F30BE51C6F77F8BA0A62E0
+EBE88A9484309C898938D71E43EAD8D502005C359E7E40A370079B9EAB66ED91A9566971EAC9C7
+C64A1881C9F1AD2809DC26BB2D4E2C3A30AAD707880CC0ED37EA68C563C196A1DEC3EFDBBA63A5
+33D66EE19904A0E23FA27D85076B11D855E2B054E0DB13E2CEA6D2D518F47D6EF3ABCCEC8F4C9A
+8AD6EA345CDF58F63DFBF82DBC31E0DA8B5CBDB9951EB779DB55ACD3580908DC8060691EF61783
+B17CFC12F2DED169D24DE6E1F9876B6975E125D09E1BD087A8F85427F06B2661EACE2DBFF00DDE
+CDC04CF9AEBC849492BF031ED833D90D8CB2153F959B528804CA555AFAF4E8D8755F58B7F016F1
+6E53B848A95C084E3C31CD19F0A0CC394D142618A37B49C130C1CB06E5293E1F18E822C2539DC2
+54C33E33A33C080E782129EFAB4F00D685B08964842FDF96DFF10A5834D22F05D2F270190EF5CB
+D0EB5B51B0FD0A10C94F5407650AD8A41A87494BD2BA0966F308A3088D9FDC0FFA3CC8191217F0
+212A32FCB6DF8E0846CC416B0F1848A150449B307D6B018EFD65485E23CBC699656AE124923633
+787F32639F522FEC39BD2BBD4A25D98628B94370E63605407216C27233E88F4F4758D418416F09
+94B9025DF2797236E42B6910058CE7C7DB3DA05EFF8B58873CDF16DBE69EB375CFD6AA548D1E6D
+44311A598D8C048B6781C8BFE342D43230AD6BCF0D99CEAB515E417F4F5683A8D37C98EE8E204D
+98B3B0B8DD4ABC4803E8F0CB3DD727E45E832D447380CAD44BE1D367F42D7098C3EF529A044F20
+BDA4263E41D435A405653DFB93260955514CD20BC210D389F2D4B9891F9C553BCC7304C9A1A0F3
+FE8AFFC96151A32F24FC812898F198BBDB699EE6B65C890760CA3B801E1CAB6D3B0059D3FD9817
+F3B78838FB278A49D9CE5EB207B694F15C9E01A93957282C6580147EBC522633957EABE31FC735
+86AAE6E235908920EA28984B6C16898B67BE1041E72D612352BFBC1AB627DB41592C91A814166A
+4485237EA53E378454459AE0C64BC3A8B1D3516AE984A1308B26E9F1E01EB94B34629F2959E617
+728A36EA2C39D997E675BC35FA27A1CBAF94EE3829BF8BEC1797B310A845CFDE7AE2736F9AA992
+A504F101053AF8894D44A998313CD42C32121AEA7E0946FD7808EEEE44BCC31FB9885DD0ABACEA
+2528029F2FDF2905F411EA0470F679BA724A6038CCC205FC6592DF6FCF855395274B49338DA782
+ABF3D896E12A459B5ADC4DC418805B4B4BCE727B8D8FFF0B0BE48B02AA275D9FC4D65F92FEBCFB
+0EA791B78C6973C0F82D5CBFB142A40A470114C281888BD8D3587F022E787519781D1FC501C3F4
+B506E0036B86CE604D52FFEF1F52E16F4FE251DD27BA466E03F82F857EF3C93B9A8995017052A6
+8B12717A803A81BB54C2F4A9981464BE58C35758920BF514B8CEEEF1A3E0B61002ABDCB2FC37D4
+EC8282AD45112F48DA9E2D5103A9CFFDDDB2016BD72FBE451444A085DAF0F3E9AD57A3FC968221
+AC6A334D33B4C517886C7C694734E86B2EB908AB8D985F1798ED35169CD21B21AB6D74A2593038
+DA588BA5D3A8404282FA7336D9EAC89AF900B8918409D10528BBC21A604148FBE0FBE3B5397EDC
+57C4E7D654C7C5B0E7DF231BD2F12A545FC34B8129362D44608FF2395F2446C42DC0BCAF38ACCD
+9106DE6F6BA995012A146D25942FA3FBA36EA962976FBD49FF19A4B3FBFE242548FF61DDBCD31B
+B724FD8AA40D418490A541F51A53D3260E525CAE5DA0810FC13C51E18A67760262105D57F114A0
+46D26D99712E00949F8846D14D6EC450C95BF95B5B91EBD73BA54B5FF6BD43BEE2775E693C070D
+78958EA0B3676DD52A06C816CAEF3E4422B211D1C3935D41541C584EB69D1185654261DD70A35F
+E70A5B22C97E09E01D1E2E41849D24842F1D543CD7271B120D09711CD69D12B2660FDF945F3694
+612785148D40A3A1E2DD895837AF319CFB89DFA6395078E184FDF3828BA1236C4EB8128915FE68
+D4C7A4F9D293B98E806E60D84B962459A9F2E84A407E471F6CC88E4E8D9E8D55284BF75787FF64
+8CD35B5F04712068C975F3DB130CCD2050EE3EA92DFD0AEC9D6DB582DDF851B0876A0B1D6F9731
+1BDC3D553A035EF4B3D3C8F42F65D3C971F64CE37B7BE64C3E58EDAC79AD1E7B82004FC87B73D0
+D3D6394AD0ABC0F60A228A5207C3424F938B5F95335317605BCB533375D5EDCB870672C12F21CC
+31ECF2FAD9AFC97ACF99E0FB50565BB9C8C3665AEC901657E28B1467D3B97F7592787EEF417EE4
+AABF77186AEF37AF935F67A18E1D2839134CCEDB3F8EDD458752DD7F98A58344113C579EC35F50
+2B9AC55C21CE938947587313E7CFF8BEC4F6B5F78922E9E4F3D6096BE9A143F7DD9D4822DDD10F
+AB79A44F2C52F93DEFDB85BC80C21F20AB8118F01169FAC6B628B8E21D9B19706A7C1F503FC626
+D0CC4DCE28ACA47DB45BF55C398E4ED97A300466733527B394F114254B9C81A4FDBC2E205DC4A9
+E54A6ADA3203E8FAC560B2339319D1DB7A2864DEAE71AE3EF79E8169EC6F012E0B736D19DB3C2E
+55AC0F166E0AE28E992278EAB90088100C7E1DF9F58FA8BA0803AAF6839AB82A9DEA6CE26C1B16
+4D20D6AEB4E8ACCAC7C5A337FD13425D7C0DD3D5BA062222AC07394BFDCD7CFF3254401B2731C8
+415F2C4CD0758DFD96BF6CD127222A92EF503A4FD596647F6677FA1738A0150EAF83E24390A120
+FF617D9CBA081FCD39F049CA5E9CC4B54DDBB546F4A229662F058C4C4687A943277B7F0D58137C
+2A285421D4908400577977FF997FFD34800F21318E049489065AC88169F57F7B766B4F9326BBBE
+F6CB887E3F6840131BB83B5A8464692A0A712348D00E112591D5B7648BA338D7E61F3D42D1B67B
+3D3902DEDB7C899734786D83BAF7D8EBD4EF0988DCD1880C8031E9D70020F54E6251F0EB4AD90C
+AD469B9CC4AB1FE31A6540A39FB2C56E06921B76B28022328FA9A7C4184833B557FE552035AB7F
+B8FEFE56984FDC692D83F0666EE536BA4545F00A66EE9CEA9C16B400DD5225DAB335A1D0562A62
+0C41B622D873A9F95330179DBC713233EBF4C30273EBE201ECD04CA9D5CE414A00F3C9FFB7B213
+590FA2403B7A471EBA218D885EF682C1E52C90A6554DE2C1949B9DBF55B393418F3B52B36E4E4A
+E3CED6C625347EDAEE6E80776641D68FA7E833BB6D5CCED5D17B9C45BF3BEED91627EF23CEADC5
+A7991F738C0025DC7D7B9A98E63A655CDC28B5967391B783A6C7BFF53F6F09CBAA63AF7C3A142F
+9B9106132C97A3019339AB229614586E72567EB37FCF2D289F9703A8F228725A4FEE68B4EF6652
+31CAF2C8E853729955CDC04736E48D3DEEA3CDE978E17049B2EBC2D7184737E46E2D58697A2DF3
+4B9EDEFB01BB465816355A2547092FCE455558D12B6D1EEC48B75C43319B868B0EDEB4125310E8
+A3D60BFC2612ADFF85D07FD8B99D466712A1C3A577CEDE5B9E8A8FE1E68CF24EE21F2CF5447387
+4DCD278B8E5AB2D7BFC0CB4A02612D33417F018EFD09FB64E7CFB08AAAE91BAC91244EC770EF48
+E216D570170DDC93132B0D9F69765CF35432B21022287845029D7A5E3839947A4EBB15A084A28A
+CF278428E0F895BC1815F7399FA43EF963878B8ED8C191C9F8DD52C52BBAC557297FB8B474E26B
+17C87C5C61981AA16695FCDB4DCE4EB40B637C565D824BA750317234B52B9B1AC9B396C39BF115
+6326E9A7F356D7EA3F5B29B23B711C0A4133A9D1A151AE53BE39C4D3A9D613D82D53E7E9371179
+74558F35F1731E049A73E770C0139C51359A557BC6A483C3BE86C6717B8CB1C1513F6E3ED34D42
+E4C62D9FBDF1BB12BEDFA63AC6F20FA210DFB8460A9D58F3F0C6A9964E66B775E3AF9AB571F32D
+DD7AE1B8F62F15B84ABDA55052A30EE5C6ACA62DE7799836D08A131A6D7F2884494F5CD35FAD31
+033890F0FAA23E48ACF4347B379D1A5E01554E780636CE22128585081636CF56A420AA38816231
+D499D240C1602E37BC2BDE4919045D347932126AB10B2162CB8586158E368E84AAC965F994A398
+0F6760829FCF2F2B54D86763BAD0BA1E4AC948CE456AA70710BE57E9E755D67ADD8933B2B588F3
+D596AD68E617EA997167F29E37673E9AE6657895DAFB66F29469629CC024C6EF42CE5CE07CF398
+ADA05722A285C7F8EC0CF6D0C3A88DE0058D0FD2FAA95CF3669263FA214FF41DF5B511DD46957C
+3378D7598E4DC3543333710DDD3F8079AE3CB210358F29604092D86EE4E74F5533E94D9DB09927
+14316CED7905C97F09C8BE323921A6E403B667958B08CE56907E104BC05FE7DB62BA98518E56DB
+3AC152A8CBBACC9BF1335ED09288C3F518AF6D34D928818EDC8A494351ADB0FD94320010BFCEFD
+3B2099F673ED9D1C7BF34A4D0507701578C285EA0671B9AC55138D7AA96270B47D01ABFB3068C1
+4BBC596AB337BB55F1C06B79EDC5DDB937A3D03D3C324E0760DED6424A64EA1BBDC9D7134C5106
+7FFF18950D3AEDA35986877943754239464CA48E634DA93EA39E62D4C2AD5BBEE483423B44224D
+891F7A65B4C1426035EC83EAA68AFE9DAE86D39CDC692E3628FAB02F89B410A68418BFAEE281BC
+C9075B51DE9020236E382BA845B149A6408C9F6134F323DF8CA9FE43737C49F737410C5196F7EF
+1F4E86A34328A649874EE1810B0CFF07290CA6975EEDFDE48C5319BA56079344E9E5E98DBEE132
+7F902352A3312AAE0B946F43CA64BCDE25CBECA653DAADD270A7B65A47610B3239244F3AA479D8
+0FBDAFE0F68D1D17035935B4FEF0138AC7B41DA297B47CB08994A9AE496023B4C5304E7A433343
+A3E475A546CCACA86BEBCEB40D58E3856CA1B94F3D9441C728E8DEEF7BBEB1E57F18790FA2BD83
+6F1EFA47805A9DA9EB00809480E90B8967E658D60709254EDBF59BE03230277422EBF9F4494F61
+87B818BAA088B1DF16EE5C4BBA9077AB2FFF8B56E295C5B922C5D1A57660FF0C538126B3CFE1CC
+EAA20D82A4C26CA7CC9EBDDDED4C44845AA0BADF7673F0BFC24283618D54DFB53C52982893F3BF
+C44C36380B2519BA632D66F463589FB4C42F5D2782A945A2AF5D4F2E86D30539A9E009EEE57060
+5466C67B9D30BF27F85D9EF4A9857313BDCF2D66BD58B0BEA619AA39022DF45F05332DE6CD099D
+09043A1EE2709736E360B7B0F5B8DCE3B60680F4C55BF5600B4DF5682B41CAB84AF64F4D1088D1
+BB62F900DEAADD4938DFAD2A5BD2BCBB687327A2865355924EAF5F10E5A68CA2349D12641018BA
+95C8883B6F5DC05C936C5A47A0CCA84BDF47145436FA8EF65C5FE880275577A42DF1969D5F96CF
+762593F2491479243F8B10C316766A73BC898FAC5D40F9980A266AEAEB1AAF1F9C56BAA55C3F4B
+39CA2E82C61598EF600E50BA612B7EEE4BFD531628FA62519C55890C08C07D2297A9DAFD01AFA9
+DFBAFFE0C4D46CF5F56D19FABF0E59EDC99DCD0588DE8C547A57F7118E1D3E4F582BD6C9B30CEE
+ADB7F7A904B4C9BC32CAE0632452420FF9F5EEEE29CF862F4840663BAF546D5C9893E7F68967BB
+3EA4E475B8B7CAC5E0EF38E5A445A016BD26BD0069DAC04DD55501C7D775282E149535A1F52507
+F8ACD00D2F3901FFC033EE09ABFACE00715D68B8E3C8DAC30B4F867956D5947EB338673C814BB8
+F4854D8058AF60B56CBD4305F52BE437A60B69AC5CB74C068ADE65F5BC4A71379767FA900E5279
+EDFE83623F79215845478AE8B01D86BC5365D72BEDCA517693EBAAB9B979856EDEDE801F60B9AA
+A6C1877CFA5D6450C910C4FEBA29F00C65C61E95919EFE072838236DDDC4DF3BB02B7D897BEFF0
+B8568B4DD79176270B98889352D548E9CA281D2B40E303FC3323954AA6619E74E7A19B9A846BE0
+2676430504A8F5CECD32108AF97AE80EFAA01AF2E2154413297968A8C96DD7367C5A7BA6AE3F92
+A80B3A69D1EDDC57E7ECB9FAD0004010C4DE74019B1CEB8D884C9BC8614B0C351F57DBF90ED6C8
+E833FBB79D67D8C541C4A0B5CA28A012BC55CED14D0876C3A0A6824547706D270C53AE87BE6B6F
+F435E2C830609341E116FBE76AB1889D5B08C08818E73DF97A22E8B04821977D19AD825601C7E1
+9BE8E3CE3623DF0C94827F217997F79A661D0E4FA551FD71CE2819AC1C06C380B9038987A58EF5
+7B9ABED74B2C0539DBD1862DD0BB81DE60F693464277AD9450A2ADFADF442A5159CC231E2AAE86
+F7AFD97316270D0816B6A2E402BC750F0B0F5BD8D0482ABFADCA7D5ED7671E8A5A2509DFCAAD1D
+A09D1C68C9B7785692E9DD04508434FF479C8C837E388C8A23EED248BE730A06AF790040E3948B
+45E6B2D3E8BF11A8C4017F325E086589A01DE60D6EDF9D4953DA1B259596737046E1A3C9E67F31
+30FC48E2EB938FEBE7BAA95F4D53CE816E3F72CC01BC118DD4BFC68E319A3E9FBE688F577EDD46
+4851251DDA07A30482B66A7A58E2268FBD7DC1D8C4405274FC819886C77812E74FBF3729F3DB6E
+1D7FAC286404CD5BC0648BE55E2D6F2D6DCD60AEA029AF4B84E4DE9A36F48ED9BE37E4ED107870
+FD61CBCB60551E3075591A5A6361F70F90B50A8E8E314E7660BBDB757A5CE6A69FED05A3F7F2B6
+8A41BCBFA2C2641B6C90F5219D95A2EBFCBC228BEF5816A4D2DBF7B9BAE803C2B963D73382FE03
+7C3433B7274B8E1710E0D17637B0C1927BE575D2000456724670880A94141037AA9726402CE6E7
+2945D45AD90DEB914C1A974AAC28F296494AFF533CC323CD32DB99C11C94F9E32CBAABB3796C76
+A144D1C07DF7BB6D6BBAEE980AE11D6F034FD4A67236B9A3F67603CFDBCA7AD528AA8FD98753EA
+890C42D2F696F080E869AC72859A5EFBB4B93C9E1631B8B13DC65BB14A4C2D1099D662652E5390
+E4E58C95B76E530201553BB200C72FC69E5FAB3EA862DB632A5E1272476CEA8483E8319AEA9795
+7271DA3FD947B0099BCD505DD0756D887F81F93A890E21FA978C71BE0942542E729F593BBFCE30
+DCE9151B4B039D19D14EFA6552210149CD8FA0DA535A189C23DAB06F9C54C4A8D3A719ADE2C04C
+C95CA5D14C438B9E577E8980331ED59B1DB2265CE1C481343DC2600E42072065129A9409FF1808
+F9E7A222A20F9A5E1DF4BFFC5DD396A34F79B22AD2605088FE2F52F35DFA5662044AEB675CC9B8
+230B7E836BED9ACF72FCD4CA71DD38C0664D88A870A6B67CCBC02C2F14A07A2B5CE7CC00E350A7
+B2D984CFBFA6F0A85B3EFC3CB4DB5D61A0ED513F4EAFC6B647460B2316FBF99237DD866D7026A2
+030FE810EB1AF4DD0E713F53C6EA4A4B59931D7DD284A0D48C46B87B168A3479E07BEE1ADCB134
+0AC9C84D527DF8761CC77CF5B44A644187A341AB9A7450E63FB4CF0BF068E33885E47F8906E0BB
+F8A971992F99E1BF0208FA983F43F6152D45611D05A0806EBDD6301D46C7395A4448BB1B745129
+7E36E9038CF6475B915926948E58280F3CC640460DA269E49C4F4D5AEF09251F15C8C227DA1E57
+E1B75E29C5AD1E7B414D6CC4D2D2802FB3387C2DBFF5FB5B3716325477A225D6CD67C58C8712F7
+FB966122402CDA4638EFF9DDF27CE4B22C2F08E27D0B15A4A9CD0E5048EB97F7A7BBD01BAA73A0
+93A4CD89F6A9BF0D49C12FAC14DDFD3BEAD0C5293F0764421292CB3961A14BDA0F74D9881900A9
+3E658C582CC0C06E416F4D73B30C47DFD2782F02EF5C95B5C647D33B92CCDB48439E97DECDB043
+1931F6881C49EC1FC628A0B1F21DA267A5E2BB701AC4E6620A8F3CF81E8CF30047423C0AE11C93
+9D076FBDB6D490BC6D1F4F5D80315BCBA2F7334DD71B804F27AFA39FF16897F3001F84D510C295
+B37E61CBCD5F41EC0AEE3B35994EF80A5D2832CA3A31EFF10D915F85C4C2A11762F405511016B7
+DD15CFF82B71A8D9C53888519E3772988A9810C59CC24972BE8E71955F094990D92A5AFF533CD7
+083C2822755E6D6CA965DA2544DE3DA478D5C16C0B516F4A73EE2EC2A9D30415AC0928F1C11E2B
+75F20151FD4D0DD368B8BD127AFA1702DBB4B88E83B52DBE959CFE1A666C5D4869581B73FE43F9
+D948278507E12B6ADF82B4604081718445D16A876D6A52B50845592153F897E22C523D176F4C49
+9BC6760BB32641AB6EEBB37CF1CC57B83816509259952B395D762FDF2A9210E7A7034E1352CE81
+B49EA3A6F778EE4460DDDF4695F671D6496B6FADB1E4448BE66843EB91274580A0A52255D1058F
+A5D79CDABAF32907871F3D93A23371285BFAD140F309B357C9FD73BF54565A055F5E4D3C25A378
+A5574C9203AB93FB4F5E0B556D7685D05AEE0A165811EE0FE7C12A74709549DABE4666BE296472
+3B33EBD5B925E93C6BF1E37A3548E8C3D976BFD8507535D5AD1698E59CDC281AD157B41F4C1391
+C3182D15A281CBF993A469961EBF4C449370B37E00C3E1CF216F81F05CBE1BF2C8EC92F40F5F16
+C35C7D0EA6BD5DA25E0411D9BCF2C5D7A8323EEF3E3B54FCC76A2526476A1F59790FB7EDEEB4AE
+9CBB682D3919FDB70CE240568F89A6033CD11D8B83C5E26278D5FD339F02AEDA0D7F020CC45D4B
+BC2D235CC736799E2FE94C4AF957B281A8DEF2E944165A4F80079A143FF713BFEF95A7DC402A54
+C61DFE618C8084EFAC0914FF1B710929D1C7C9FD1FA22F5E58B4BA20DB0BE4B7BAB35177E4D54A
+F789E460F45141A00606A771D1794A62792F079AF7B0CDFD3F1B75D2FD04A59C487E55C87C3C15
+99EEDB6F1465A53B041C5D4D9705B5046B8F6654AE45EDEF041F681B85D75235A58B9A889F070F
+90CCA51F0750285E6C9A9AD80B1832EAA0215FA7161527C71C274F0115F1BA45B0AAD2146233C5
+0F5129B7A2B400215B5DB7DDB6B609F423F5741D66B5DABA3338A57AB0DF617D14FA465C107285
+6978D54A1DF67BFE2A9DFF2A45EE273BB39B8B7B71AEBD1FB46C17A1291BDA66611A85E4F28FA3
+56745BA0A69A25BEF8AB4CB133A9B411C78570CB33FAB6C68C61EAC2DDC51A9B84D906F02150B7
+568915548E292E371145AB1778971607E5380275841DAF46F45D0AAED09C080C1C6E66A6C3C470
+FD7C9CD27970B9069489F0DE6FB862551F1B9ED36507305D786AFAF3E7778825ED63728317E7A4
+05F7B7980A38E4190F443911247EB33CDD5DE9AB53F283077C4DCE339626FE22E44D147AD65371
+62EC884DE142C467BFAF52CAF9C0ED69352FB71A3EE40FFDBB3D8DB44D257FEEFAE23F51A9A2E0
+5464A6DEEE4FA26927A4E2186AD8392FDBD2ADE934914FC23408D45F356E71D1BEE3A70C86D01D
+594FE207A94578FA00422CBEC223BA871050985FE15653A1CC54CD79F508B799DBE191E77A4931
+1B3775924F3EE2122BC3CA211B87A65319334A931B8E969E1E062A54026F1E4C445634E2B91201
+08C5B651223233F227EF4171D7E8D3C2A0315B4BBCB64281292DBC737BA0E2FD3B367091C8D5A7
+9036F4207AD96600D7FD38959BA2E49F24A555EA2EDD329D521C2F8248C04157A51D857C17FC97
+33F5A0B75C92CD91B00F3B64C1EAA23157772A08B170385D84DD9145BB761CFEA016DFF415618B
+C62F3743DABCF9606E16E7A716953A1C723981C6B7CD6F09D13C783B2DE73762704AF97B475014
+2F4B810125DAF80229C53E67D421EB3A75BD0C4EECC71493E84B67B64D68925B3743080E382772
+EA2AB0645CBF2B278FD325FAC30FDC335BB1093D6D87EE6B920E96E794EEFAE5E00B44F4B6998F
+D6C202840341316F6BA08FB644B7B7F5AA8A02EEEBF84396FC35DACA77C6E44CCA675493EB0C99
+5502FA80A04BEF356AD4A5B5AAE3A350E635E1EDE581698F5176CB6F06F67BD79953F2CEA5C8F6
+E7EC71560D9C03538BFF431E0D8DE4BE3548BEE8F1DEF8059BACCA663C2F53285A5E5E6D124433
+1F6BF9A152489331A894F1EBDA9E21B3DB090EB8FF6E12C89505CBADEC8F8E068D8DE3457AC152
+50DF9646438FB514F8CDD9E1BAED0AA5D1583D4F50E0D879601B0E3675017CECAFC45C17C6E1EF
+C8CB462AED82A0AAE520EA4A9A819B223B6C1234F64F0805DF709B970B7E8D4CDB31854C48C1CC
+ED44429F449B759FEC3EE7DF3545119EC993ED5D5920F803455044642A55493B23E139E5B66B6E
+BF60706A41DE78350A95D2CE7DA88FF6D425E6EAB5DE23D2289167E0FC366E82962EF2CD153C6D
+C56F41D88A949AD1E7963C014C40F4BFB4943223CAF81A6333B1179FE1EBEB47F41A2A7B9C3E51
+6E75DA77E9D6ABD144CC4645CCE6287A49D1235D7A15BB09C2BDEDC471431C09FBE9BB14A0F329
+E3F96EC5F5D4DE39480B419EB4CB22E6CED15FE724B35AF2393F54CF08FDFFAB69907B97903A3D
+028840A4D375438264DCC42BEDC0F18BD8AB86896B810BEB9712DD7D42E8F0D51736F1EF352D26
+F874953D41CA70624EBFBBC454228E9E4FBDE6E480530873993E77184C7B280C0F119E28625199
+339CDA289E78E09C34596EF95AEAEDADEAF99082167C5E1E699026E2F0055A57174C115B2D8E9D
+8C62ED03E3F47908BD19032127FD9621BAF8D99B25430A853D10EEFF0432AE96BDC0DE51062B79
+11ACF8F6DCFDA6A5FF01E56469649A6643051B2D9AEDB4F757812BB577C62BB045AA5AFDAD53CA
+8526D9D98B8A3526841C340D7649532108AA0D7A917FFEC15CA6636E8E13F33006177154C4335F
+D647EAD1C78F480D2A50F8CC7934DDC69FA063C65557245692BE8B142630017B022CB0656E5355
+5994276C376A7E74A6BD20A736D5C25D566972A6105C59E4353C92DBF81E4FE8A014555DD37049
+F173E444322779467B2DBAE754F1D8313272A5416A248AB1AD08D72EC5A4E43E19CCFED92A82A9
+6EC4E12868A5B915CFE1231C6C2259941CA6157611A2BAED7E20BDE0B0A28A1A90CF91FC639FA0
+F85DFB9CE71293365D19A18BFDD86D25501C22ED56DA5FBEF9269FF8DE3A1A2AE537FAFA64A12C
+174AD7CC360FC98225E41A8261C39A95B5A070588687051D52198EED9EEAE6BD7C4AAA06E9FDB2
+D90EE76A5CA0A9D72B2F5816687453BFE2D91E72293DBE064338B8E2CB25E3CBF3EFBD29D7BA3F
+86B8CE4C15F04C20B3BA262D4707BB40735C7754400C056F84614416EBD172A7294F42E0008A81
+0C688741EE213C8A1821CA6C204F27D0E7F8F754AAEE756A7F720AF7F674C2C24248CA46DB0969
+905F74267398335BEECB028FE7EC8F814472454D30647A9A0195F1E3FC113CCAFAB4D75FFF83E8
+3B651682DC813BA4C388245B11B08EFA714AA77EEB58D908B0B7F182EBD918BE523B9379C410A6
+780C7D8FEF5166D09433A9AA5F4894A7ABB985833FD9E0489FA812C42CB2F9B866C2FE719884B0
+04442B2EA4D485A313188BC1DB81FE00F24215BC01B6FC333AED155526656C79DD1C63360449FD
+229C0F218407788B3A9D71EC318A4B2316D848AEB7999AF6E397E7C53D80515B075F45B1D4D561
+C6438744F5E73C591B0F2AD46F63FD79AC31339309A5A6E1B7682D0FD26BFBF9A545D42C10A785
+09C3D63048544E95B7CBA82AE0944CA20CF9B8D28FC11CF6E39C3B144D465EBDE9D2A29B9D150E
+08BBEBADBA559FAD8AFCB98AAA9402DD64B1B9B99DAB134D9CD63FBB3154933AC2D973C91C0539
+38EF8ADF3FEEDFAE6C59014850831420141F9E90EEBD2AA500CBB3DE2C8BCA9A52BB9961C67C21
+2013AE95E108FE93D7D51563E315EAE352636D3296B483BB5F61A0FD0A5B64C09139803DC9C5CC
+F7CDDAEACC4876CF13578095DA0148E8DD1928984AE1475690EB4E8D6CF455E647F9844347B00F
+52C080B949C9DE164DD7526F9936437BC43B50CBFDE72A06ED9A88180C21E2477FE1EE14578341
+F05D3374B20C019E212DB4D4128331F212AF03F53FA18E99F5826FD003FF028F54848F8D044F98
+883B6194904E09C80A281BCFF7B9EB869D4E8196C5E3DD44C4076D45B142A3953FD7B8F2146E63
+76C48227D557630700F0E9641DE2B591C27E872323215B1D49E6EC58DBBD921616158BEB03B82F
+B3AE0259F7D7F0AAB6C78493559AD1B101BD8031CAEF522DDB975F705664A5F44990629EF7C7B3
+5FFD9E621DB48EE0611EA907A264B63238C2F4D8A6201F30C2B1ECA4698270A8F9832280D7DBFB
+B88AE46DCF182060725AA44B00D30048F7A43AB53C2052420BFE51401FE807234BE5848E4E05A7
+02EBC2C0018ABB7793206BDD78EA7DF8A9A7AB1E865E8348A2B407AB913002334E91E2DDEF495A
+1095188397D8E564E842F926A3C15E530889B6524462A57886DF74AB4056E9BF59DA6C8B06DFE0
+22F3468946C919184BEC2B309D9EA1E8965A2EF19640C143EF5EB40DC0BE1FA313883064A4FEAA
+D879B7B2A7781609B2C964C2BD28C883EF1F8035DFF83F749C76ED1D99E8339F0AB77333F6E9B7
+945860FDC1D3DF95FB45AD0D5BB67A226473AB95853BD839B51B645A7CD84D67FE3E0E13DEC8DA
+D4F117AE9043EA6309039D8DA61A5A8A1FE724112277054ABCD652510DB3B8D80273B3C1A12FC1
+ED9329D5E5EA3086E97BFCF8440FC81F8595E3E41E1915847D87F7CD12B5C6E1B5C000B59E88CC
+8B03021182C59F567798FF7915C1EED99D4AEADE1F646244E89C2039D6AEFD14FBFDEC7A20DB79
+742212C7EBA7AEC6CC23B86D5EEB969A402D4DFF70D0C3CC4567E6231E3C78D90B9CD408624244
+873B8A599639C5497E66F03172D143E553154D6AE62A79FB43F410B174AFD1154FF4893FA2A3C5
+E722542E995D987A63C094231EE2DDA59AC743454891507227DE9F9581CAE34D7D2C7D431CECAA
+0D01DA3A4AD12F251752DF537AC8F20B8C7758C8CF4E7688B7FA4686164358DF73964DC7062A65
+AC515F1A66A9A2C911679E193BC8EE78A2A9DDD0002CE6FF050DB674A0704B4CC04F9E04DC3060
+E5461C5EF9AC5391AC350F978F1E53975C7758B84D6B90799526611A03325BB8985E30D212EB4D
+BAFF460ADA1BF03899A885F6BDC841A518BD134E6D60AD804E786057A2AD9761F90BCCD31792C9
+71F52DE1031325BC116FC098A3718ABFFBB5958AC64AFEA7B91B5D5CBE4BC95D1D96B694CCD8D5
+ACABA746F2AE8C20861E4CEE122514EA537CE42196B130C30A372424FFB38EB57421B9B57CCFBA
+E1F48BF3D35AC704C01DDEB9983A97C7050FD9DB62293111F390275AC8D889ED6039B6A7BC1C04
+D99852B76D2AF35A6DC781A5BF8C75686BCC21E80DACDD1A6E69E61F19986F1A4B7C428FDA9829
+BF36D0BB5F39D7968B024BFDBDF8CA812A8CA9C4B8C5799E8CEEC594DD846108CA83C1546A1B7D
+BE3E0C51980044860ACD9F846448AEEF9ED39376A6C2163B72CDD28F0B8F670587BD9484F2BF7D
+72530805F1D6452EF98D4A78AF3938727E0BF27B8293C92362544FD5946BC91FCC667D5DB98607
+BF3B44457CE0CDEA7C3C0C1E50C2C382015147B8F49994A02BFD1562FD014341F457D84C1776B3
+8D42070431C4F221768B3C9CD7DFD4D0941E7BB60DE99B8EC2B87229EC3B548F825635B8364322
+B9E3F76ADC67DE0EB2AB51687783813AE9EC715C914A95854136E2D623203FA5BEF699B83CD0B4
+88945194BA0378175A089F8EA340C968A6DFCF5F6824BC81E1B3CD76661A2BA8D9DEE9906B1417
+4AA0BF26B03FC4F46FB3A35735232891BBE15D989C1741B60ECF19D672CECB711324C27D897FF0
+2CEBC53171B645542634EF5399EC93566F502B25535C49200978C312396B8A12452301C32355BC
+806FB656CD4B4E1BE21FB22F54C022D30F821F881AB02CBDE35143F089EE2A97015C75E04FEDA5
+220CF2A1CBF13FE5C64C02698AE6DD30F2E224EB98E8CD7E6CAC85EFA9F3527CEFBE523B9379C3
+F6C0E1A67812D375CC1F0438F0BBB81DDA6062F68964DFF1D7B0335DD2B90F38724851018DB989
+E89CBC620584C657359BAFFE711321F277F6047F26FDBA32F591BA2666C86B70BA39F770B4DD14
+AE1B3291537EF4D60EA6D0F15C52B625772837B0D3DBE7F95B739FE759F31D823486F0118AD7C3
+E5C0832CE0A4A42DE584541BA178FFD5A16D80F81579C14EF199DF223E4057A34A52577008EDED
+8D228F0EDBA010F4229D37E951FE13A017362002F200DFBFCDD7F0C0315AC23D4B983C36693F07
+4E78A768E9FC14BE15766308234F26A2EF0374F758EE3676C357269A4880CD2AD6CE31F6383D4F
+F7600EAA4194F10AA3BCCAB352BB4FDA863E546C95DA911F47534F3C07FC75A59037D4FBF1F15E
+77B38C8D8E3187D2C24798585A490B7AC9A1C879CF02ACBB5527D45F5710DD5FAC757A9B636912
+E2915013E57CC627ACB1057061DF007888FE84C209DAA450405FB2BBE3F7EDD4DAFAF7B6013273
+BB3330EE079B285A63156621B30736F09B50C69E4BF6F8A17536C8C2F003D5D4B9E11AC60CAA0A
+6F9972D0B2C45688950C6183037C536BB5F78DD5F63AAEFBE4687642441899EDC448DE481522FF
+D5C0FD867CEF8578A3DFD3BABFD13322BB13AA1A6E2799414FE1804316F24EBE68124E4C1D750F
+43A2AA7E738666987A20F161AEC226BAE6CC69AFCF25B86E6B2FB5403E2E2A35DED5AF4654FD5E
+6A5C4A6539B7DE5E5E9D2A1DCB6BB153F6EFC93642AF5BFCFF24C821CA4BEEBED5367999A770B9
+5F56435635B2CA08614E0D56CD63818978E3BE88B9B7C3E73B0B91C6943B82E3E06B2888A6E243
+4D9A7DE919F34DC46BE5889C3C34E5109C42316531384AC3F6751CD78F3566B4AA72BC09DE7039
+1DDF704638D85F1DC0B5E6FE9B61A2A131AE5E960BA167E46613343B22A280E213B7BA7F020534
+93D4BB6EF8C6B9207BFC417D4F94761425A4C8A1A5F78C1184B3872F220F1402038FAB18046210
+FDE94DE175C921C9029380963288AE680A0CA8F4565D15B927FA7DF6E968141131C7297CA1CF34
+9603A84F11BD4D5DD1E71EB72B4F975993E6D4CF5F54FC1FD3FE667F1BFFD085E5F20EBF389EA2
+D619FE65CC2CCB6FBC43567F47386A65EDA1A1C1C6E9758A6879A185470D3AEF95317498CCD576
+00ECF7880BF1BD83B2EB150C61A7689702ED0B4802ACC2BDEC7BCB12E1D246C0C208C0FF24BD83
+B3B7F1933689ACF4764A258263F0EBCE6E88DC0038A3C0A78B26FEF84CCF39E2E034C72FA4F7BA
+3067B32729A2D4B2A1E342E4A30EC214C72B983D5FE55C60C8B9F4F36CF6C178120536E62CD1EE
+6E7F79C6F7EABD5E0135A1277F17C9E263F50E992D32EB92143FD51F8060AC1A02C8D2C7AD790D
+F3B0CBFBC61FAB7C118BBE6AEB55550E49686EEA133FFCD3EDF7F1DF36FF8C32B84796B08E76FE
+C092509B7561703F75C26307D5F662699CB284A9EDF96C03C3D82C05730C3D8F450553445D7BBE
+BD25E887DA0BED0597EC73A42EFB4A8847A135D7C1796DCB28DFA21C23917BCCC7E678AC7A867E
+AA45AF963468F8FF209B824F947569D035EEC7429866F2D73F2D092307174F0EB20F683077849D
+A4F062DD441A10D00BB13C69DD08BA988F68544DA6A774CC7634E2F57355304D597142311978FA
+609280A79EE12014BBA5D4AB2DE690422A7DB0F2FF3F15E0EA60CE62F33F413773DB2F23E52DFA
+F184AD26EF0315B1F5247E315DFFBC606DAC09E6801CECCB6CC4600F37678EAE5166B4B7EFF342
+B4C233D67B909DA1990E3BF1FCC76EEA2BB089AE0DC381D049B382DC58419B1A8F942055AB7891
+2D7BC346CA4460BA843C8655E1A010A03C853A9B90E8B004CB0C9FCB6C3467F7F351A9AC68EAC2
+A1F4825C2AC4B90F49B8D6FF03B1BAE515CF3C06F54CEBD46F365BD5DEE9342851F3949B4AD9E7
+0FF5D13F1467AFCC171F051DFAAB8934022BA2AD0B9298C245B6AAB2AB67913D95EF7E2AFB2082
+031B6B372BE4C5F73FA26B16189BCED26AEA74DF1F35A8A5011FA02D8CF7F2007EBF8F66303392
+1CB2B33536594F296632A7744AFB4109255671755D35D7AC950DE4ED65FF6F506FEF0441774FE3
+8D3F3DA33DB035526A3B6D5D6842366F954F2E655A2243DB4E6E59198996486DB0B42A677C8C69
+47A884FDDC1B93B5A92BE1C006A17139C45485F3865571F420F8628CF47DBEC47DEBEB6AEF3F2D
+CE9709FD9E20E930592881E4322854E38B39B7693300293869403D20F32ECACF06BF0B169AB8D7
+328C618DB64FA68BB2FF0BBA60196D9E8A1198DB0835C43B2A8695C8FE9F5D0F11CAE814A57E30
+C6B6297029E471DE8A0173B051A41407EA7DB59382B735AB433FF78BC5AC60FAE395889C96EEC9
+F64D418CE460F9562D025B40A0267BB257374EF76FA05A5754E737EE783E17043B2468E09B3211
+E501FA42AE659556FD98ACF8692D900E2C826473702E4F91C1F528411A34DB6B594C1EE90D747F
+24E7AED10D4FE463089FE7FBFAF8643FA86B5616ADC78FF1271D47B8C157B001688C5ADD277DE8
+C6BC936650F1AB603B45ABB435D37FC3EBA6976F16982701C4BE9B13544FC3F7C7043564C470E1
+D36B4787635A5F57F8C09263E0C402771407854FE81CF8A0E1DA31A58F073AB0E209B69CD0AC9A
+062595C94B4E15E94C106CA20B2E95CF93119FB18BB61A7215A7124B86939864271FB2199C08C9
+5B3239013C0C6F1AE03E87EE0D8D2E9869994C68DB35BE7DBCFDED23AD60CF5A04B7D28C8044EF
+C46B99BF0A577FDBA908EDD70540952CA3291FAB3C7CFA544C28040BFD1B6C904B5A87907F1406
+08CA4214E543DE95CC604A6E49AA418B3B58B670AC62CAB0A7669983F2D97D0F508DBAAC6CDE0A
+0B8657F5544474FEB3BCB9A282905E4EDA677DD494711BFBC48027B155A7437A5190CC8420FDD3
+DA4430CCF2C87E89D71AA64F647F81F298CE66CB1B4DA199BF258EBAA7D27D68EDEB6229BB539A
+10DC92FFEBECF0A01FEDB682FDB79FB0FEE6E519D245C0CEA8E4269C4CE45E3EEC498A42D363F3
+9C6FD3036D0D53585A1D4E7227FD6EFCF7B4C94B431C16AA26DEC9DC7CDC0DC500856D6F65A65F
+FCFDA676910B8D952174263AAF54AE0446D57D8826062152637D04CF90757489BA59AC487285CE
+9DE66E923B26279EDA3B89D83A1B1FD9ABE060F8EAF1778D4C328CB0917B1F1FD1116E6509CF09
+CC20F41669FF78FDD3DB88AEDFC31E3C30A912EDD7D17EA3E9BFB595BB7A76319BA8558FC14581
+CBF31471AE69BADBA31C58D57CE051C9F9618E14AC6F0A8DFBA47248B53DE982FECF91C647CF69
+77957297673BC28E2E0E583BFF6D1063AED9A01E45FF73B790755EAF8654DF7DF5A63CC82F0EB6
+1D2A71F279E771C7417DAEEA527A90CB1DF2B9C72310DD76F2C19524629B4D4A4CA3980D9EBD3A
+75A2DA22D837A2FD36F9B0192122B9498354D76264C6270F66076CE3EDD313100D0B8BFD3193EC
+1C2196A1244854111AB83EDA4E362E1C8C3E62FD78716A821B7FE1110BBF0599857DC6CE96A075
+F0E70FEB9CC53D7FCBB42A1962F21668ADEF5C062744849752D8692844DB8D52DF602B84324F98
+651A8CDD277C8EDF82B41CDE0C5075C173EC71A37EE167F2467C0DEF17B5A16E28FC1B1B78FBD7
+B3AA6F5EBF64C49B2EF5EA9712EB3EB121FFE86AF9169556C02E5487EE59A4ED2E4A4C19712540
+195E3955E449C874BF520515B01749B033D76617D6633A6A03F6FE140A1985B081B39E3173EC40
+34FAC0B1788456390ED60CAD817B08810FAAA1444364046AB43CB84D021964BA1409CA60BBAB06
+5404DF35B6CCA0845DF8CA51F968CBF94141546AFFAC009D0DCE4441E151482F9F3101C06F1641
+24A8188513C07B07FA4133D7F04CE401291DA8F9729290A51DFD807D65249A4B4E314C7167E917
+7D3BA99D21FBA6D6B1A31AD24167E59B58A05D241C9FC1F3DD5B929CB5C48389A4D650255E808B
+6F5418333A1813EE944408A524C49DF1170224400DA6092B1BA1A7FD45EF71E1146410AB535384
+447931B28A3D64C726AAC1B877157FF26529CC043877FBBCA0A5E2FF3D0592E22A798BE23FF7B1
+C7A8E8AE21A3EA3D791D2EAE4BEA552BE1FB000B8E8FAD6D1095D4A1F884447CF51E0780DB3B93
+E32F462FE5BC689F23D1447C841A05423FA0F340C9A674978F528B32E1CE6512B5784CF6D5AE90
+0437503A7E6222311966C8078DE6C736A48D9A009B0F2B7D594F87BFCF0B5A361A5FDF8E318ED6
+B3A515C537342221AFA46FAEF95565ADBE6D9708EA5862CABCC4178936C3A6959FD7DF67018761
+04F63CC7BF6A41E79B1A454B378AD4E2BFB4269DE0D0805F114196BC6BB7C6205191F3509F9C10
+8B0D0DFFD4A4ED8DD1CFCE625AEA8FCE807C1D856C2AABC9146278E588CD440B40907D1982C21C
+AEF4656D24934D137709260AD574F6138AC7B445FC0ADE37A071823D79C4807944FE3C2B4ECA8F
+74543812CB47C89B9F87A7DA0EFF11502AF449A36024446210D9ABC501FEBF40B4ABE6F93FF639
+4B99C0989872EEBCD2F5EC1A124CDA34D50F0CF8C13032EF6135B65AA0182C028076B1674DD405
+39C7B9148CA83D45931955CB0D8B58A6B42BE7FDFF60D11232E1CC2918479B3764DB3FEC4D3C0F
+CBB5A29CF704DA2F6A15113650A1AD301DED8A38E79F030ECC3142A5FBF822F693AF94C2AE0CE5
+66DECAD7E3E83789D9B7A1215E012FCE31714D2EBACDA26C490501AB453D03AB11EBA0EC2F3D5B
+D8BFEB71A37AEFAFF914023F403701E92A7FF7441D12088323651EEB6B8DE3617E5CF7666CAABB
+1531174377188599D7FDE8509A90C3F4FCE9C30661E5D12A6E5DE920FC160AB278677BEFFCCA86
+37669E321EF6A44A6EE7D543F334D2AE9127C7D133A32F7069F2FBCFAB5B333561F4EDE5A7E56B
+C3556BCE8AA48425A0FD7F167F1CEBB1744564EA2D08CF11F7C84BE57719E32B5C23CE4B4ABCE3
+4B6597B8D488BC460CA6D811525D0726D8DB56824DCF2CA2BD3BE0F3E6DEE187904392C3062840
+7E34D4B5688D7B9F07301D7D9C0EF8128B555075D4D8B2AD41787F3C2ACD226D31BC85807C9119
+D2F93CC846D407D7E469DC566DDF304DCF49DB50E43BB30E47E783D1FDFDACD15344E75469F026
+1C364A90F44A61718C0790CDCE5E93A50AE475927A819ABC582C49FE995E44DCBDE242C7C1D67F
+A33C2119B87D981D848FEB1640C3D84E810320A5B2BB404D5A2B3C29D0A16B799DBA9146F34A8F
+338A6C815F025073AB19BE766F412A71C1B78583B2CABB9301A05956FD21DFA21F5ACCE764AEC0
+0668948ECA4D6D6175D61C8C234FA7E425DBC54E21CAD7B348467BEBBB65BAFB8947A0A9ACCA91
+EDE384600F02D7ED8A73E5739117099BF4BBD09F059D81883152CEE2D72C7069ADA47D8018DB88
+A0373C53589EA97F82616ABA1BA736F0589E47FD5105FDBFE1969127DAE37680DFD57F5915D68C
+BD0D9ABF0C5589FD7AF8AADF5BAB93A22EC6DE22D05C9F87FC266F28B901D2A3AA4C008D0A70D8
+0F571832FB252F035607817DAEAB962BE00590B923C95833E67270B8A8330326143DDF7B29F4F1
+A7B8C593A1988BEBC2C9D7EA58D198C500993F3FCD8577626559578B31BC7BA8649027A97EB0B9
+167B0D7A05563AE962FDCDE09FE97683832B4DD78C328BBF7C0211A12EFC63FF46CEE77CAFD5CA
+AC1D2ED6127685F468D7E1490193465321D253949A93C1940DC911993205F1D7B1FE740E9CBA14
+BA2236FC5F3890A8D0592BDFD006786E506205769AB47EE62F0E30753FC51E4295AAAE1CA3A9E4
+15659FF30AA6491B63AD956F873F183AD44E2348EC25BB76AEA23AD745BB504AE2BE6FCACDE576
+AE496228D4835A5626DB7DC61B3BF0E8D9ED624C21F737F4889166ACA83F442B6D53F09DE61E2A
+3105B72C8B1802E24A28156F554C4B5DF270E1C7AF6488DB550B7A5B379DFB0367689DFF6ED457
+58DE38E2F5B63ED6CD3291856677FA09625FB35249DF24D7F2D7044FDAC8BA75273BF0FECD51E9
+1CCA4A648CF57296EA3DE777C268AE63B13DA03586F217DF758166BBCD590FBD212328B2EC4A41
+D44B61E80605349C51B3C6ACB9AE6E07E243A18D7832B098F258CFB560DB8134413B9019A3DF65
+94BF7DB8338F109A16EA32F1B03968E73630B88A11D0EC859B2BFBC3ED924717597E3BCFBEA6BD
+9E1E9A5059E2B8CDFC1F3D2223534E770D7086591E662BD4C81C045B14AB1CAAA09880E846B365
+C904AE4809F10F0264218C7FDCA71EE82D883DA74928CF16A09EADF5CFD7C76FE94ED2076F1803
+D443A1AF38B5F8301CB3ECFDFA81D20B7DBEA7128221275860DBF3D8A3FED566AF92B40266BCEF
+F9793294DB56F4D74D7BCCC9F9BA44106CB44F5287836A486B43132F4C5E5A27007A53DC4400EE
+3D5DFFDCD16397A6C481F6AF73738452DC61106F487F763FA4436E5AC4DC23DCC6F84DC9093D5A
+5C82F2C2BF0B927BB8265CC3F6287CA9367EC97BFE94EB63535FA774A39F47704C93158FD6582F
+86B9BC4D48667CE04DC667FAA5283C07C3041246CAD928DE747DFE2C21856EF0C039BB0EF0EABF
+7A17BC418211CBEBD47E2982361A75A46F1EC6BC0A40AA733C2FE28E7CE86736A5B7FF5658E00E
+8CCDCBC4B66F304D13CDDD5B90D82CBFFD03CE2DE01CE4CBDFEC5701697E5F465838728630D760
+289DB71A23930ED3115FBCE382B1AE95F18FB8692BB77E5AAE4ED869452B89BF632FC5A4689594
+5F8C9D9653E591496AA4F4CED1F8227CA8243F7B29638C17D9AB8438F2B6EA5C1B81409FD3FCBF
+BD2B9D9F83B4CD7D4A680BF87842F157CEC2DD028C0CE7709171B07C377718E58CE64642F0D3C1
+8366EB511BC5E4485FAC12BD70B7D95216466267367C9DF738C8AE8B379082200B157FDFBE0E1E
+6E2068D9820F26FD13EBE2A2159BCF2AE8DF7B1006E556D7D8ED665F922DFF0C72432D81E16490
+7194E634AD30E3C13A8F8F7F2B289E9001F17244F0281B5A50FEA63C512C5F2C7B4CDD9A34C1C6
+BBB4ABA01820CCC0CA7EB20EA5F399F2290507CDD3BFA1407BED22589D4DC8C1BB3A25F6E83484
+FFCBBF1BAA68590FB6A133AF455F402898202EBEDD3429EE46FF29424E6552AD2490A962347D46
+7D18E1ABFC4ECBA9DB6E77C7B6E236BC1503625FECE1ACAC8943F6BE1E3FF1F4C72F3EE11648E8
+5C7ECFDBA7C9A8BF03AF4AF5BFC22C0ED52B5A1F844C13706A89989CE0A79C0F2646FA20684301
+0826DF99B0DDFB7CF956F89794DF019865673B4E27A72B181991F6BC4502FA0B9DE72CB0CAF9C2
+6937AB754A252F1D2C21F2A9425150172A02A03799091D5763ECEFEB05310CAAE670F85F2DE529
+5BC2470B089F4D2EAB0D3883641A92B11639592BE8BAB78D39EBAD088CB524ABDC663BEB937E25
+62D73A5DD0FEAC9EA95857A92E49A987ACDFBC70AE092DA24715971283B52B82A7CD6E7A1350AA
+B515A1067D03CDD000E371906225B8F82C9596A2A33D843F6D43AF2EF35905FBE2C76651727477
+DB699104194B8EA676C38602A975FE8ADA245572A312A0784CBF350625908E3A63EFAE61EE3E5A
+DCF4EFD7AE1E71C82126CA01DF440568FC93AEC6465FFBCD018D9757C5E14F967F5939217CBD71
+0C40330B08F857212A5055735C5C901AB5B95FF9A25FED4E7F1806F7764244F404BDEA3B172CFC
+A8CA5202B33013F7FFCFBE6056E08BEB8934AF5EB8738F55811A906F3E58E120960B3CDEE821F9
+1C45E309CAC13F86B2B8A9134C2B54C7178A103BD63534945C27075FC028AB857E252B3D73C3B4
+590C969D20AEA11E85AB56B0AEDF28A17E70DCC2A2AFCCCAEE5F775FAE4BD32FBD8A0E4C42FBF0
+E240A3DD100B79310811873606501EF45AAD874D4FB72BDA048FB26EE4DF9465DFCAB66B267359
+950C5410FC7E4C754D4CA00C0D5880EFE87AE3F8C66BE1D299822AD624DAEE81BFFE4644EC04E4
+27BCED324867BC4905BCE69148912A407AF31814B1F12FFE073AB5B9E77AE9ABAC47CA59EB4923
+169180E999D3EA3F93FBE68D074C6504505D015440E60CBF7CEF648EF817E4175D934CA1DD0601
+AA6BC8FFD75589FE6FF6994C7ABAC22A1F830D6A259A2731C4BABD2591A314F082814758BE1898
+7DD95A143164F303C93B211D8737A7506A190D628F761CBAC5A7A895187678A6DE02CD3163381B
+0C1DD226947182B6B123AC40B98EE7887E7F918D38CE750A8DA28388828A9D5AD2DACD4AEA92BE
+A9B09F1FE38272AE94199F358CAE518856B5A7686EA66AA842C1BEDD8260F9A3CBCAAD5FEFEA75
+7C4F2B6F8E22B6AD2F18074E33C360EDDDF43363FD8AE5932B5DB36E0F705C3653115BCE8B684D
+794AD5BB056DD2FEAA61F43554D5B5409C65CB8658C1CCDA58E77B05A6609DBF86B3278E7E7AD7
+AA425E1D3EE338A6D7269FF59F1BF672EC1CFF33852C1BD9536116627E2CC92AFE3DFB2426A78A
+62B2C4C8FBAFDEAECD36C6AB224664F1A9D0900664C35AAA88C69515ABAD780EBBD2D479DA27E8
+C46E8E36C8837E7433BFFD9612A5A95F89BF47845EAF6BFE8F215A88793C6CBBAD5F0046C9779B
+10EE299F48F4DAB0E337C593ECE0585F0E3CD7C55EFFD61EF5517C54A0FE5800B1866AF8EFA01F
+B0B544BEA7186CA4F9370ABC2DA372555BA2333AD4C6636A4EC6C9CE6427CD09E76A89941D68EF
+49B5CAD3C0BF5DC326F6ABAFD96383F4FFC4C8FF470924F79E4AD0FDBDF57077A3A1B18FFFCE34
+8F08E3AF9AA061033A067CF9496913C533A6E5D40C9FB5C14145A252D94951C69CA420821CEAFA
+9603C8474319DDE814A12905B17DA7829D569C511D985ADFE6B9DDF633951E62CD1F52085A70E0
+2ED6D8F3181BEFD25F131A3DDF70A2E1A43CF6D3FBCD415AF990A5110F6D26944FD5296786EF23
+A92C79A089B2B4BF2C856B31F8043A4510FC408B3B6E519606363E3A87883DC2EF50990934C9EC
+9A31869FC86EF5032FB47F10A85BFB45C6A6857A8A0AD65BBE29CA9AB58D2FF7315A07027DF41E
+68FC08C8B129BDDF9EDC34C0B0B90480ADEC2E91D9942DC1E3942A29CF82BD1AD0AF7B902E83BC
+E244AF4833C8415745B0084A4B73DA376896C9B54291AED5B7046A02C278CF3465972DC2377274
+211B55DB03073C058D2B844B04B0E0E98D1C3E0603F64B94618E9C6788B14224CA937290805877
+2A67ABD0A2B99E7DD81BF263CCDB17326B874B868253D8666F982115AD0BAA62C43A94DB7EC799
+888D9C132D3315CA33712880A1C08D1A8EC7EA7600F33B3AC6E70D6A5E468C239F4732EF9A56AB
+EE53F2C3CDCBB4B1C168C1FD780FABBC5F93804ADD9F24201C11B516A0475C5CB6F4EC64BC7472
+0280EA4FB81CD107DCE08566F355CA2AB60ED3A62B7B3D965695BA2D364B43774718D1495F37D8
+BEEA58D19FC531457A0C4E1230AC5A68B3F7C4F0722BB7991FA6DF9FEF362506C77E29DF9C1055
+99FE9BA8FEABDE0E2DF3068203B8FF5FEA86AB8925C8CDCA35CD32298BBAA35201D33840B08E80
+4ACFC242B3779BAAAC6A6366531E79E4E91B2B67E81BEBC1BF83329D538B4943DD443E19DBC9A4
+A63CD7642615370719E7C70B3A2B19F7D9C00ED65F5CF58DD7C4E471EBFFFA3BB8C60F6A01C1EB
+6F4B62EE07F178DC865A985E1ECEE1A630B3373DC182F63768899855E9149049963B51B2EDE249
+09BBA26023455AABA20051B21F53DAD18D3C797A8311C2F75B3C66815F3E7ACB78D21F22219816
+0F24B299AA85AD06E4F3187D6DC77B0BFA6C508989F146ECE73AF20FD271BE065979DD0B860DB7
+2665D2F4BDD5FA3A476CDB4905D65C69E48BB2BCC7724C226A3DFF07110445EBD37A3354DC28E6
+0615CEE80B6D7233DCB7B7EE93848CCAE17C6EAC4ECEDDFBCD9FAAD95A501436C5461156A5A6FE
+F874DDF43BA843641734A696CC6B3CE7F1182495FE47804CF676F13E4AD3F8CC40FC19065EB4B7
+CA47F69CD3CF18786F631B7061E98AF2F488D1DB1B87B84ED5B62E07239927DC4E60043B981160
+BF957F62A6597A21170A89E833A749CCA04FB48F08FA3477DB78D2913249D8D947CDB8B65D44DE
+AC6AC744B0D826AF0B8CCB905D439A0C237744369A53C88F56F0D057E97945A9D8365CE0133D96
+05283E90897064DA38C8E8815DF477E5B21FCCFC06DAEFC570BB3040574D7A403D2AA1302681F4
+4CE0A86C86C1F66E1D43BBF9F11D4C2FCFEA4A0F651E2C5FC762F8D78F9FE2306BF558056054CA
+1104003734B9500FA0097080CCCE7A7F58C7A6F34217D5ED987D2A342ED6C94F93DD29FB539B2A
+AD3EEBBF1B9589E77FAF96EA9560C8F3E3CD3DEDA62FA04C0124AA516AE534510B63DE5C993D0C
+AA7F02D48B7C6794E99ABD135E4D1FC8EABD88141D63D336763783DBFB54555D4B048977C4B3E2
+DCDC260627EF67F92DA7E40210E00F239E66A2AF0F35D21E04D5D2AFC8D1E97C8A9E41FB95ED87
+F9EBA40035D0EA0F1B03AB34B09A9A594A26F50E99BB350EFEB509581C75C3C80CD4DF6D3B061E
+EB93757B5FCDA97780243538DD7DBADDA8EA7A01B6142C1D3A5FE4E2E56C73DCEE7D1DA168F683
+1D4A48A71208D1D33745345DDE9B8BE1CF2FFFDDC15D79A884349832DF9C7232B3D108D7B5491C
+FCB227038E996FD259D33FB8AD615302423F01C17F001C3A69A8E3D5091D31F15315AD3CA281CB
+45D4EC3DFDCF441789DB63F5021B622C50EAA12A95A976BA98A434B32D43471CA360050B8B07D4
+41C70A3D372B04589B2B496B969A9B4860036400907AF7EA9F5E88A37CA350F43D2DB9035DAA31
+27E76B60CBB0C0D7DE13B56F160DE4A32F426A1F6E42D8C44D4C80679CD8C98152AF89DB4C08E6
+0C7085984C0963EE0F59F0100FCF233D1A39D1A38A396478DE6CE25306E0640B654087F6145077
+00C03AAA7BB6CECCABCE84A4C054AFE72793AE9DCC94B0BC250F7619CDB43F592142B520AE7941
+0AB466B8C69A435DBE5BABE475E4BA2F2B19BEEC08FB9D918408D719F0EEABB7D0F05D524434FC
+4B82E9D4AC9B6414468CA6887785F828E9C50AC1477C64A6FC57B6D409590868CBA6C1AD0264F7
+852DE591B4656A4DBEDA3F7C9EEF007D7F94C10E33C4AB758AA43888B71009CE055589672DBC98
+5BF0BAFCFC705FACE6604A1A1A4604B29C9C49AC7420AF3EDB7924E8042C8FB6F470FE5167BDB8
+261C8E0357D6004DB76E2BA3FA160D299CCF0670D6194D4AF9348A66EC5C166B398C39989A1ED5
+F7664198AE4445E9B16051A1F0A7CC3E25A8438065A176CAFCC8E24E12E49C3E7F995D914FDB75
+CDB9E4BF0D1B96E28AB240C59510871946C9115285DB6E5B6A5CBD7CF1D9D70E7F3525D79D853B
+19B06FFDC2F09D175FED18F4D6099CB71953476B5FA95976615CF18E019FB16579DB34EE2CEE5C
+0B3A04DB169E4BBCA63DEEC71CBEA6FA427779C23AFC7FE08FC174421454DE25CF8F3BE3CF6FED
+94A1C24F0CA4908CB269BCEF1BBA7E158D433EEC3FCEEDD0C7C701090B6F46AA52E99B8DBFFB0C
+3281D18B6822CEBA6E70A0E2274188539AE685D559B89C9F3C2015116FC03090E2B68688137D87
+DBEDF725AA4199078536B7F6B5F0F89FB8993F31EB0ACE76A4C85E6105959776DD0EC8EDC3B101
+C52EF510E654C19F0F7E059F585A8ABEFD25B5F01DDBA78C82B4B53BB1173F2AB10DAD034D7F80
+0665E536292652AF8E939A3F237284BB371D4942A05D9D478BCB43BADC7C5AA044665F995CC678
+5BE45E96C8CEE12E312E911E7923602A58E0EE8BD0D6C78A7CBF78CAA113860166806D85315FD4
+5798D910E304A909E0EEC29CBB322D8C27BF417AAD0C01C19BDD63415ECE01FE1A0C8E4F8E445D
+C18C969ADB4963ACBFE25DB7097F376FF7F984879BDC71A8361103775B9C890D15D0EB24E75188
+D825B9C4BC34F1EDA425352B8C2270BD925A99EA609B2338855F0C9D941B872F75530AC00163A4
+AB4C4390CB5D29810DA751AF049B62743098F58609CB5758248E1EE442C886D5E30705B79E67D4
+7F91878924597CA3F5ACC9DC7F1E33B4B2C5E30A3E96F7F1FC886E69B76D8153F17AD8DF50A04D
+A8A856EBE57BBA83BFE556C83A4B535CCB185DB2A4674EEFBDDDB5F467A190B200AEC41BB8A5DB
+5192CE02948FDF0231A7612742B193BFC95F7516C5C45210AF2FB79DD9233DCB7F4365055CDD3F
+35C32D32BE603BADFBFA3E42AA31495B2468E35BA10E1CFB66675AB207995FFA65BBA3C170FCD1
+EE6089D2FEFB717770862AC4BF9037778EC3CE607663405C2894565B3AE1C2BF49D628E7AA1D12
+211A2D8F9E7ECB6907479EB581AC2805F0866271BD59CDC0F5733C1FF9AAC5CD9A1C134E71B179
+D364857C8F38D84A9489B3998135B731F105D75C5709CDAF12B10FD29F3416C35BD18B1B732AA3
+1AA9F1407243E1BC60827BEDDAD46A8F309E4AD0828580CB3A54AF9CFBF16F6F0F955B640964DC
+F03D3343FA878BC07F609F31963E975454A5C2C66ADE9CDB0D1B4676ECFB2838BB098B48580C6E
+8B9056A99F382159D46A286A741F2CE5A07E8BE7586AA100511EB6F080FB059976F48B52655E00
+40409AD0DB39F61A0A13DACE4EEB39B6D9077E42CD5756FA90032559C1EA131287C1DA18FD68CB
+706C371C5AC4726F02A966AD4CD8774EA1464C027E0D4DAFE5A9267A2C2E2B4264CC9F55616270
+604C787F5CCEC8294133214A3EFF7E39D1D98F34EF9CF09128602C119EABD5346CF0C2AEFE7579
+AD815FF6318C24CBB548D202AD9A9894C7DADE7415655CE804B722C489F74C3A47F01CCD7F4E62
+035BE469F78B26A06EDDF9C8DD66880D81C50EA866ABF0E61C071F9C68F58131DCE03E6A9EBE69
+4EA488FD04F6C6779A79AFC9AB33CD301EEC4ED934A5395D740BD190D66C13E2295B12F69C10E6
+087634A465232AB4F85A4B89AFB6D4E655AD0A5062C3CD6B56BC2E803E1EB995EBD93480EB8843
+AD91B2335B33EA0E117D701785B1BC051D504E03D7427C884CFE21C637422E9105516C846CE0FF
+01420B4DDC859A3F88586234207B2770F42CAD5E8A2EDCF70250DB905DAD6460B6CEE2AA467F63
+F13D0AAD48DA12CC8F868E081281FE43B99FDB1F953BF7E05296D638BC8CCD33A4729361B366ED
+E7C35A3AE0E0EF62833D4294CEC817AD19B99AF4CCC8320D78AF2D7BDC2419C0ED6645325D1326
+CDFE25A7D78E378B2511BD89A56266D5DAB1CDD560CF18C4D2944AB1E7762D5BC0C663B8036426
+F845586A6C57AC38AC5DCEF65E921C97B9FF511396EDF56FBB7532F5674939D373DC315A5DFFF1
+F90FFC272D4616AB3D11E5BDFE78EC18CFA488D9270DC68D4D4352F718D054CC6124625B19FEC1
+406128E9E7C925D39B45621D5C52CC575FDD35928D4750DC45FB9E130AB0B6540E7EE3D3BD113A
+257824652ED45ABAF2C4C9F2A9D1B8981DFE63F5869AB516E515399D8E30E420F3C1B249321812
+2554CFFE0ED3A7FC0704E7551877F310ACC007E40BB9FCC3468CC12F79EF96F1E2164C786E263D
+28F601E5275BAADCD8ED2E2D5763EA997D68C672BC22D07E4338ED749ABB57E8C14301E2574AC0
+519B32D03D18158ED2993B6F1560F81416354F8ADF3D95894435BAF5454BB29264AC162073B0C3
+81D99974F40B306E95170AB5AD80DF9D2EF1ABAEB63244C0374FB7DD59BBD8257CDE973BAFA91D
+8064B47E015FB8FC4134DF2D39C2294F32CEC590173E150F8AF490AABBD4BA4F3F28C990196658
+18362F3B26C5663D02CD9A13C8F11EFA2B0A2141CEB588357171917B1FF02858B3F3DEF2FB0FCA
+3423D2FA6072A1CB2875364864252EA86CB63D42C263D154A2D7E6DE6804E7E2C1D362D18D9246
+B92FDCC5FED1382B3BD39F76CE3BFE818049D4614BFDD478CE888CC2D0B39AFFC8323AEE04EFB5
+5AF138858B99D5F63C214361C30B6D9B47D7C077021E3D32E83F300E58EFA4C64EF1646D52A576
+9628E796ECD2CE44F9A8CAC886CC2D3A5304B710858BF4F9CCDD0FE2DA75E814242DD38AB417C8
+AAAAD930F5BAB2A6BC2B6945620BF328540BA9B40543647940E1FDC7B2DAEF3BDD42E47EC46889
+9908D555B48312C7FA8535C55D7E29E8DC546669B730424AC9AFA83A72B42EC45D6B7B1DB333B8
+BD64ACA315948FE54192E8D6A8CF068E92E3C525A70355BB9A8461EB4030349786CC27A65DFB9D
+A2E7932640DD1DD7D7680664E2299D97DA403264AB855AD86ACDED626819BE325F3295F836B286
+7E6259F5A1298616D3B9FC807C4B2C52DA96B1B20CEDED29BFA4E589F8529E5093E3345C9F0B9F
+09D22A7284220619558D890394EEDCDAD04851CDAFD6D861054C733E978EC4421C60348B1EB9AD
+6BC94D7D76F4AAA19E22B5DF9DBA06E8B4A510541DEBACB40EB167B873072D597C4D9320D7E434
+03764EC48DFA340C88CC2B93EF834F8E12A61D6F3AB5524EE5E5238B6E594A31DBC459EA9A4678
+458CAC5FEA09AEF0DF9B433F517049807596B311852E95DACF2D693CC07FB6D52F3B8C4D71B539
+DE46169F5745ECAA34C68B77EE74C0DF8037AE2EC78D163A0F4DA3590B407A6F55714720B0E905
+D60F6775C0AA3F6F7297AFE8DC8458159021748BCB7B0961F12E9840133EEB6AB29854A749A06D
+3D4F4AA5BBDDDAB4A7B90D5E24AB5D68E448BA9C23BED8DC86006A8CE82DEDCB2527ADCBBFB90B
+2B8763BE0F1336DAF1E18A9D61358AB5FEA80DB1E21B318B11D14A4F673BAF105955B961B6508F
+D50D6FFF267BBCAF04BAA4E47B34917E7066874AAB4D2E77EEE43C2BB8E5EEE53A83659F7B17AA
+F87745B870909512AB5011A7995184169061E9C46C6A795FAD18B11BE94029B0DAA5D5E941B8E5
+AD2D6B85675A1B46CA90E2323025E6C7DC2AB5341D196D847F9F99D4066792F61F9EF3BDDB987F
+1262FB4E68D5CB15A7E9D27B5C55898EC4A375E05E91D64E5B7E45ACBB75A43DB89D719A5DACF4
+8AF67569E9C73BB3DAC71933735731CBB8D22869145EE00A3DF5DFE7F5B32BD63756436D68F93F
+5DFB45062463109ED68A8059452902E987C995A9C7E8B76AD466BBD9F3C8C22A9D4A9568B65F7E
+A8054E24D1FCCE36A06A54F777F7385FD9D0EEF4DEA53537495488A5BE03950A9447F5D79EEFFB
+F36E67FC2F8A571E345BD97B6B5F1130A290BA0478ADD1CEE88AED762B72AAA7DB14176F28B86F
+B0EB2812E641B10CF8A7A6D7C1776EA7CF4D1B0AD9C9B41FB61F76A23065D24B639B3B634DF4A5
+352222CD3683F821342C1A03B30DB7933DA188F31B761CBC6AE190917F4788661112D4FD984A52
+CCA960F3B238FE2CB447EE6315D5958D372EA0E529E682CDAB1EF0615214FBFFCD29AE78355757
+C7D05F888D57E64735688D3A11F3B59AFF742B3066227043E3B4A9A94A852342702AA4A8167444
+0DD569881A342A068D8FDCA1984E9BB00761809D18F81EE0046AF2EFCB5F7735AA475FFB2E654B
+38C5ADFCDCE37282D790FA5CE06C79685218939D8F4E9719017863270CB08548E38ED4DE3CD01F
+B0846933A9105EF69920AE572A932862DCE65CC58F58E2CB8EE127D351566ED22BDAF6E76C66C2
+D2FFB18DFC068EA337F572A1062FE80BAB597B31C6F19B4DDC117E0F1E46A0E1E7483C540B3840
+969C85F2C4EA62910D9F0395BCF0839AB34D51805CF48E7EDD62A7258E682EF7865013108F517E
+2178800BDA4DD72AB2C96B5B8A02468E20451E2175A0939FA8F01BFDEE1C9257945904CEA28E8B
+3F1454BB18B2AE069389B82A0D4D52178993541E7DBCC75D42011A257F3DC402DCC81529003241
+425959DC1E3C1D99B5C4C267C626844DFD3EDD89F025F784153992B1737FAA9034E14750CE17AB
+DFF3476F2F176162495081861E12375A38AEBE2BD3401FDF62A292AAEDDDE4706CB60A1A910C1E
+D73908213096F3BEB88F56BCAAA718E4ABA78CEBA155EF00C4DC50FCB8B139A762AB7CE2364A0D
+71A1C0FFFB846B186B4436A50E7C2359F6579A68A354BB02BEAE39ACC57FA790A11DBF29FCEE84
+8866A06848D29DEEE2AE43DC09FDF74D5052870267718166E8C33A3EC9BC7794518B4277CA3095
+9E9E2E19FA8D9EB82CAA7AD867AA54134D7CB50BCC508FD5EA2DD6552B9C8FDB23AD7526D566F2
+6D6FD67F67F771076EEC9C18416050B9981BBFA7435253E7B3698C7356A8690D4F35F710288632
+905F916A64228291511B2DA796407985EE1639E01D5568C05D51E04122D9FBE54392B345D62915
+5D93BEEB4972D27DE8E6500C7BF27D9D67F17F255187706E237E65D05E99406F61C80F1E7DA57A
+4237C99C6E57EC0AC57AF378820074DAB972E30F61BBBE93211B24188E18B4E08559092881F4B6
+8B6C31AB765A8083EED91DAE5A5E883FD17A808172677F854C752AA19E351B404C7B30DD6995CD
+CC9AA89D5C4C50AFDB5D519ACB7F0BC5E68C548C679973EE792FAED2DC6E79A1FE598ED193AD84
+426803AAB6A9A0C9DA912889D76902C1EBD38CC4B46025E0373BE5791116F83B45750BA34AF940
+37477C11923E47650D9FEBB135354E2450C859A28B751DE50557D7B50E2688CABEC6DD71D831EA
+9B8E763A98685EA60B47A4FE816A13987E17A88001D8A504717DDA9DC6E51F94152C2CF2D3FE92
+2D0A335F0DE498FF454DC40FC17F74CAA17575871DBB41B47037743592753A81772AB4D3A19270
+A7E10C1CDA5E336302632ADCE6FAB52C6200415E050FAD5A251ADE10AA77A5265B9AB6FBBEFE9B
+46F8179395230BE8346DC61D9C569E6ABC42A67D49BBAC1A87E67C3D8651016336E31745ACA2A0
+CF990C2671879348EA0900929A299700F408164E7D8F9362CB68EF57E51A361B005DBD3EF8C8F1
+E142D54DC1ECBC9FD7F55B7C8CCDB8548C2D7CCFC1FBF55FC5F76C0A6F50CA628D1E77EF2937AF
+C0906CC171E6D6DB053E61C0F3B5C46D21079F339399F13864B0709A06FC5D1D986F0F8C8DD09F
+0183D141FE866179201892D41CA9D91154E5EF61BD813CCA89ACE70648523959072255701F0B8A
+B35D0A4BA7C4364877E6E3147D0DCE4510C3CB3801DDFD0750004311022E4BA452FD45D6825DAB
+4992D56323C0C0AB5EC0FD57047B30F96CDF30367C322FFB691D62DD3CE8604D58CB1FB25F3135
+E89D971A71F4FB337FD11DCB60F8603D369DD13A3E3E4CA9EE784395C0697141F2F3BA5F057547
+ABDC8968EB80B8C14300D7CCDCC8CF695E5C38607956B446BB2EA37B45BC5857DE3D0B665EFCF0
+1D1C06EA91666DBD8B7AAC2F226215CD12BCB16D3E3C263D784C64B2389BC3A75B80308C4F2D66
+9E91065D07B7CBA596B273DD7E80C3777AAD1C8913BFF8720D333F1DB6C6F477550DD2DF7D95AC
+4B40C13B3AB908B6823726A3460F5049D8867F3B7EFCDD4E2678AD71A21F0FD9B97E909DCF8AB7
+DD50BAF1EC26F7EA14FEAA4BFE58DE6DB2BCBA6DCFD7081C05C664E414C2B7651FDE70492E76B8
+257841CACD6C182DE08DF75496B719C6BD3B3C4BF8921D5E5045F9B68B82DC29BBF3EFD3DD9B34
+C9C2571B67D7ED60A9546FD45623455A6084D5467FB9F1D84C0DCA650C2E2CC0470F04495B6CE4
+64B77072CA71C7066AE594B3F45B500645C660CA96582B537CFDB33BC83DB0C2BCF55A820C264D
+DA22C7FDBF4DF6FE3FD5025FF2BA1949027675A3E129C056F1030C97362CC0361ABE6D1CEEDDE8
+15220E2D0235DB954EB600951E2874C788E75FD412849E985A23993608DC555B0CC1F9F4FB4B76
+98BC84EC2B6663E14D4985847E0F5BDEE46319DCEAE170C2BD7FBAD655971837722B5CDC9F2669
+54013BA36AF5FDC7BCDD4D19DB6FB58B840C0EAC62DA5018A9C547B52128B615C78E2B3E4A1C2B
+284723218365DEFC1627F943215A25AA154ACF92A8ED779676158F2F1856AF18A5EE9881D442AE
+9C130149CAA480DF44C62C5C30C4C244CDAA1D2E76A58B4977DEF1054A033EF5B75A434050FFDB
+F56E3BE1989A87C8F88FEE1E0C5445A3C2563B8459DA7E0E44B35DCF3565D55DD96F9477892642
+8A41F3FC0623184CE06454E50F3E273BC1CA60396B31A2BB40CADA18C679364DBC35A3DF0AC67F
+3687261D4CE8D8B0B9838A231A162BB0BD97994C989719269129E22C2C00F6D2E27A30F1C7862A
+4913E3E233D6A25FDC4A99CC2F7FA3AF5B36675231EE1234BC58F9253EB97250F9EB6A5337E0B3
+6E9B04CB28B18F6ABF913473A596A624B5D9279815220B4E5674189B80D45492408CDB2A34159B
+9E3CFC02D54457B07DC7E792589DBB0780E48E713279E400D38FEAACEEC2A461CD8B021B168160
+8A18CDE5E51786AC2C4C5120D5B2A7EC13455FD76C2BD46C122D89B200E74FCF5A7C38CF7245E0
+4D88C8AB34B1135973D2140119299A345EBD16D363637FA60EB2A2630CBF906CABA49A9947D45B
+5AA3E88913A4F6EB07EE8503C1936708FBAB0E444E70772BF6B32B077D85C514A819D82B86273D
+5348EBC299CEF9D665DFD7EC28E468B1BBF2AE150F018B2751422F86960D904B74093B1C59CA84
+1337A9B2A4C43F97534108B194A94C06EA70E687517B627EB31C7C956D292F1C903F320EA5DC99
+7BB1662BC1A1DC7A5D7479D65FD48A552AEE0FFF92E4B7CE7D2B4926909FFED1ADE44F766F7FCC
+4D148322B0768A7B59BC53871508427D682B6E9BB1331F2C42E927F6419FF0BF764ED929F564AE
+A661455C85FDE1F8AA512FF9F1921FC730E3A8A7B8CEDC09EBBEA990D2F6E9680CF1C7FA3D8331
+E33D0636F063EC75A8624D31AE4B36582BDEF4CE7DA84AA16A1D10B4CBE339008D499CC8E4C050
+84EA24F8D817136EBCF1CDC9ABF2A211801B272FC27BB6C496E0EC15970A148F622A2F911A1FB1
+1D3F58826AEB532A9D7F6807AA278BB1A08ADFF6FE589C97643C2683CBE502FBD74E3652A84374
+0144048E10C191F5E6989ED64C6F2C075BF26386226AD28AB966D2B0E2F9B9BC358CA16203F570
+CE5F822E5A6A97D12946A3AF01DD9027B608AA3D214559AECFD3BCD11257E4B31BDB5865888C24
+FF44175DF047FEC3378A588E797B7A9C6D14172E6E05BE9642DC4EC1D1D6C84D36967387E5D048
+02E02F9B9BE06227F85BCC04DBF29C7BBA82C4CC4B6073EEFDBEB40E579D033FC8B08F8C450F02
+60A4CEC236D67B90CA08A9F45BCDC3C4677C40B492C85EB366AC2617342211260215046C544ADC
+125B80DEB38124FD22E2A8E698AFCD7E86AAB44B219416C8332C91EED602F7EA9B6707AA097830
+6579E52549EF7DD54FD1F26C2B666CFBBC46874F4AE5373A1A8645107F230464E0C988F6744F67
+C338ECBCFA06DC4008C47ACA9285E135F1C53B13F68DBA5CEA443DFE1F4E2EAB82F9C8825BBA16
+D2BA42E7391C77E4C6DB1D9C2C8622FE29390B12BF9CF4FA14F6863F85B5A212CE8B0714578BDC
+02D37825E46A35BCE32E9C30060C6C9D2815AFAB9743143688AC25BCF8872C24D5141F914DE595
+31BBD3F4B4C79450302F6A2DAA120D8581640D0F21B776CEADB58DE38E415ADF2D88B9A277CD6A
+B4BB87057DA9DFFFE39F7D26AF0CD8E345166E0BB8CBE3CB2BF0BBD1FC88DB83B0EB920260C840
+B4D6FBAD205446DB1EEB682B49E52DF2DDC0C1021E30799F6F773F54F55263C61A65C178CBCB13
+BC7BA8EF67B67B214E2A2E3B72B4A1B641EFAAB5305BCB5D675B0540635411E955F517336F4050
+505CE9D8F5B9DC29AB1B5E3F51EE4CDA3C7D0A494BF561D01BF6A1905577749A2F5EEBE4908CFD
+DE8A859C760967C845CEDE2F0FDB47C22DCDA4B3C90ABD88DD2B0A05ED63EA9EEBEACD77D032AE
+84BFF77F189FD7FF1A10102F49AD215367E059E970F51F4F32A946CC26B29A4CE5E5425F6AE015
+FABA84F7CDB785F470DC275074290020313B4835AC71E7A5297760C13A570C97EE657EBFAFD067
+B94905E52E24158E719FDEEB8A0312D2A125F16948905DE0F1BDC9F647FC2D1CDC73CB984084E8
+A98C805F4CCC5E6EB4934A3D55617852C16333A92072E79816040619D6A83F5DD6B70C96C34028
+D8DF9FAAA0F438B5E4B87B0962A0389692E055D531D4A589B68CDBB20714B101692B71BF1610E6
+C2089B4C50252BD5ECB1764758246135AFBEF8DF9E21386C27FF186A141C3CCC4F4E8A9EE47A6D
+56B9A610DEE9C532672D5B1D08792C174B260DE3027D30D2D28F3F4B48FBE84EBE2070EB4BE93C
+5AF33BEB7F64E1AAEF3C88B2AF4867ED8B6B978BF0CA7961EDAA9B34122125633514807F9E8BC7
+ED918471DA0B1C262E6213E83743E39306D6D40554BFF66689F0B048FF454D2FBBDF1592E4745F
+69ACB5510F1B3C6FACEF9980EC10279D4C96B46BEBCC3F9E29303542A216406AE41A6195058779
+4523F148AB196D0CE0EB5D68F486216656BF30007B576863E06D962B461DFD159AC680641E8C0B
+D4C2D054C069E3BD33771028D781C3910D82A0E41F958332453974C1E71AA17C6B4A62F22538C1
+70E51933807E343CAB71EF32D00C4D18F51015762BD6E1480CCD3E812568C902E5E2715B965352
+FFC9A5E6FD99184B3E85A9F88127D9AEDA75A2D5235FB4A697DBB31777FF6CEF15916AB8BA8963
+1AFA9BA6A58CFFE03CBA1A04FDB7444BC39D003C34E18955451DEDB9D30C368D6A9885158262EF
+EE500909AFEB3F59C1B0DF7C7A2662F05FC990CA2F4E56AD30AE59D2745D07D000AF52D1C77F15
+F8C2E73A66E77034DE9E1E29A3898A15EB389FD6A4EF76A2D47730CB31B045C3117F1B73106A61
+FA6F863DA7F88EE849C5F8E2342A990E2F23D7B249FB34A0E0A2B3520B7703FDA0AD34292D8AE1
+B928241CA8D190F8CDAAED8E00E25536B1CC1D43F7483149C35CB858D6046CD4E69666E4A01934
+E69E0ED021937F81B55FEE4917B6109C047955473A7F82A1878CF98C40815CF22FD3E6967DA017
+1D126F89176CE0474C1E78702DBCA54DD0188418095D00091AE88CEBBC16A023D1B2FF4368A796
+2FADD90662281974CD98F35E4770772754E9F903A238022FFC148930CCBA3EDBF2FBF9189E4472
+E279A9E6B81650D52FFE79205B1444D9243B0E066FFF4889EE5F153898FF1D82257A9E44B0B066
+251518F0BC9FAFB19F1599A307AE055E5DBB3F9C3167237CB7117802ACB346D342D9E9CDFDC553
+28E9E65902B62D0A398AD46127A7D626905E78CCAFCDD7221807F220B67FEAF3F0DC51B236D865
+94564B61976E0FB2184A7C040D41D1FD9C0F392420060F380BAAC03388CF13188B72A0E4C588BD
+A44AEB0759AD9C6FA452D356F4CF21EA40B46C06BF667A04D761E0A1B61533D62CCFBEB30AD8C3
+E43F2E591D189067669C4C86A4602764DBBF1D0760C0186C6361DFB5FD19B0EE58C6E0943D2798
+CBC4EE5A22C8242478A5FA73B50EA200102496074720D4FFF52C36B6C88B093B6EB802F3913083
+C6FA8E5272D189308801E356DC6ED26457AD0D8D73FEFADA43F87BB5DC71E816A6947D9AA86E72
+08929F9D47B63BB67E43E5A384076ABFA43994DFEC8166EE5A664C8A89D3E058E9CDD55D6DBF8E
+24CFB109E0A2863B5797737084177048250B486079CF88BD9A34778759FAB5C58173C224A8B5C7
+0BC7858EA1B54B013D09416BFA911BC1130CF933DF26EFD122ADBF85EBBD2C001EC61BF735996C
+20079AA815D23194F1337642B4B72BE3A349FEE44E38DB284277CED5FC041F40EE0D7B36E79C7B
+D460D29858827E07BA03A994250397B56B29953C8CEC487407B9F4C43706B711E64C43B34A47F7
+F4277671604B1141BF6D2E481A02E8F1A645154C5DCEDC68BBDF398D245DD96D884804D88A81FE
+293C80DDFD1BF8F083E78930F4F1C748298A134CB42EA93DEC722029FAFFE8D734EAC2400CF9D3
+C77E95EC89F0045002E62DE9803BBBECFEEAE7F9F154A7E576B5A87F42681EDE969167E99AA502
+23E2F216E5D3F13DE29F9E5084950A71B984581CFFCA72E51417D4654C23B2D220B301DF0564F5
+A3F54A109865FE841305A8E676D773286AC1037DFC3E60AC4D2C4198D872AFBC0C35447F10773C
+655C69991351D3D3C540339DAD59B2B296EE668311A76407533AF60297663BE62951A78E21DF92
+0509ED51831DA0C0C8A819529CE2F3C89F737B33644FAD8F45F850E8C8A5BB5CC373360676C9CD
+6661792518688BB3DCA85EDEA315863B53F98812229D8F7F10D74EC00B8F9C80BFFDA13D98CB7C
+0CC5270D0E12748C3B49B43C1FEFF591B2E6243CB3DDAEBB3967AA44ED1100FA8AD74D525C6EB2
+E47A9E18C10914C1B65BFFA1E446E73315E53E9450002E092FBFE4980E1D1E692A9C3AA16EEC3A
+6B63BD538816D42FED81124CB57972BF8DEBA2F3DDB53E813EBB552F610AD165446450510F44E2
+2A4B27F8FF0D42AB5938E5F94286A400791260158F806BA335CF4C9F47CDCBD8597601D109B30B
+902C17BDD5F526E006C1CB18E04165591BA0E6A462C3575C438082EBFFCBA0F6377E4B57E412F5
+99993E0C34C554BD5BFC64B59FBC5F89766A3A46E4A207F4B96A02D83DA64AB42B66AFFE2D569A
+9C4072CCA8120EFEA00F3EE37AD5871AAB09E5BD21E53F22E8676DB4ED7C0106409E3B47195504
+7EB35F4BB52CC58CCEFAC0D93A39C0275D8882A4EADB6690CE1253A89409BECA16B3057A67262F
+308F66D00786F6CCC2EFD4F5028125FB46C33E041CA45397514A232C1743EEB9CCE6F8E37C68F5
+03448AC4A2043DC77CD01DD9D634DF0FB5C8D893C20B87CC2936A95A274521BDEFDFAE2F5382FB
+D3D06B3517026D4EEC7BAA97808EA82904EC975F3190C4CCC6C31A776A389C22E77E3EC5C9E5D0
+3745EE163D7504C72FC5B763927D2D7F917F481A289FEC914C702AABD3FA8D94036B74DB78F9BF
+CE0D2FF8D82EFC46FC8EC40FA7E80CF58113028DB1CCF702CFFDF9A4C12A5F2F2CBAAF438F414E
+0C72B25AA596AD9C8529B7C1E6BDEFC58B2B115D9A3FABBD88FFCDB7DE5F987975D84DF2D535D2
+697D72E7D2344217A47F665BB389E7AB6D8C8AA5E02F951A6909FB2B17DDA83B59E1930EC56DD1
+BC23637EF0B057FD29803DFB7AEFBABE1844376632B7DBCBAF50019CBB87CAF70065AE617247F0
+20E95C097B967C5D5CA399B648814B6596E164951AF5028F89E567990CFF3A0D50BFB84F2BB3EE
+4ECF04FF0866437248755D494DFBF704CA8FD7A47317B547720E2437640D0D7D007874D9F4FC12
+DC886B6ABFBAF3C2E00F71F46CD4EE2EE027FCE07BBBCFE20CA9063AC09B1F633F5F5BFB509EC7
+5693A438B4047C9E8003CF2EEB04CF01E2774833BBE362D13F4A8A412E0816764747F22FA55116
+54E9514424F422AB46EF4CF86647221146DF03F52EA71FE3A7803527D9F490DBE903AB98FC0740
+19AD93740C2137D0C66AC8173C5712C79F354DF602C353BA9693D9EFBAB1CDF1A5C61390A20D99
+EC03B3925DF1EC909A1E0AD055C6DAA5B121FD1BDC5E821DE1FAF5072B99713753C1EF4590A545
+E785AB60688C3931E487C9BA39ED39A5E6412C83619E17F7D86EBEFB8EB0014E923F3EFC671235
+618BCA650C8326D91E5734441E0CBE00231DEA7712D8934B80F8C8524C9D73CF6E62A18F0405B9
+95F11E784F3FE58094ACC46A6EB1B77E8458002AFC70230C249A991B7C6999EEE6E968C99374A4
+F3BD222367432D10CB58D0AEC4194118C4843FE651E9B44A4B4692C7AB8524A975256D8AAF9D36
+2A8C35C8EE821B3A182A6C29321900C16DD92E3CCE9C04A44ED2548E74B9EC249085D196B5BBE7
+E6191C8836C40090F5D971BBD9FAC95BD773B350A1F829036DB9B1FBF39F6ACE485AC478C5DD97
+357BDA0492D84BA797C6C8483D38FCC678EBFBAADE3437E56974D27C47191ACDE4AC8947C9F4A2
+EFB3CCB7827FFD33D864EDEE4F272A3EAABB3B3FD0E18223E5A7D755C217E39EE612D98112019F
+9E8D4A880A7807FC421048371219BBB15E591B9AECDDC5FDBD8755E0017F912262F9851D5B9914
+A60BB5AB42187672613899EF5B7521BD155D6C3909EFE0C62FCDD450BF48E1234E7C010851D538
+0AE29706B7DB5B32C663FE3EC4E116385B4C33CE60BD7A94DDC443A671DFA6FD96AD4B132D0641
+03458CFE9DCD0E067688A44A0BCED30F7F3DD39E70751BA1F96D21F316C945923C196F6DEDCD54
+45547A032AA540C0FA2D9A7FA15A45639468249FC2DF296D81E601590CF0B1D96C26F53864B227
+8B311B7BB515407924ED958F051046530A865E723951ACF1F4D0B027656847E2B7341F6A5D6542
+F1F5C245A7241D19FEF18D7FEB18F082119F08A23D710606B034DD5660F2A3B3B08597E3532466
+E4746C313FD77B158A6CE4EE68E311872152CC15C67CAEC51FE84960A4A99A0DD85854205C88D9
+2A6BFE9A6C25C0CF2B7A74971E2911623DB45DE2ECFD23E80C7E0370D0EADF9DE9B75439DA9608
+D2E5D625917D214C7C89393867BA8C7F35A4900D8A60821836BFA9E46AA40A8C4E66D530B184AD
+78040B870FDBD15447008DB9CF9A496DA6E7538516D59AC0D905D91BC92B422F2011596256518C
+E2FE08D1D5690FF091120965A53D30CC1B7F75C83BA9EBCDC32BAAB5C4446CF62B46FBACF9AFEE
+B587B5B768DE8BBAFB3E4C1F67042C7DBEE609D5DF07CCF6CDA5DDFE99661D1CCC927041EB5FE1
+9C11F212CA9DC90A6EB2C96F7CDDA71946385883C6915CE9D7A2773854AD9D19B744839AFE4062
+18
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+
diff --git a/php/extras/fonts/ps/pdflib.upr b/php/extras/fonts/ps/pdflib.upr
new file mode 100644
index 000000000..04f2638db
--- /dev/null
+++ b/php/extras/fonts/ps/pdflib.upr
@@ -0,0 +1,139 @@
+PS-Resources-1.0
+
+% This is a sample UPR file for use with PDFlib.
+% It describes the 14 PDF core fonts (only AFM metrics, no font outline files),
+% and some additional sample fonts (with metrics and font outline file) as
+% well as encodings.
+% This file is not required if you intend to work only with Acrobat's
+% core fonts in the native encoding of your platform.
+%
+% The complete description of the UPR file format can be found in the PDFlib
+% manual.
+
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% The first section declares the resources described in this file.
+% It will have to be changed only rarely.
+% The keywords given here start the later sections. A single '.' on
+% a line closes a section.
+% Note that PDFlib ignores this section -- it is simply for compatibility.
+
+FontAFM
+FontPFM
+FontOutline
+Encoding
+.
+
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% The path entry is a shortcut to the resource files. It will be
+% prepended to all resource file names. Adjust as necessary.
+% Note that the first slash is required by UPR syntax, the rest
+% of the line contains the path (relative to the respective program).
+% The line should _not_ end with a directory separator. On the Mac,
+% of course, you will have to put colons ':' as directory separators.
+%
+% There must be an additional slash in front of the actual path!
+%
+% Important: you will either have to adjust the font path (and remove the
+% percent character at the beginning) in this line, or add appropriate
+% path names to all file names in the rest of this file.
+%
+% Directory prefix example for Windows: /c:/psfonts
+% Important: this must _not_ be set for the PDFlib ActiveX edition!
+% The PDFlib ActiveX edition expects all font files in its fonts directory!
+
+%//home/tm/src/pdflib/fonts
+
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% The AFM font metrics section, one line per font in the format
+% =
+% Note that PostScript font name must not contain any blank character
+
+FontAFM
+Courier=Courier.afm
+Courier-Bold=Courier-Bold.afm
+Courier-BoldOblique=Courier-BoldOblique.afm
+Courier-Oblique=Courier-Oblique.afm
+Helvetica=Helvetica.afm
+Helvetica-Bold=Helvetica-Bold.afm
+Helvetica-BoldOblique=Helvetica-BoldOblique.afm
+Helvetica-Oblique=Helvetica-Oblique.afm
+Symbol=Symbol.afm
+Times-Bold=Times-Bold.afm
+Times-BoldItalic=Times-BoldItalic.afm
+Times-Italic=Times-Italic.afm
+Times-Roman=Times-Roman.afm
+ZapfDingbats=ZapfDingbats.afm
+LuciduxSans=lcdxsr.afm
+.
+
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% The PFM font metrics section, one line per font in the format
+% =
+% Note that PostScript font name must not contain any blank character
+
+FontPFM
+Poetica-ChanceryI=Poetica-ChanceryI.pfm
+% Example for an absolute path name with the prefix not applied (double equal
+% sign):
+Mistral==c:/psfonts/pfm/mist____.pfm
+.
+
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% The PostScript and TrueType font outline section, one line per font in
+% the format
+% =
+% Note that PostScript font names must not contain any blank character,
+% but TrueType font names may contain blank characters (and often do).
+
+FontOutline
+LuciduxSans=lcdxsr.pfa
+.
+
+
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% The Encoding section, one line per encoding in the format
+% =
+% The following encodings are built into PDFlib and need not be
+% configured here: winansi (also good for cp1252 and iso8859-1),
+% macroman, and ebcdic.
+%
+% Unicode-based code pages and name-based encoding tables are equivalent,
+% and will be converted into each other on the fly.
+
+Encoding
+
+%cp1250=cp1250.enc
+cp1250=cp1250.cpg
+cp1251=cp1251.cpg
+cp1252=cp1252.cpg
+cp1253=cp1253.cpg
+cp1254=cp1254.cpg
+cp1255=cp1255.cpg
+cp1256=cp1256.cpg
+cp1257=cp1257.cpg
+cp1258=cp1258.cpg
+
+%iso8859-2=iso8859-2.enc
+iso8859-2=iso8859-2.cpg
+iso8859-3=iso8859-3.cpg
+iso8859-4=iso8859-4.cpg
+iso8859-5=iso8859-5.cpg
+iso8859-6=iso8859-6.cpg
+iso8859-7=iso8859-7.cpg
+iso8859-8=iso8859-8.cpg
+iso8859-9=iso8859-9.cpg
+%iso8859-9=iso8859-9.enc
+iso8859-10=iso8859-10.cpg
+iso8859-13=iso8859-13.cpg
+% ISO 8859-14 doesn't fully work since it uses characters outside AGL!
+iso8859-14=iso8859-14.cpg
+iso8859-15=iso8859-15.cpg
+iso8859-16=iso8859-16.cpg
+%iso8859-15=iso8859-15.enc
+.
diff --git a/php/extras/fonts/ps/print_glyphs.ps b/php/extras/fonts/ps/print_glyphs.ps
new file mode 100644
index 000000000..da051b1c2
Binary files /dev/null and b/php/extras/fonts/ps/print_glyphs.ps differ
diff --git a/php/extras/fonts/ttf/Vera.ttf b/php/extras/fonts/ttf/Vera.ttf
new file mode 100644
index 000000000..58cd6b5e6
Binary files /dev/null and b/php/extras/fonts/ttf/Vera.ttf differ
diff --git a/php/extras/fonts/ttf/VeraBI.ttf b/php/extras/fonts/ttf/VeraBI.ttf
new file mode 100644
index 000000000..b55eee397
Binary files /dev/null and b/php/extras/fonts/ttf/VeraBI.ttf differ
diff --git a/php/extras/fonts/ttf/VeraBd.ttf b/php/extras/fonts/ttf/VeraBd.ttf
new file mode 100644
index 000000000..51d6111d7
Binary files /dev/null and b/php/extras/fonts/ttf/VeraBd.ttf differ
diff --git a/php/extras/fonts/ttf/VeraIt.ttf b/php/extras/fonts/ttf/VeraIt.ttf
new file mode 100644
index 000000000..cc23c9efd
Binary files /dev/null and b/php/extras/fonts/ttf/VeraIt.ttf differ
diff --git a/php/extras/fonts/ttf/VeraMoBI.ttf b/php/extras/fonts/ttf/VeraMoBI.ttf
new file mode 100644
index 000000000..8624542ed
Binary files /dev/null and b/php/extras/fonts/ttf/VeraMoBI.ttf differ
diff --git a/php/extras/fonts/ttf/VeraMoBd.ttf b/php/extras/fonts/ttf/VeraMoBd.ttf
new file mode 100644
index 000000000..9be6547ed
Binary files /dev/null and b/php/extras/fonts/ttf/VeraMoBd.ttf differ
diff --git a/php/extras/fonts/ttf/VeraMoIt.ttf b/php/extras/fonts/ttf/VeraMoIt.ttf
new file mode 100644
index 000000000..240492485
Binary files /dev/null and b/php/extras/fonts/ttf/VeraMoIt.ttf differ
diff --git a/php/extras/fonts/ttf/VeraMono.ttf b/php/extras/fonts/ttf/VeraMono.ttf
new file mode 100644
index 000000000..139f0b431
Binary files /dev/null and b/php/extras/fonts/ttf/VeraMono.ttf differ
diff --git a/php/extras/fonts/ttf/VeraSe.ttf b/php/extras/fonts/ttf/VeraSe.ttf
new file mode 100644
index 000000000..4b4ecc666
Binary files /dev/null and b/php/extras/fonts/ttf/VeraSe.ttf differ
diff --git a/php/extras/fonts/ttf/VeraSeBd.ttf b/php/extras/fonts/ttf/VeraSeBd.ttf
new file mode 100644
index 000000000..672bf761f
Binary files /dev/null and b/php/extras/fonts/ttf/VeraSeBd.ttf differ
diff --git a/php/extras/mibs/AGENTX-MIB.txt b/php/extras/mibs/AGENTX-MIB.txt
new file mode 100644
index 000000000..f9e5acd52
--- /dev/null
+++ b/php/extras/mibs/AGENTX-MIB.txt
@@ -0,0 +1,527 @@
+AGENTX-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, mib-2
+ FROM SNMPv2-SMI
+ SnmpAdminString
+ FROM SNMP-FRAMEWORK-MIB
+ MODULE-COMPLIANCE, OBJECT-GROUP
+ FROM SNMPv2-CONF
+ TEXTUAL-CONVENTION, TimeStamp, TruthValue, TDomain
+ FROM SNMPv2-TC;
+agentxMIB MODULE-IDENTITY
+ LAST-UPDATED "200001100000Z" -- Midnight 10 January 2000
+ ORGANIZATION "AgentX Working Group"
+ CONTACT-INFO "WG-email: agentx@dorothy.bmc.com
+ Subscribe: agentx-request@dorothy.bmc.com
+ WG-email Archive: ftp://ftp.peer.com/pub/agentx/archives
+ FTP repository: ftp://ftp.peer.com/pub/agentx
+ http://www.ietf.org/html.charters/agentx-charter.html
+
+ Chair: Bob Natale
+ ACE*COMM Corporation
+ Email: bnatale@acecomm.com
+
+ WG editor: Mark Ellison
+ Ellison Software Consulting, Inc.
+ Email: ellison@world.std.com
+
+ Co-author: Lauren Heintz
+ Cisco Systems,
+ EMail: lheintz@cisco.com
+
+ Co-author: Smitha Gudur
+ Independent Consultant
+ Email: sgudur@hotmail.com
+ "
+ DESCRIPTION "This is the MIB module for the SNMP Agent Extensibility
+ Protocol (AgentX). This MIB module will be implemented by
+ the master agent.
+ "
+
+ REVISION "200001100000Z" -- Midnight 10 January 2000
+ DESCRIPTION
+ "Initial version published as RFC 2742."
+ ::= { mib-2 74 }
+
+ -- Textual Conventions
+
+ AgentxTAddress ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "Denotes a transport service address. This is identical to
+ the TAddress textual convention (SNMPv2-SMI) except that
+ zero-length values are permitted.
+ "
+ SYNTAX OCTET STRING (SIZE (0..255))
+
+ -- Administrative assignments
+
+ agentxObjects OBJECT IDENTIFIER ::= { agentxMIB 1 }
+ agentxGeneral OBJECT IDENTIFIER ::= { agentxObjects 1 }
+ agentxConnection OBJECT IDENTIFIER ::= { agentxObjects 2 }
+ agentxSession OBJECT IDENTIFIER ::= { agentxObjects 3 }
+ agentxRegistration OBJECT IDENTIFIER ::= { agentxObjects 4 }
+
+ agentxDefaultTimeout OBJECT-TYPE
+ SYNTAX INTEGER (0..255)
+ UNITS "seconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The default length of time, in seconds, that the master
+ agent should allow to elapse after dispatching a message
+ to a session before it regards the subagent as not
+ responding. This is a system-wide value that may
+ override the timeout value associated with a particular
+ session (agentxSessionTimeout) or a particular registered
+ MIB region (agentxRegTimeout). If the associated value of
+ agentxSessionTimeout and agentxRegTimeout are zero, or
+ impractical in accordance with implementation-specific
+ procedure of the master agent, the value represented by
+ this object will be the effective timeout value for the
+
+ master agent to await a response to a dispatch from a
+ given subagent.
+ "
+ DEFVAL { 5 }
+ ::= { agentxGeneral 1 }
+
+ agentxMasterAgentXVer OBJECT-TYPE
+ SYNTAX INTEGER (1..255)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The AgentX protocol version supported by this master agent.
+ The current protocol version is 1. Note that the master agent
+ must also allow interaction with earlier version subagents.
+ "
+ ::= { agentxGeneral 2 }
+
+ -- The AgentX Subagent Connection Group
+
+ agentxConnTableLastChange OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime when the last row creation or deletion
+ occurred in the agentxConnectionTable.
+ "
+ ::= { agentxConnection 1 }
+
+ agentxConnectionTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF AgentxConnectionEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The agentxConnectionTable tracks all current AgentX transport
+ connections. There may be zero, one, or more AgentX sessions
+ carried on a given AgentX connection.
+ "
+ ::= { agentxConnection 2 }
+
+ agentxConnectionEntry OBJECT-TYPE
+ SYNTAX AgentxConnectionEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An agentxConnectionEntry contains information describing a
+ single AgentX transport connection. A connection may be
+
+ used to support zero or more AgentX sessions. An entry is
+ created when a new transport connection is established,
+ and is destroyed when the transport connection is terminated.
+ "
+ INDEX { agentxConnIndex }
+ ::= { agentxConnectionTable 1 }
+
+ AgentxConnectionEntry ::= SEQUENCE {
+ agentxConnIndex Unsigned32,
+ agentxConnOpenTime TimeStamp,
+ agentxConnTransportDomain TDomain,
+ agentxConnTransportAddress AgentxTAddress }
+
+ agentxConnIndex OBJECT-TYPE
+ SYNTAX Unsigned32 (1..4294967295)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "agentxConnIndex contains the value that uniquely identifies
+ an open transport connection used by this master agent
+ to provide AgentX service. Values of this index should
+ not be re-used. The value assigned to a given transport
+ connection is constant for the lifetime of that connection.
+ "
+ ::= { agentxConnectionEntry 1 }
+
+ agentxConnOpenTime OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime when this connection was established
+ and, therefore, its value when this entry was added to the table.
+ "
+ ::= { agentxConnectionEntry 2 }
+
+ agentxConnTransportDomain OBJECT-TYPE
+ SYNTAX TDomain
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The transport protocol in use for this connection to the
+ subagent.
+ "
+ ::= { agentxConnectionEntry 3 }
+
+ agentxConnTransportAddress OBJECT-TYPE
+ SYNTAX AgentxTAddress
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The transport address of the remote (subagent) end of this
+ connection to the master agent. This object may be zero-length
+ for unix-domain sockets (and possibly other types of transport
+ addresses) since the subagent need not bind a filename to its
+ local socket.
+ "
+ ::= { agentxConnectionEntry 4 }
+
+ -- The AgentX Subagent Session Group
+
+ agentxSessionTableLastChange OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime when the last row creation or deletion
+ occurred in the agentxSessionTable.
+ "
+ ::= { agentxSession 1 }
+
+ agentxSessionTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF AgentxSessionEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table of AgentX subagent sessions currently in effect.
+ "
+ ::= { agentxSession 2 }
+
+ agentxSessionEntry OBJECT-TYPE
+ SYNTAX AgentxSessionEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Information about a single open session between the AgentX
+ master agent and a subagent is contained in this entry. An
+ entry is created when a new session is successfully established
+ and is destroyed either when the subagent transport connection
+ has terminated or when the subagent session is closed.
+ "
+ INDEX { agentxConnIndex, agentxSessionIndex }
+ ::= { agentxSessionTable 1 }
+
+ AgentxSessionEntry ::= SEQUENCE {
+ agentxSessionIndex Unsigned32,
+ agentxSessionObjectID OBJECT IDENTIFIER,
+ agentxSessionDescr SnmpAdminString,
+ agentxSessionAdminStatus INTEGER,
+ agentxSessionOpenTime TimeStamp,
+ agentxSessionAgentXVer INTEGER,
+ agentxSessionTimeout INTEGER
+ }
+
+ agentxSessionIndex OBJECT-TYPE
+ SYNTAX Unsigned32 (0..4294967295)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A unique index for the subagent session. It is the same as
+ h.sessionID defined in the agentx header. Note that if
+ a subagent's session with the master agent is closed for
+ any reason its index should not be re-used.
+ A value of zero(0) is specifically allowed in order
+ to be compatible with the definition of h.sessionId.
+ "
+ ::= { agentxSessionEntry 1 }
+
+ agentxSessionObjectID OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "This is taken from the o.id field of the agentx-Open-PDU.
+ This attribute will report a value of '0.0' for subagents
+ not supporting the notion of an AgentX session object
+ identifier.
+ "
+ ::= { agentxSessionEntry 2 }
+
+ agentxSessionDescr OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A textual description of the session. This is analogous to
+ sysDescr defined in the SNMPv2-MIB in RFC 1907 [19] and is
+ taken from the o.descr field of the agentx-Open-PDU.
+ This attribute will report a zero-length string value for
+ subagents not supporting the notion of a session description.
+ "
+ ::= { agentxSessionEntry 3 }
+
+ agentxSessionAdminStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ up(1),
+ down(2)
+ }
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The administrative (desired) status of the session. Setting
+ the value to 'down(2)' closes the subagent session (with c.reason
+ set to 'reasonByManager').
+ "
+ ::= { agentxSessionEntry 4 }
+
+ agentxSessionOpenTime OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime when this session was opened and,
+ therefore, its value when this entry was added to the table.
+ "
+ ::= { agentxSessionEntry 5 }
+
+ agentxSessionAgentXVer OBJECT-TYPE
+ SYNTAX INTEGER (1..255)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The version of the AgentX protocol supported by the
+ session. This must be less than or equal to the value of
+ agentxMasterAgentXVer.
+ "
+ ::= { agentxSessionEntry 6 }
+
+ agentxSessionTimeout OBJECT-TYPE
+ SYNTAX INTEGER (0..255)
+ UNITS "seconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The length of time, in seconds, that a master agent should
+ allow to elapse after dispatching a message to this session
+ before it regards the subagent as not responding. This value
+ is taken from the o.timeout field of the agentx-Open-PDU.
+ This is a session-specific value that may be overridden by
+ values associated with the specific registered MIB regions
+ (see agentxRegTimeout). A value of zero(0) indicates that
+ the master agent's default timeout value should be used
+
+ (see agentxDefaultTimeout).
+ "
+ ::= { agentxSessionEntry 7 }
+
+ -- The AgentX Registration Group
+
+ agentxRegistrationTableLastChange OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime when the last row creation or deletion
+ occurred in the agentxRegistrationTable.
+ "
+ ::= { agentxRegistration 1 }
+
+ agentxRegistrationTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF AgentxRegistrationEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table of registered regions.
+ "
+ ::= { agentxRegistration 2 }
+
+ agentxRegistrationEntry OBJECT-TYPE
+ SYNTAX AgentxRegistrationEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Contains information for a single registered region. An
+ entry is created when a session successfully registers a
+ region and is destroyed for any of three reasons: this region
+ is unregistered by the session, the session is closed,
+ or the subagent connection is closed.
+ "
+ INDEX { agentxConnIndex, agentxSessionIndex, agentxRegIndex }
+ ::= { agentxRegistrationTable 1 }
+
+ AgentxRegistrationEntry ::= SEQUENCE {
+ agentxRegIndex Unsigned32,
+ agentxRegContext OCTET STRING,
+ agentxRegStart OBJECT IDENTIFIER,
+ agentxRegRangeSubId Unsigned32,
+ agentxRegUpperBound Unsigned32,
+ agentxRegPriority Unsigned32,
+ agentxRegTimeout INTEGER,
+ agentxRegInstance TruthValue }
+
+ agentxRegIndex OBJECT-TYPE
+ SYNTAX Unsigned32 (1..4294967295)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "agentxRegIndex uniquely identifies a registration entry.
+ This value is constant for the lifetime of an entry.
+ "
+ ::= { agentxRegistrationEntry 1 }
+
+ agentxRegContext OBJECT-TYPE
+ SYNTAX OCTET STRING
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The context in which the session supports the objects in this
+ region. A zero-length context indicates the default context.
+ "
+ ::= { agentxRegistrationEntry 2 }
+
+ agentxRegStart OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The starting OBJECT IDENTIFIER of this registration entry. The
+ session identified by agentxSessionIndex implements objects
+ starting at this value (inclusive). Note that this value could
+ identify an object type, an object instance, or a partial object
+ instance.
+ "
+ ::= { agentxRegistrationEntry 3 }
+
+ agentxRegRangeSubId OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "agentxRegRangeSubId is used to specify the range. This is
+ taken from r.region_subid in the registration PDU. If the value
+ of this object is zero, no range is specified. If it is non-zero,
+ it identifies the `nth' sub-identifier in r.region for which
+ this entry's agentxRegUpperBound value is substituted in the
+ OID for purposes of defining the region's upper bound.
+ "
+ ::= { agentxRegistrationEntry 4 }
+
+ agentxRegUpperBound OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "agentxRegUpperBound represents the upper-bound sub-identifier in
+ a registration. This is taken from the r.upper_bound in the
+ registration PDU. If agentxRegRangeSubid (r.region_subid) is
+ zero, this value is also zero and is not used to define an upper
+ bound for this registration.
+ "
+ ::= { agentxRegistrationEntry 5 }
+
+ agentxRegPriority OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The registration priority. Lower values have higher priority.
+ This value is taken from r.priority in the register PDU.
+ Sessions should use the value of 127 for r.priority if a
+ default value is desired.
+ "
+ ::= { agentxRegistrationEntry 6 }
+
+ agentxRegTimeout OBJECT-TYPE
+ SYNTAX INTEGER (0..255)
+ UNITS "seconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The timeout value, in seconds, for responses to
+ requests associated with this registered MIB region.
+ A value of zero(0) indicates the default value (indicated
+ by by agentxSessionTimeout or agentxDefaultTimeout) is to
+ be used. This value is taken from the r.timeout field of
+ the agentx-Register-PDU.
+ "
+ ::= { agentxRegistrationEntry 7 }
+
+ agentxRegInstance OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of agentxRegInstance is `true' for
+ registrations for which the INSTANCE_REGISTRATION
+ was set, and is `false' for all other registrations.
+ "
+ ::= { agentxRegistrationEntry 8 }
+
+ -- Conformance Statements for AgentX
+
+ agentxConformance OBJECT IDENTIFIER ::= { agentxMIB 2 }
+ agentxMIBGroups OBJECT IDENTIFIER ::= { agentxConformance 1 }
+ agentxMIBCompliances OBJECT IDENTIFIER ::= { agentxConformance 2 }
+
+ -- Compliance Statements for AgentX
+
+ agentxMIBCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for SNMP entities that implement the
+ AgentX protocol. Note that a compliant agent can implement all
+ objects in this MIB module as read-only.
+ "
+ MODULE -- this module
+ MANDATORY-GROUPS { agentxMIBGroup }
+
+ OBJECT agentxSessionAdminStatus
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required.
+ "
+ ::= { agentxMIBCompliances 1 }
+
+ agentxMIBGroup OBJECT-GROUP
+ OBJECTS {
+ agentxDefaultTimeout,
+ agentxMasterAgentXVer,
+ agentxConnTableLastChange,
+ agentxConnOpenTime,
+ agentxConnTransportDomain,
+ agentxConnTransportAddress,
+ agentxSessionTableLastChange,
+ agentxSessionTimeout,
+ agentxSessionObjectID,
+ agentxSessionDescr,
+ agentxSessionAdminStatus,
+ agentxSessionOpenTime,
+ agentxSessionAgentXVer,
+ agentxRegistrationTableLastChange,
+ agentxRegContext,
+ agentxRegStart,
+ agentxRegRangeSubId,
+ agentxRegUpperBound,
+ agentxRegPriority,
+ agentxRegTimeout,
+ agentxRegInstance
+ }
+ STATUS current
+ DESCRIPTION
+ "All accessible objects in the AgentX MIB.
+ "
+ ::= { agentxMIBGroups 1 }
+
+ END
diff --git a/php/extras/mibs/DISMAN-EVENT-MIB.txt b/php/extras/mibs/DISMAN-EVENT-MIB.txt
new file mode 100644
index 000000000..bde1cdb94
--- /dev/null
+++ b/php/extras/mibs/DISMAN-EVENT-MIB.txt
@@ -0,0 +1,1955 @@
+DISMAN-EVENT-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE,
+ Integer32, Unsigned32,
+ NOTIFICATION-TYPE, Counter32,
+ Gauge32, mib-2, zeroDotZero FROM SNMPv2-SMI
+ TEXTUAL-CONVENTION, RowStatus,
+ TruthValue FROM SNMPv2-TC
+
+
+ MODULE-COMPLIANCE, OBJECT-GROUP,
+ NOTIFICATION-GROUP FROM SNMPv2-CONF
+ sysUpTime FROM SNMPv2-MIB
+ SnmpTagValue FROM SNMP-TARGET-MIB
+ SnmpAdminString FROM SNMP-FRAMEWORK-MIB;
+
+dismanEventMIB MODULE-IDENTITY
+ LAST-UPDATED "200010160000Z" -- 16 October 2000
+ ORGANIZATION "IETF Distributed Management Working Group"
+ CONTACT-INFO "Ramanathan Kavasseri
+ Cisco Systems, Inc.
+ 170 West Tasman Drive,
+ San Jose CA 95134-1706.
+ Phone: +1 408 526 4527
+ Email: ramk@cisco.com"
+ DESCRIPTION
+ "The MIB module for defining event triggers and actions
+ for network management purposes."
+-- Revision History
+
+ REVISION "200010160000Z" -- 16 October 2000
+ DESCRIPTION "This is the initial version of this MIB.
+ Published as RFC 2981"
+ ::= { mib-2 88 }
+
+dismanEventMIBObjects OBJECT IDENTIFIER ::= { dismanEventMIB 1 }
+
+-- Management Triggered Event (MTE) objects
+
+mteResource OBJECT IDENTIFIER ::= { dismanEventMIBObjects 1 }
+mteTrigger OBJECT IDENTIFIER ::= { dismanEventMIBObjects 2 }
+mteObjects OBJECT IDENTIFIER ::= { dismanEventMIBObjects 3 }
+mteEvent OBJECT IDENTIFIER ::= { dismanEventMIBObjects 4 }
+
+--
+-- Textual Conventions
+--
+
+FailureReason ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "Reasons for failures in an attempt to perform a management
+ request.
+
+ The first group of errors, numbered less than 0, are related
+ to problems in sending the request. The existence of a
+ particular error code here does not imply that all
+ implementations are capable of sensing that error and
+
+
+ returning that code.
+
+ The second group, numbered greater than 0, are copied
+ directly from SNMP protocol operations and are intended to
+ carry exactly the meanings defined for the protocol as returned
+ in an SNMP response.
+
+ localResourceLack some local resource such as memory
+ lacking or
+ mteResourceSampleInstanceMaximum
+ exceeded
+ badDestination unrecognized domain name or otherwise
+ invalid destination address
+ destinationUnreachable can't get to destination address
+ noResponse no response to SNMP request
+ badType the data syntax of a retrieved object
+ as not as expected
+ sampleOverrun another sample attempt occurred before
+ the previous one completed"
+
+ SYNTAX INTEGER { localResourceLack(-1),
+ badDestination(-2),
+ destinationUnreachable(-3),
+ noResponse(-4),
+ badType(-5),
+ sampleOverrun(-6),
+
+ noError(0),
+
+ tooBig(1),
+ noSuchName(2),
+ badValue(3),
+ readOnly(4),
+ genErr(5),
+ noAccess(6),
+ wrongType(7),
+ wrongLength(8),
+ wrongEncoding(9),
+ wrongValue(10),
+ noCreation(11),
+ inconsistentValue(12),
+ resourceUnavailable(13),
+ commitFailed(14),
+ undoFailed(15),
+ authorizationError(16),
+ notWritable(17),
+ inconsistentName(18) }
+--
+
+
+-- Resource Control Section
+--
+
+mteResourceSampleMinimum OBJECT-TYPE
+ SYNTAX Integer32 (1..2147483647)
+ UNITS "seconds"
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The minimum mteTriggerFrequency this system will
+ accept. A system may use the larger values of this minimum to
+ lessen the impact of constant sampling. For larger
+ sampling intervals the system samples less often and
+ suffers less overhead. This object provides a way to enforce
+ such lower overhead for all triggers created after it is
+ set.
+
+ Unless explicitly resource limited, a system's value for
+ this object SHOULD be 1, allowing as small as a 1 second
+ interval for ongoing trigger sampling.
+
+ Changing this value will not invalidate an existing setting
+ of mteTriggerFrequency."
+ ::= { mteResource 1 }
+
+mteResourceSampleInstanceMaximum OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "instances"
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The maximum number of instance entries this system will
+ support for sampling.
+
+ These are the entries that maintain state, one for each
+ instance of each sampled object as selected by
+ mteTriggerValueID. Note that wildcarded objects result
+ in multiple instances of this state.
+
+ A value of 0 indicates no preset limit, that is, the limit
+ is dynamic based on system operation and resources.
+
+ Unless explicitly resource limited, a system's value for
+ this object SHOULD be 0.
+
+ Changing this value will not eliminate or inhibit existing
+ sample state but could prevent allocation of additional state
+ information."
+
+
+ ::= { mteResource 2 }
+
+mteResourceSampleInstances OBJECT-TYPE
+ SYNTAX Gauge32
+ UNITS "instances"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of currently active instance entries as
+ defined for mteResourceSampleInstanceMaximum."
+ ::= { mteResource 3 }
+
+mteResourceSampleInstancesHigh OBJECT-TYPE
+ SYNTAX Gauge32
+ UNITS "instances"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The highest value of mteResourceSampleInstances that has
+ occurred since initialization of the management system."
+ ::= { mteResource 4 }
+
+mteResourceSampleInstanceLacks OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "instances"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of times this system could not take a new sample
+ because that allocation would have exceeded the limit set by
+ mteResourceSampleInstanceMaximum."
+ ::= { mteResource 5 }
+
+--
+-- Trigger Section
+--
+
+-- Counters
+
+mteTriggerFailures OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "failures"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of times an attempt to check for a trigger
+ condition has failed. This counts individually for each
+ attempt in a group of targets or each attempt for a
+
+
+ wildcarded object."
+ ::= { mteTrigger 1 }
+
+--
+-- Trigger Table
+--
+
+mteTriggerTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF MteTriggerEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table of management event trigger information."
+ ::= { mteTrigger 2 }
+
+mteTriggerEntry OBJECT-TYPE
+ SYNTAX MteTriggerEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Information about a single trigger. Applications create and
+ delete entries using mteTriggerEntryStatus."
+ INDEX { mteOwner, IMPLIED mteTriggerName }
+ ::= { mteTriggerTable 1 }
+
+MteTriggerEntry ::= SEQUENCE {
+ mteOwner SnmpAdminString,
+ mteTriggerName SnmpAdminString,
+ mteTriggerComment SnmpAdminString,
+ mteTriggerTest BITS,
+ mteTriggerSampleType INTEGER,
+ mteTriggerValueID OBJECT IDENTIFIER,
+ mteTriggerValueIDWildcard TruthValue,
+ mteTriggerTargetTag SnmpTagValue,
+ mteTriggerContextName SnmpAdminString,
+ mteTriggerContextNameWildcard TruthValue,
+ mteTriggerFrequency Unsigned32,
+ mteTriggerObjectsOwner SnmpAdminString,
+ mteTriggerObjects SnmpAdminString,
+ mteTriggerEnabled TruthValue,
+ mteTriggerEntryStatus RowStatus
+}
+
+mteOwner OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(0..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+
+
+ "The owner of this entry. The exact semantics of this
+ string are subject to the security policy defined by the
+ security administrator."
+ ::= { mteTriggerEntry 1 }
+
+mteTriggerName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (1..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A locally-unique, administratively assigned name for the
+ trigger within the scope of mteOwner."
+ ::= { mteTriggerEntry 2 }
+
+mteTriggerComment OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "A description of the trigger's function and use."
+ DEFVAL { ''H }
+ ::= { mteTriggerEntry 3 }
+
+mteTriggerTest OBJECT-TYPE
+ SYNTAX BITS { existence(0), boolean(1), threshold(2) }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The type of trigger test to perform. For 'boolean' and
+ 'threshold' tests, the object at mteTriggerValueID MUST
+ evaluate to an integer, that is, anything that ends up encoded
+ for transmission (that is, in BER, not ASN.1) as an integer.
+
+ For 'existence', the specific test is as selected by
+ mteTriggerExistenceTest. When an object appears, vanishes
+ or changes value, the trigger fires. If the object's
+ appearance caused the trigger firing, the object MUST
+ vanish before the trigger can be fired again for it, and
+ vice versa. If the trigger fired due to a change in the
+ object's value, it will be fired again on every successive
+ value change for that object.
+
+ For 'boolean', the specific test is as selected by
+ mteTriggerBooleanTest. If the test result is true the trigger
+ fires. The trigger will not fire again until the value has
+ become false and come back to true.
+
+ For 'threshold' the test works as described below for
+
+
+ mteTriggerThresholdStartup, mteTriggerThresholdRising, and
+ mteTriggerThresholdFalling.
+
+ Note that combining 'boolean' and 'threshold' tests on the
+ same object may be somewhat redundant."
+ DEFVAL { { boolean } }
+ ::= { mteTriggerEntry 4 }
+
+mteTriggerSampleType OBJECT-TYPE
+ SYNTAX INTEGER { absoluteValue(1), deltaValue(2) }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The type of sampling to perform.
+
+ An 'absoluteValue' sample requires only a single sample to be
+ meaningful, and is exactly the value of the object at
+ mteTriggerValueID at the sample time.
+
+ A 'deltaValue' requires two samples to be meaningful and is
+ thus not available for testing until the second and subsequent
+ samples after the object at mteTriggerValueID is first found
+ to exist. It is the difference between the two samples. For
+ unsigned values it is always positive, based on unsigned
+ arithmetic. For signed values it can be positive or negative.
+
+ For SNMP counters to be meaningful they should be sampled as a
+ 'deltaValue'.
+
+ For 'deltaValue' mteTriggerDeltaTable contains further
+ parameters.
+
+ If only 'existence' is set in mteTriggerTest this object has
+ no meaning."
+ DEFVAL { absoluteValue }
+ ::= { mteTriggerEntry 5 }
+
+mteTriggerValueID OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The object identifier of the MIB object to sample to see
+ if the trigger should fire.
+
+ This may be wildcarded by truncating all or part of the
+ instance portion, in which case the value is obtained
+ as if with a GetNext function, checking multiple values
+
+
+ if they exist. If such wildcarding is applied,
+ mteTriggerValueIDWildcard must be 'true' and if not it must
+ be 'false'.
+
+ Bad object identifiers or a mismatch between truncating the
+ identifier and the value of mteTriggerValueIDWildcard result
+ in operation as one would expect when providing the wrong
+ identifier to a Get or GetNext operation. The Get will fail
+ or get the wrong object. The GetNext will indeed get whatever
+ is next, proceeding until it runs past the initial part of the
+ identifier and perhaps many unintended objects for confusing
+ results. If the value syntax of those objects is not usable,
+ that results in a 'badType' error that terminates the scan.
+
+ Each instance that fills the wildcard is independent of any
+ additional instances, that is, wildcarded objects operate
+ as if there were a separate table entry for each instance
+ that fills the wildcard without having to actually predict
+ all possible instances ahead of time."
+ DEFVAL { zeroDotZero }
+ ::= { mteTriggerEntry 6 }
+
+mteTriggerValueIDWildcard OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Control for whether mteTriggerValueID is to be treated as
+ fully-specified or wildcarded, with 'true' indicating wildcard."
+ DEFVAL { false }
+ ::= { mteTriggerEntry 7 }
+
+mteTriggerTargetTag OBJECT-TYPE
+ SYNTAX SnmpTagValue
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The tag for the target(s) from which to obtain the condition
+ for a trigger check.
+
+ A length of 0 indicates the local system. In this case,
+ access to the objects indicated by mteTriggerValueID is under
+ the security credentials of the requester that set
+ mteTriggerEntryStatus to 'active'. Those credentials are the
+ input parameters for isAccessAllowed from the Architecture for
+ Describing SNMP Management Frameworks.
+
+ Otherwise access rights are checked according to the security
+
+
+ parameters resulting from the tag."
+ DEFVAL { ''H }
+ ::= { mteTriggerEntry 8 }
+
+mteTriggerContextName OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The management context from which to obtain mteTriggerValueID.
+
+ This may be wildcarded by leaving characters off the end. For
+ example use 'Repeater' to wildcard to 'Repeater1',
+ 'Repeater2', 'Repeater-999.87b', and so on. To indicate such
+ wildcarding is intended, mteTriggerContextNameWildcard must
+ be 'true'.
+
+ Each instance that fills the wildcard is independent of any
+ additional instances, that is, wildcarded objects operate
+ as if there were a separate table entry for each instance
+ that fills the wildcard without having to actually predict
+ all possible instances ahead of time.
+
+ Operation of this feature assumes that the local system has a
+ list of available contexts against which to apply the
+ wildcard. If the objects are being read from the local
+ system, this is clearly the system's own list of contexts.
+ For a remote system a local version of such a list is not
+ defined by any current standard and may not be available, so
+ this function MAY not be supported."
+ DEFVAL { ''H }
+ ::= { mteTriggerEntry 9 }
+
+mteTriggerContextNameWildcard OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Control for whether mteTriggerContextName is to be treated as
+ fully-specified or wildcarded, with 'true' indicating wildcard."
+ DEFVAL { false }
+ ::= { mteTriggerEntry 10 }
+
+mteTriggerFrequency OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "seconds"
+ MAX-ACCESS read-create
+ STATUS current
+
+
+ DESCRIPTION
+ "The number of seconds to wait between trigger samples. To
+ encourage consistency in sampling, the interval is measured
+ from the beginning of one check to the beginning of the next
+ and the timer is restarted immediately when it expires, not
+ when the check completes.
+
+ If the next sample begins before the previous one completed the
+ system may either attempt to make the check or treat this as an
+ error condition with the error 'sampleOverrun'.
+
+ A frequency of 0 indicates instantaneous recognition of the
+ condition. This is not possible in many cases, but may
+ be supported in cases where it makes sense and the system is
+ able to do so. This feature allows the MIB to be used in
+ implementations where such interrupt-driven behavior is
+ possible and is not likely to be supported for all MIB objects
+ even then since such sampling generally has to be tightly
+ integrated into low-level code.
+
+ Systems that can support this SHOULD document those cases
+ where it can be used. In cases where it can not, setting this
+ object to 0 should be disallowed."
+ DEFVAL { 600 }
+ ::= { mteTriggerEntry 11 }
+
+mteTriggerObjectsOwner OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (0..32))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "To go with mteTriggerObjects, the mteOwner of a group of
+ objects from mteObjectsTable."
+ DEFVAL { ''H }
+ ::= { mteTriggerEntry 12 }
+
+mteTriggerObjects OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (0..32))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The mteObjectsName of a group of objects from
+ mteObjectsTable. These objects are to be added to any
+ Notification resulting from the firing of this trigger.
+
+ A list of objects may also be added based on the event or on
+ the value of mteTriggerTest.
+
+
+
+ A length of 0 indicates no additional objects."
+ DEFVAL { ''H }
+ ::= { mteTriggerEntry 13 }
+
+mteTriggerEnabled OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "A control to allow a trigger to be configured but not used.
+ When the value is 'false' the trigger is not sampled."
+ DEFVAL { false }
+ ::= { mteTriggerEntry 14 }
+
+mteTriggerEntryStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The control that allows creation and deletion of entries.
+ Once made active an entry may not be modified except to
+ delete it."
+ ::= { mteTriggerEntry 15 }
+
+--
+-- Trigger Delta Table
+--
+
+mteTriggerDeltaTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF MteTriggerDeltaEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table of management event trigger information for delta
+ sampling."
+ ::= { mteTrigger 3 }
+
+mteTriggerDeltaEntry OBJECT-TYPE
+ SYNTAX MteTriggerDeltaEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Information about a single trigger's delta sampling. Entries
+ automatically exist in this this table for each mteTriggerEntry
+ that has mteTriggerSampleType set to 'deltaValue'."
+ INDEX { mteOwner, IMPLIED mteTriggerName }
+ ::= { mteTriggerDeltaTable 1 }
+
+
+
+MteTriggerDeltaEntry ::= SEQUENCE {
+ mteTriggerDeltaDiscontinuityID OBJECT IDENTIFIER,
+ mteTriggerDeltaDiscontinuityIDWildcard TruthValue,
+ mteTriggerDeltaDiscontinuityIDType INTEGER
+}
+
+sysUpTimeInstance OBJECT IDENTIFIER ::= { sysUpTime 0 }
+
+mteTriggerDeltaDiscontinuityID OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The OBJECT IDENTIFIER (OID) of a TimeTicks, TimeStamp, or
+ DateAndTime object that indicates a discontinuity in the value
+ at mteTriggerValueID.
+
+ The OID may be for a leaf object (e.g. sysUpTime.0) or may
+ be wildcarded to match mteTriggerValueID.
+
+ This object supports normal checking for a discontinuity in a
+ counter. Note that if this object does not point to sysUpTime
+ discontinuity checking MUST still check sysUpTime for an overall
+ discontinuity.
+
+ If the object identified is not accessible the sample attempt
+ is in error, with the error code as from an SNMP request.
+
+ Bad object identifiers or a mismatch between truncating the
+ identifier and the value of mteDeltaDiscontinuityIDWildcard
+ result in operation as one would expect when providing the
+ wrong identifier to a Get operation. The Get will fail or get
+ the wrong object. If the value syntax of those objects is not
+ usable, that results in an error that terminates the sample
+ with a 'badType' error code."
+ DEFVAL { sysUpTimeInstance }
+ ::= { mteTriggerDeltaEntry 1 }
+
+mteTriggerDeltaDiscontinuityIDWildcard OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "Control for whether mteTriggerDeltaDiscontinuityID is to be
+ treated as fully-specified or wildcarded, with 'true'
+ indicating wildcard. Note that the value of this object will
+ be the same as that of the corresponding instance of
+ mteTriggerValueIDWildcard when the corresponding
+
+
+ mteTriggerSampleType is 'deltaValue'."
+ DEFVAL { false }
+ ::= { mteTriggerDeltaEntry 2 }
+
+mteTriggerDeltaDiscontinuityIDType OBJECT-TYPE
+ SYNTAX INTEGER { timeTicks(1), timeStamp(2), dateAndTime(3) }
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The value 'timeTicks' indicates the
+ mteTriggerDeltaDiscontinuityID of this row is of syntax
+ TimeTicks. The value 'timeStamp' indicates syntax TimeStamp.
+ The value 'dateAndTime' indicates syntax DateAndTime."
+ DEFVAL { timeTicks }
+ ::= { mteTriggerDeltaEntry 3 }
+
+--
+-- Trigger Existence Table
+--
+
+mteTriggerExistenceTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF MteTriggerExistenceEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table of management event trigger information for existence
+ triggers."
+ ::= { mteTrigger 4 }
+
+mteTriggerExistenceEntry OBJECT-TYPE
+ SYNTAX MteTriggerExistenceEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Information about a single existence trigger. Entries
+ automatically exist in this this table for each mteTriggerEntry
+ that has 'existence' set in mteTriggerTest."
+ INDEX { mteOwner, IMPLIED mteTriggerName }
+ ::= { mteTriggerExistenceTable 1 }
+
+MteTriggerExistenceEntry ::= SEQUENCE {
+ mteTriggerExistenceTest BITS,
+ mteTriggerExistenceStartup BITS,
+ mteTriggerExistenceObjectsOwner SnmpAdminString,
+ mteTriggerExistenceObjects SnmpAdminString,
+ mteTriggerExistenceEventOwner SnmpAdminString,
+ mteTriggerExistenceEvent SnmpAdminString
+}
+
+
+mteTriggerExistenceTest OBJECT-TYPE
+ SYNTAX BITS { present(0), absent(1), changed(2) }
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The type of existence test to perform. The trigger fires
+ when the object at mteTriggerValueID is seen to go from
+ present to absent, from absent to present, or to have it's
+ value changed, depending on which tests are selected:
+
+ present(0) - when this test is selected, the trigger fires
+ when the mteTriggerValueID object goes from absent to present.
+
+ absent(1) - when this test is selected, the trigger fires
+ when the mteTriggerValueID object goes from present to absent.
+ changed(2) - when this test is selected, the trigger fires
+ the mteTriggerValueID object value changes.
+
+ Once the trigger has fired for either presence or absence it
+ will not fire again for that state until the object has been
+ to the other state. "
+ DEFVAL { { present, absent } }
+ ::= { mteTriggerExistenceEntry 1 }
+
+mteTriggerExistenceStartup OBJECT-TYPE
+ SYNTAX BITS { present(0), absent(1) }
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "Control for whether an event may be triggered when this entry
+ is first set to 'active' and the test specified by
+ mteTriggerExistenceTest is true. Setting an option causes
+ that trigger to fire when its test is true."
+ DEFVAL { { present, absent } }
+ ::= { mteTriggerExistenceEntry 2 }
+
+mteTriggerExistenceObjectsOwner OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (0..32))
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "To go with mteTriggerExistenceObjects, the mteOwner of a
+ group of objects from mteObjectsTable."
+ DEFVAL { ''H }
+ ::= { mteTriggerExistenceEntry 3 }
+
+mteTriggerExistenceObjects OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (0..32))
+
+
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The mteObjectsName of a group of objects from
+ mteObjectsTable. These objects are to be added to any
+ Notification resulting from the firing of this trigger for
+ this test.
+
+ A list of objects may also be added based on the overall
+ trigger, the event or other settings in mteTriggerTest.
+
+ A length of 0 indicates no additional objects."
+ DEFVAL { ''H }
+ ::= { mteTriggerExistenceEntry 4 }
+
+mteTriggerExistenceEventOwner OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (0..32))
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "To go with mteTriggerExistenceEvent, the mteOwner of an event
+ entry from the mteEventTable."
+ DEFVAL { ''H }
+ ::= { mteTriggerExistenceEntry 5 }
+
+mteTriggerExistenceEvent OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (0..32))
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The mteEventName of the event to invoke when mteTriggerType is
+ 'existence' and this trigger fires. A length of 0 indicates no
+ event."
+ DEFVAL { ''H }
+ ::= { mteTriggerExistenceEntry 6 }
+
+--
+-- Trigger Boolean Table
+--
+
+mteTriggerBooleanTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF MteTriggerBooleanEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table of management event trigger information for boolean
+ triggers."
+ ::= { mteTrigger 5 }
+
+
+mteTriggerBooleanEntry OBJECT-TYPE
+ SYNTAX MteTriggerBooleanEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Information about a single boolean trigger. Entries
+ automatically exist in this this table for each mteTriggerEntry
+ that has 'boolean' set in mteTriggerTest."
+ INDEX { mteOwner, IMPLIED mteTriggerName }
+ ::= { mteTriggerBooleanTable 1 }
+
+MteTriggerBooleanEntry ::= SEQUENCE {
+ mteTriggerBooleanComparison INTEGER,
+ mteTriggerBooleanValue Integer32,
+ mteTriggerBooleanStartup TruthValue,
+ mteTriggerBooleanObjectsOwner SnmpAdminString,
+ mteTriggerBooleanObjects SnmpAdminString,
+ mteTriggerBooleanEventOwner SnmpAdminString,
+ mteTriggerBooleanEvent SnmpAdminString
+}
+
+mteTriggerBooleanComparison OBJECT-TYPE
+ SYNTAX INTEGER { unequal(1), equal(2),
+ less(3), lessOrEqual(4),
+ greater(5), greaterOrEqual(6) }
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The type of boolean comparison to perform.
+
+ The value at mteTriggerValueID is compared to
+ mteTriggerBooleanValue, so for example if
+ mteTriggerBooleanComparison is 'less' the result would be true
+ if the value at mteTriggerValueID is less than the value of
+ mteTriggerBooleanValue."
+ DEFVAL { unequal }
+ ::= { mteTriggerBooleanEntry 1 }
+
+mteTriggerBooleanValue OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The value to use for the test specified by
+ mteTriggerBooleanTest."
+ DEFVAL { 0 }
+ ::= { mteTriggerBooleanEntry 2 }
+
+
+
+mteTriggerBooleanStartup OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "Control for whether an event may be triggered when this entry
+ is first set to 'active' or a new instance of the object at
+ mteTriggerValueID is found and the test specified by
+ mteTriggerBooleanComparison is true. In that case an event is
+ triggered if mteTriggerBooleanStartup is 'true'."
+ DEFVAL { true }
+ ::= { mteTriggerBooleanEntry 3 }
+
+mteTriggerBooleanObjectsOwner OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (0..32))
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "To go with mteTriggerBooleanObjects, the mteOwner of a group
+ of objects from mteObjectsTable."
+ DEFVAL { ''H }
+ ::= { mteTriggerBooleanEntry 4 }
+
+mteTriggerBooleanObjects OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (0..32))
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The mteObjectsName of a group of objects from
+ mteObjectsTable. These objects are to be added to any
+ Notification resulting from the firing of this trigger for
+ this test.
+
+ A list of objects may also be added based on the overall
+ trigger, the event or other settings in mteTriggerTest.
+
+ A length of 0 indicates no additional objects."
+ DEFVAL { ''H }
+ ::= { mteTriggerBooleanEntry 5 }
+
+mteTriggerBooleanEventOwner OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (0..32))
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "To go with mteTriggerBooleanEvent, the mteOwner of an event
+ entry from mteEventTable."
+ DEFVAL { ''H }
+
+
+ ::= { mteTriggerBooleanEntry 6 }
+
+mteTriggerBooleanEvent OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (0..32))
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The mteEventName of the event to invoke when mteTriggerType is
+ 'boolean' and this trigger fires. A length of 0 indicates no
+ event."
+ DEFVAL { ''H }
+ ::= { mteTriggerBooleanEntry 7 }
+
+--
+-- Trigger Threshold Table
+--
+
+mteTriggerThresholdTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF MteTriggerThresholdEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table of management event trigger information for threshold
+ triggers."
+ ::= { mteTrigger 6 }
+
+mteTriggerThresholdEntry OBJECT-TYPE
+ SYNTAX MteTriggerThresholdEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Information about a single threshold trigger. Entries
+ automatically exist in this table for each mteTriggerEntry
+ that has 'threshold' set in mteTriggerTest."
+ INDEX { mteOwner, IMPLIED mteTriggerName }
+ ::= { mteTriggerThresholdTable 1 }
+
+MteTriggerThresholdEntry ::= SEQUENCE {
+ mteTriggerThresholdStartup INTEGER,
+ mteTriggerThresholdRising Integer32,
+ mteTriggerThresholdFalling Integer32,
+ mteTriggerThresholdDeltaRising Integer32,
+ mteTriggerThresholdDeltaFalling Integer32,
+ mteTriggerThresholdObjectsOwner SnmpAdminString,
+ mteTriggerThresholdObjects SnmpAdminString,
+ mteTriggerThresholdRisingEventOwner SnmpAdminString,
+ mteTriggerThresholdRisingEvent SnmpAdminString,
+ mteTriggerThresholdFallingEventOwner SnmpAdminString,
+
+
+ mteTriggerThresholdFallingEvent SnmpAdminString,
+ mteTriggerThresholdDeltaRisingEventOwner SnmpAdminString,
+ mteTriggerThresholdDeltaRisingEvent SnmpAdminString,
+ mteTriggerThresholdDeltaFallingEventOwner SnmpAdminString,
+ mteTriggerThresholdDeltaFallingEvent SnmpAdminString
+}
+
+mteTriggerThresholdStartup OBJECT-TYPE
+ SYNTAX INTEGER { rising(1), falling(2), risingOrFalling(3) }
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The event that may be triggered when this entry is first
+ set to 'active' and a new instance of the object at
+ mteTriggerValueID is found. If the first sample after this
+ instance becomes active is greater than or equal to
+ mteTriggerThresholdRising and mteTriggerThresholdStartup is
+ equal to 'rising' or 'risingOrFalling', then one
+ mteTriggerThresholdRisingEvent is triggered for that instance.
+ If the first sample after this entry becomes active is less
+ than or equal to mteTriggerThresholdFalling and
+ mteTriggerThresholdStartup is equal to 'falling' or
+ 'risingOrFalling', then one mteTriggerThresholdRisingEvent is
+ triggered for that instance."
+ DEFVAL { risingOrFalling }
+ ::= { mteTriggerThresholdEntry 1 }
+
+mteTriggerThresholdRising OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "A threshold value to check against if mteTriggerType is
+ 'threshold'.
+
+ When the current sampled value is greater than or equal to
+ this threshold, and the value at the last sampling interval
+ was less than this threshold, one
+ mteTriggerThresholdRisingEvent is triggered. That event is
+ also triggered if the first sample after this entry becomes
+ active is greater than or equal to this threshold and
+ mteTriggerThresholdStartup is equal to 'rising' or
+ 'risingOrFalling'.
+
+ After a rising event is generated, another such event is not
+ triggered until the sampled value falls below this threshold
+ and reaches mteTriggerThresholdFalling."
+ DEFVAL { 0 }
+
+
+ ::= { mteTriggerThresholdEntry 2 }
+
+mteTriggerThresholdFalling OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "A threshold value to check against if mteTriggerType is
+ 'threshold'.
+
+ When the current sampled value is less than or equal to this
+ threshold, and the value at the last sampling interval was
+ greater than this threshold, one
+ mteTriggerThresholdFallingEvent is triggered. That event is
+ also triggered if the first sample after this entry becomes
+ active is less than or equal to this threshold and
+ mteTriggerThresholdStartup is equal to 'falling' or
+ 'risingOrFalling'.
+
+ After a falling event is generated, another such event is not
+ triggered until the sampled value rises above this threshold
+ and reaches mteTriggerThresholdRising."
+ DEFVAL { 0 }
+ ::= { mteTriggerThresholdEntry 3 }
+
+mteTriggerThresholdDeltaRising OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "A threshold value to check against if mteTriggerType is
+ 'threshold'.
+
+ When the delta value (difference) between the current sampled
+ value (value(n)) and the previous sampled value (value(n-1))
+ is greater than or equal to this threshold,
+ and the delta value calculated at the last sampling interval
+ (i.e. value(n-1) - value(n-2)) was less than this threshold,
+ one mteTriggerThresholdDeltaRisingEvent is triggered. That event
+ is also triggered if the first delta value calculated after this
+ entry becomes active, i.e. value(2) - value(1), where value(1)
+ is the first sample taken of that instance, is greater than or
+ equal to this threshold.
+
+ After a rising event is generated, another such event is not
+ triggered until the delta value falls below this threshold and
+ reaches mteTriggerThresholdDeltaFalling."
+ DEFVAL { 0 }
+
+
+ ::= { mteTriggerThresholdEntry 4 }
+
+mteTriggerThresholdDeltaFalling OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "A threshold value to check against if mteTriggerType is
+ 'threshold'.
+
+ When the delta value (difference) between the current sampled
+ value (value(n)) and the previous sampled value (value(n-1))
+ is less than or equal to this threshold,
+ and the delta value calculated at the last sampling interval
+ (i.e. value(n-1) - value(n-2)) was greater than this threshold,
+ one mteTriggerThresholdDeltaFallingEvent is triggered. That event
+ is also triggered if the first delta value calculated after this
+ entry becomes active, i.e. value(2) - value(1), where value(1)
+ is the first sample taken of that instance, is less than or
+ equal to this threshold.
+
+ After a falling event is generated, another such event is not
+ triggered until the delta value falls below this threshold and
+ reaches mteTriggerThresholdDeltaRising."
+ DEFVAL { 0 }
+ ::= { mteTriggerThresholdEntry 5 }
+
+mteTriggerThresholdObjectsOwner OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (0..32))
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "To go with mteTriggerThresholdObjects, the mteOwner of a group
+ of objects from mteObjectsTable."
+ DEFVAL { ''H }
+ ::= { mteTriggerThresholdEntry 6 }
+
+mteTriggerThresholdObjects OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (0..32))
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The mteObjectsName of a group of objects from
+ mteObjectsTable. These objects are to be added to any
+ Notification resulting from the firing of this trigger for
+ this test.
+
+ A list of objects may also be added based on the overall
+
+
+ trigger, the event or other settings in mteTriggerTest.
+
+ A length of 0 indicates no additional objects."
+ DEFVAL { ''H }
+ ::= { mteTriggerThresholdEntry 7 }
+
+mteTriggerThresholdRisingEventOwner OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (0..32))
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "To go with mteTriggerThresholdRisingEvent, the mteOwner of an
+ event entry from mteEventTable."
+ DEFVAL { ''H }
+ ::= { mteTriggerThresholdEntry 8 }
+
+mteTriggerThresholdRisingEvent OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (0..32))
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The mteEventName of the event to invoke when mteTriggerType is
+ 'threshold' and this trigger fires based on
+ mteTriggerThresholdRising. A length of 0 indicates no event."
+ DEFVAL { ''H }
+ ::= { mteTriggerThresholdEntry 9 }
+
+mteTriggerThresholdFallingEventOwner OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (0..32))
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "To go with mteTriggerThresholdFallingEvent, the mteOwner of an
+ event entry from mteEventTable."
+ DEFVAL { ''H }
+ ::= { mteTriggerThresholdEntry 10 }
+
+mteTriggerThresholdFallingEvent OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (0..32))
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The mteEventName of the event to invoke when mteTriggerType is
+ 'threshold' and this trigger fires based on
+ mteTriggerThresholdFalling. A length of 0 indicates no event."
+ DEFVAL { ''H }
+ ::= { mteTriggerThresholdEntry 11 }
+
+
+
+mteTriggerThresholdDeltaRisingEventOwner OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (0..32))
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "To go with mteTriggerThresholdDeltaRisingEvent, the mteOwner
+ of an event entry from mteEventTable."
+ DEFVAL { ''H }
+ ::= { mteTriggerThresholdEntry 12 }
+
+mteTriggerThresholdDeltaRisingEvent OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (0..32))
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The mteEventName of the event to invoke when mteTriggerType is
+ 'threshold' and this trigger fires based on
+ mteTriggerThresholdDeltaRising. A length of 0 indicates
+ no event."
+ DEFVAL { ''H }
+ ::= { mteTriggerThresholdEntry 13 }
+
+mteTriggerThresholdDeltaFallingEventOwner OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (0..32))
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "To go with mteTriggerThresholdDeltaFallingEvent, the mteOwner
+ of an event entry from mteEventTable."
+ DEFVAL { ''H }
+ ::= { mteTriggerThresholdEntry 14 }
+
+mteTriggerThresholdDeltaFallingEvent OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (0..32))
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The mteEventName of the event to invoke when mteTriggerType is
+ 'threshold' and this trigger fires based on
+ mteTriggerThresholdDeltaFalling. A length of 0 indicates
+ no event."
+ DEFVAL { ''H }
+ ::= { mteTriggerThresholdEntry 15 }
+
+--
+-- Objects Table
+--
+
+
+
+mteObjectsTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF MteObjectsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table of objects that can be added to notifications based
+ on the trigger, trigger test, or event, as pointed to by
+ entries in those tables."
+ ::= { mteObjects 1 }
+
+mteObjectsEntry OBJECT-TYPE
+ SYNTAX MteObjectsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A group of objects. Applications create and delete entries
+ using mteObjectsEntryStatus.
+
+ When adding objects to a notification they are added in the
+ lexical order of their index in this table. Those associated
+ with a trigger come first, then trigger test, then event."
+ INDEX { mteOwner, mteObjectsName, mteObjectsIndex }
+ ::= { mteObjectsTable 1 }
+
+MteObjectsEntry ::= SEQUENCE {
+ mteObjectsName SnmpAdminString,
+ mteObjectsIndex Unsigned32,
+ mteObjectsID OBJECT IDENTIFIER,
+ mteObjectsIDWildcard TruthValue,
+ mteObjectsEntryStatus RowStatus
+ }
+
+mteObjectsName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (1..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A locally-unique, administratively assigned name for a group
+ of objects."
+ ::= { mteObjectsEntry 1 }
+
+mteObjectsIndex OBJECT-TYPE
+ SYNTAX Unsigned32 (1..4294967295)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An arbitrary integer for the purpose of identifying
+ individual objects within a mteObjectsName group.
+
+
+ Objects within a group are placed in the notification in the
+ numerical order of this index.
+
+ Groups are placed in the notification in the order of the
+ selections for overall trigger, trigger test, and event.
+ Within trigger test they are in the same order as the
+ numerical values of the bits defined for mteTriggerTest.
+
+ Bad object identifiers or a mismatch between truncating the
+ identifier and the value of mteDeltaDiscontinuityIDWildcard
+ result in operation as one would expect when providing the
+ wrong identifier to a Get operation. The Get will fail or get
+ the wrong object. If the object is not available it is omitted
+ from the notification."
+ ::= { mteObjectsEntry 2 }
+
+mteObjectsID OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The object identifier of a MIB object to add to a
+ Notification that results from the firing of a trigger.
+
+ This may be wildcarded by truncating all or part of the
+ instance portion, in which case the instance portion of the
+ OID for obtaining this object will be the same as that used
+ in obtaining the mteTriggerValueID that fired. If such
+ wildcarding is applied, mteObjectsIDWildcard must be
+ 'true' and if not it must be 'false'.
+
+ Each instance that fills the wildcard is independent of any
+ additional instances, that is, wildcarded objects operate
+ as if there were a separate table entry for each instance
+ that fills the wildcard without having to actually predict
+ all possible instances ahead of time."
+ DEFVAL { zeroDotZero }
+ ::= { mteObjectsEntry 3 }
+
+mteObjectsIDWildcard OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Control for whether mteObjectsID is to be treated as
+ fully-specified or wildcarded, with 'true' indicating wildcard."
+ DEFVAL { false }
+ ::= { mteObjectsEntry 4 }
+
+
+mteObjectsEntryStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The control that allows creation and deletion of entries.
+ Once made active an entry MAY not be modified except to
+ delete it."
+ ::= { mteObjectsEntry 5 }
+
+--
+-- Event Section
+--
+
+-- Counters
+
+mteEventFailures OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of times an attempt to invoke an event
+ has failed. This counts individually for each
+ attempt in a group of targets or each attempt for a
+ wildcarded trigger object."
+ ::= { mteEvent 1 }
+
+--
+-- Event Table
+--
+
+mteEventTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF MteEventEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table of management event action information."
+ ::= { mteEvent 2 }
+
+mteEventEntry OBJECT-TYPE
+ SYNTAX MteEventEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Information about a single event. Applications create and
+ delete entries using mteEventEntryStatus."
+ INDEX { mteOwner, IMPLIED mteEventName }
+ ::= { mteEventTable 1 }
+
+
+MteEventEntry ::= SEQUENCE {
+ mteEventName SnmpAdminString,
+ mteEventComment SnmpAdminString,
+ mteEventActions BITS,
+ mteEventEnabled TruthValue,
+ mteEventEntryStatus RowStatus
+ }
+
+mteEventName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (1..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A locally-unique, administratively assigned name for the
+ event."
+ ::= { mteEventEntry 1 }
+
+mteEventComment OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "A description of the event's function and use."
+ DEFVAL { ''H }
+ ::= { mteEventEntry 2 }
+
+mteEventActions OBJECT-TYPE
+ SYNTAX BITS { notification(0), set(1) }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The actions to perform when this event occurs.
+
+ For 'notification', Traps and/or Informs are sent according
+ to the configuration in the SNMP Notification MIB.
+
+ For 'set', an SNMP Set operation is performed according to
+ control values in this entry."
+ DEFVAL { {} } -- No bits set.
+ ::= { mteEventEntry 3 }
+
+mteEventEnabled OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "A control to allow an event to be configured but not used.
+ When the value is 'false' the event does not execute even if
+
+
+ triggered."
+ DEFVAL { false }
+ ::= { mteEventEntry 4 }
+
+mteEventEntryStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The control that allows creation and deletion of entries.
+ Once made active an entry MAY not be modified except to
+ delete it."
+ ::= { mteEventEntry 5 }
+
+--
+-- Event Notification Table
+--
+
+mteEventNotificationTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF MteEventNotificationEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table of information about notifications to be sent as a
+ consequence of management events."
+ ::= { mteEvent 3 }
+
+mteEventNotificationEntry OBJECT-TYPE
+ SYNTAX MteEventNotificationEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Information about a single event's notification. Entries
+ automatically exist in this this table for each mteEventEntry
+ that has 'notification' set in mteEventActions."
+ INDEX { mteOwner, IMPLIED mteEventName }
+ ::= { mteEventNotificationTable 1 }
+
+MteEventNotificationEntry ::= SEQUENCE {
+ mteEventNotification OBJECT IDENTIFIER,
+ mteEventNotificationObjectsOwner SnmpAdminString,
+ mteEventNotificationObjects SnmpAdminString
+ }
+
+mteEventNotification OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-write
+ STATUS current
+
+
+ DESCRIPTION
+ "The object identifier from the NOTIFICATION-TYPE for the
+ notification to use if metEventActions has 'notification' set."
+ DEFVAL { zeroDotZero }
+ ::= { mteEventNotificationEntry 1 }
+
+mteEventNotificationObjectsOwner OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (0..32))
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "To go with mteEventNotificationObjects, the mteOwner of a
+ group of objects from mteObjectsTable."
+ DEFVAL { ''H }
+ ::= { mteEventNotificationEntry 2 }
+
+mteEventNotificationObjects OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (0..32))
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The mteObjectsName of a group of objects from
+ mteObjectsTable if mteEventActions has 'notification' set.
+ These objects are to be added to any Notification generated by
+ this event.
+
+ Objects may also be added based on the trigger that stimulated
+ the event.
+
+ A length of 0 indicates no additional objects."
+ DEFVAL { ''H }
+ ::= { mteEventNotificationEntry 3 }
+
+--
+-- Event Set Table
+--
+
+mteEventSetTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF MteEventSetEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table of management event action information."
+ ::= { mteEvent 4 }
+
+mteEventSetEntry OBJECT-TYPE
+ SYNTAX MteEventSetEntry
+ MAX-ACCESS not-accessible
+
+
+ STATUS current
+ DESCRIPTION
+ "Information about a single event's set option. Entries
+ automatically exist in this this table for each mteEventEntry
+ that has 'set' set in mteEventActions."
+ INDEX { mteOwner, IMPLIED mteEventName }
+ ::= { mteEventSetTable 1 }
+
+MteEventSetEntry ::= SEQUENCE {
+ mteEventSetObject OBJECT IDENTIFIER,
+ mteEventSetObjectWildcard TruthValue,
+ mteEventSetValue Integer32,
+ mteEventSetTargetTag SnmpTagValue,
+ mteEventSetContextName SnmpAdminString,
+ mteEventSetContextNameWildcard TruthValue
+ }
+
+mteEventSetObject OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The object identifier from the MIB object to set if
+ mteEventActions has 'set' set.
+
+ This object identifier may be wildcarded by leaving
+ sub-identifiers off the end, in which case
+ nteEventSetObjectWildCard must be 'true'.
+
+ If mteEventSetObject is wildcarded the instance used to set the
+ object to which it points is the same as the instance from the
+ value of mteTriggerValueID that triggered the event.
+
+ Each instance that fills the wildcard is independent of any
+ additional instances, that is, wildcarded objects operate
+ as if there were a separate table entry for each instance
+ that fills the wildcard without having to actually predict
+ all possible instances ahead of time.
+
+ Bad object identifiers or a mismatch between truncating the
+ identifier and the value of mteSetObjectWildcard
+ result in operation as one would expect when providing the
+ wrong identifier to a Set operation. The Set will fail or set
+ the wrong object. If the value syntax of the destination
+ object is not correct, the Set fails with the normal SNMP
+ error code."
+ DEFVAL { zeroDotZero }
+ ::= { mteEventSetEntry 1 }
+
+
+mteEventSetObjectWildcard OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "Control over whether mteEventSetObject is to be treated as
+ fully-specified or wildcarded, with 'true' indicating wildcard
+ if mteEventActions has 'set' set."
+ DEFVAL { false }
+ ::= { mteEventSetEntry 2 }
+
+mteEventSetValue OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The value to which to set the object at mteEventSetObject
+ if mteEventActions has 'set' set."
+ DEFVAL { 0 }
+ ::= { mteEventSetEntry 3 }
+
+mteEventSetTargetTag OBJECT-TYPE
+ SYNTAX SnmpTagValue
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The tag for the target(s) at which to set the object at
+ mteEventSetObject to mteEventSetValue if mteEventActions
+ has 'set' set.
+
+ Systems limited to self management MAY reject a non-zero
+ length for the value of this object.
+
+ A length of 0 indicates the local system. In this case,
+ access to the objects indicated by mteEventSetObject is under
+ the security credentials of the requester that set
+ mteTriggerEntryStatus to 'active'. Those credentials are the
+ input parameters for isAccessAllowed from the Architecture for
+ Describing SNMP Management Frameworks.
+
+ Otherwise access rights are checked according to the security
+ parameters resulting from the tag."
+ DEFVAL { ''H }
+ ::= { mteEventSetEntry 4 }
+
+mteEventSetContextName OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-write
+
+
+ STATUS current
+ DESCRIPTION
+ "The management context in which to set mteEventObjectID.
+ if mteEventActions has 'set' set.
+
+ This may be wildcarded by leaving characters off the end. To
+ indicate such wildcarding mteEventSetContextNameWildcard must
+ be 'true'.
+
+ If this context name is wildcarded the value used to complete
+ the wildcarding of mteTriggerContextName will be appended."
+ DEFVAL { ''H }
+ ::= { mteEventSetEntry 5 }
+
+mteEventSetContextNameWildcard OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "Control for whether mteEventSetContextName is to be treated as
+ fully-specified or wildcarded, with 'true' indicating wildcard
+ if mteEventActions has 'set' set."
+ DEFVAL { false }
+ ::= { mteEventSetEntry 6 }
+
+--
+-- Notifications
+--
+
+dismanEventMIBNotificationPrefix OBJECT IDENTIFIER ::=
+ { dismanEventMIB 2 }
+dismanEventMIBNotifications OBJECT IDENTIFIER ::=
+ { dismanEventMIBNotificationPrefix 0 }
+dismanEventMIBNotificationObjects OBJECT IDENTIFIER
+ ::= { dismanEventMIBNotificationPrefix 1 }
+
+--
+-- Notification Objects
+--
+
+mteHotTrigger OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS accessible-for-notify
+ STATUS current
+ DESCRIPTION
+ "The name of the trigger causing the notification."
+ ::= { dismanEventMIBNotificationObjects 1 }
+
+
+
+mteHotTargetName OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS accessible-for-notify
+ STATUS current
+ DESCRIPTION
+ "The SNMP Target MIB's snmpTargetAddrName related to the
+ notification."
+ ::= { dismanEventMIBNotificationObjects 2 }
+
+mteHotContextName OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS accessible-for-notify
+ STATUS current
+ DESCRIPTION
+ "The context name related to the notification. This MUST be as
+ fully-qualified as possible, including filling in wildcard
+ information determined in processing."
+ ::= { dismanEventMIBNotificationObjects 3 }
+
+mteHotOID OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS accessible-for-notify
+ STATUS current
+ DESCRIPTION
+ "The object identifier of the destination object related to the
+ notification. This MUST be as fully-qualified as possible,
+ including filling in wildcard information determined in
+ processing.
+
+ For a trigger-related notification this is from
+ mteTriggerValueID.
+
+ For a set failure this is from mteEventSetObject."
+ ::= { dismanEventMIBNotificationObjects 4 }
+
+mteHotValue OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS accessible-for-notify
+ STATUS current
+ DESCRIPTION
+ "The value of the object at mteTriggerValueID when a
+ trigger fired."
+ ::= { dismanEventMIBNotificationObjects 5 }
+
+mteFailedReason OBJECT-TYPE
+ SYNTAX FailureReason
+ MAX-ACCESS accessible-for-notify
+ STATUS current
+
+
+ DESCRIPTION
+ "The reason for the failure of an attempt to check for a
+ trigger condition or set an object in response to an event."
+ ::= { dismanEventMIBNotificationObjects 6 }
+
+--
+-- Notifications
+--
+
+mteTriggerFired NOTIFICATION-TYPE
+ OBJECTS { mteHotTrigger,
+ mteHotTargetName,
+ mteHotContextName,
+ mteHotOID,
+ mteHotValue }
+ STATUS current
+ DESCRIPTION
+ "Notification that the trigger indicated by the object
+ instances has fired, for triggers with mteTriggerType
+ 'boolean' or 'existence'."
+ ::= { dismanEventMIBNotifications 1 }
+
+mteTriggerRising NOTIFICATION-TYPE
+ OBJECTS { mteHotTrigger,
+ mteHotTargetName,
+ mteHotContextName,
+ mteHotOID,
+ mteHotValue }
+ STATUS current
+ DESCRIPTION
+ "Notification that the rising threshold was met for triggers
+ with mteTriggerType 'threshold'."
+ ::= { dismanEventMIBNotifications 2 }
+
+mteTriggerFalling NOTIFICATION-TYPE
+ OBJECTS { mteHotTrigger,
+ mteHotTargetName,
+ mteHotContextName,
+ mteHotOID,
+ mteHotValue }
+ STATUS current
+ DESCRIPTION
+ "Notification that the falling threshold was met for triggers
+ with mteTriggerType 'threshold'."
+ ::= { dismanEventMIBNotifications 3 }
+
+mteTriggerFailure NOTIFICATION-TYPE
+ OBJECTS { mteHotTrigger,
+
+
+ mteHotTargetName,
+ mteHotContextName,
+ mteHotOID,
+ mteFailedReason }
+ STATUS current
+ DESCRIPTION
+ "Notification that an attempt to check a trigger has failed.
+
+ The network manager must enable this notification only with
+ a certain fear and trembling, as it can easily crowd out more
+ important information. It should be used only to help diagnose
+ a problem that has appeared in the error counters and can not
+ be found otherwise."
+ ::= { dismanEventMIBNotifications 4 }
+
+mteEventSetFailure NOTIFICATION-TYPE
+ OBJECTS { mteHotTrigger,
+ mteHotTargetName,
+ mteHotContextName,
+ mteHotOID,
+ mteFailedReason }
+ STATUS current
+ DESCRIPTION
+ "Notification that an attempt to do a set in response to an
+ event has failed.
+
+ The network manager must enable this notification only with
+ a certain fear and trembling, as it can easily crowd out more
+ important information. It should be used only to help diagnose
+ a problem that has appeared in the error counters and can not
+ be found otherwise."
+ ::= { dismanEventMIBNotifications 5 }
+
+--
+-- Conformance
+--
+
+dismanEventMIBConformance OBJECT IDENTIFIER ::= { dismanEventMIB 3 }
+dismanEventMIBCompliances OBJECT IDENTIFIER ::=
+ { dismanEventMIBConformance 1 }
+dismanEventMIBGroups OBJECT IDENTIFIER ::=
+ { dismanEventMIBConformance 2 }
+
+-- Compliance
+
+dismanEventMIBCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+
+
+ "The compliance statement for entities which implement
+ the Event MIB."
+ MODULE -- this module
+ MANDATORY-GROUPS {
+ dismanEventResourceGroup,
+ dismanEventTriggerGroup,
+ dismanEventObjectsGroup,
+ dismanEventEventGroup,
+ dismanEventNotificationObjectGroup,
+ dismanEventNotificationGroup
+ }
+
+ OBJECT mteTriggerTargetTag
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required, thus limiting
+ monitoring to the local system or pre-configured
+ remote systems."
+
+ OBJECT mteEventSetTargetTag
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required, thus limiting
+ setting to the local system or pre-configured
+ remote systems."
+
+ OBJECT mteTriggerValueIDWildcard
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required, thus allowing
+ the system not to implement wildcarding."
+
+ OBJECT mteTriggerContextNameWildcard
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required, thus allowing
+ the system not to implement wildcarding."
+
+
+ OBJECT mteObjectsIDWildcard
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required, thus allowing
+ the system not to implement wildcarding."
+
+ OBJECT mteEventSetContextNameWildcard
+ MIN-ACCESS read-only
+ DESCRIPTION
+
+
+ "Write access is not required, thus allowing
+ the system not to implement wildcarding."
+
+ ::= { dismanEventMIBCompliances 1 }
+
+-- Units of Conformance
+
+dismanEventResourceGroup OBJECT-GROUP
+ OBJECTS {
+ mteResourceSampleMinimum,
+ mteResourceSampleInstanceMaximum,
+ mteResourceSampleInstances,
+ mteResourceSampleInstancesHigh,
+ mteResourceSampleInstanceLacks
+ }
+ STATUS current
+ DESCRIPTION
+ "Event resource status and control objects."
+ ::= { dismanEventMIBGroups 1 }
+
+dismanEventTriggerGroup OBJECT-GROUP
+ OBJECTS {
+ mteTriggerFailures,
+
+ mteTriggerComment,
+ mteTriggerTest,
+ mteTriggerSampleType,
+ mteTriggerValueID,
+ mteTriggerValueIDWildcard,
+ mteTriggerTargetTag,
+ mteTriggerContextName,
+ mteTriggerContextNameWildcard,
+ mteTriggerFrequency,
+ mteTriggerObjectsOwner,
+ mteTriggerObjects,
+ mteTriggerEnabled,
+ mteTriggerEntryStatus,
+
+ mteTriggerDeltaDiscontinuityID,
+ mteTriggerDeltaDiscontinuityIDWildcard,
+ mteTriggerDeltaDiscontinuityIDType,
+ mteTriggerExistenceTest,
+ mteTriggerExistenceStartup,
+ mteTriggerExistenceObjectsOwner,
+ mteTriggerExistenceObjects,
+ mteTriggerExistenceEventOwner,
+ mteTriggerExistenceEvent,
+
+
+
+ mteTriggerBooleanComparison,
+ mteTriggerBooleanValue,
+ mteTriggerBooleanStartup,
+ mteTriggerBooleanObjectsOwner,
+ mteTriggerBooleanObjects,
+ mteTriggerBooleanEventOwner,
+ mteTriggerBooleanEvent,
+
+ mteTriggerThresholdStartup,
+ mteTriggerThresholdObjectsOwner,
+ mteTriggerThresholdObjects,
+ mteTriggerThresholdRising,
+ mteTriggerThresholdFalling,
+ mteTriggerThresholdDeltaRising,
+ mteTriggerThresholdDeltaFalling,
+ mteTriggerThresholdRisingEventOwner,
+ mteTriggerThresholdRisingEvent,
+ mteTriggerThresholdFallingEventOwner,
+ mteTriggerThresholdFallingEvent,
+ mteTriggerThresholdDeltaRisingEventOwner,
+ mteTriggerThresholdDeltaRisingEvent,
+ mteTriggerThresholdDeltaFallingEventOwner,
+ mteTriggerThresholdDeltaFallingEvent
+ }
+ STATUS current
+ DESCRIPTION
+ "Event triggers."
+ ::= { dismanEventMIBGroups 2 }
+
+dismanEventObjectsGroup OBJECT-GROUP
+ OBJECTS {
+ mteObjectsID,
+ mteObjectsIDWildcard,
+ mteObjectsEntryStatus
+ }
+ STATUS current
+ DESCRIPTION
+ "Supplemental objects."
+ ::= { dismanEventMIBGroups 3 }
+
+dismanEventEventGroup OBJECT-GROUP
+ OBJECTS {
+ mteEventFailures,
+
+ mteEventComment,
+ mteEventActions,
+ mteEventEnabled,
+ mteEventEntryStatus,
+
+
+ mteEventNotification,
+ mteEventNotificationObjectsOwner,
+ mteEventNotificationObjects,
+
+ mteEventSetObject,
+ mteEventSetObjectWildcard,
+ mteEventSetValue,
+ mteEventSetTargetTag,
+ mteEventSetContextName,
+ mteEventSetContextNameWildcard
+ }
+ STATUS current
+ DESCRIPTION
+ "Events."
+ ::= { dismanEventMIBGroups 4 }
+
+dismanEventNotificationObjectGroup OBJECT-GROUP
+ OBJECTS {
+ mteHotTrigger,
+ mteHotTargetName,
+ mteHotContextName,
+ mteHotOID,
+ mteHotValue,
+ mteFailedReason
+ }
+ STATUS current
+ DESCRIPTION
+ "Notification objects."
+ ::= { dismanEventMIBGroups 5 }
+
+dismanEventNotificationGroup NOTIFICATION-GROUP
+ NOTIFICATIONS {
+ mteTriggerFired,
+ mteTriggerRising,
+ mteTriggerFalling,
+ mteTriggerFailure,
+ mteEventSetFailure
+ }
+ STATUS current
+ DESCRIPTION
+ "Notifications."
+ ::= { dismanEventMIBGroups 6 }
+
+END
diff --git a/php/extras/mibs/DISMAN-EXPRESSION-MIB.txt b/php/extras/mibs/DISMAN-EXPRESSION-MIB.txt
new file mode 100644
index 000000000..499ee86d0
--- /dev/null
+++ b/php/extras/mibs/DISMAN-EXPRESSION-MIB.txt
@@ -0,0 +1,1205 @@
+DISMAN-EXPRESSION-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE,
+ Integer32, Gauge32, Unsigned32,
+ Counter32, Counter64, IpAddress,
+ TimeTicks, mib-2, zeroDotZero FROM SNMPv2-SMI
+ RowStatus, TruthValue, TimeStamp FROM SNMPv2-TC
+ sysUpTime FROM SNMPv2-MIB
+ SnmpAdminString FROM SNMP-FRAMEWORK-MIB
+ MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF;
+
+dismanExpressionMIB MODULE-IDENTITY
+ LAST-UPDATED "200010160000Z" -- 16 October 2000
+ ORGANIZATION "IETF Distributed Management Working Group"
+ CONTACT-INFO "Ramanathan Kavasseri
+ Cisco Systems, Inc.
+ 170 West Tasman Drive,
+ San Jose CA 95134-1706.
+ Phone: +1 408 527 2446
+ Email: ramk@cisco.com"
+ DESCRIPTION
+ "The MIB module for defining expressions of MIB objects for
+ management purposes."
+-- Revision History
+
+ REVISION "200010160000Z" -- 16 October 2000
+ DESCRIPTION "This is the initial version of this MIB.
+ Published as RFC 2982"
+ ::= { mib-2 90 }
+
+
+dismanExpressionMIBObjects OBJECT IDENTIFIER ::=
+ { dismanExpressionMIB 1 }
+
+expResource OBJECT IDENTIFIER ::= { dismanExpressionMIBObjects 1 }
+expDefine OBJECT IDENTIFIER ::= { dismanExpressionMIBObjects 2 }
+expValue OBJECT IDENTIFIER ::= { dismanExpressionMIBObjects 3 }
+
+--
+-- Resource Control
+--
+
+
+expResourceDeltaMinimum OBJECT-TYPE
+ SYNTAX Integer32 (-1 | 1..600)
+ UNITS "seconds"
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The minimum expExpressionDeltaInterval this system will
+ accept. A system may use the larger values of this minimum to
+ lessen the impact of constantly computing deltas. For larger
+ delta sampling intervals the system samples less often and
+ suffers less overhead. This object provides a way to enforce
+ such lower overhead for all expressions created after it is
+ set.
+
+ The value -1 indicates that expResourceDeltaMinimum is
+ irrelevant as the system will not accept 'deltaValue' as a
+ value for expObjectSampleType.
+
+ Unless explicitly resource limited, a system's value for
+ this object should be 1, allowing as small as a 1 second
+ interval for ongoing delta sampling.
+
+ Changing this value will not invalidate an existing setting
+ of expObjectSampleType."
+ ::= { expResource 1 }
+
+expResourceDeltaWildcardInstanceMaximum OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "instances"
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "For every instance of a deltaValue object, one dynamic instance
+ entry is needed for holding the instance value from the previous
+ sample, i.e. to maintain state.
+
+ This object limits maximum number of dynamic instance entries
+ this system will support for wildcarded delta objects in
+ expressions. For a given delta expression, the number of
+ dynamic instances is the number of values that meet all criteria
+ to exist times the number of delta values in the expression.
+
+ A value of 0 indicates no preset limit, that is, the limit
+ is dynamic based on system operation and resources.
+
+ Unless explicitly resource limited, a system's value for
+ this object should be 0.
+
+
+ Changing this value will not eliminate or inhibit existing delta
+ wildcard instance objects but will prevent the creation of more
+ such objects.
+
+ An attempt to allocate beyond the limit results in expErrorCode
+ being tooManyWildcardValues for that evaluation attempt."
+ ::= { expResource 2 }
+
+expResourceDeltaWildcardInstances OBJECT-TYPE
+ SYNTAX Gauge32
+ UNITS "instances"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of currently active instance entries as
+ defined for expResourceDeltaWildcardInstanceMaximum."
+ ::= { expResource 3 }
+
+expResourceDeltaWildcardInstancesHigh OBJECT-TYPE
+ SYNTAX Gauge32
+ UNITS "instances"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The highest value of expResourceDeltaWildcardInstances
+ that has occurred since initialization of the managed
+ system."
+ ::= { expResource 4 }
+
+expResourceDeltaWildcardInstanceResourceLacks OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "instances"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of times this system could not evaluate an
+ expression because that would have created a value instance in
+ excess of expResourceDeltaWildcardInstanceMaximum."
+ ::= { expResource 5 }
+
+--
+
+-- Definition
+--
+-- Expression Definition Table
+--
+
+expExpressionTable OBJECT-TYPE
+
+ SYNTAX SEQUENCE OF ExpExpressionEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table of expression definitions."
+ ::= { expDefine 1 }
+
+expExpressionEntry OBJECT-TYPE
+ SYNTAX ExpExpressionEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Information about a single expression. New expressions
+ can be created using expExpressionRowStatus.
+
+ To create an expression first create the named entry in this
+ table. Then use expExpressionName to populate expObjectTable.
+ For expression evaluation to succeed all related entries in
+ expExpressionTable and expObjectTable must be 'active'. If
+ these conditions are not met the corresponding values in
+ expValue simply are not instantiated.
+
+ Deleting an entry deletes all related entries in expObjectTable
+ and expErrorTable.
+
+ Because of the relationships among the multiple tables for an
+ expression (expExpressionTable, expObjectTable, and
+ expValueTable) and the SNMP rules for independence in setting
+ object values, it is necessary to do final error checking when
+ an expression is evaluated, that is, when one of its instances
+ in expValueTable is read or a delta interval expires. Earlier
+ checking need not be done and an implementation may not impose
+ any ordering on the creation of objects related to an
+ expression.
+
+ To maintain security of MIB information, when creating a new row in
+ this table, the managed system must record the security credentials
+ of the requester. These security credentials are the parameters
+ necessary as inputs to isAccessAllowed from the Architecture for
+
+ Describing SNMP Management Frameworks. When obtaining the objects
+ that make up the expression, the system must (conceptually) use
+ isAccessAllowed to ensure that it does not violate security.
+
+ The evaluation of the expression takes place under the
+ security credentials of the creator of its expExpressionEntry.
+
+ Values of read-write objects in this table may be changed
+
+ at any time."
+ INDEX { expExpressionOwner, expExpressionName }
+ ::= { expExpressionTable 1 }
+
+ExpExpressionEntry ::= SEQUENCE {
+ expExpressionOwner SnmpAdminString,
+ expExpressionName SnmpAdminString,
+ expExpression OCTET STRING,
+ expExpressionValueType INTEGER,
+ expExpressionComment SnmpAdminString,
+ expExpressionDeltaInterval Integer32,
+ expExpressionPrefix OBJECT IDENTIFIER,
+ expExpressionErrors Counter32,
+ expExpressionEntryStatus RowStatus
+}
+
+expExpressionOwner OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(0..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The owner of this entry. The exact semantics of this
+ string are subject to the security policy defined by the
+ security administrator."
+ ::= { expExpressionEntry 1 }
+
+expExpressionName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (1..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The name of the expression. This is locally unique, within
+ the scope of an expExpressionOwner."
+ ::= { expExpressionEntry 2 }
+
+expExpression OBJECT-TYPE
+ SYNTAX OCTET STRING (SIZE (1..1024))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The expression to be evaluated. This object is the same
+ as a DisplayString (RFC 1903) except for its maximum length.
+
+ Except for the variable names the expression is in ANSI C
+ syntax. Only the subset of ANSI C operators and functions
+ listed here is allowed.
+
+ Variables are expressed as a dollar sign ('$') and an
+
+ integer that corresponds to an expObjectIndex. An
+ example of a valid expression is:
+
+ ($1-$5)*100
+
+ Expressions must not be recursive, that is although an expression
+ may use the results of another expression, it must not contain
+ any variable that is directly or indirectly a result of its own
+ evaluation. The managed system must check for recursive
+ expressions.
+
+ The only allowed operators are:
+
+ ( )
+ - (unary)
+ + - * / %
+ & | ^ << >> ~
+ ! && || == != > >= < <=
+
+ Note the parentheses are included for parenthesizing the
+ expression, not for casting data types.
+
+ The only constant types defined are:
+
+ int (32-bit signed)
+ long (64-bit signed)
+ unsigned int
+ unsigned long
+ hexadecimal
+ character
+ string
+ oid
+
+ The default type for a positive integer is int unless it is too
+ large in which case it is long.
+
+ All but oid are as defined for ANSI C. Note that a
+ hexadecimal constant may end up as a scalar or an array of
+ 8-bit integers. A string constant is enclosed in double
+ quotes and may contain back-slashed individual characters
+ as in ANSI C.
+
+ An oid constant comprises 32-bit, unsigned integers and at
+ least one period, for example:
+
+ 0.
+ .0
+ 1.3.6.1
+
+ No additional leading or trailing subidentifiers are automatically
+ added to an OID constant. The constant is taken as expressed.
+
+ Integer-typed objects are treated as 32- or 64-bit, signed
+ or unsigned integers, as appropriate. The results of
+ mixing them are as for ANSI C, including the type of the
+ result. Note that a 32-bit value is thus promoted to 64 bits
+ only in an operation with a 64-bit value. There is no
+ provision for larger values to handle overflow.
+
+ Relative to SNMP data types, a resulting value becomes
+ unsigned when calculating it uses any unsigned value,
+ including a counter. To force the final value to be of
+ data type counter the expression must explicitly use the
+ counter32() or counter64() function (defined below).
+
+ OCTET STRINGS and OBJECT IDENTIFIERs are treated as
+ one-dimensioned arrays of unsigned 8-bit integers and
+ unsigned 32-bit integers, respectively.
+
+ IpAddresses are treated as 32-bit, unsigned integers in
+ network byte order, that is, the hex version of 255.0.0.0 is
+ 0xff000000.
+
+ Conditional expressions result in a 32-bit, unsigned integer
+ of value 0 for false or 1 for true. When an arbitrary value
+ is used as a boolean 0 is false and non-zero is true.
+
+ Rules for the resulting data type from an operation, based on
+ the operator:
+
+ For << and >> the result is the same as the left hand operand.
+
+ For &&, ||, ==, !=, <, <=, >, and >= the result is always
+ Unsigned32.
+
+ For unary - the result is always Integer32.
+
+ For +, -, *, /, %, &, |, and ^ the result is promoted according
+ to the following rules, in order from most to least preferred:
+
+ If left hand and right hand operands are the same type,
+ use that.
+
+ If either side is Counter64, use that.
+
+ If either side is IpAddress, use that.
+
+
+ If either side is TimeTicks, use that.
+
+ If either side is Counter32, use that.
+
+ Otherwise use Unsigned32.
+
+ The following rules say what operators apply with what data
+ types. Any combination not explicitly defined does not work.
+
+ For all operators any of the following can be the left hand or
+ right hand operand: Integer32, Counter32, Unsigned32, Counter64.
+
+ The operators +, -, *, /, %, <, <=, >, and >= work with
+ TimeTicks.
+
+ The operators &, |, and ^ work with IpAddress.
+
+ The operators << and >> work with IpAddress but only as the
+ left hand operand.
+
+ The + operator performs a concatenation of two OCTET STRINGs or
+ two OBJECT IDENTIFIERs.
+
+ The operators &, | perform bitwise operations on OCTET STRINGs.
+ If the OCTET STRING happens to be a DisplayString the results
+ may be meaningless, but the agent system does not check this as
+ some such systems do not have this information.
+
+ The operators << and >> perform bitwise operations on OCTET
+ STRINGs appearing as the left hand operand.
+
+ The only functions defined are:
+
+ counter32
+ counter64
+ arraySection
+ stringBegins
+ stringEnds
+ stringContains
+ oidBegins
+ oidEnds
+ oidContains
+ average
+ maximum
+ minimum
+ sum
+ exists
+
+
+ The following function definitions indicate their parameters by
+ naming the data type of the parameter in the parameter's position
+ in the parameter list. The parameter must be of the type indicated
+ and generally may be a constant, a MIB object, a function, or an
+ expression.
+
+ counter32(integer) - wrapped around an integer value counter32
+ forces Counter32 as a data type.
+
+ counter64(integer) - similar to counter32 except that the
+ resulting data type is 'counter64'.
+
+ arraySection(array, integer, integer) - selects a piece of an
+ array (i.e. part of an OCTET STRING or OBJECT IDENTIFIER). The
+ integer arguments are in the range 0 to 4,294,967,295. The
+ first is an initial array index (one-dimensioned) and the second
+ is an ending array index. A value of 0 indicates first or last
+ element, respectively. If the first element is larger than the
+ array length the result is 0 length. If the second integer is
+ less than or equal to the first, the result is 0 length. If the
+ second is larger than the array length it indicates last
+ element.
+
+ stringBegins/Ends/Contains(octetString, octetString) - looks for
+ the second string (which can be a string constant) in the first
+ and returns the one-dimensioned arrayindex where the match began.
+ A return value of 0 indicates no match (i.e. boolean false).
+
+ oidBegins/Ends/Contains(oid, oid) - looks for the second OID
+ (which can be an OID constant) in the first and returns the
+ the one-dimensioned index where the match began. A return value
+ of 0 indicates no match (i.e. boolean false).
+
+ average/maximum/minimum(integer) - calculates the average,
+ minimum, or maximum value of the integer valued object over
+ multiple sample times. If the object disappears for any
+ sample period, the accumulation and the resulting value object
+ cease to exist until the object reappears at which point the
+ calculation starts over.
+
+ sum(integerObject*) - sums all available values of the
+ wildcarded integer object, resulting in an integer scalar. Must
+ be used with caution as it wraps on overflow with no
+ notification.
+
+ exists(anyTypeObject) - verifies the object instance exists. A
+ return value of 0 indicates NoSuchInstance (i.e. boolean
+ false)."
+
+ ::= { expExpressionEntry 3 }
+
+expExpressionValueType OBJECT-TYPE
+ SYNTAX INTEGER { counter32(1), unsigned32(2), timeTicks(3),
+ integer32(4), ipAddress(5), octetString(6),
+ objectId(7), counter64(8) }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The type of the expression value. One and only one of the
+ value objects in expValueTable will be instantiated to match
+ this type.
+
+ If the result of the expression can not be made into this type,
+ an invalidOperandType error will occur."
+ DEFVAL { counter32 }
+ ::= { expExpressionEntry 4 }
+
+expExpressionComment OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "A comment to explain the use or meaning of the expression."
+ DEFVAL { ''H }
+ ::= { expExpressionEntry 5 }
+
+expExpressionDeltaInterval OBJECT-TYPE
+ SYNTAX Integer32 (0..86400)
+ UNITS "seconds"
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Sampling interval for objects in this expression with
+ expObjectSampleType 'deltaValue'.
+
+ This object has no effect if the the expression has no
+ deltaValue objects.
+
+ A value of 0 indicates no automated sampling. In this case
+ the delta is the difference from the last time the expression
+ was evaluated. Note that this is subject to unpredictable
+ delta times in the face of retries or multiple managers.
+
+ A value greater than zero is the number of seconds between
+ automated samples.
+
+ Until the delta interval has expired once the delta for the
+
+ object is effectively not instantiated and evaluating
+ the expression has results as if the object itself were not
+ instantiated.
+
+ Note that delta values potentially consume large amounts of
+ system CPU and memory. Delta state and processing must
+ continue constantly even if the expression is not being used.
+ That is, the expression is being evaluated every delta interval,
+ even if no application is reading those values. For wildcarded
+ objects this can be substantial overhead.
+
+ Note that delta intervals, external expression value sampling
+ intervals and delta intervals for expressions within other
+ expressions can have unusual interactions as they are impossible
+ to synchronize accurately. In general one interval embedded
+ below another must be enough shorter that the higher sample
+ sees relatively smooth, predictable behavior. So, for example,
+ to avoid the higher level getting the same sample twice, the
+ lower level should sample at least twice as fast as the higher
+ level does."
+ DEFVAL { 0 }
+ ::= { expExpressionEntry 6 }
+
+expExpressionPrefix OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An object prefix to assist an application in determining
+ the instance indexing to use in expValueTable, relieving the
+ application of the need to scan the expObjectTable to
+ determine such a prefix.
+
+ See expObjectTable for information on wildcarded objects.
+
+ If the expValueInstance portion of the value OID may
+ be treated as a scalar (that is, normally, 0) the value of
+ expExpressionPrefix is zero length, that is, no OID at all.
+ Note that zero length implies a null OID, not the OID 0.0.
+
+ Otherwise, the value of expExpressionPrefix is the expObjectID
+ value of any one of the wildcarded objects for the expression.
+ This is sufficient, as the remainder, that is, the instance
+ fragment relevant to instancing the values, must be the same for
+ all wildcarded objects in the expression."
+ ::= { expExpressionEntry 7 }
+
+expExpressionErrors OBJECT-TYPE
+
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of errors encountered while evaluating this
+ expression.
+
+ Note that an object in the expression not being accessible,
+ is not considered an error. An example of an inaccessible
+ object is when the object is excluded from the view of the
+ user whose security credentials are used in the expression
+ evaluation. In such cases, it is a legitimate condition
+ that causes the corresponding expression value not to be
+ instantiated."
+ ::= { expExpressionEntry 8 }
+
+expExpressionEntryStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The control that allows creation and deletion of entries."
+ ::= { expExpressionEntry 9 }
+
+--
+-- Expression Error Table
+--
+
+expErrorTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF ExpErrorEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table of expression errors."
+ ::= { expDefine 2 }
+
+expErrorEntry OBJECT-TYPE
+ SYNTAX ExpErrorEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Information about errors in processing an expression.
+
+ Entries appear in this table only when there is a matching
+ expExpressionEntry and then only when there has been an
+ error for that expression as reflected by the error codes
+ defined for expErrorCode."
+ INDEX { expExpressionOwner, expExpressionName }
+
+ ::= { expErrorTable 1 }
+
+ExpErrorEntry ::= SEQUENCE {
+ expErrorTime TimeStamp,
+ expErrorIndex Integer32,
+ expErrorCode INTEGER,
+ expErrorInstance OBJECT IDENTIFIER
+}
+
+expErrorTime OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime the last time an error caused a
+ failure to evaluate this expression."
+ ::= { expErrorEntry 1 }
+
+expErrorIndex OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The one-dimensioned character array index into
+ expExpression for where the error occurred. The value
+ zero indicates irrelevance."
+ ::= { expErrorEntry 2 }
+
+expErrorCode OBJECT-TYPE
+ SYNTAX INTEGER {
+ invalidSyntax(1),
+ undefinedObjectIndex(2),
+ unrecognizedOperator(3),
+ unrecognizedFunction(4),
+ invalidOperandType(5),
+ unmatchedParenthesis(6),
+ tooManyWildcardValues(7),
+ recursion(8),
+ deltaTooShort(9),
+ resourceUnavailable(10),
+ divideByZero(11)
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The error that occurred. In the following explanations the
+ expected timing of the error is in parentheses. 'S' means
+ the error occurs on a Set request. 'E' means the error
+
+ occurs on the attempt to evaluate the expression either due to
+ Get from expValueTable or in ongoing delta processing.
+
+ invalidSyntax the value sent for expExpression is not
+ valid Expression MIB expression syntax
+ (S)
+ undefinedObjectIndex an object reference ($n) in
+ expExpression does not have a matching
+ instance in expObjectTable (E)
+ unrecognizedOperator the value sent for expExpression held an
+ unrecognized operator (S)
+ unrecognizedFunction the value sent for expExpression held an
+ unrecognized function name (S)
+ invalidOperandType an operand in expExpression is not the
+ right type for the associated operator
+ or result (SE)
+ unmatchedParenthesis the value sent for expExpression is not
+ correctly parenthesized (S)
+ tooManyWildcardValues evaluating the expression exceeded the
+ limit set by
+ expResourceDeltaWildcardInstanceMaximum
+ (E)
+ recursion through some chain of embedded
+ expressions the expression invokes itself
+ (E)
+ deltaTooShort the delta for the next evaluation passed
+ before the system could evaluate the
+ present sample (E)
+ resourceUnavailable some resource, typically dynamic memory,
+ was unavailable (SE)
+ divideByZero an attempt to divide by zero occurred
+ (E)
+
+ For the errors that occur when the attempt is made to set
+ expExpression Set request fails with the SNMP error code
+ 'wrongValue'. Such failures refer to the most recent failure to
+ Set expExpression, not to the present value of expExpression
+ which must be either unset or syntactically correct.
+
+ Errors that occur during evaluation for a Get* operation return
+ the SNMP error code 'genErr' except for 'tooManyWildcardValues'
+ and 'resourceUnavailable' which return the SNMP error code
+ 'resourceUnavailable'."
+ ::= { expErrorEntry 3 }
+
+expErrorInstance OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-only
+
+ STATUS current
+ DESCRIPTION
+ "The expValueInstance being evaluated when the error
+ occurred. A zero-length indicates irrelevance."
+ ::= { expErrorEntry 4 }
+
+--
+-- Object Table
+--
+
+expObjectTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF ExpObjectEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table of object definitions for each expExpression.
+
+ Wildcarding instance IDs:
+
+ It is legal to omit all or part of the instance portion for
+ some or all of the objects in an expression. (See the
+ DESCRIPTION of expObjectID for details. However, note that
+ if more than one object in the same expression is wildcarded
+ in this way, they all must be objects where that portion of
+ the instance is the same. In other words, all objects may be
+ in the same SEQUENCE or in different SEQUENCEs but with the
+ same semantic index value (e.g., a value of ifIndex)
+ for the wildcarded portion."
+ ::= { expDefine 3 }
+
+expObjectEntry OBJECT-TYPE
+ SYNTAX ExpObjectEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Information about an object. An application uses
+ expObjectEntryStatus to create entries in this table while
+ in the process of defining an expression.
+
+ Values of read-create objects in this table may be
+ changed at any time."
+ INDEX { expExpressionOwner, expExpressionName, expObjectIndex }
+ ::= { expObjectTable 1 }
+
+ExpObjectEntry ::= SEQUENCE {
+ expObjectIndex Unsigned32,
+ expObjectID OBJECT IDENTIFIER,
+ expObjectIDWildcard TruthValue,
+
+ expObjectSampleType INTEGER,
+ expObjectDeltaDiscontinuityID OBJECT IDENTIFIER,
+ expObjectDiscontinuityIDWildcard TruthValue,
+ expObjectDiscontinuityIDType INTEGER,
+ expObjectConditional OBJECT IDENTIFIER,
+ expObjectConditionalWildcard TruthValue,
+ expObjectEntryStatus RowStatus
+}
+
+expObjectIndex OBJECT-TYPE
+ SYNTAX Unsigned32 (1..4294967295)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Within an expression, a unique, numeric identification for an
+ object. Prefixed with a dollar sign ('$') this is used to
+ reference the object in the corresponding expExpression."
+ ::= { expObjectEntry 1 }
+
+expObjectID OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The OBJECT IDENTIFIER (OID) of this object. The OID may be
+ fully qualified, meaning it includes a complete instance
+ identifier part (e.g., ifInOctets.1 or sysUpTime.0), or it
+ may not be fully qualified, meaning it may lack all or part
+ of the instance identifier. If the expObjectID is not fully
+ qualified, then expObjectWildcard must be set to true(1).
+ The value of the expression will be multiple
+ values, as if done for a GetNext sweep of the object.
+
+ An object here may itself be the result of an expression but
+ recursion is not allowed.
+
+ NOTE: The simplest implementations of this MIB may not allow
+ wildcards."
+ ::= { expObjectEntry 2 }
+
+expObjectIDWildcard OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "A true value indicates the expObjecID of this row is a wildcard
+ object. False indicates that expObjectID is fully instanced.
+ If all expObjectWildcard values for a given expression are FALSE,
+
+ expExpressionPrefix will reflect a scalar object (i.e. will
+ be 0.0).
+
+ NOTE: The simplest implementations of this MIB may not allow
+ wildcards."
+ DEFVAL { false }
+ ::= { expObjectEntry 3 }
+
+expObjectSampleType OBJECT-TYPE
+ SYNTAX INTEGER { absoluteValue(1), deltaValue(2),
+ changedValue(3) }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The method of sampling the selected variable.
+
+ An 'absoluteValue' is simply the present value of the object.
+
+ A 'deltaValue' is the present value minus the previous value,
+ which was sampled expExpressionDeltaInterval seconds ago.
+ This is intended primarily for use with SNMP counters, which are
+ meaningless as an 'absoluteValue', but may be used with any
+ integer-based value.
+
+ A 'changedValue' is a boolean for whether the present value is
+ different from the previous value. It is applicable to any data
+ type and results in an Unsigned32 with value 1 if the object's
+ value is changed and 0 if not. In all other respects it is as a
+ 'deltaValue' and all statements and operation regarding delta
+ values apply to changed values.
+
+ When an expression contains both delta and absolute values
+ the absolute values are obtained at the end of the delta
+ period."
+ DEFVAL { absoluteValue }
+ ::= { expObjectEntry 4 }
+
+sysUpTimeInstance OBJECT IDENTIFIER ::= { sysUpTime 0 }
+
+expObjectDeltaDiscontinuityID OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The OBJECT IDENTIFIER (OID) of a TimeTicks, TimeStamp, or
+ DateAndTime object that indicates a discontinuity in the value
+ at expObjectID.
+
+
+ This object is instantiated only if expObjectSampleType is
+ 'deltaValue' or 'changedValue'.
+
+ The OID may be for a leaf object (e.g. sysUpTime.0) or may
+ be wildcarded to match expObjectID.
+
+ This object supports normal checking for a discontinuity in a
+ counter. Note that if this object does not point to sysUpTime
+ discontinuity checking must still check sysUpTime for an overall
+ discontinuity.
+
+ If the object identified is not accessible no discontinuity
+ check will be made."
+ DEFVAL { sysUpTimeInstance }
+ ::= { expObjectEntry 5 }
+
+expObjectDiscontinuityIDWildcard OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "A true value indicates the expObjectDeltaDiscontinuityID of
+ this row is a wildcard object. False indicates that
+ expObjectDeltaDiscontinuityID is fully instanced.
+
+ This object is instantiated only if expObjectSampleType is
+ 'deltaValue' or 'changedValue'.
+
+ NOTE: The simplest implementations of this MIB may not allow
+ wildcards."
+ DEFVAL { false }
+ ::= { expObjectEntry 6 }
+
+expObjectDiscontinuityIDType OBJECT-TYPE
+ SYNTAX INTEGER { timeTicks(1), timeStamp(2), dateAndTime(3) }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The value 'timeTicks' indicates the expObjectDeltaDiscontinuityID
+ of this row is of syntax TimeTicks. The value 'timeStamp' indicates
+ syntax TimeStamp. The value 'dateAndTime indicates syntax
+ DateAndTime.
+
+ This object is instantiated only if expObjectSampleType is
+ 'deltaValue' or 'changedValue'."
+ DEFVAL { timeTicks }
+ ::= { expObjectEntry 7 }
+
+
+expObjectConditional OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The OBJECT IDENTIFIER (OID) of an object that overrides
+ whether the instance of expObjectID is to be considered
+ usable. If the value of the object at expObjectConditional
+ is 0 or not instantiated, the object at expObjectID is
+ treated as if it is not instantiated. In other words,
+ expObjectConditional is a filter that controls whether or
+ not to use the value at expObjectID.
+
+ The OID may be for a leaf object (e.g. sysObjectID.0) or may be
+ wildcarded to match expObjectID. If expObject is wildcarded and
+ expObjectID in the same row is not, the wild portion of
+ expObjectConditional must match the wildcarding of the rest of
+ the expression. If no object in the expression is wildcarded
+ but expObjectConditional is, use the lexically first instance
+ (if any) of expObjectConditional.
+
+ If the value of expObjectConditional is 0.0 operation is
+ as if the value pointed to by expObjectConditional is a
+ non-zero (true) value.
+
+ Note that expObjectConditional can not trivially use an object
+ of syntax TruthValue, since the underlying value is not 0 or 1."
+ DEFVAL { zeroDotZero }
+ ::= { expObjectEntry 8 }
+
+ expObjectConditionalWildcard OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+
+ "A true value indicates the expObjectConditional of this row is
+ a wildcard object. False indicates that expObjectConditional is
+ fully instanced.
+
+ NOTE: The simplest implementations of this MIB may not allow
+ wildcards."
+ DEFVAL { false }
+ ::= { expObjectEntry 9 }
+
+expObjectEntryStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+
+ STATUS current
+ DESCRIPTION
+ "The control that allows creation/deletion of entries.
+
+ Objects in this table may be changed while
+ expObjectEntryStatus is in any state."
+ ::= { expObjectEntry 10 }
+
+--
+-- Expression Value Table
+--
+
+expValueTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF ExpValueEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table of values from evaluated expressions."
+ ::= { expValue 1 }
+
+expValueEntry OBJECT-TYPE
+ SYNTAX ExpValueEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A single value from an evaluated expression. For a given
+ instance, only one 'Val' object in the conceptual row will be
+ instantiated, that is, the one with the appropriate type for
+ the value. For values that contain no objects of
+ expObjectSampleType 'deltaValue' or 'changedValue', reading a
+ value from the table causes the evaluation of the expression
+ for that value. For those that contain a 'deltaValue' or
+ 'changedValue' the value read is as of the last sampling
+ interval.
+
+ If in the attempt to evaluate the expression one or more
+ of the necessary objects is not available, the corresponding
+ entry in this table is effectively not instantiated.
+
+ To maintain security of MIB information, when creating a new
+ row in this table, the managed system must record the security
+ credentials of the requester. These security credentials are
+ the parameters necessary as inputs to isAccessAllowed from
+ [RFC2571]. When obtaining the objects that make up the
+ expression, the system must (conceptually) use isAccessAllowed to
+ ensure that it does not violate security.
+
+ The evaluation of that expression takes place under the
+
+ security credentials of the creator of its expExpressionEntry.
+
+ To maintain security of MIB information, expression evaluation must
+ take place using security credentials for the implied Gets of the
+ objects in the expression as inputs (conceptually) to
+ isAccessAllowed from the Architecture for Describing SNMP
+ Management Frameworks. These are the security credentials of the
+ creator of the corresponding expExpressionEntry."
+ INDEX { expExpressionOwner, expExpressionName,
+ IMPLIED expValueInstance }
+ ::= { expValueTable 1 }
+
+ExpValueEntry ::= SEQUENCE {
+ expValueInstance OBJECT IDENTIFIER,
+ expValueCounter32Val Counter32,
+ expValueUnsigned32Val Unsigned32,
+ expValueTimeTicksVal TimeTicks,
+ expValueInteger32Val Integer32,
+ expValueIpAddressVal IpAddress,
+ expValueOctetStringVal OCTET STRING,
+ expValueOidVal OBJECT IDENTIFIER,
+ expValueCounter64Val Counter64
+}
+
+expValueInstance OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The final instance portion of a value's OID according to
+ the wildcarding in instances of expObjectID for the
+ expression. The prefix of this OID fragment is 0.0,
+ leading to the following behavior.
+
+ If there is no wildcarding, the value is 0.0.0. In other
+ words, there is one value which standing alone would have
+ been a scalar with a 0 at the end of its OID.
+
+ If there is wildcarding, the value is 0.0 followed by
+ a value that the wildcard can take, thus defining one value
+ instance for each real, possible value of the wildcard.
+ So, for example, if the wildcard worked out to be an ifIndex,
+ there is an expValueInstance for each applicable ifIndex."
+ ::= { expValueEntry 1 }
+
+expValueCounter32Val OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+
+ STATUS current
+ DESCRIPTION
+ "The value when expExpressionValueType is 'counter32'."
+ ::= { expValueEntry 2 }
+
+expValueUnsigned32Val OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value when expExpressionValueType is 'unsigned32'."
+ ::= { expValueEntry 3 }
+
+expValueTimeTicksVal OBJECT-TYPE
+ SYNTAX TimeTicks
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value when expExpressionValueType is 'timeTicks'."
+ ::= { expValueEntry 4 }
+
+expValueInteger32Val OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value when expExpressionValueType is 'integer32'."
+ ::= { expValueEntry 5 }
+
+expValueIpAddressVal OBJECT-TYPE
+ SYNTAX IpAddress
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value when expExpressionValueType is 'ipAddress'."
+ ::= { expValueEntry 6 }
+
+expValueOctetStringVal OBJECT-TYPE
+ SYNTAX OCTET STRING -- (SIZE (0..65536))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value when expExpressionValueType is 'octetString'."
+ ::= { expValueEntry 7 }
+
+expValueOidVal OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-only
+
+ STATUS current
+ DESCRIPTION
+ "The value when expExpressionValueType is 'objectId'."
+ ::= { expValueEntry 8 }
+
+expValueCounter64Val OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value when expExpressionValueType is 'counter64'."
+ ::= { expValueEntry 9 }
+
+--
+-- Conformance
+--
+
+dismanExpressionMIBConformance OBJECT IDENTIFIER ::=
+ { dismanExpressionMIB 3 }
+dismanExpressionMIBCompliances OBJECT IDENTIFIER ::=
+ { dismanExpressionMIBConformance 1 }
+dismanExpressionMIBGroups OBJECT IDENTIFIER ::=
+ { dismanExpressionMIBConformance 2 }
+
+-- Compliance
+
+dismanExpressionMIBCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for entities which implement
+ the Expression MIB."
+ MODULE -- this module
+ MANDATORY-GROUPS {
+ dismanExpressionResourceGroup,
+ dismanExpressionDefinitionGroup,
+ dismanExpressionValueGroup
+ }
+
+ OBJECT expResourceDeltaMinimum
+ SYNTAX Integer32 (-1 | 60..600)
+ DESCRIPTION
+ "Implementation need not allow deltas or it may
+ implement them and restrict them to higher values."
+
+ OBJECT expObjectSampleType
+ WRITE-SYNTAX INTEGER { absoluteValue(1) }
+ DESCRIPTION
+ "Implementation may disallow deltas calculation or
+
+ change detection."
+
+ OBJECT expObjectIDWildcard
+ WRITE-SYNTAX INTEGER { false(2) }
+ DESCRIPTION
+ "Implementation may allow wildcards."
+
+ OBJECT expObjectDiscontinuityIDWildcard
+ WRITE-SYNTAX INTEGER { false(2) }
+ DESCRIPTION
+ "Implementation need not allow wildcards."
+
+ OBJECT expObjectConditionalWildcard
+ WRITE-SYNTAX INTEGER { false(2) }
+ DESCRIPTION
+ "Implementation need not allow deltas wildcards."
+
+ ::= { dismanExpressionMIBCompliances 1 }
+
+-- Units of Conformance
+
+dismanExpressionResourceGroup OBJECT-GROUP
+ OBJECTS {
+ expResourceDeltaMinimum,
+ expResourceDeltaWildcardInstanceMaximum,
+ expResourceDeltaWildcardInstances,
+ expResourceDeltaWildcardInstancesHigh,
+ expResourceDeltaWildcardInstanceResourceLacks
+ }
+ STATUS current
+ DESCRIPTION
+ "Expression definition resource management."
+ ::= { dismanExpressionMIBGroups 1 }
+
+dismanExpressionDefinitionGroup OBJECT-GROUP
+ OBJECTS {
+ expExpression,
+ expExpressionValueType,
+ expExpressionComment,
+ expExpressionDeltaInterval,
+ expExpressionPrefix,
+ expExpressionErrors,
+ expExpressionEntryStatus,
+
+ expErrorTime,
+ expErrorIndex,
+ expErrorCode,
+ expErrorInstance,
+
+ expObjectID,
+ expObjectIDWildcard,
+ expObjectSampleType,
+ expObjectDeltaDiscontinuityID,
+ expObjectDiscontinuityIDWildcard,
+ expObjectDiscontinuityIDType,
+ expObjectConditional,
+ expObjectConditionalWildcard,
+ expObjectEntryStatus
+ }
+ STATUS current
+ DESCRIPTION
+ "Expression definition."
+ ::= { dismanExpressionMIBGroups 2 }
+
+dismanExpressionValueGroup OBJECT-GROUP
+ OBJECTS {
+ expValueCounter32Val,
+ expValueUnsigned32Val,
+ expValueTimeTicksVal,
+ expValueInteger32Val,
+ expValueIpAddressVal,
+ expValueOctetStringVal,
+ expValueOidVal,
+ expValueCounter64Val
+ }
+ STATUS current
+ DESCRIPTION
+ "Expression value."
+ ::= { dismanExpressionMIBGroups 3 }
+
+END
+
+
diff --git a/php/extras/mibs/DISMAN-NSLOOKUP-MIB.txt b/php/extras/mibs/DISMAN-NSLOOKUP-MIB.txt
new file mode 100644
index 000000000..b12ca53dd
--- /dev/null
+++ b/php/extras/mibs/DISMAN-NSLOOKUP-MIB.txt
@@ -0,0 +1,509 @@
+DISMAN-NSLOOKUP-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE,
+ Unsigned32, mib-2, Integer32
+ FROM SNMPv2-SMI -- RFC2578
+ RowStatus
+ FROM SNMPv2-TC -- RFC2579
+ MODULE-COMPLIANCE, OBJECT-GROUP
+ FROM SNMPv2-CONF -- RFC2580
+ SnmpAdminString
+ FROM SNMP-FRAMEWORK-MIB -- RFC3411
+ InetAddressType, InetAddress
+ FROM INET-ADDRESS-MIB; -- RFC4001
+
+ lookupMIB MODULE-IDENTITY
+ LAST-UPDATED "200606130000Z" -- 13 June 2006
+ ORGANIZATION "IETF Distributed Management Working Group"
+ CONTACT-INFO
+ "Juergen Quittek
+
+ NEC Europe Ltd.
+ Network Laboratories
+ Kurfuersten-Anlage 36
+ 69115 Heidelberg
+ Germany
+
+ Phone: +49 6221 4342-115
+ Email: quittek@netlab.nec.de"
+ DESCRIPTION
+ "The Lookup MIB (DISMAN-NSLOOKUP-MIB) enables determination
+ of either the name(s) corresponding to a host address or of
+ the address(es) associated with a host name at a remote
+ host.
+
+ Copyright (C) The Internet Society (2006). This version of
+ this MIB module is part of RFC 4560; see the RFC itself for
+ full legal notices."
+
+ -- Revision history
+
+ REVISION "200606130000Z" -- 13 June 2006
+ DESCRIPTION
+ "Updated version, published as RFC 4560.
+ - Replaced references to RFC 2575 by RFC 3415
+ - Replaced references to RFC 2571 by RFC 3411
+ - Replaced references to RFC 2851 by RFC 4001
+ - Added value enabled(1) to SYNTAX clause of
+ lookupCtlOperStatus
+ - Added lookupMinimumCompliance
+ - Defined semantics of value 0 for object
+ lookupPurgeTime
+ - Added DEFVAL { unknown } to object
+ lookupCtlTargetAddressType OBJECT-TYPE"
+
+ REVISION "200009210000Z" -- 21 September 2000
+ DESCRIPTION
+ "Initial version, published as RFC 2925."
+ ::= { mib-2 82 }
+
+ -- Top level structure of the MIB
+
+ lookupObjects OBJECT IDENTIFIER ::= { lookupMIB 1 }
+ lookupConformance OBJECT IDENTIFIER ::= { lookupMIB 2 }
+
+ -- Simple Object Definitions
+
+ lookupMaxConcurrentRequests OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "requests"
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The maximum number of concurrent active lookup requests
+ that are allowed within an agent implementation. A value
+ of 0 for this object implies that there is no limit for
+ the number of concurrent active requests in effect.
+
+ The limit applies only to new requests being activated.
+ When a new value is set, the agent will continue processing
+ all the requests already active, even if their number
+ exceed the limit just imposed."
+ DEFVAL { 10 }
+ ::= { lookupObjects 1 }
+
+ lookupPurgeTime OBJECT-TYPE
+ SYNTAX Unsigned32 (0..86400)
+ UNITS "seconds"
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The amount of time to wait before automatically
+ deleting an entry in the lookupCtlTable and any
+ dependent lookupResultsTable entries
+ after the lookup operation represented by a
+ lookupCtlEntry has been completed.
+ A lookupCtEntry is considered complete
+ when its lookupCtlOperStatus object has a
+ value of completed(3).
+
+ A value of 0 indicates that automatic deletion
+ of entries is disabled."
+ DEFVAL { 900 } -- 15 minutes as default
+ ::= { lookupObjects 2 }
+
+ -- Lookup Control Table
+
+ lookupCtlTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF LookupCtlEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Defines the Lookup Control Table for providing
+ the capability of performing a lookup operation
+ for a symbolic host name or for a host address
+ from a remote host."
+ ::= { lookupObjects 3 }
+
+ lookupCtlEntry OBJECT-TYPE
+ SYNTAX LookupCtlEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Defines an entry in the lookupCtlTable. A
+ lookupCtlEntry is initially indexed by
+ lookupCtlOwnerIndex, which is a type of SnmpAdminString,
+ a textual convention that allows for the use of the SNMPv3
+ View-Based Access Control Model (RFC 3415, VACM)
+ and that also allows a management application to identify
+ its entries. The second index element,
+ lookupCtlOperationName, enables the same
+ lookupCtlOwnerIndex entity to have multiple outstanding
+ requests. The value of lookupCtlTargetAddressType
+ determines which lookup function to perform."
+ INDEX {
+ lookupCtlOwnerIndex,
+ lookupCtlOperationName
+ }
+ ::= { lookupCtlTable 1 }
+
+ LookupCtlEntry ::=
+ SEQUENCE {
+ lookupCtlOwnerIndex SnmpAdminString,
+ lookupCtlOperationName SnmpAdminString,
+ lookupCtlTargetAddressType InetAddressType,
+ lookupCtlTargetAddress InetAddress,
+ lookupCtlOperStatus INTEGER,
+ lookupCtlTime Unsigned32,
+ lookupCtlRc Integer32,
+ lookupCtlRowStatus RowStatus
+ }
+
+ lookupCtlOwnerIndex OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(0..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "To facilitate the provisioning of access control by a
+ security administrator using the View-Based Access
+ Control Model (RFC 2575, VACM) for tables in which
+ multiple users may need to create or
+ modify entries independently, the initial index is used as
+ an 'owner index'. Such an initial index has a syntax of
+ SnmpAdminString and can thus be trivially mapped to a
+
+ securityName or groupName defined in VACM, in
+ accordance with a security policy.
+
+ When used in conjunction with such a security policy all
+ entries in the table belonging to a particular user (or
+ group) will have the same value for this initial index.
+ For a given user's entries in a particular table, the
+ object identifiers for the information in these entries
+ will have the same subidentifiers (except for the
+ 'column' subidentifier) up to the end of the encoded
+ owner index. To configure VACM to permit access to this
+ portion of the table, one would create
+ vacmViewTreeFamilyTable entries with the value of
+ vacmViewTreeFamilySubtree including the owner index
+ portion, and vacmViewTreeFamilyMask 'wildcarding' the
+ column subidentifier. More elaborate configurations
+ are possible."
+ ::= { lookupCtlEntry 1 }
+
+ lookupCtlOperationName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(0..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The name of a lookup operation. This is locally unique,
+ within the scope of an lookupCtlOwnerIndex."
+ ::= { lookupCtlEntry 2 }
+
+ lookupCtlTargetAddressType OBJECT-TYPE
+ SYNTAX InetAddressType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Specifies the type of address for performing a
+ lookup operation for a symbolic host name or for a host
+ address from a remote host.
+
+ Specification of dns(16) as the value for this object
+ means that a function such as, for example, getaddrinfo()
+ or gethostbyname() should be performed to return one or
+ more numeric addresses. Use of a value of either ipv4(1)
+ or ipv6(2) means that a functions such as, for example,
+ getnameinfo() or gethostbyaddr() should be used to return
+ the symbolic names associated with a host."
+ DEFVAL { unknown }
+ ::= { lookupCtlEntry 3 }
+
+ lookupCtlTargetAddress OBJECT-TYPE
+ SYNTAX InetAddress
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Specifies the address used for a resolver lookup at a
+ remote host. The corresponding lookupCtlTargetAddressType
+ objects determines its type, as well as the function
+ that can be requested.
+
+ A value for this object MUST be set prior to
+ transitioning its corresponding lookupCtlEntry to
+ active(1) via lookupCtlRowStatus."
+ ::= { lookupCtlEntry 4 }
+
+ lookupCtlOperStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ enabled(1), -- operation is active
+ notStarted(2), -- operation has not started
+ completed(3) -- operation is done
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Reflects the operational state of an lookupCtlEntry:
+
+ enabled(1) - Operation is active.
+ notStarted(2) - Operation has not been enabled.
+ completed(3) - Operation has been completed.
+
+ An operation is automatically enabled(1) when its
+ lookupCtlRowStatus object is transitioned to active(1)
+ status. Until this occurs, lookupCtlOperStatus MUST
+ report a value of notStarted(2). After the lookup
+ operation is completed (success or failure), the value
+ for lookupCtlOperStatus MUST be transitioned to
+ completed(3)."
+ ::= { lookupCtlEntry 5 }
+
+ lookupCtlTime OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "milliseconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Reports the number of milliseconds that a lookup
+ operation required to be completed at a remote host.
+ Completed means operation failure as well as
+
+ success."
+ ::= { lookupCtlEntry 6 }
+
+ lookupCtlRc OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The system-specific return code from a lookup
+ operation. All implementations MUST return a value
+ of 0 for this object when the remote lookup
+ operation succeeds. A non-zero value for this
+ objects indicates failure. It is recommended that
+ implementations return the error codes that are
+ generated by the lookup function used."
+ ::= { lookupCtlEntry 7 }
+
+ lookupCtlRowStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object allows entries to be created and deleted
+ in the lookupCtlTable.
+
+ A remote lookup operation is started when an
+ entry in this table is created via an SNMP set
+ request and the entry is activated. This
+ occurs by setting the value of this object
+ to CreateAndGo(4) during row creation or
+ by setting this object to active(1) after
+ the row is created.
+
+ A value MUST be specified for lookupCtlTargetAddress
+ prior to the acceptance of a transition to active(1) state.
+ A remote lookup operation starts when its entry
+ first becomes active(1). Transitions in and
+ out of active(1) state have no effect on the
+ operational behavior of a remote lookup
+ operation, with the exception that deletion of
+ an entry in this table by setting its RowStatus
+ object to destroy(6) will stop an active
+ remote lookup operation.
+
+ The operational state of a remote lookup operation
+ can be determined by examination of its
+ lookupCtlOperStatus object."
+ REFERENCE
+ "See definition of RowStatus in RFC 2579,
+ 'Textual Conventions for SMIv2.'"
+ ::= { lookupCtlEntry 8 }
+
+-- Lookup Results Table
+
+ lookupResultsTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF LookupResultsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Defines the Lookup Results Table for providing
+ the capability of determining the results of a
+ operation at a remote host.
+
+ One or more entries are added to the
+ lookupResultsTable when a lookup operation,
+ as reflected by an lookupCtlEntry, is completed
+ successfully. All entries related to a
+ successful lookup operation MUST be added
+ to the lookupResultsTable at the same time
+ that the associating lookupCtlOperStatus
+ object is transitioned to completed(2).
+
+ The number of entries added depends on the
+ results determined for a particular lookup
+ operation. All entries associated with an
+ lookupCtlEntry are removed when the
+ lookupCtlEntry is deleted.
+
+ A remote host can be multi-homed and have more than one IP
+ address associated with it (returned by lookup function),
+ or it can have more than one symbolic name (returned
+ by lookup function).
+
+ A function such as, for example, getnameinfo() or
+ gethostbyaddr() is called with a host address as its
+ parameter and is used primarily to determine a symbolic
+ name to associate with the host address. Entries in the
+ lookupResultsTable MUST be made for each host name
+ returned. If the function identifies an 'official host
+ name,' then this symbolic name MUST be assigned a
+ lookupResultsIndex of 1.
+
+ A function such as, for example, getaddrinfo() or
+ gethostbyname() is called with a symbolic host name and is
+ used primarily to retrieve a host address. The entries
+
+ MUST be stored in the order that they are retrieved from
+ the lookup function. lookupResultsIndex 1 MUST be
+ assigned to the first entry."
+ ::= { lookupObjects 4 }
+
+ lookupResultsEntry OBJECT-TYPE
+ SYNTAX LookupResultsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Defines an entry in the lookupResultsTable. The
+ first two index elements identify the
+ lookupCtlEntry that a lookupResultsEntry belongs
+ to. The third index element selects a single
+ lookup operation result."
+ INDEX {
+ lookupCtlOwnerIndex,
+ lookupCtlOperationName,
+ lookupResultsIndex
+ }
+ ::= { lookupResultsTable 1 }
+
+ LookupResultsEntry ::=
+ SEQUENCE {
+ lookupResultsIndex Unsigned32,
+ lookupResultsAddressType InetAddressType,
+ lookupResultsAddress InetAddress
+ }
+
+ lookupResultsIndex OBJECT-TYPE
+ SYNTAX Unsigned32 (1..'ffffffff'h)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Entries in the lookupResultsTable are created when
+ the result of a lookup operation is determined.
+
+ Entries MUST be stored in the lookupResultsTable in
+ the order that they are retrieved. Values assigned
+ to lookupResultsIndex MUST start at 1 and increase
+ consecutively."
+ ::= { lookupResultsEntry 1 }
+
+ lookupResultsAddressType OBJECT-TYPE
+ SYNTAX InetAddressType
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Indicates the type of result of a remote lookup
+ operation. A value of unknown(0) implies either that
+ the operation hasn't been started or that
+ it has failed."
+ ::= { lookupResultsEntry 2 }
+
+ lookupResultsAddress OBJECT-TYPE
+ SYNTAX InetAddress
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Reflects a result for a remote lookup operation
+ as per the value of lookupResultsAddressType.
+
+ The address type (InetAddressType) that relates to
+ this object is specified by the corresponding value
+ of lookupResultsAddress."
+ ::= { lookupResultsEntry 3 }
+
+ -- Conformance information
+ -- Compliance statements
+
+ lookupCompliances OBJECT IDENTIFIER ::= { lookupConformance 1 }
+ lookupGroups OBJECT IDENTIFIER ::= { lookupConformance 2 }
+
+ -- Compliance statements
+
+ lookupCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for SNMP entities that
+ fully implement the DISMAN-NSLOOKUP-MIB."
+ MODULE -- this module
+ MANDATORY-GROUPS { lookupGroup }
+
+ OBJECT lookupMaxConcurrentRequests
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "The agent is not required to support set
+ operations to this object."
+
+ OBJECT lookupPurgeTime
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "The agent is not required to support a set
+ operation to this object."
+ ::= { lookupCompliances 1 }
+
+ lookupMinimumCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The minimum compliance statement for SNMP entities
+ that implement the minimal subset of the
+ DISMAN-NSLOOKUP-MIB. Implementors might choose this
+ subset for small devices with limited resources."
+ MODULE -- this module
+ MANDATORY-GROUPS { lookupGroup }
+
+ OBJECT lookupMaxConcurrentRequests
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "The agent is not required to support set
+ operations to this object."
+
+ OBJECT lookupPurgeTime
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "The agent is not required to support a set
+ operation to this object."
+
+ OBJECT lookupCtlRowStatus
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required. If write access is
+ not supported, then at least one entry in the
+ lookupCtlTable MUST be established already when the SNMP
+ agent starts offering access to the NSLOOKUP-MIB module.
+ If, in such a case, only a single entry is offered, then
+ it is RECOMMENDED that this entry use strings with a
+ length of 0 for both of its two index objects."
+ ::= { lookupCompliances 2 }
+
+ -- MIB groupings
+
+ lookupGroup OBJECT-GROUP
+ OBJECTS {
+ lookupMaxConcurrentRequests,
+ lookupPurgeTime,
+ lookupCtlOperStatus,
+ lookupCtlTargetAddressType,
+ lookupCtlTargetAddress,
+ lookupCtlTime,
+ lookupCtlRc,
+ lookupCtlRowStatus,
+ lookupResultsAddressType,
+ lookupResultsAddress
+ }
+ STATUS current
+ DESCRIPTION
+ "The group of objects that constitute the remote
+ Lookup operation."
+ ::= { lookupGroups 1 }
+
+END
diff --git a/php/extras/mibs/DISMAN-PING-MIB.txt b/php/extras/mibs/DISMAN-PING-MIB.txt
new file mode 100644
index 000000000..645ff8c7d
--- /dev/null
+++ b/php/extras/mibs/DISMAN-PING-MIB.txt
@@ -0,0 +1,1561 @@
+DISMAN-PING-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE, Integer32,
+ Unsigned32, Gauge32, mib-2,
+ NOTIFICATION-TYPE, OBJECT-IDENTITY
+ FROM SNMPv2-SMI -- RFC2578
+ TEXTUAL-CONVENTION, RowStatus,
+ StorageType, DateAndTime, TruthValue
+ FROM SNMPv2-TC -- RFC2579
+ MODULE-COMPLIANCE, OBJECT-GROUP,
+ NOTIFICATION-GROUP
+ FROM SNMPv2-CONF -- RFC2580
+ InterfaceIndexOrZero -- RFC2863
+ FROM IF-MIB
+ SnmpAdminString
+ FROM SNMP-FRAMEWORK-MIB -- RFC3411
+ InetAddressType, InetAddress
+ FROM INET-ADDRESS-MIB; -- RFC4001
+
+ pingMIB MODULE-IDENTITY
+ LAST-UPDATED "200606130000Z" -- 13 June 2006
+ ORGANIZATION "IETF Distributed Management Working Group"
+ CONTACT-INFO
+ "Juergen Quittek
+
+ NEC Europe Ltd.
+ Network Laboratories
+ Kurfuersten-Anlage 36
+ 69115 Heidelberg
+ Germany
+
+ Phone: +49 6221 4342-115
+
+ Email: quittek@netlab.nec.de"
+ DESCRIPTION
+ "The Ping MIB (DISMAN-PING-MIB) provides the capability of
+ controlling the use of the ping function at a remote
+ host.
+
+ Copyright (C) The Internet Society (2006). This version of
+ this MIB module is part of RFC 4560; see the RFC itself for
+ full legal notices."
+
+ -- Revision history
+
+ REVISION "200606130000Z" -- 13 June 2006
+ DESCRIPTION
+ "Updated version, published as RFC 4560.
+ - Correctly considered IPv6 in DESCRIPTION
+ clause of pingCtlDataSize
+ - Replaced references to RFC 2575 by RFC 3415
+ - Replaced references to RFC 2571 by RFC 3411
+ - Replaced references to RFC 2851 by RFC 4001
+ - Added DEFVAL { {} } to definition of
+ pingCtlTrapGeneration
+ - Changed DEFVAL of object pingCtlDescr from
+ DEFVAL { '00'H } to DEFVAL { ''H }
+ - Changed DEFVAL of object pingCtlSourceAddressType
+ from DEFVAL { ipv4 } to DEFVAL { unknown }
+ - Extended DESCRIPTION clause of pingResultsTable
+ describing re-initialization of entries
+ - Changed SYNTAX of pingResultsProbeResponses and
+ pingResultsSentProbes from Unsigned32 to Gauge32
+ - Changed status of pingCompliance to deprecated
+ - Added pingFullCompliance and pingMinimumCompliance
+ - Changed status of pingGroup and pingTimeStampGroup
+ to deprecated
+ - Added pingMinimumGroup, pingCtlRowStatusGroup,
+ and pingHistoryGroup"
+
+ REVISION "200009210000Z" -- 21 September 2000
+ DESCRIPTION
+ "Initial version, published as RFC 2925."
+ ::= { mib-2 80 }
+
+ -- Textual Conventions
+
+ OperationResponseStatus ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "Used to report the result of an operation:
+
+ responseReceived(1) - Operation is completed successfully.
+ unknown(2) - Operation failed due to unknown error.
+ internalError(3) - An implementation detected an error
+ in its own processing that caused an operation
+ to fail.
+ requestTimedOut(4) - Operation failed to receive a
+ valid reply within the time limit imposed on it.
+ unknownDestinationAddress(5) - Invalid destination
+ address.
+ noRouteToTarget(6) - Could not find a route to target.
+ interfaceInactiveToTarget(7) - The interface to be
+ used in sending a probe is inactive, and an
+ alternate route does not exist.
+ arpFailure(8) - Unable to resolve a target address to a
+ media-specific address.
+ maxConcurrentLimitReached(9) - The maximum number of
+ concurrent active operations would have been exceeded
+ if the corresponding operation was allowed.
+ unableToResolveDnsName(10) - The DNS name specified was
+ unable to be mapped to an IP address.
+ invalidHostAddress(11) - The IP address for a host
+ has been determined to be invalid. Examples of this
+ are broadcast or multicast addresses."
+ SYNTAX INTEGER {
+ responseReceived(1),
+ unknown(2),
+ internalError(3),
+ requestTimedOut(4),
+ unknownDestinationAddress(5),
+ noRouteToTarget(6),
+ interfaceInactiveToTarget(7),
+ arpFailure(8),
+ maxConcurrentLimitReached(9),
+ unableToResolveDnsName(10),
+ invalidHostAddress(11)
+ }
+
+ -- Top level structure of the MIB
+
+ pingNotifications OBJECT IDENTIFIER ::= { pingMIB 0 }
+ pingObjects OBJECT IDENTIFIER ::= { pingMIB 1 }
+ pingConformance OBJECT IDENTIFIER ::= { pingMIB 2 }
+
+ -- The registration node (point) for ping implementation types
+
+ pingImplementationTypeDomains OBJECT IDENTIFIER ::= { pingMIB 3 }
+
+ pingIcmpEcho OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "Indicates that an implementation is using the Internet
+ Control Message Protocol (ICMP) 'ECHO' facility."
+ ::= { pingImplementationTypeDomains 1 }
+
+ pingUdpEcho OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "Indicates that an implementation is using the UDP echo
+ port (7)."
+ REFERENCE
+ "RFC 862, 'Echo Protocol'."
+ ::= { pingImplementationTypeDomains 2 }
+
+ pingSnmpQuery OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "Indicates that an implementation is using an SNMP query
+ to calculate a round trip time."
+ ::= { pingImplementationTypeDomains 3 }
+
+ pingTcpConnectionAttempt OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "Indicates that an implementation is attempting to
+ connect to a TCP port in order to calculate a round
+ trip time."
+ ::= { pingImplementationTypeDomains 4 }
+
+ -- Simple Object Definitions
+
+ pingMaxConcurrentRequests OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "requests"
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The maximum number of concurrent active ping requests
+ that are allowed within an agent implementation. A value
+ of 0 for this object implies that there is no limit for
+ the number of concurrent active requests in effect.
+
+ The limit applies only to new requests being activated.
+ When a new value is set, the agent will continue processing
+ all the requests already active, even if their number
+ exceeds the limit just imposed."
+ DEFVAL { 10 }
+ ::= { pingObjects 1 }
+
+ -- Ping Control Table
+
+ pingCtlTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF PingCtlEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Defines the ping Control Table for providing, via SNMP,
+ the capability of performing ping operations at
+ a remote host. The results of these operations are
+ stored in the pingResultsTable and the
+ pingProbeHistoryTable."
+ ::= { pingObjects 2 }
+
+ pingCtlEntry OBJECT-TYPE
+ SYNTAX PingCtlEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Defines an entry in the pingCtlTable. The first index
+ element, pingCtlOwnerIndex, is of type SnmpAdminString,
+ a textual convention that allows for use of the SNMPv3
+ View-Based Access Control Model (RFC 3415, VACM)
+ and that allows a management application to identify its
+ entries. The second index, pingCtlTestName (also an
+ SnmpAdminString), enables the same management
+ application to have multiple outstanding requests."
+ INDEX {
+ pingCtlOwnerIndex,
+ pingCtlTestName
+ }
+ ::= { pingCtlTable 1 }
+
+ PingCtlEntry ::=
+ SEQUENCE {
+ pingCtlOwnerIndex SnmpAdminString,
+ pingCtlTestName SnmpAdminString,
+ pingCtlTargetAddressType InetAddressType,
+ pingCtlTargetAddress InetAddress,
+ pingCtlDataSize Unsigned32,
+ pingCtlTimeOut Unsigned32,
+ pingCtlProbeCount Unsigned32,
+ pingCtlAdminStatus INTEGER,
+ pingCtlDataFill OCTET STRING,
+ pingCtlFrequency Unsigned32,
+ pingCtlMaxRows Unsigned32,
+ pingCtlStorageType StorageType,
+ pingCtlTrapGeneration BITS,
+ pingCtlTrapProbeFailureFilter Unsigned32,
+ pingCtlTrapTestFailureFilter Unsigned32,
+ pingCtlType OBJECT IDENTIFIER,
+ pingCtlDescr SnmpAdminString,
+ pingCtlSourceAddressType InetAddressType,
+ pingCtlSourceAddress InetAddress,
+ pingCtlIfIndex InterfaceIndexOrZero,
+ pingCtlByPassRouteTable TruthValue,
+ pingCtlDSField Unsigned32,
+ pingCtlRowStatus RowStatus
+ }
+
+ pingCtlOwnerIndex OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(0..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "To facilitate the provisioning of access control by a
+ security administrator using the View-Based Access
+ Control Model (RFC 2575, VACM) for tables in which
+ multiple users may need to create or
+ modify entries independently, the initial index is used
+ as an 'owner index'. Such an initial index has a syntax
+ of SnmpAdminString and can thus be trivially mapped to a
+ securityName or groupName defined in VACM, in
+ accordance with a security policy.
+
+ When used in conjunction with such a security policy, all
+ entries in the table belonging to a particular user (or
+ group) will have the same value for this initial index.
+ For a given user's entries in a particular table, the
+ object identifiers for the information in these entries
+ will have the same subidentifiers (except for the 'column'
+ subidentifier) up to the end of the encoded owner index.
+ To configure VACM to permit access to this portion of the
+ table, one would create vacmViewTreeFamilyTable entries
+ with the value of vacmViewTreeFamilySubtree including
+ the owner index portion, and vacmViewTreeFamilyMask
+ 'wildcarding' the column subidentifier. More elaborate
+ configurations are possible."
+ ::= { pingCtlEntry 1 }
+
+ pingCtlTestName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(0..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The name of the ping test. This is locally unique, within
+ the scope of a pingCtlOwnerIndex."
+ ::= { pingCtlEntry 2 }
+
+ pingCtlTargetAddressType OBJECT-TYPE
+ SYNTAX InetAddressType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Specifies the type of host address to be used at a remote
+ host for performing a ping operation."
+ DEFVAL { unknown }
+ ::= { pingCtlEntry 3 }
+
+ pingCtlTargetAddress OBJECT-TYPE
+ SYNTAX InetAddress
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Specifies the host address to be used at a remote host for
+ performing a ping operation. The host address type is
+ determined by the value of the corresponding
+ pingCtlTargetAddressType.
+
+ A value for this object MUST be set prior to transitioning
+ its corresponding pingCtlEntry to active(1) via
+ pingCtlRowStatus."
+ DEFVAL { ''H }
+ ::= { pingCtlEntry 4 }
+
+ pingCtlDataSize OBJECT-TYPE
+ SYNTAX Unsigned32 (0..65507)
+ UNITS "octets"
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Specifies the size of the data portion to be
+ transmitted in a ping operation, in octets. Whether this
+ value can be applied depends on the selected
+ implementation method for performing a ping operation,
+ indicated by pingCtlType in the same conceptual row.
+ If the method used allows applying the value contained
+
+ in this object, then it MUST be applied. If the specified
+ size is not appropriate for the chosen ping method, the
+ implementation SHOULD use whatever size (appropriate to
+ the method) is closest to the specified size.
+
+ The maximum value for this object was computed by
+ subtracting the smallest possible IP header size of
+ 20 octets (IPv4 header with no options) and the UDP
+ header size of 8 octets from the maximum IP packet size.
+ An IP packet has a maximum size of 65535 octets
+ (excluding IPv6 Jumbograms)."
+ DEFVAL { 0 }
+ ::= { pingCtlEntry 5 }
+
+ pingCtlTimeOut OBJECT-TYPE
+ SYNTAX Unsigned32 (1..60)
+ UNITS "seconds"
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Specifies the time-out value, in seconds, for a
+ remote ping operation."
+ DEFVAL { 3 }
+ ::= { pingCtlEntry 6 }
+
+ pingCtlProbeCount OBJECT-TYPE
+ SYNTAX Unsigned32 (1..15)
+ UNITS "probes"
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Specifies the number of times to perform a ping
+ operation at a remote host as part of a single ping test."
+ DEFVAL { 1 }
+ ::= { pingCtlEntry 7 }
+
+ pingCtlAdminStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ enabled(1), -- test should be started
+ disabled(2) -- test should be stopped
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Reflects the desired state that a pingCtlEntry should be
+ in:
+
+ enabled(1) - Attempt to activate the test as defined by
+ this pingCtlEntry.
+ disabled(2) - Deactivate the test as defined by this
+ pingCtlEntry.
+
+ Refer to the corresponding pingResultsOperStatus to
+ determine the operational state of the test defined by
+ this entry."
+ DEFVAL { disabled }
+ ::= { pingCtlEntry 8 }
+
+ pingCtlDataFill OBJECT-TYPE
+ SYNTAX OCTET STRING (SIZE(0..1024))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The content of this object is used together with the
+ corresponding pingCtlDataSize value to determine how to
+ fill the data portion of a probe packet. The option of
+ selecting a data fill pattern can be useful when links
+ are compressed or have data pattern sensitivities. The
+ contents of pingCtlDataFill should be repeated in a ping
+ packet when the size of the data portion of the ping
+ packet is greater than the size of pingCtlDataFill."
+ DEFVAL { '00'H }
+ ::= { pingCtlEntry 9 }
+
+ pingCtlFrequency OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "seconds"
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The number of seconds to wait before repeating a ping test
+ as defined by the value of the various objects in the
+ corresponding row.
+
+ A single ping test consists of a series of ping probes.
+ The number of probes is determined by the value of the
+ corresponding pingCtlProbeCount object. After a single
+ test is completed the number of seconds as defined by the
+ value of pingCtlFrequency MUST elapse before the
+ next ping test is started.
+
+ A value of 0 for this object implies that the test
+ as defined by the corresponding entry will not be
+ repeated."
+ DEFVAL { 0 }
+ ::= { pingCtlEntry 10 }
+
+ pingCtlMaxRows OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "rows"
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The maximum number of corresponding entries allowed
+ in the pingProbeHistoryTable. An implementation of this
+ MIB will remove the oldest corresponding entry in the
+ pingProbeHistoryTable to allow the addition of an
+ new entry once the number of corresponding rows in the
+ pingProbeHistoryTable reaches this value.
+
+ Old entries are not removed when a new test is
+ started. Entries are added to the pingProbeHistoryTable
+ until pingCtlMaxRows is reached before entries begin to
+ be removed.
+
+ A value of 0 for this object disables creation of
+ pingProbeHistoryTable entries."
+ DEFVAL { 50 }
+ ::= { pingCtlEntry 11 }
+
+ pingCtlStorageType OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The storage type for this conceptual row.
+ Conceptual rows having the value 'permanent' need not
+ allow write-access to any columnar objects in the row."
+ DEFVAL { nonVolatile }
+ ::= { pingCtlEntry 12 }
+
+ pingCtlTrapGeneration OBJECT-TYPE
+ SYNTAX BITS {
+ probeFailure(0),
+ testFailure(1),
+ testCompletion(2)
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The value of this object determines when and whether
+ to generate a notification for this entry:
+
+ probeFailure(0) - Generate a pingProbeFailed
+ notification subject to the value of
+ pingCtlTrapProbeFailureFilter. The object
+ pingCtlTrapProbeFailureFilter can be used
+ to specify the number of consecutive probe
+ failures that are required before a
+ pingProbeFailed notification can be generated.
+ testFailure(1) - Generate a pingTestFailed
+ notification. In this instance the object
+ pingCtlTrapTestFailureFilter can be used to
+ determine the number of probe failures that
+ signal when a test fails.
+ testCompletion(2) - Generate a pingTestCompleted
+ notification.
+
+ By default, no bits are set, indicating that
+ none of the above options is selected."
+ DEFVAL { {} } -- no bits set.
+ ::= { pingCtlEntry 13 }
+
+ pingCtlTrapProbeFailureFilter OBJECT-TYPE
+ SYNTAX Unsigned32 (0..15)
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The value of this object is used to determine when
+ to generate a pingProbeFailed NOTIFICATION.
+
+ Setting BIT probeFailure(0) of object
+ pingCtlTrapGeneration to '1' implies that a
+ pingProbeFailed NOTIFICATION is generated only when
+
+ a number of consecutive ping probes equal to the
+ value of pingCtlTrapProbeFailureFilter fail within
+ a given ping test. After triggering the notification,
+ the probe failure counter is reset to zero."
+ DEFVAL { 1 }
+ ::= { pingCtlEntry 14 }
+
+ pingCtlTrapTestFailureFilter OBJECT-TYPE
+ SYNTAX Unsigned32 (0..15)
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The value of this object is used to determine when
+ to generate a pingTestFailed NOTIFICATION.
+
+ Setting BIT testFailure(1) of object
+
+ pingCtlTrapGeneration to '1' implies that a
+ pingTestFailed NOTIFICATION is generated only when
+ a number of consecutive ping tests equal to the
+ value of pingCtlTrapProbeFailureFilter fail.
+ After triggering the notification, the test failure
+ counter is reset to zero."
+ DEFVAL { 1 }
+ ::= { pingCtlEntry 15 }
+
+ pingCtlType OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The value of this object is used either to report or
+ to select the implementation method to be used for
+ calculating a ping response time. The value of this
+ object MAY be selected from pingImplementationTypeDomains.
+
+ Additional implementation types SHOULD be allocated as
+ required by implementers of the DISMAN-PING-MIB under
+ their enterprise-specific registration point and not
+ beneath pingImplementationTypeDomains."
+ DEFVAL { pingIcmpEcho }
+ ::= { pingCtlEntry 16 }
+
+ pingCtlDescr OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The purpose of this object is to provide a
+ descriptive name of the remote ping test."
+ DEFVAL { ''H }
+ ::= { pingCtlEntry 17 }
+
+ pingCtlSourceAddressType OBJECT-TYPE
+ SYNTAX InetAddressType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Specifies the type of the source address,
+ pingCtlSourceAddress, to be used at a remote host
+ when a ping operation is performed."
+ DEFVAL { unknown }
+ ::= { pingCtlEntry 18 }
+
+ pingCtlSourceAddress OBJECT-TYPE
+ SYNTAX InetAddress
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Use the specified IP address (which must be given in
+ numeric form, not as a hostname) as the source address
+ in outgoing probe packets. On hosts with more than one
+ IP address, this option can be used to select the address
+ to be used. If the IP address is not one of this
+ machine's interface addresses, an error is returned and
+ nothing is sent. A zero-length octet string value for
+ this object disables source address specification.
+
+ The address type (InetAddressType) that relates to
+ this object is specified by the corresponding value
+ of pingCtlSourceAddressType."
+ DEFVAL { ''H }
+ ::= { pingCtlEntry 19 }
+
+ pingCtlIfIndex OBJECT-TYPE
+ SYNTAX InterfaceIndexOrZero
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Setting this object to an interface's ifIndex prior
+ to starting a remote ping operation directs
+ the ping probes to be transmitted over the
+ specified interface. A value of zero for this object
+ means that this option is not enabled."
+ DEFVAL { 0 }
+ ::= { pingCtlEntry 20 }
+
+ pingCtlByPassRouteTable OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The purpose of this object is to enable optional
+ bypassing the route table. If enabled, the remote
+ host will bypass the normal routing tables and send
+ directly to a host on an attached network. If the
+ host is not on a directly attached network, an
+ error is returned. This option can be used to perform
+ the ping operation to a local host through an
+ interface that has no route defined (e.g., after the
+ interface was dropped by the routing daemon at the host)."
+ DEFVAL { false }
+ ::= { pingCtlEntry 21 }
+
+ pingCtlDSField OBJECT-TYPE
+ SYNTAX Unsigned32 (0..255)
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Specifies the value to store in the Type of Service
+ (TOS) octet in the IPv4 header or in the Traffic
+ Class octet in the IPv6 header, respectively, of the
+ IP packet used to encapsulate the ping probe.
+
+ The octet to be set in the IP header contains the
+ Differentiated Services (DS) Field in the six most
+ significant bits.
+
+ This option can be used to determine what effect an
+ explicit DS Field setting has on a ping response.
+ Not all values are legal or meaningful. A value of 0
+ means that the function represented by this option is
+ not supported. DS Field usage is often not supported
+ by IP implementations, and not all values are supported.
+ Refer to RFC 2474 and RFC 3260 for guidance on usage of
+ this field."
+ REFERENCE
+ "Refer to RFC 1812 for the definition of the IPv4 TOS
+ octet and to RFC 2460 for the definition of the IPv6
+ Traffic Class octet. Refer to RFC 2474 and RFC 3260
+ for the definition of the Differentiated Services Field."
+ DEFVAL { 0 }
+ ::= { pingCtlEntry 22 }
+
+ pingCtlRowStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object allows entries to be created and deleted
+ in the pingCtlTable. Deletion of an entry in this
+ table results in the deletion of all corresponding (same
+ pingCtlOwnerIndex and pingCtlTestName index values)
+ pingResultsTable and pingProbeHistoryTable entries.
+
+ A value MUST be specified for pingCtlTargetAddress
+ prior to acceptance of a transition to active(1) state.
+
+ When a value for pingCtlTargetAddress is set,
+ the value of object pingCtlRowStatus changes
+ from notReady(3) to notInService(2).
+
+ Activation of a remote ping operation is controlled
+ via pingCtlAdminStatus, not by changing
+ this object's value to active(1).
+
+ Transitions in and out of active(1) state are not
+ allowed while an entry's pingResultsOperStatus is
+ active(1), with the exception that deletion of
+ an entry in this table by setting its RowStatus
+ object to destroy(6) will stop an active
+ ping operation.
+
+ The operational state of a ping operation
+ can be determined by examination of its
+ pingResultsOperStatus object."
+ REFERENCE
+ "See definition of RowStatus in RFC 2579, 'Textual
+ Conventions for SMIv2.'"
+ ::= { pingCtlEntry 23 }
+
+-- Ping Results Table
+
+ pingResultsTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF PingResultsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Defines the Ping Results Table for providing
+ the capability of performing ping operations at
+ a remote host. The results of these operations are
+ stored in the pingResultsTable and the pingProbeHistoryTable.
+
+ An entry is added to the pingResultsTable when an
+ pingCtlEntry is started by successful transition
+ of its pingCtlAdminStatus object to enabled(1).
+
+ If the object pingCtlAdminStatus already has the value
+ enabled(1), and if the corresponding pingResultsOperStatus
+ object has the value completed(3), then successfully writing
+ enabled(1) to object pingCtlAdminStatus re-initializes the
+ already existing entry in the pingResultsTable. The values
+ of objects in the re-initialized entry are the same as the
+ values of objects in a new entry would be.
+
+ An entry is removed from the pingResultsTable when
+ its corresponding pingCtlEntry is deleted."
+ ::= { pingObjects 3 }
+
+ pingResultsEntry OBJECT-TYPE
+ SYNTAX PingResultsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Defines an entry in the pingResultsTable. The
+ pingResultsTable has the same indexing as the
+ pingCtlTable so that a pingResultsEntry
+ corresponds to the pingCtlEntry that caused it to
+ be created."
+ INDEX {
+ pingCtlOwnerIndex,
+ pingCtlTestName
+ }
+ ::= { pingResultsTable 1 }
+
+ PingResultsEntry ::=
+ SEQUENCE {
+ pingResultsOperStatus INTEGER,
+ pingResultsIpTargetAddressType InetAddressType,
+ pingResultsIpTargetAddress InetAddress,
+ pingResultsMinRtt Unsigned32,
+ pingResultsMaxRtt Unsigned32,
+ pingResultsAverageRtt Unsigned32,
+ pingResultsProbeResponses Gauge32,
+ pingResultsSentProbes Gauge32,
+ pingResultsRttSumOfSquares Unsigned32,
+ pingResultsLastGoodProbe DateAndTime
+ }
+
+ pingResultsOperStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ enabled(1), -- test is in progress
+ disabled(2), -- test has stopped
+ completed(3) -- test is completed
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Reflects the operational state of a pingCtlEntry:
+
+ enabled(1) - Test is active.
+ disabled(2) - Test has stopped.
+ completed(3) - Test is completed."
+ ::= { pingResultsEntry 1 }
+
+ pingResultsIpTargetAddressType OBJECT-TYPE
+ SYNTAX InetAddressType
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "This object indicates the type of address stored
+ in the corresponding pingResultsIpTargetAddress
+ object."
+ DEFVAL { unknown }
+ ::= { pingResultsEntry 2 }
+
+ pingResultsIpTargetAddress OBJECT-TYPE
+ SYNTAX InetAddress
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "This object reports the IP address associated
+ with a pingCtlTargetAddress value when the destination
+ address is specified as a DNS name. The value of
+ this object should be a zero-length octet string
+ when a DNS name is not specified or when a
+ specified DNS name fails to resolve.
+
+ The address type (InetAddressType) that relates to
+ this object is specified by the corresponding value
+ of pingResultsIpTargetAddressType."
+ DEFVAL { ''H }
+ ::= { pingResultsEntry 3 }
+
+ pingResultsMinRtt OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "milliseconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The minimum ping round-trip-time (RTT) received. A value
+ of 0 for this object implies that no RTT has been received."
+ ::= { pingResultsEntry 4 }
+
+ pingResultsMaxRtt OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "milliseconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The maximum ping round-trip-time (RTT) received. A value
+ of 0 for this object implies that no RTT has been received."
+ ::= { pingResultsEntry 5 }
+
+ pingResultsAverageRtt OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "milliseconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The current average ping round-trip-time (RTT)."
+ ::= { pingResultsEntry 6 }
+
+ pingResultsProbeResponses OBJECT-TYPE
+ SYNTAX Gauge32
+ UNITS "responses"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Number of responses received for the corresponding
+ pingCtlEntry and pingResultsEntry. The value of this object
+ MUST be reported as 0 when no probe responses have been
+ received."
+ ::= { pingResultsEntry 7 }
+
+ pingResultsSentProbes OBJECT-TYPE
+ SYNTAX Gauge32
+ UNITS "probes"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of this object reflects the number of probes sent
+ for the corresponding pingCtlEntry and pingResultsEntry.
+ The value of this object MUST be reported as 0 when no probes
+ have been sent."
+ ::= { pingResultsEntry 8 }
+
+ pingResultsRttSumOfSquares OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "milliseconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "This object contains the sum of the squares for all ping
+ responses received. Its purpose is to enable standard
+ deviation calculation. The value of this object MUST
+ be reported as 0 when no ping responses have been
+ received."
+ ::= { pingResultsEntry 9 }
+
+ pingResultsLastGoodProbe OBJECT-TYPE
+ SYNTAX DateAndTime
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Date and time when the last response was received for
+ a probe."
+ ::= { pingResultsEntry 10 }
+
+ -- Ping Probe History Table
+
+ pingProbeHistoryTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF PingProbeHistoryEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Defines a table for storing the results of ping
+ operations. The number of entries in this table is
+ limited per entry in the pingCtlTable by the value
+ of the corresponding pingCtlMaxRows object.
+
+ An entry in this table is created when the result of
+ a ping probe is determined. The initial 2 instance
+ identifier index values identify the pingCtlEntry
+ that a probe result (pingProbeHistoryEntry) belongs
+ to. An entry is removed from this table when
+ its corresponding pingCtlEntry is deleted.
+
+ An implementation of this MIB will remove the oldest
+ entry in the pingProbeHistoryTable of the
+ corresponding entry in the pingCtlTable to allow
+ the addition of an new entry once the number of rows
+ in the pingProbeHistoryTable reaches the value
+ specified by pingCtlMaxRows for the corresponding
+ entry in the pingCtlTable."
+ ::= { pingObjects 4 }
+
+ pingProbeHistoryEntry OBJECT-TYPE
+ SYNTAX PingProbeHistoryEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Defines an entry in the pingProbeHistoryTable.
+ The first two index elements identify the
+ pingCtlEntry that a pingProbeHistoryEntry belongs
+ to. The third index element selects a single
+ probe result."
+ INDEX {
+
+ pingCtlOwnerIndex,
+ pingCtlTestName,
+ pingProbeHistoryIndex
+ }
+ ::= { pingProbeHistoryTable 1 }
+
+ PingProbeHistoryEntry ::=
+ SEQUENCE {
+ pingProbeHistoryIndex Unsigned32,
+ pingProbeHistoryResponse Unsigned32,
+ pingProbeHistoryStatus OperationResponseStatus,
+ pingProbeHistoryLastRC Integer32,
+ pingProbeHistoryTime DateAndTime
+ }
+
+ pingProbeHistoryIndex OBJECT-TYPE
+ SYNTAX Unsigned32 (1..'ffffffff'h)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry in this table is created when the result of
+ a ping probe is determined. The initial 2 instance
+ identifier index values identify the pingCtlEntry
+ that a probe result (pingProbeHistoryEntry) belongs
+ to.
+
+ An implementation MUST start assigning
+ pingProbeHistoryIndex values at 1 and wrap after
+ exceeding the maximum possible value as defined by
+ the limit of this object ('ffffffff'h)."
+ ::= { pingProbeHistoryEntry 1 }
+
+ pingProbeHistoryResponse OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "milliseconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The amount of time measured in milliseconds from when
+ a probe was sent to when its response was received or
+ when it timed out. The value of this object is reported
+ as 0 when it is not possible to transmit a probe."
+ ::= { pingProbeHistoryEntry 2 }
+
+ pingProbeHistoryStatus OBJECT-TYPE
+ SYNTAX OperationResponseStatus
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The result of a particular probe done by a remote host."
+ ::= { pingProbeHistoryEntry 3 }
+
+ pingProbeHistoryLastRC OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The last implementation-method-specific reply code received.
+ If the ICMP Echo capability is being used, then a successful
+ probe ends when an ICMP response is received that contains
+ the code ICMP_ECHOREPLY(0). The ICMP codes are maintained
+ by IANA. Standardized ICMP codes are listed at
+ http://www.iana.org/assignments/icmp-parameters.
+ The ICMPv6 codes are listed at
+ http://www.iana.org/assignments/icmpv6-parameters."
+ ::= { pingProbeHistoryEntry 4 }
+
+ pingProbeHistoryTime OBJECT-TYPE
+ SYNTAX DateAndTime
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Timestamp for when this probe result was determined."
+ ::= { pingProbeHistoryEntry 5 }
+
+ -- Notification Definition section
+
+ pingProbeFailed NOTIFICATION-TYPE
+ OBJECTS {
+ pingCtlTargetAddressType,
+ pingCtlTargetAddress,
+ pingResultsOperStatus,
+ pingResultsIpTargetAddressType,
+ pingResultsIpTargetAddress,
+ pingResultsMinRtt,
+ pingResultsMaxRtt,
+ pingResultsAverageRtt,
+ pingResultsProbeResponses,
+ pingResultsSentProbes,
+ pingResultsRttSumOfSquares,
+ pingResultsLastGoodProbe
+ }
+ STATUS current
+ DESCRIPTION
+ "Generated when a probe failure is detected, when the
+
+ corresponding pingCtlTrapGeneration object is set to
+ probeFailure(0), subject to the value of
+ pingCtlTrapProbeFailureFilter. The object
+ pingCtlTrapProbeFailureFilter can be used to specify the
+ number of consecutive probe failures that are required
+ before this notification can be generated."
+ ::= { pingNotifications 1 }
+
+ pingTestFailed NOTIFICATION-TYPE
+ OBJECTS {
+ pingCtlTargetAddressType,
+ pingCtlTargetAddress,
+ pingResultsOperStatus,
+ pingResultsIpTargetAddressType,
+ pingResultsIpTargetAddress,
+ pingResultsMinRtt,
+ pingResultsMaxRtt,
+ pingResultsAverageRtt,
+ pingResultsProbeResponses,
+ pingResultsSentProbes,
+ pingResultsRttSumOfSquares,
+ pingResultsLastGoodProbe
+ }
+ STATUS current
+ DESCRIPTION
+ "Generated when a ping test is determined to have failed,
+ when the corresponding pingCtlTrapGeneration object is
+ set to testFailure(1). In this instance,
+ pingCtlTrapTestFailureFilter should specify the number of
+ probes in a test required to have failed in order to
+ consider the test failed."
+ ::= { pingNotifications 2 }
+
+ pingTestCompleted NOTIFICATION-TYPE
+ OBJECTS {
+ pingCtlTargetAddressType,
+ pingCtlTargetAddress,
+ pingResultsOperStatus,
+ pingResultsIpTargetAddressType,
+ pingResultsIpTargetAddress,
+ pingResultsMinRtt,
+ pingResultsMaxRtt,
+ pingResultsAverageRtt,
+ pingResultsProbeResponses,
+ pingResultsSentProbes,
+ pingResultsRttSumOfSquares,
+ pingResultsLastGoodProbe
+
+ }
+ STATUS current
+ DESCRIPTION
+ "Generated at the completion of a ping test when the
+ corresponding pingCtlTrapGeneration object has the
+ testCompletion(2) bit set."
+ ::= { pingNotifications 3 }
+
+ -- Conformance information
+
+ -- Compliance statements
+
+ pingCompliances OBJECT IDENTIFIER ::= { pingConformance 1 }
+ pingGroups OBJECT IDENTIFIER ::= { pingConformance 2 }
+
+ -- Compliance statements
+
+ pingFullCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for SNMP entities that
+ fully implement the DISMAN-PING-MIB."
+ MODULE -- this module
+ MANDATORY-GROUPS {
+ pingMinimumGroup,
+ pingCtlRowStatusGroup,
+ pingHistoryGroup,
+ pingNotificationsGroup
+ }
+
+ OBJECT pingMaxConcurrentRequests
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "The agent is not required to support set
+ operations to this object."
+
+ OBJECT pingCtlStorageType
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+
+ OBJECT pingCtlType
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required. In addition, the only
+ value that MUST be supported by an implementation is
+ pingIcmpEcho."
+
+ OBJECT pingCtlSourceAddressType
+ SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2) }
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access to this object is not required by
+ implementations that are not capable of binding the
+ send socket with a source address. An implementation
+ is only required to support IPv4 and IPv6 addresses."
+
+ OBJECT pingCtlSourceAddress
+ SYNTAX InetAddress (SIZE(0|4|16))
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access to this object is not required by
+ implementations that are not capable of binding the
+ send socket with a source address. An implementation
+ is only required to support IPv4 and IPv6 addresses."
+
+ OBJECT pingCtlIfIndex
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required. If write access is
+ not supported, return a 0 as the value of this object.
+ A value of 0 means that the function represented by
+ this option is not supported."
+
+ OBJECT pingCtlByPassRouteTable
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access to this object is not required by
+ implementations that are not capable of its
+ implementation. The function represented by this
+ object is implementable if the setsockopt
+ SOL_SOCKET SO_DONTROUTE option is supported."
+
+ OBJECT pingCtlDSField
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required. If write access is
+ not supported, return a 0 as the value of this object.
+ A value of 0 means that the function represented by
+ this option is not supported."
+
+ OBJECT pingResultsIpTargetAddressType
+ SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2) }
+ DESCRIPTION
+ "An implementation is only required to
+
+ support IPv4 and IPv6 addresses."
+
+ OBJECT pingResultsIpTargetAddress
+ SYNTAX InetAddress (SIZE(0|4|16))
+ DESCRIPTION
+ "An implementation is only required to
+ support IPv4 and globally unique IPv6 addresses."
+
+ OBJECT pingResultsLastGoodProbe
+ DESCRIPTION
+ "This object is mandatory for implementations that have
+ access to a system clock and that are capable of setting
+ the values for DateAndTime objects. It is RECOMMENDED
+ that when this object is not supported its values
+ be reported as '0000000000000000'H."
+
+ OBJECT pingProbeHistoryTime
+ DESCRIPTION
+ "This object is mandatory for implementations that have
+ access to a system clock and that are capable of setting
+ the values for DateAndTime objects. It is RECOMMENDED
+ that when this object is not supported its values
+ be reported as '0000000000000000'H."
+ ::= { pingCompliances 2 }
+
+ pingMinimumCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The minimum compliance statement for SNMP entities
+ that implement the minimal subset of the
+ DISMAN-PING-MIB. Implementors might choose this
+ subset for small devices with limited resources."
+ MODULE -- this module
+ MANDATORY-GROUPS { pingMinimumGroup }
+
+ GROUP pingCtlRowStatusGroup
+ DESCRIPTION
+ "A compliant implementation does not have to implement
+ the pingCtlRowStatusGroup."
+
+ GROUP pingHistoryGroup
+ DESCRIPTION
+ "A compliant implementation does not have to implement
+ the pingHistoryGroup."
+
+ GROUP pingNotificationsGroup
+ DESCRIPTION
+ "A compliant implementation does not have to implement
+
+ the pingNotificationsGroup."
+
+ OBJECT pingMaxConcurrentRequests
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "The agent is not required to support set
+ operations to this object."
+
+ OBJECT pingCtlDataFill
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "The agent is not required to support set
+ operations to this object."
+
+ OBJECT pingCtlFrequency
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required. If write access is
+ not supported, return a 0 as the value of this object.
+ A value of 0 means that the function represented by
+ this option is not supported."
+
+ OBJECT pingCtlMaxRows
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required. If the
+ pingHistoryGroup is not implemented, then write
+ access to this object MUST be disabled, and the object
+ MUST return a value of 0 when retrieved."
+
+ OBJECT pingCtlStorageType
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+
+ OBJECT pingCtlTrapGeneration
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required. If the
+ pingNotificationsGroup is not implemented, then write
+ access to this object MUST be disabled, and the object
+ MUST return a value with no bit set when retrieved.
+ No bit set indicates that not notification is
+ generated."
+
+ OBJECT pingCtlTrapProbeFailureFilter
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "If write access to pingCtlTrapGeneration is not
+ supported, then write access to this object must also
+ not be supported. In this case, return 0 as the value
+ of this object."
+
+ OBJECT pingCtlTrapTestFailureFilter
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "If write access to pingCtlTrapGeneration is not
+ supported, then write access to this object must also
+ not be supported. In this case, return 0 as the value
+ of this object."
+
+ OBJECT pingCtlType
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required. In addition, the only
+ value that MUST be supported by an implementation is
+ pingIcmpEcho."
+
+ OBJECT pingCtlDescr
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "The agent is not required to support set
+ operations to this object."
+
+ OBJECT pingCtlSourceAddressType
+ SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2) }
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access to this object is not required by
+ implementations that are not capable of binding the
+ send socket with a source address. An implementation
+ is only required to support IPv4 and IPv6 addresses."
+
+ OBJECT pingCtlSourceAddress
+ SYNTAX InetAddress (SIZE(0|4|16))
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access to this object is not required by
+ implementations that are not capable of binding the
+ send socket with a source address. An implementation
+ is only required to support IPv4 and IPv6 addresses."
+
+ OBJECT pingCtlIfIndex
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required. If write access is
+
+ not supported, return a 0 as the value of this object.
+ A value of 0 means that the function represented by
+ this option is not supported."
+
+ OBJECT pingCtlByPassRouteTable
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required. If write access is
+ not supported, return false(2) as the value of this
+ object. A value of false(2) means that the function
+ represented by this option is not supported."
+
+ OBJECT pingCtlDSField
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required. If write access is
+ not supported, return a 0 as the value of this object.
+ A value of 0 means that the function represented by
+ this option is not supported."
+
+ OBJECT pingResultsIpTargetAddressType
+ SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2) }
+ DESCRIPTION
+ "An implementation is only required to
+ support IPv4 and IPv6 addresses."
+
+ OBJECT pingResultsIpTargetAddress
+ SYNTAX InetAddress (SIZE(0|4|16))
+ DESCRIPTION
+ "An implementation is only required to
+ support IPv4 and globally unique IPv6 addresses."
+
+ OBJECT pingResultsLastGoodProbe
+ DESCRIPTION
+ "This object is mandatory for implementations that have
+ access to a system clock and that are capable of setting
+ the values for DateAndTime objects. It is RECOMMENDED
+ that when this object is not supported its values
+ be reported as '0000000000000000'H."
+
+ OBJECT pingProbeHistoryTime
+ DESCRIPTION
+ "If the pingHistoryGroup is implemented, then this
+ object is mandatory for implementations that have
+ access to a system clock and that are capable of setting
+ the values for DateAndTime objects. It is RECOMMENDED
+ that when this object is not supported its values
+
+ be reported as '0000000000000000'H."
+ ::= { pingCompliances 3 }
+
+ pingCompliance MODULE-COMPLIANCE
+ STATUS deprecated
+ DESCRIPTION
+ "The compliance statement for the DISMAN-PING-MIB. This
+ compliance statement has been deprecated because the
+ group pingGroup and the pingTimeStampGroup have been
+ split and deprecated. The pingFullCompliance statement
+ is semantically identical to the deprecated
+ pingCompliance statement."
+
+ MODULE -- this module
+ MANDATORY-GROUPS {
+ pingGroup,
+ pingNotificationsGroup
+ }
+ GROUP pingTimeStampGroup
+ DESCRIPTION
+ "This group is mandatory for implementations that have
+ access to a system clock and that are capable of setting
+ the values for DateAndTime objects. It is RECOMMENDED
+ that when this group is not supported the values
+ for the objects in this group be reported as
+ '0000000000000000'H."
+
+ OBJECT pingMaxConcurrentRequests
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "The agent is not required to support set
+ operations to this object."
+
+ OBJECT pingCtlStorageType
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required. It is also allowed
+ that implementations support only the volatile
+ StorageType enumeration."
+
+ OBJECT pingCtlType
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required. In addition, the only
+ value that MUST be supported by an implementation is
+ pingIcmpEcho."
+
+ OBJECT pingCtlByPassRouteTable
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "This object is not required by implementations that
+ are not capable of its implementation. The function
+ represented by this object is implementable if the
+ setsockopt SOL_SOCKET SO_DONTROUTE option is
+ supported."
+
+ OBJECT pingCtlSourceAddressType
+ SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2) }
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "This object is not required by implementations that
+ are not capable of binding the send socket with a
+ source address. An implementation is only required to
+ support IPv4 and IPv6 addresses."
+
+ OBJECT pingCtlSourceAddress
+ SYNTAX InetAddress (SIZE(0|4|16))
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "This object is not required by implementations that
+ are not capable of binding the send socket with a
+ source address. An implementation is only required to
+ support IPv4 and globally unique IPv6 addresses."
+
+ OBJECT pingCtlIfIndex
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required. When write access is
+ not supported, return a 0 as the value of this object.
+ A value of 0 means that the function represented by
+ this option is not supported."
+
+ OBJECT pingCtlDSField
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required. When write access is
+ not supported, return a 0 as the value of this object.
+ A value of 0 means that the function represented by
+ this option is not supported."
+
+ OBJECT pingResultsIpTargetAddressType
+ SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2) }
+ DESCRIPTION
+ "An implementation is only required to
+ support IPv4 and IPv6 addresses."
+
+ OBJECT pingResultsIpTargetAddress
+ SYNTAX InetAddress (SIZE(0|4|16))
+ DESCRIPTION
+ "An implementation is only required to
+ support IPv4 and globally unique IPv6 addresses."
+ ::= { pingCompliances 1 }
+
+ -- MIB groupings
+
+ pingMinimumGroup OBJECT-GROUP
+ OBJECTS {
+ pingMaxConcurrentRequests,
+ pingCtlTargetAddressType,
+ pingCtlTargetAddress,
+ pingCtlDataSize,
+ pingCtlTimeOut,
+ pingCtlProbeCount,
+ pingCtlAdminStatus,
+ pingCtlDataFill,
+ pingCtlFrequency,
+ pingCtlMaxRows,
+ pingCtlStorageType,
+ pingCtlTrapGeneration,
+ pingCtlTrapProbeFailureFilter,
+ pingCtlTrapTestFailureFilter,
+ pingCtlType,
+ pingCtlDescr,
+ pingCtlByPassRouteTable,
+ pingCtlSourceAddressType,
+ pingCtlSourceAddress,
+ pingCtlIfIndex,
+ pingCtlDSField,
+ pingResultsOperStatus,
+ pingResultsIpTargetAddressType,
+ pingResultsIpTargetAddress,
+ pingResultsMinRtt,
+ pingResultsMaxRtt,
+ pingResultsAverageRtt,
+ pingResultsProbeResponses,
+ pingResultsSentProbes,
+ pingResultsRttSumOfSquares,
+ pingResultsLastGoodProbe
+ }
+ STATUS current
+ DESCRIPTION
+ "The group of objects that constitute the remote ping
+ capability."
+ ::= { pingGroups 4 }
+
+ pingCtlRowStatusGroup OBJECT-GROUP
+ OBJECTS {
+ pingCtlRowStatus
+ }
+ STATUS current
+ DESCRIPTION
+ "The RowStatus object of the pingCtlTable."
+ ::= { pingGroups 5 }
+
+ pingHistoryGroup OBJECT-GROUP
+ OBJECTS {
+ pingProbeHistoryResponse,
+ pingProbeHistoryStatus,
+ pingProbeHistoryLastRC,
+ pingProbeHistoryTime
+ }
+ STATUS current
+ DESCRIPTION
+ "The group of objects that constitute the history
+ capability."
+ ::= { pingGroups 6 }
+
+ pingNotificationsGroup NOTIFICATION-GROUP
+ NOTIFICATIONS {
+ pingProbeFailed,
+ pingTestFailed,
+ pingTestCompleted
+ }
+ STATUS current
+ DESCRIPTION
+ "The notification that are required to be supported by
+ implementations of this MIB."
+ ::= { pingGroups 3 }
+
+ pingGroup OBJECT-GROUP
+ OBJECTS {
+ pingMaxConcurrentRequests,
+ pingCtlTargetAddressType,
+ pingCtlTargetAddress,
+ pingCtlDataSize,
+ pingCtlTimeOut,
+ pingCtlProbeCount,
+ pingCtlAdminStatus,
+ pingCtlDataFill,
+ pingCtlFrequency,
+ pingCtlMaxRows,
+ pingCtlStorageType,
+ pingCtlTrapGeneration,
+ pingCtlTrapProbeFailureFilter,
+ pingCtlTrapTestFailureFilter,
+ pingCtlType,
+ pingCtlDescr,
+ pingCtlByPassRouteTable,
+ pingCtlSourceAddressType,
+ pingCtlSourceAddress,
+ pingCtlIfIndex,
+ pingCtlDSField,
+ pingCtlRowStatus,
+ pingResultsOperStatus,
+ pingResultsIpTargetAddressType,
+ pingResultsIpTargetAddress,
+ pingResultsMinRtt,
+ pingResultsMaxRtt,
+ pingResultsAverageRtt,
+ pingResultsProbeResponses,
+ pingResultsSentProbes,
+ pingResultsRttSumOfSquares,
+ pingProbeHistoryResponse,
+ pingProbeHistoryStatus,
+ pingProbeHistoryLastRC
+ }
+ STATUS deprecated
+ DESCRIPTION
+ "The group of objects that constitute the remote ping
+ capability."
+ ::= { pingGroups 1 }
+
+ pingTimeStampGroup OBJECT-GROUP
+
+ OBJECTS {
+ pingResultsLastGoodProbe,
+ pingProbeHistoryTime
+ }
+ STATUS deprecated
+ DESCRIPTION
+ "The group of DateAndTime objects."
+ ::= { pingGroups 2 }
+
+END
diff --git a/php/extras/mibs/DISMAN-SCHEDULE-MIB.txt b/php/extras/mibs/DISMAN-SCHEDULE-MIB.txt
new file mode 100644
index 000000000..239595e94
--- /dev/null
+++ b/php/extras/mibs/DISMAN-SCHEDULE-MIB.txt
@@ -0,0 +1,699 @@
+DISMAN-SCHEDULE-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
+ Integer32, Unsigned32, Counter32, mib-2, zeroDotZero
+ FROM SNMPv2-SMI
+
+ TEXTUAL-CONVENTION,
+ DateAndTime, RowStatus, StorageType, VariablePointer
+ FROM SNMPv2-TC
+
+ MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
+ FROM SNMPv2-CONF
+
+ SnmpAdminString
+ FROM SNMP-FRAMEWORK-MIB;
+
+schedMIB MODULE-IDENTITY
+ LAST-UPDATED "200201070000Z"
+ ORGANIZATION "IETF Distributed Management Working Group"
+ CONTACT-INFO
+ "WG EMail: disman@dorothy.bmc.com
+ Subscribe: disman-request@dorothy.bmc.com
+
+ Chair: Randy Presuhn
+ BMC Software, Inc.
+ Postal: Office 1-3141
+ 2141 North First Street
+ San Jose, California 95131
+ USA
+ EMail: rpresuhn@bmc.com
+ Phone: +1 408 546-1006
+
+ Editor: David B. Levi
+ Nortel Networks
+ Postal: 4401 Great America Parkway
+ Santa Clara, CA 95052-8185
+ USA
+ EMail: dlevi@nortelnetworks.com
+ Phone: +1 865 686 0432
+
+ Editor: Juergen Schoenwaelder
+ TU Braunschweig
+ Postal: Bueltenweg 74/75
+ 38106 Braunschweig
+ Germany
+ EMail: schoenw@ibr.cs.tu-bs.de
+ Phone: +49 531 391-3283"
+ DESCRIPTION
+ "This MIB module defines a MIB which provides mechanisms to
+ schedule SNMP set operations periodically or at specific
+ points in time."
+ REVISION "200201070000Z"
+ DESCRIPTION
+ "Revised version, published as RFC 3231.
+
+ This revision introduces a new object type called
+ schedTriggers. Created new conformance and compliance
+ statements that take care of the new schedTriggers object.
+
+ Several clarifications have been added to remove ambiguities
+ that were discovered and reported by implementors."
+ REVISION "199811171800Z"
+ DESCRIPTION
+ "Initial version, published as RFC 2591."
+ ::= { mib-2 63 }
+
+--
+-- The various groups defined within this MIB definition:
+--
+
+schedObjects OBJECT IDENTIFIER ::= { schedMIB 1 }
+schedNotifications OBJECT IDENTIFIER ::= { schedMIB 2 }
+schedConformance OBJECT IDENTIFIER ::= { schedMIB 3 }
+
+--
+-- Textual Conventions:
+--
+
+SnmpPduErrorStatus ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "This TC enumerates the SNMPv1 and SNMPv2 PDU error status
+ codes as defined in RFC 1157 and RFC 1905. It also adds a
+ pseudo error status code `noResponse' which indicates a
+ timeout condition."
+ SYNTAX INTEGER {
+ noResponse(-1),
+ noError(0),
+ tooBig(1),
+ noSuchName(2),
+ badValue(3),
+ readOnly(4),
+ genErr(5),
+ noAccess(6),
+ wrongType(7),
+ wrongLength(8),
+ wrongEncoding(9),
+ wrongValue(10),
+ noCreation(11),
+ inconsistentValue(12),
+ resourceUnavailable(13),
+ commitFailed(14),
+ undoFailed(15),
+ authorizationError(16),
+ notWritable(17),
+ inconsistentName(18)
+ }
+
+--
+-- Some scalars which provide information about the local time zone.
+--
+
+schedLocalTime OBJECT-TYPE
+ SYNTAX DateAndTime (SIZE (11))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The local time used by the scheduler. Schedules which
+ refer to calendar time will use the local time indicated
+ by this object. An implementation MUST return all 11 bytes
+ of the DateAndTime textual-convention so that a manager
+ may retrieve the offset from GMT time."
+ ::= { schedObjects 1 }
+
+--
+-- The schedule table which controls the scheduler.
+--
+
+schedTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SchedEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This table defines scheduled actions triggered by
+ SNMP set operations."
+ ::= { schedObjects 2 }
+
+schedEntry OBJECT-TYPE
+ SYNTAX SchedEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry describing a particular scheduled action.
+
+ Unless noted otherwise, writable objects of this row
+ can be modified independent of the current value of
+ schedRowStatus, schedAdminStatus and schedOperStatus.
+ In particular, it is legal to modify schedInterval
+ and the objects in the schedCalendarGroup when
+ schedRowStatus is active and schedAdminStatus and
+ schedOperStatus are both enabled."
+ INDEX { schedOwner, schedName }
+ ::= { schedTable 1 }
+
+SchedEntry ::= SEQUENCE {
+ schedOwner SnmpAdminString,
+ schedName SnmpAdminString,
+ schedDescr SnmpAdminString,
+ schedInterval Unsigned32,
+ schedWeekDay BITS,
+ schedMonth BITS,
+ schedDay BITS,
+ schedHour BITS,
+ schedMinute BITS,
+ schedContextName SnmpAdminString,
+ schedVariable VariablePointer,
+ schedValue Integer32,
+ schedType INTEGER,
+ schedAdminStatus INTEGER,
+ schedOperStatus INTEGER,
+ schedFailures Counter32,
+ schedLastFailure SnmpPduErrorStatus,
+ schedLastFailed DateAndTime,
+ schedStorageType StorageType,
+ schedRowStatus RowStatus,
+ schedTriggers Counter32
+}
+
+schedOwner OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(0..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The owner of this scheduling entry. The exact semantics of
+ this string are subject to the security policy defined by
+
+ the security administrator."
+ ::= { schedEntry 1 }
+
+schedName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(1..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The locally-unique, administratively assigned name for this
+ scheduling entry. This object allows a schedOwner to have
+ multiple entries in the schedTable."
+ ::= { schedEntry 2 }
+
+schedDescr OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The human readable description of the purpose of this
+ scheduling entry."
+ DEFVAL { "" }
+ ::= { schedEntry 3 }
+
+schedInterval OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "seconds"
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The number of seconds between two action invocations of
+ a periodic scheduler. Implementations must guarantee
+ that action invocations will not occur before at least
+ schedInterval seconds have passed.
+
+ The scheduler must ignore all periodic schedules that
+ have a schedInterval value of 0. A periodic schedule
+ with a scheduling interval of 0 seconds will therefore
+ never invoke an action.
+
+ Implementations may be forced to delay invocations in the
+ face of local constraints. A scheduled management function
+ should therefore not rely on the accuracy provided by the
+ scheduler implementation.
+
+ Note that implementations which maintain a list of pending
+ activations must re-calculate them when this object is
+ changed."
+ DEFVAL { 0 }
+ ::= { schedEntry 4 }
+
+schedWeekDay OBJECT-TYPE
+ SYNTAX BITS {
+ sunday(0),
+ monday(1),
+ tuesday(2),
+ wednesday(3),
+ thursday(4),
+ friday(5),
+ saturday(6)
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The set of weekdays on which the scheduled action should
+ take place. Setting multiple bits will include several
+ weekdays in the set of possible weekdays for this schedule.
+ Setting all bits will cause the scheduler to ignore the
+ weekday.
+
+ Note that implementations which maintain a list of pending
+ activations must re-calculate them when this object is
+ changed."
+ DEFVAL { {} }
+ ::= { schedEntry 5 }
+
+schedMonth OBJECT-TYPE
+ SYNTAX BITS {
+ january(0),
+ february(1),
+ march(2),
+ april(3),
+ may(4),
+ june(5),
+ july(6),
+ august(7),
+ september(8),
+ october(9),
+ november(10),
+ december(11)
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The set of months during which the scheduled action should
+ take place. Setting multiple bits will include several
+ months in the set of possible months for this schedule.
+
+ Setting all bits will cause the scheduler to ignore the
+ month.
+
+ Note that implementations which maintain a list of pending
+ activations must re-calculate them when this object is
+ changed."
+ DEFVAL { {} }
+ ::= { schedEntry 6 }
+
+schedDay OBJECT-TYPE
+ SYNTAX BITS {
+ d1(0), d2(1), d3(2), d4(3), d5(4),
+ d6(5), d7(6), d8(7), d9(8), d10(9),
+ d11(10), d12(11), d13(12), d14(13), d15(14),
+ d16(15), d17(16), d18(17), d19(18), d20(19),
+ d21(20), d22(21), d23(22), d24(23), d25(24),
+ d26(25), d27(26), d28(27), d29(28), d30(29),
+ d31(30),
+ r1(31), r2(32), r3(33), r4(34), r5(35),
+ r6(36), r7(37), r8(38), r9(39), r10(40),
+ r11(41), r12(42), r13(43), r14(44), r15(45),
+ r16(46), r17(47), r18(48), r19(49), r20(50),
+ r21(51), r22(52), r23(53), r24(54), r25(55),
+ r26(56), r27(57), r28(58), r29(59), r30(60),
+ r31(61)
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The set of days in a month on which a scheduled action
+ should take place. There are two sets of bits one can
+ use to define the day within a month:
+
+ Enumerations starting with the letter 'd' indicate a
+ day in a month relative to the first day of a month.
+ The first day of the month can therefore be specified
+ by setting the bit d1(0) and d31(30) means the last
+ day of a month with 31 days.
+
+ Enumerations starting with the letter 'r' indicate a
+ day in a month in reverse order, relative to the last
+ day of a month. The last day in the month can therefore
+ be specified by setting the bit r1(31) and r31(61) means
+ the first day of a month with 31 days.
+
+ Setting multiple bits will include several days in the set
+ of possible days for this schedule. Setting all bits will
+ cause the scheduler to ignore the day within a month.
+
+ Setting all bits starting with the letter 'd' or the
+ letter 'r' will also cause the scheduler to ignore the
+ day within a month.
+
+ Note that implementations which maintain a list of pending
+ activations must re-calculate them when this object is
+ changed."
+ DEFVAL { {} }
+ ::= { schedEntry 7 }
+
+schedHour OBJECT-TYPE
+ SYNTAX BITS {
+ h0(0), h1(1), h2(2), h3(3), h4(4),
+ h5(5), h6(6), h7(7), h8(8), h9(9),
+ h10(10), h11(11), h12(12), h13(13), h14(14),
+ h15(15), h16(16), h17(17), h18(18), h19(19),
+ h20(20), h21(21), h22(22), h23(23)
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The set of hours within a day during which the scheduled
+ action should take place.
+
+ Note that implementations which maintain a list of pending
+ activations must re-calculate them when this object is
+ changed."
+ DEFVAL { {} }
+ ::= { schedEntry 8 }
+
+schedMinute OBJECT-TYPE
+ SYNTAX BITS {
+ m0(0), m1(1), m2(2), m3(3), m4(4),
+ m5(5), m6(6), m7(7), m8(8), m9(9),
+ m10(10), m11(11), m12(12), m13(13), m14(14),
+ m15(15), m16(16), m17(17), m18(18), m19(19),
+ m20(20), m21(21), m22(22), m23(23), m24(24),
+ m25(25), m26(26), m27(27), m28(28), m29(29),
+ m30(30), m31(31), m32(32), m33(33), m34(34),
+ m35(35), m36(36), m37(37), m38(38), m39(39),
+ m40(40), m41(41), m42(42), m43(43), m44(44),
+ m45(45), m46(46), m47(47), m48(48), m49(49),
+ m50(50), m51(51), m52(52), m53(53), m54(54),
+ m55(55), m56(56), m57(57), m58(58), m59(59)
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The set of minutes within an hour when the scheduled action
+ should take place.
+
+ Note that implementations which maintain a list of pending
+ activations must re-calculate them when this object is
+ changed."
+ DEFVAL { {} }
+ ::= { schedEntry 9 }
+
+schedContextName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(0..32))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The context which contains the local MIB variable pointed
+ to by schedVariable."
+ DEFVAL { "" }
+ ::= { schedEntry 10 }
+
+schedVariable OBJECT-TYPE
+ SYNTAX VariablePointer
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "An object identifier pointing to a local MIB variable
+ which resolves to an ASN.1 primitive type of INTEGER."
+ DEFVAL { zeroDotZero }
+ ::= { schedEntry 11 }
+
+schedValue OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The value which is written to the MIB object pointed to by
+ schedVariable when the scheduler invokes an action. The
+ implementation shall enforce the use of access control
+ rules when performing the set operation on schedVariable.
+ This is accomplished by calling the isAccessAllowed abstract
+ service interface as defined in RFC 2571.
+
+ Note that an implementation may choose to issue an SNMP Set
+ message to the SNMP engine and leave the access control
+ decision to the normal message processing procedure."
+ DEFVAL { 0 }
+ ::= { schedEntry 12 }
+
+schedType OBJECT-TYPE
+ SYNTAX INTEGER {
+ periodic(1),
+ calendar(2),
+ oneshot(3)
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The type of this schedule. The value periodic(1) indicates
+ that this entry specifies a periodic schedule. A periodic
+ schedule is defined by the value of schedInterval. The
+ values of schedWeekDay, schedMonth, schedDay, schedHour
+ and schedMinute are ignored.
+
+ The value calendar(2) indicates that this entry describes a
+ calendar schedule. A calendar schedule is defined by the
+ values of schedWeekDay, schedMonth, schedDay, schedHour and
+ schedMinute. The value of schedInterval is ignored. A
+ calendar schedule will trigger on all local times that
+ satisfy the bits set in schedWeekDay, schedMonth, schedDay,
+ schedHour and schedMinute.
+
+ The value oneshot(3) indicates that this entry describes a
+ one-shot schedule. A one-shot schedule is similar to a
+ calendar schedule with the additional feature that it
+ disables itself by changing in the `finished'
+ schedOperStatus once the schedule triggers an action.
+
+ Note that implementations which maintain a list of pending
+ activations must re-calculate them when this object is
+ changed."
+ DEFVAL { periodic }
+ ::= { schedEntry 13 }
+
+schedAdminStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ enabled(1),
+ disabled(2)
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The desired state of the schedule."
+ DEFVAL { disabled }
+ ::= { schedEntry 14 }
+
+schedOperStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+
+ enabled(1),
+ disabled(2),
+ finished(3)
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The current operational state of this schedule. The state
+ enabled(1) indicates this entry is active and that the
+ scheduler will invoke actions at appropriate times. The
+ disabled(2) state indicates that this entry is currently
+ inactive and ignored by the scheduler. The finished(3)
+ state indicates that the schedule has ended. Schedules
+ in the finished(3) state are ignored by the scheduler.
+ A one-shot schedule enters the finished(3) state when it
+ deactivates itself.
+
+ Note that the operational state must not be enabled(1)
+ when the schedRowStatus is not active."
+ ::= { schedEntry 15 }
+
+schedFailures OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "This variable counts the number of failures while invoking
+ the scheduled action. This counter at most increments once
+ for a triggered action."
+ ::= { schedEntry 16 }
+
+schedLastFailure OBJECT-TYPE
+ SYNTAX SnmpPduErrorStatus
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The most recent error that occurred during the invocation of
+ a scheduled action. The value noError(0) is returned
+ if no errors have occurred yet."
+ DEFVAL { noError }
+ ::= { schedEntry 17 }
+
+schedLastFailed OBJECT-TYPE
+ SYNTAX DateAndTime
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The date and time when the most recent failure occurred.
+
+ The value '0000000000000000'H is returned if no failure
+ occurred since the last re-initialization of the scheduler."
+ DEFVAL { '0000000000000000'H }
+ ::= { schedEntry 18 }
+
+schedStorageType OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object defines whether this scheduled action is kept
+ in volatile storage and lost upon reboot or if this row is
+ backed up by non-volatile or permanent storage.
+
+ Conceptual rows having the value `permanent' must allow
+ write access to the columnar objects schedDescr,
+ schedInterval, schedContextName, schedVariable, schedValue,
+ and schedAdminStatus. If an implementation supports the
+ schedCalendarGroup, write access must be also allowed to
+ the columnar objects schedWeekDay, schedMonth, schedDay,
+ schedHour, schedMinute."
+ DEFVAL { volatile }
+ ::= { schedEntry 19 }
+
+schedRowStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status of this scheduled action. A control that allows
+ entries to be added and removed from this table.
+
+ Note that the operational state must change to enabled
+ when the administrative state is enabled and the row
+ status changes to active(1).
+
+ Attempts to destroy(6) a row or to set a row
+ notInService(2) while the operational state is enabled
+ result in inconsistentValue errors.
+
+ The value of this object has no effect on whether other
+ objects in this conceptual row can be modified."
+ ::= { schedEntry 20 }
+
+schedTriggers OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "This variable counts the number of attempts (either
+ successful or failed) to invoke the scheduled action."
+ ::= { schedEntry 21 }
+
+--
+-- Notifications that are emitted to indicate failures. The
+-- definition of schedTraps makes notification registrations
+-- reversible (see STD 58, RFC 2578).
+--
+
+schedTraps OBJECT IDENTIFIER ::= { schedNotifications 0 }
+
+schedActionFailure NOTIFICATION-TYPE
+ OBJECTS { schedLastFailure, schedLastFailed }
+ STATUS current
+ DESCRIPTION
+ "This notification is generated whenever the invocation of a
+ scheduled action fails."
+ ::= { schedTraps 1 }
+
+-- conformance information
+
+schedCompliances OBJECT IDENTIFIER ::= { schedConformance 1 }
+schedGroups OBJECT IDENTIFIER ::= { schedConformance 2 }
+
+-- compliance statements
+
+schedCompliance2 MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for SNMP entities which implement
+ the scheduling MIB."
+ MODULE -- this module
+ MANDATORY-GROUPS {
+ schedGroup2, schedNotificationsGroup
+ }
+ GROUP schedCalendarGroup
+ DESCRIPTION
+ "The schedCalendarGroup is mandatory only for those
+ implementations that support calendar based schedules."
+ OBJECT schedType
+ DESCRIPTION
+ "The values calendar(2) or oneshot(3) are not valid for
+ implementations that do not implement the
+ schedCalendarGroup. Such an implementation must return
+ inconsistentValue error responses for attempts to set
+ schedAdminStatus to calendar(2) or oneshot(3)."
+ ::= { schedCompliances 2 }
+
+schedGroup2 OBJECT-GROUP
+ OBJECTS {
+ schedDescr, schedInterval, schedContextName,
+ schedVariable, schedValue, schedType,
+ schedAdminStatus, schedOperStatus, schedFailures,
+ schedLastFailure, schedLastFailed, schedStorageType,
+ schedRowStatus, schedTriggers
+ }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing scheduling capabilities."
+ ::= { schedGroups 4 }
+
+schedCalendarGroup OBJECT-GROUP
+ OBJECTS {
+ schedLocalTime, schedWeekDay, schedMonth,
+ schedDay, schedHour, schedMinute
+ }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing calendar based schedules."
+ ::= { schedGroups 2 }
+
+schedNotificationsGroup NOTIFICATION-GROUP
+ NOTIFICATIONS {
+ schedActionFailure
+ }
+ STATUS current
+ DESCRIPTION
+ "The notifications emitted by the scheduler."
+ ::= { schedGroups 3 }
+
+--
+-- Deprecated compliance and conformance group definitions
+-- from RFC 2591.
+--
+
+schedCompliance MODULE-COMPLIANCE
+ STATUS deprecated
+ DESCRIPTION
+ "The compliance statement for SNMP entities which implement
+ the scheduling MIB."
+ MODULE -- this module
+ MANDATORY-GROUPS {
+ schedGroup, schedNotificationsGroup
+ }
+
+ GROUP schedCalendarGroup
+ DESCRIPTION
+ "The schedCalendarGroup is mandatory only for those
+ implementations that support calendar based schedules."
+ OBJECT schedType
+ DESCRIPTION
+ "The values calendar(2) or oneshot(3) are not valid for
+ implementations that do not implement the
+ schedCalendarGroup. Such an implementation must return
+ inconsistentValue error responses for attempts to set
+ schedAdminStatus to calendar(2) or oneshot(3)."
+ ::= { schedCompliances 1 }
+
+schedGroup OBJECT-GROUP
+ OBJECTS {
+ schedDescr, schedInterval, schedContextName,
+ schedVariable, schedValue, schedType,
+ schedAdminStatus, schedOperStatus, schedFailures,
+ schedLastFailure, schedLastFailed, schedStorageType,
+ schedRowStatus
+ }
+ STATUS deprecated
+ DESCRIPTION
+ "A collection of objects providing scheduling capabilities."
+ ::= { schedGroups 1 }
+
+END
diff --git a/php/extras/mibs/DISMAN-SCRIPT-MIB.txt b/php/extras/mibs/DISMAN-SCRIPT-MIB.txt
new file mode 100644
index 000000000..834f3047f
--- /dev/null
+++ b/php/extras/mibs/DISMAN-SCRIPT-MIB.txt
@@ -0,0 +1,1764 @@
+DISMAN-SCRIPT-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
+ Integer32, Unsigned32, mib-2
+ FROM SNMPv2-SMI
+
+ RowStatus, TimeInterval, DateAndTime, StorageType, DisplayString
+ FROM SNMPv2-TC
+
+ MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
+ FROM SNMPv2-CONF
+
+ SnmpAdminString
+ FROM SNMP-FRAMEWORK-MIB;
+
+scriptMIB MODULE-IDENTITY
+ LAST-UPDATED "200108210000Z"
+ ORGANIZATION "IETF Distributed Management Working Group"
+ CONTACT-INFO
+ "WG EMail: disman@dorothy.bmc.com
+ Subscribe: disman-request@dorothy.bmc.com
+
+ Chair: Randy Presuhn
+ BMC Software, Inc.
+
+ Postal: Office 1-3141
+ 2141 North First Street
+ San Jose, California 95131
+ USA
+ EMail: rpresuhn@bmc.com
+ Phone: +1 408 546-1006
+
+ Editor: David B. Levi
+ Nortel Networks
+ Postal: 4401 Great America Parkway
+ Santa Clara, CA 95052-8185
+ USA
+ EMail: dlevi@nortelnetworks.com
+ Phone: +1 423 686 0432
+
+ Editor: Juergen Schoenwaelder
+ TU Braunschweig
+ Postal: Bueltenweg 74/75
+ 38106 Braunschweig
+ Germany
+ EMail: schoenw@ibr.cs.tu-bs.de
+ Phone: +49 531 391-3283"
+ DESCRIPTION
+ "This MIB module defines a set of objects that allow to
+ delegate management scripts to distributed managers."
+ REVISION "200108210000Z"
+ DESCRIPTION
+ "Revised version, published as RFC 3165.
+
+ This revision introduces several new objects: smScriptError,
+ smScriptLastChange, smLaunchError, smLaunchLastChange,
+ smLaunchRowExpireTime, smRunResultTime, and smRunErrorTime.
+
+ The following existing objects were updated: the maximum
+ value of smRunLifeTime now disables the timer, an
+ autostart value was added to the smLaunchAdminStatus
+ object, and a new expired state was added to the
+ smLaunchOperStatus object.
+
+ A new smScriptException notification has been added to
+ support runtime error notifications.
+
+ Created new conformance and compliance statements that
+ take care of the new objects and notifications.
+
+ Clarifications have been added in several places to remove
+ ambiguities or contradictions that were discovered and
+ reported by implementors."
+
+ REVISION "199902221800Z"
+ DESCRIPTION
+ "Initial version, published as RFC 2592."
+ ::= { mib-2 64 }
+
+--
+-- The groups defined within this MIB module:
+--
+
+smObjects OBJECT IDENTIFIER ::= { scriptMIB 1 }
+smNotifications OBJECT IDENTIFIER ::= { scriptMIB 2 }
+smConformance OBJECT IDENTIFIER ::= { scriptMIB 3 }
+
+--
+-- Script language and language extensions.
+--
+-- This group defines tables which list the languages and the
+-- language extensions supported by a Script MIB implementation.
+-- Languages are uniquely identified by object identifier values.
+--
+
+smLangTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SmLangEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This table lists supported script languages."
+ ::= { smObjects 1 }
+
+smLangEntry OBJECT-TYPE
+ SYNTAX SmLangEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry describing a particular language."
+ INDEX { smLangIndex }
+ ::= { smLangTable 1 }
+
+SmLangEntry ::= SEQUENCE {
+ smLangIndex Integer32,
+ smLangLanguage OBJECT IDENTIFIER,
+ smLangVersion SnmpAdminString,
+ smLangVendor OBJECT IDENTIFIER,
+ smLangRevision SnmpAdminString,
+ smLangDescr SnmpAdminString
+}
+
+smLangIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..2147483647)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The locally arbitrary, but unique identifier associated
+ with this language entry.
+
+ The value is expected to remain constant at least from one
+ re-initialization of the entity's network management system
+ to the next re-initialization.
+
+ Note that the data type and the range of this object must
+ be consistent with the definition of smScriptLanguage."
+ ::= { smLangEntry 1 }
+
+smLangLanguage OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The globally unique identification of the language."
+ ::= { smLangEntry 2 }
+
+smLangVersion OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (0..32))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The version number of the language. The zero-length string
+ shall be used if the language does not have a version
+ number.
+
+ It is suggested that the version number consist of one or
+ more decimal numbers separated by dots, where the first
+ number is called the major version number."
+ ::= { smLangEntry 3 }
+
+smLangVendor OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An object identifier which identifies the vendor who
+ provides the implementation of the language. This object
+ identifier SHALL point to the object identifier directly
+ below the enterprise object identifier {1 3 6 1 4 1}
+ allocated for the vendor. The value must be the object
+ identifier {0 0} if the vendor is not known."
+ ::= { smLangEntry 4 }
+
+smLangRevision OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (0..32))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The version number of the language implementation.
+ The value of this object must be an empty string if
+ version number of the implementation is unknown.
+
+ It is suggested that the value consist of one or more
+ decimal numbers separated by dots, where the first
+ number is called the major version number."
+ ::= { smLangEntry 5 }
+
+smLangDescr OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A textual description of the language."
+ ::= { smLangEntry 6 }
+
+smExtsnTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SmExtsnEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This table lists supported language extensions."
+ ::= { smObjects 2 }
+
+smExtsnEntry OBJECT-TYPE
+ SYNTAX SmExtsnEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry describing a particular language extension."
+ INDEX { smLangIndex, smExtsnIndex }
+ ::= { smExtsnTable 1 }
+
+SmExtsnEntry ::= SEQUENCE {
+ smExtsnIndex Integer32,
+ smExtsnExtension OBJECT IDENTIFIER,
+ smExtsnVersion SnmpAdminString,
+ smExtsnVendor OBJECT IDENTIFIER,
+ smExtsnRevision SnmpAdminString,
+ smExtsnDescr SnmpAdminString
+}
+
+smExtsnIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..2147483647)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The locally arbitrary, but unique identifier associated
+ with this language extension entry.
+
+ The value is expected to remain constant at least from one
+ re-initialization of the entity's network management system
+ to the next re-initialization."
+ ::= { smExtsnEntry 1}
+
+smExtsnExtension OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The globally unique identification of the language
+ extension."
+ ::= { smExtsnEntry 2 }
+
+smExtsnVersion OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (0..32))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The version number of the language extension.
+ It is suggested that the version number consist of one or
+ more decimal numbers separated by dots, where the first
+ number is called the major version number."
+ ::= { smExtsnEntry 3 }
+
+smExtsnVendor OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An object identifier which identifies the vendor who
+ provides the implementation of the extension. The
+ object identifier value should point to the OID node
+ directly below the enterprise OID {1 3 6 1 4 1}
+ allocated for the vendor. The value must by the object
+ identifier {0 0} if the vendor is not known."
+ ::= { smExtsnEntry 4 }
+
+smExtsnRevision OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (0..32))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The version number of the extension implementation.
+ The value of this object must be an empty string if
+ version number of the implementation is unknown.
+
+ It is suggested that the value consist of one or more
+ decimal numbers separated by dots, where the first
+ number is called the major version number."
+ ::= { smExtsnEntry 5 }
+
+smExtsnDescr OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A textual description of the language extension."
+ ::= { smExtsnEntry 6 }
+
+--
+-- Scripts known by the Script MIB implementation.
+--
+-- This group defines a table which lists all known scripts.
+-- Scripts can be added and removed through manipulation of the
+-- smScriptTable.
+--
+
+smScriptObjects OBJECT IDENTIFIER ::= { smObjects 3 }
+
+smScriptTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SmScriptEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This table lists and describes locally known scripts."
+ ::= { smScriptObjects 1 }
+
+smScriptEntry OBJECT-TYPE
+ SYNTAX SmScriptEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry describing a particular script. Every script that
+ is stored in non-volatile memory is required to appear in
+ this script table."
+ INDEX { smScriptOwner, smScriptName }
+ ::= { smScriptTable 1 }
+
+SmScriptEntry ::= SEQUENCE {
+ smScriptOwner SnmpAdminString,
+ smScriptName SnmpAdminString,
+ smScriptDescr SnmpAdminString,
+ smScriptLanguage Integer32,
+ smScriptSource DisplayString,
+ smScriptAdminStatus INTEGER,
+ smScriptOperStatus INTEGER,
+ smScriptStorageType StorageType,
+ smScriptRowStatus RowStatus,
+ smScriptError SnmpAdminString,
+ smScriptLastChange DateAndTime
+}
+
+smScriptOwner OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (0..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The manager who owns this row in the smScriptTable."
+ ::= { smScriptEntry 1 }
+
+smScriptName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (1..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The locally-unique, administratively assigned name for this
+ script. This object allows an smScriptOwner to have multiple
+ entries in the smScriptTable.
+
+ This value of this object may be used to derive the name
+ (e.g. a file name) which is used by the Script MIB
+ implementation to access the script in non-volatile
+ storage. The details of this mapping are implementation
+ specific. However, the mapping needs to ensure that scripts
+ created by different owners with the same script name do not
+ map to the same name in non-volatile storage."
+ ::= { smScriptEntry 2 }
+
+smScriptDescr OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "A description of the purpose of the script."
+ ::= { smScriptEntry 3 }
+
+smScriptLanguage OBJECT-TYPE
+ SYNTAX Integer32 (0..2147483647)
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The value of this object type identifies an entry in the
+ smLangTable which is used to execute this script.
+ The special value 0 may be used by hard-wired scripts
+ that can not be modified and that are executed by
+ internal functions.
+
+ Set requests to change this object are invalid if the
+ value of smScriptOperStatus is `enabled' or `compiling'
+ and will result in an inconsistentValue error.
+
+ Note that the data type and the range of this object must
+ be consistent with the definition of smLangIndex."
+ ::= { smScriptEntry 4 }
+
+smScriptSource OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object either contains a reference to the script
+ source or an empty string. A reference must be given
+ in the form of a Uniform Resource Locator (URL) as
+ defined in RFC 2396. The allowed character sets and the
+ encoding rules defined in RFC 2396 section 2 apply.
+
+ When the smScriptAdminStatus object is set to `enabled',
+ the Script MIB implementation will `pull' the script
+ source from the URL contained in this object if the URL
+ is not empty.
+
+ An empty URL indicates that the script source is loaded
+ from local storage. The script is read from the smCodeTable
+ if the value of smScriptStorageType is volatile. Otherwise,
+ the script is read from non-volatile storage.
+
+ Note: This document does not mandate implementation of any
+ specific URL scheme. An attempt to load a script from a
+ nonsupported URL scheme will cause the smScriptOperStatus
+ to report an `unknownProtocol' error.
+
+ Set requests to change this object are invalid if the
+ value of smScriptOperStatus is `enabled', `editing',
+ `retrieving' or `compiling' and will result in an
+ inconsistentValue error."
+ DEFVAL { ''H }
+ ::= { smScriptEntry 5 }
+
+smScriptAdminStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ enabled(1),
+ disabled(2),
+ editing(3)
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The value of this object indicates the desired status of
+ the script. See the definition of smScriptOperStatus for
+ a description of the values.
+
+ When the smScriptAdminStatus object is set to `enabled' and
+ the smScriptOperStatus is `disabled' or one of the error
+ states, the Script MIB implementation will `pull' the script
+ source from the URL contained in the smScriptSource object
+ if the URL is not empty."
+ DEFVAL { disabled }
+ ::= { smScriptEntry 6 }
+
+smScriptOperStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ enabled(1),
+ disabled(2),
+ editing(3),
+ retrieving(4),
+ compiling(5),
+ noSuchScript(6),
+ accessDenied(7),
+ wrongLanguage(8),
+ wrongVersion(9),
+ compilationFailed(10),
+ noResourcesLeft(11),
+ unknownProtocol(12),
+ protocolFailure(13),
+ genericError(14)
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The actual status of the script in the runtime system. The
+ value of this object is only meaningful when the value of
+ the smScriptRowStatus object is `active'.
+
+ The smScriptOperStatus object may have the following values:
+
+ - `enabled' indicates that the script is available and can
+ be started by a launch table entry.
+
+ - `disabled' indicates that the script can not be used.
+
+ - `editing' indicates that the script can be modified in the
+ smCodeTable.
+
+ - `retrieving' indicates that the script is currently being
+ loaded from non-volatile storage or a remote system.
+
+ - `compiling' indicates that the script is currently being
+ compiled by the runtime system.
+
+ - `noSuchScript' indicates that the script does not exist
+ at the smScriptSource.
+
+ - `accessDenied' indicates that the script can not be loaded
+ from the smScriptSource due to a lack of permissions.
+
+ - `wrongLanguage' indicates that the script can not be
+ loaded from the smScriptSource because of a language
+ mismatch.
+
+ - `wrongVersion' indicates that the script can not be loaded
+ from the smScriptSource because of a language version
+ mismatch.
+
+ - `compilationFailed' indicates that the compilation failed.
+
+ - `noResourcesLeft' indicates that the runtime system does
+ not have enough resources to load the script.
+
+ - `unknownProtocol' indicates that the script could not be
+ loaded from the smScriptSource because the requested
+ protocol is not supported.
+
+ - `protocolFailure' indicates that the script could not be
+ loaded from the smScriptSource because of a protocol
+ failure.
+
+ - `genericError' indicates that the script could not be
+
+ loaded due to an error condition not listed above.
+
+ The `retrieving' and `compiling' states are transient states
+ which will either lead to one of the error states or the
+ `enabled' state. The `disabled' and `editing' states are
+ administrative states which are only reached by explicit
+ management operations.
+
+ All launch table entries that refer to this script table
+ entry shall have an smLaunchOperStatus value of `disabled'
+ when the value of this object is not `enabled'."
+ DEFVAL { disabled }
+ ::= { smScriptEntry 7 }
+
+smScriptStorageType OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object defines whether this row and the script
+ controlled by this row are kept in volatile storage and
+ lost upon reboot or if this row is backed up by
+ non-volatile or permanent storage.
+
+ The storage type of this row always complies with the value
+ of this entry if the value of the corresponding RowStatus
+ object is `active'.
+
+ However, the storage type of the script controlled by this
+ row may be different, if the value of this entry is
+ `non-volatile'. The script controlled by this row is written
+ into local non-volatile storage if the following condition
+ becomes true:
+
+ (a) the URL contained in the smScriptSource object is empty
+ and
+ (b) the smScriptStorageType is `nonVolatile'
+ and
+ (c) the smScriptOperStatus is `enabled'
+
+ Setting this object to `volatile' removes a script from
+ non-volatile storage if the script controlled by this row
+ has been in non-volatile storage before. Attempts to set
+ this object to permanent will always fail with an
+ inconsistentValue error.
+
+ The value of smScriptStorageType is only meaningful if the
+ value of the corresponding RowStatus object is `active'.
+
+ If smScriptStorageType has the value permanent(4), then all
+ objects whose MAX-ACCESS value is read-create must be
+ writable, with the exception of the smScriptStorageType and
+ smScriptRowStatus objects, which shall be read-only."
+ DEFVAL { volatile }
+ ::= { smScriptEntry 8 }
+
+smScriptRowStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "A control that allows entries to be added and removed from
+ this table.
+
+ Changing the smScriptRowStatus from `active' to
+ `notInService' will remove the associated script from the
+ runtime system.
+
+ Deleting conceptual rows from this table may affect the
+ deletion of other resources associated with this row. For
+ example, a script stored in non-volatile storage may be
+ removed from non-volatile storage.
+
+ An entry may not exist in the `active' state unless all
+ required objects in the entry have appropriate values. Rows
+ that are not complete or not in service are not known by the
+ script runtime system.
+
+ Attempts to `destroy' a row or to set a row `notInService'
+ while the smScriptOperStatus is `enabled' will result in an
+ inconsistentValue error.
+
+ Attempts to `destroy' a row or to set a row `notInService'
+ where the value of the smScriptStorageType object is
+ `permanent' or `readOnly' will result in an
+ inconsistentValue error.
+
+ The value of this object has no effect on whether other
+ objects in this conceptual row can be modified."
+ ::= { smScriptEntry 9 }
+
+smScriptError OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "This object contains a descriptive error message if the
+
+ transition into the operational status `enabled' failed.
+ Implementations must reset the error message to a
+ zero-length string when a new attempt to change the
+ script status to `enabled' is started."
+ DEFVAL { ''H }
+ ::= { smScriptEntry 10 }
+
+smScriptLastChange OBJECT-TYPE
+ SYNTAX DateAndTime
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The date and time when this script table entry was last
+ modified. The value '0000000000000000'H is returned if
+ the script table entry has not yet been modified.
+
+ Note that the resetting of smScriptError is not considered
+ a change of the script table entry."
+ DEFVAL { '0000000000000000'H }
+ ::= { smScriptEntry 11 }
+
+--
+-- Access to script code via SNMP
+--
+-- The smCodeTable allows script code to be read and modified
+-- via SNMP.
+--
+
+smCodeTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SmCodeEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This table contains the script code for scripts that are
+ written via SNMP write operations."
+ ::= { smScriptObjects 2 }
+
+smCodeEntry OBJECT-TYPE
+ SYNTAX SmCodeEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry describing a particular fragment of a script."
+ INDEX { smScriptOwner, smScriptName, smCodeIndex }
+ ::= { smCodeTable 1 }
+
+SmCodeEntry ::= SEQUENCE {
+ smCodeIndex Unsigned32,
+ smCodeText OCTET STRING,
+ smCodeRowStatus RowStatus
+}
+
+smCodeIndex OBJECT-TYPE
+ SYNTAX Unsigned32 (1..4294967295)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The index value identifying this code fragment."
+ ::= { smCodeEntry 1 }
+
+smCodeText OBJECT-TYPE
+ SYNTAX OCTET STRING (SIZE (1..1024))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The code that makes up a fragment of a script. The format
+ of this code fragment depends on the script language which
+ is identified by the associated smScriptLanguage object."
+ ::= { smCodeEntry 2 }
+
+smCodeRowStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "A control that allows entries to be added and removed from
+ this table.
+
+ The value of this object has no effect on whether other
+ objects in this conceptual row can be modified."
+ ::= { smCodeEntry 3 }
+
+--
+-- Script execution.
+--
+-- This group defines tables which allow script execution to be
+-- initiated, suspended, resumed, and terminated. It also provides
+-- a mechanism for keeping a history of recent script executions
+-- and their results.
+--
+
+smRunObjects OBJECT IDENTIFIER ::= { smObjects 4 }
+
+smLaunchTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SmLaunchEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This table lists and describes scripts that are ready
+ to be executed together with their parameters."
+ ::= { smRunObjects 1 }
+
+smLaunchEntry OBJECT-TYPE
+ SYNTAX SmLaunchEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry describing a particular executable script."
+ INDEX { smLaunchOwner, smLaunchName }
+ ::= { smLaunchTable 1 }
+
+SmLaunchEntry ::= SEQUENCE {
+ smLaunchOwner SnmpAdminString,
+ smLaunchName SnmpAdminString,
+ smLaunchScriptOwner SnmpAdminString,
+ smLaunchScriptName SnmpAdminString,
+ smLaunchArgument OCTET STRING,
+ smLaunchMaxRunning Unsigned32,
+ smLaunchMaxCompleted Unsigned32,
+ smLaunchLifeTime TimeInterval,
+ smLaunchExpireTime TimeInterval,
+ smLaunchStart Integer32,
+ smLaunchControl INTEGER,
+ smLaunchAdminStatus INTEGER,
+ smLaunchOperStatus INTEGER,
+ smLaunchRunIndexNext Integer32,
+ smLaunchStorageType StorageType,
+ smLaunchRowStatus RowStatus,
+ smLaunchError SnmpAdminString,
+ smLaunchLastChange DateAndTime,
+ smLaunchRowExpireTime TimeInterval
+}
+
+smLaunchOwner OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (0..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The manager who owns this row in the smLaunchTable. Every
+ instance of a running script started from a particular entry
+ in the smLaunchTable (i.e. entries in the smRunTable) will
+ be owned by the same smLaunchOwner used to index the entry
+ in the smLaunchTable. This owner is not necessarily the same
+ as the owner of the script itself (smLaunchScriptOwner)."
+ ::= { smLaunchEntry 1 }
+
+smLaunchName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (1..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The locally-unique, administratively assigned name for this
+ launch table entry. This object allows an smLaunchOwner to
+ have multiple entries in the smLaunchTable. The smLaunchName
+ is an arbitrary name that must be different from any other
+ smLaunchTable entries with the same smLaunchOwner but can be
+ the same as other entries in the smLaunchTable with
+ different smLaunchOwner values. Note that the value of
+ smLaunchName is not related in any way to the name of the
+ script being launched."
+ ::= { smLaunchEntry 2 }
+
+smLaunchScriptOwner OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (0..32))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The value of this object in combination with the value of
+ smLaunchScriptName identifies the script that can be
+ launched from this smLaunchTable entry. Attempts to write
+ this object will fail with an inconsistentValue error if
+ the value of smLaunchOperStatus is `enabled'."
+ ::= { smLaunchEntry 3 }
+
+smLaunchScriptName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE (0..32))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The value of this object in combination with the value of
+ the smLaunchScriptOwner identifies the script that can be
+ launched from this smLaunchTable entry. The zero-length
+ string may be used to point to a non-existing script.
+
+ Attempts to write this object will fail with an
+ inconsistentValue error if the value of smLaunchOperStatus
+ is `enabled'."
+ DEFVAL { ''H }
+ ::= { smLaunchEntry 4 }
+
+smLaunchArgument OBJECT-TYPE
+ SYNTAX OCTET STRING
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The argument supplied to the script. When a script is
+ invoked, the value of this object is used to initialize
+ the smRunArgument object."
+ DEFVAL { ''H }
+ ::= { smLaunchEntry 5 }
+
+smLaunchMaxRunning OBJECT-TYPE
+ SYNTAX Unsigned32 (1..4294967295)
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The maximum number of concurrently running scripts that may
+ be invoked from this entry in the smLaunchTable. Lowering
+ the current value of this object does not affect any scripts
+ that are already executing."
+ DEFVAL { 1 }
+ ::= { smLaunchEntry 6 }
+
+smLaunchMaxCompleted OBJECT-TYPE
+ SYNTAX Unsigned32 (1..4294967295)
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The maximum number of finished scripts invoked from this
+ entry in the smLaunchTable allowed to be retained in the
+ smRunTable. Whenever the value of this object is changed
+ and whenever a script terminates, entries in the smRunTable
+ are deleted if necessary until the number of completed
+ scripts is smaller than the value of this object. Scripts
+ whose smRunEndTime value indicates the oldest completion
+ time are deleted first."
+ DEFVAL { 1 }
+ ::= { smLaunchEntry 7 }
+
+smLaunchLifeTime OBJECT-TYPE
+ SYNTAX TimeInterval
+ UNITS "centi-seconds"
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The default maximum amount of time a script launched
+ from this entry may run. The value of this object is used
+ to initialize the smRunLifeTime object when a script is
+ launched. Changing the value of an smLaunchLifeTime
+ instance does not affect scripts previously launched from
+
+ this entry."
+ DEFVAL { 360000 }
+ ::= { smLaunchEntry 8 }
+
+smLaunchExpireTime OBJECT-TYPE
+ SYNTAX TimeInterval
+ UNITS "centi-seconds"
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The default maximum amount of time information about a
+ script launched from this entry is kept in the smRunTable
+ after the script has completed execution. The value of
+ this object is used to initialize the smRunExpireTime
+ object when a script is launched. Changing the value of an
+ smLaunchExpireTime instance does not affect scripts
+ previously launched from this entry."
+ DEFVAL { 360000 }
+ ::= { smLaunchEntry 9 }
+
+smLaunchStart OBJECT-TYPE
+ SYNTAX Integer32 (0..2147483647)
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object is used to start the execution of scripts.
+ When retrieved, the value will be the value of smRunIndex
+ for the last script that started execution by manipulating
+ this object. The value will be zero if no script started
+ execution yet.
+
+ A script is started by setting this object to an unused
+ smRunIndex value. A new row in the smRunTable will be
+ created which is indexed by the value supplied by the
+ set-request in addition to the value of smLaunchOwner and
+ smLaunchName. An unused value can be obtained by reading
+ the smLaunchRunIndexNext object.
+
+ Setting this object to the special value 0 will start
+ the script with a self-generated smRunIndex value. The
+ consequence is that the script invoker has no reliable
+ way to determine the smRunIndex value for this script
+ invocation and that the invoker has therefore no way
+ to obtain the results from this script invocation. The
+ special value 0 is however useful for scheduled script
+ invocations.
+
+ If this object is set, the following checks must be
+
+ performed:
+
+ 1) The value of the smLaunchOperStatus object in this
+ entry of the smLaunchTable must be `enabled'.
+ 2) The values of smLaunchScriptOwner and
+ smLaunchScriptName of this row must identify an
+ existing entry in the smScriptTable.
+ 3) The value of smScriptOperStatus of this entry must
+ be `enabled'.
+ 4) The principal performing the set operation must have
+ read access to the script. This must be checked by
+ calling the isAccessAllowed abstract service interface
+ defined in RFC 2271 on the row in the smScriptTable
+ identified by smLaunchScriptOwner and smLaunchScriptName.
+ The isAccessAllowed abstract service interface must be
+ called on all columnar objects in the smScriptTable with
+ a MAX-ACCESS value different than `not-accessible'. The
+ test fails as soon as a call indicates that access is
+ not allowed.
+ 5) If the value provided by the set operation is not 0,
+ a check must be made that the value is currently not
+ in use. Otherwise, if the value provided by the set
+ operation is 0, a suitable unused value must be
+ generated.
+ 6) The number of currently executing scripts invoked
+ from this smLaunchTable entry must be less than
+ smLaunchMaxRunning.
+
+ Attempts to start a script will fail with an
+ inconsistentValue error if one of the checks described
+ above fails.
+
+ Otherwise, if all checks have been passed, a new entry
+ in the smRunTable will be created indexed by smLaunchOwner,
+ smLaunchName and the new value for smRunIndex. The value
+ of smLaunchArgument will be copied into smRunArgument,
+ the value of smLaunchLifeTime will be copied to
+ smRunLifeTime, and the value of smLaunchExpireTime
+ will be copied to smRunExpireTime.
+
+ The smRunStartTime will be set to the current time and
+ the smRunState will be set to `initializing' before the
+ script execution is initiated in the appropriate runtime
+ system.
+
+ Note that the data type and the range of this object must
+ be consistent with the smRunIndex object. Since this
+ object might be written from the scheduling MIB, the
+
+ data type Integer32 rather than Unsigned32 is used."
+ DEFVAL { 0 }
+ ::= { smLaunchEntry 10 }
+
+smLaunchControl OBJECT-TYPE
+ SYNTAX INTEGER {
+ abort(1),
+ suspend(2),
+ resume(3),
+ nop(4)
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object is used to request a state change for all
+ running scripts in the smRunTable that were started from
+ this row in the smLaunchTable.
+
+ Setting this object to abort(1), suspend(2) or resume(3)
+ will set the smRunControl object of all applicable rows
+ in the smRunTable to abort(1), suspend(2) or resume(3)
+ respectively. The phrase `applicable rows' means the set of
+ rows which were created from this entry in the smLaunchTable
+ and whose value of smRunState allows the corresponding
+ state change as described in the definition of the
+ smRunControl object. Setting this object to nop(4) has no
+ effect.
+
+ Attempts to set this object lead to an inconsistentValue
+ error only if all implicated sets on all the applicable
+ rows lead to inconsistentValue errors. It is not allowed
+ to return an inconsistentValue error if at least one state
+ change on one of the applicable rows was successful."
+ DEFVAL { nop }
+ ::= { smLaunchEntry 11 }
+
+smLaunchAdminStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ enabled(1),
+ disabled(2),
+ autostart(3)
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The value of this object indicates the desired status of
+ this launch table entry. The values enabled(1) and
+ autostart(3) both indicate that the launch table entry
+
+ should transition into the operational enabled(1) state as
+ soon as the associated script table entry is enabled(1).
+
+ The value autostart(3) further indicates that the script
+ is started automatically by conceptually writing the
+ value 0 into the associated smLaunchStart object during
+ the transition from the `disabled' into the `enabled'
+ operational state. This is useful for scripts that are
+ to be launched on system start-up."
+ DEFVAL { disabled }
+ ::= { smLaunchEntry 12 }
+
+smLaunchOperStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ enabled(1),
+ disabled(2),
+ expired(3)
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of this object indicates the actual status of
+ this launch table entry. The smLaunchOperStatus object
+ may have the following values:
+
+ - `enabled' indicates that the launch table entry is
+ available and can be used to start scripts.
+
+ - `disabled' indicates that the launch table entry can
+ not be used to start scripts.
+
+ - `expired' indicates that the launch table entry can
+ not be used to start scripts and will disappear as
+ soon as all smRunTable entries associated with this
+ launch table entry have disappeared.
+
+ The value `enabled' requires that the smLaunchRowStatus
+ object is active. The value `disabled' requires that there
+ are no entries in the smRunTable associated with this
+ smLaunchTable entry."
+ DEFVAL { disabled }
+ ::= { smLaunchEntry 13 }
+
+smLaunchRunIndexNext OBJECT-TYPE
+ SYNTAX Integer32 (1..2147483647)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "This variable is used for creating rows in the smRunTable.
+ The value of this variable is a currently unused value
+ for smRunIndex, which can be written into the smLaunchStart
+ object associated with this row to launch a script.
+
+ The value returned when reading this variable must be unique
+ for the smLaunchOwner and smLaunchName associated with this
+ row. Subsequent attempts to read this variable must return
+ different values.
+
+ This variable will return the special value 0 if no new rows
+ can be created.
+
+ Note that the data type and the range of this object must be
+ consistent with the definition of smRunIndex."
+ ::= { smLaunchEntry 14 }
+
+smLaunchStorageType OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object defines if this row is kept in volatile storage
+ and lost upon reboot or if this row is backed up by stable
+ storage.
+
+ The value of smLaunchStorageType is only meaningful if the
+ value of the corresponding RowStatus object is active.
+
+ If smLaunchStorageType has the value permanent(4), then all
+ objects whose MAX-ACCESS value is read-create must be
+ writable, with the exception of the smLaunchStorageType and
+ smLaunchRowStatus objects, which shall be read-only."
+ DEFVAL { volatile }
+ ::= { smLaunchEntry 15 }
+
+smLaunchRowStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "A control that allows entries to be added and removed from
+ this table.
+
+ Attempts to `destroy' a row or to set a row `notInService'
+ while the smLaunchOperStatus is `enabled' will result in
+ an inconsistentValue error.
+
+ Attempts to `destroy' a row or to set a row `notInService'
+ where the value of the smLaunchStorageType object is
+ `permanent' or `readOnly' will result in an
+ inconsistentValue error.
+
+ The value of this object has no effect on whether other
+ objects in this conceptual row can be modified."
+ ::= { smLaunchEntry 16 }
+
+smLaunchError OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "This object contains a descriptive error message if an
+ attempt to launch a script fails. Implementations must reset
+ the error message to a zero-length string when a new attempt
+ to launch a script is started."
+ DEFVAL { ''H }
+ ::= { smLaunchEntry 17 }
+
+smLaunchLastChange OBJECT-TYPE
+ SYNTAX DateAndTime
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The date and time when this launch table entry was last
+ modified. The value '0000000000000000'H is returned if
+ the launch table entry has not yet been modified.
+
+ Note that a change of smLaunchStart, smLaunchControl,
+ smLaunchRunIndexNext, smLaunchRowExpireTime, or the
+ resetting of smLaunchError is not considered a change
+ of this launch table entry."
+ DEFVAL { '0000000000000000'H }
+ ::= { smLaunchEntry 18 }
+
+smLaunchRowExpireTime OBJECT-TYPE
+ SYNTAX TimeInterval
+ UNITS "centi-seconds"
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The value of this object specifies how long this row remains
+ in the `enabled' or `disabled' operational state. The value
+ reported by this object ticks backwards. When the value
+ reaches 0, it stops ticking backward and the row is
+ deleted if there are no smRunTable entries associated with
+
+ this smLaunchTable entry. Otherwise, the smLaunchOperStatus
+ changes to `expired' and the row deletion is deferred
+ until there are no smRunTable entries associated with this
+ smLaunchTable entry.
+
+ The smLaunchRowExpireTime will not tick backwards if it is
+ set to its maximum value (2147483647). In other words,
+ setting this object to its maximum value turns the timer
+ off.
+
+ The value of this object may be set in order to increase
+ or reduce the remaining time that the launch table entry
+ may be used. Setting the value to 0 will cause an immediate
+ row deletion or transition into the `expired' operational
+ state.
+
+ It is not possible to set this object while the operational
+ status is `expired'. Attempts to modify this object while
+ the operational status is `expired' leads to an
+ inconsistentValue error.
+
+ Note that the timer ticks backwards independent of the
+ operational state of the launch table entry."
+ DEFVAL { 2147483647 }
+ ::= { smLaunchEntry 19 }
+
+smRunTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SmRunEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This table lists and describes scripts that are currently
+ running or have been running in the past."
+ ::= { smRunObjects 2 }
+
+smRunEntry OBJECT-TYPE
+ SYNTAX SmRunEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry describing a particular running or finished
+ script."
+ INDEX { smLaunchOwner, smLaunchName, smRunIndex }
+ ::= { smRunTable 1 }
+
+SmRunEntry ::= SEQUENCE {
+ smRunIndex Integer32,
+ smRunArgument OCTET STRING,
+ smRunStartTime DateAndTime,
+ smRunEndTime DateAndTime,
+ smRunLifeTime TimeInterval,
+ smRunExpireTime TimeInterval,
+ smRunExitCode INTEGER,
+ smRunResult OCTET STRING,
+ smRunControl INTEGER,
+ smRunState INTEGER,
+ smRunError SnmpAdminString,
+ smRunResultTime DateAndTime,
+ smRunErrorTime DateAndTime
+}
+
+smRunIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..2147483647)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The locally arbitrary, but unique identifier associated
+ with this running or finished script. This value must be
+ unique for all rows in the smRunTable with the same
+ smLaunchOwner and smLaunchName.
+
+ Note that the data type and the range of this object must
+ be consistent with the definition of smLaunchRunIndexNext
+ and smLaunchStart."
+ ::= { smRunEntry 1 }
+
+smRunArgument OBJECT-TYPE
+ SYNTAX OCTET STRING
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The argument supplied to the script when it started."
+ DEFVAL { ''H }
+ ::= { smRunEntry 2 }
+
+smRunStartTime OBJECT-TYPE
+ SYNTAX DateAndTime
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The date and time when the execution started. The value
+ '0000000000000000'H is returned if the script has not
+ started yet."
+ DEFVAL { '0000000000000000'H }
+ ::= { smRunEntry 3 }
+
+smRunEndTime OBJECT-TYPE
+ SYNTAX DateAndTime
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The date and time when the execution terminated. The value
+ '0000000000000000'H is returned if the script has not
+ terminated yet."
+ DEFVAL { '0000000000000000'H }
+ ::= { smRunEntry 4 }
+
+smRunLifeTime OBJECT-TYPE
+ SYNTAX TimeInterval
+ UNITS "centi-seconds"
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "This object specifies how long the script can execute.
+ This object returns the remaining time that the script
+ may run. The object is initialized with the value of the
+ associated smLaunchLifeTime object and ticks backwards.
+ The script is aborted immediately when the value reaches 0.
+
+ The value of this object may be set in order to increase or
+ reduce the remaining time that the script may run. Setting
+ this value to 0 will abort script execution immediately,
+ and, if the value of smRunExpireTime is also 0, will remove
+ this entry from the smRunTable once it has terminated.
+
+ If smRunLifeTime is set to its maximum value (2147483647),
+ either by a set operation or by its initialization from the
+ smLaunchLifeTime object, then it will not tick backwards.
+ A running script with a maximum smRunLifeTime value will
+ thus never be terminated with a `lifeTimeExceeded' exit
+ code.
+
+ The value of smRunLifeTime reflects the real-time execution
+ time as seen by the outside world. The value of this object
+ will always be 0 for a script that finished execution, that
+ is smRunState has the value `terminated'.
+
+ The value of smRunLifeTime does not change while a script
+ is suspended, that is smRunState has the value `suspended'.
+ Note that this does not affect set operations. It is legal
+ to modify smRunLifeTime via set operations while a script
+ is suspended."
+ ::= { smRunEntry 5 }
+
+smRunExpireTime OBJECT-TYPE
+ SYNTAX TimeInterval
+ UNITS "centi-seconds"
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The value of this object specifies how long this row can
+ exist in the smRunTable after the script has terminated.
+ This object returns the remaining time that the row may
+ exist before it is aged out. The object is initialized with
+ the value of the associated smLaunchExpireTime object and
+ ticks backwards. The entry in the smRunTable is destroyed
+ when the value reaches 0 and the smRunState has the value
+ `terminated'.
+
+ The value of this object may be set in order to increase or
+ reduce the remaining time that the row may exist. Setting
+ the value to 0 will destroy this entry as soon as the
+ smRunState has the value `terminated'."
+ ::= { smRunEntry 6 }
+
+smRunExitCode OBJECT-TYPE
+ SYNTAX INTEGER {
+ noError(1),
+ halted(2),
+ lifeTimeExceeded(3),
+ noResourcesLeft(4),
+ languageError(5),
+ runtimeError(6),
+ invalidArgument(7),
+ securityViolation(8),
+ genericError(9)
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of this object indicates the reason why a
+ script finished execution. The smRunExitCode code may have
+ one of the following values:
+
+ - `noError', which indicates that the script completed
+ successfully without errors;
+
+ - `halted', which indicates that the script was halted
+ by a request from an authorized manager;
+
+ - `lifeTimeExceeded', which indicates that the script
+ exited because a time limit was exceeded;
+
+ - `noResourcesLeft', which indicates that the script
+ exited because it ran out of resources (e.g. memory);
+
+ - `languageError', which indicates that the script exited
+ because of a language error (e.g. a syntax error in an
+ interpreted language);
+
+ - `runtimeError', which indicates that the script exited
+ due to a runtime error (e.g. a division by zero);
+
+ - `invalidArgument', which indicates that the script could
+ not be run because of invalid script arguments;
+
+ - `securityViolation', which indicates that the script
+ exited due to a security violation;
+
+ - `genericError', which indicates that the script exited
+ for an unspecified reason.
+
+ If the script has not yet begun running, or is currently
+ running, the value will be `noError'."
+ DEFVAL { noError }
+ ::= { smRunEntry 7 }
+
+smRunResult OBJECT-TYPE
+ SYNTAX OCTET STRING
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The result value produced by the running script. Note that
+ the result may change while the script is executing."
+ DEFVAL { ''H }
+ ::= { smRunEntry 8 }
+
+smRunControl OBJECT-TYPE
+ SYNTAX INTEGER {
+ abort(1),
+ suspend(2),
+ resume(3),
+ nop(4)
+ }
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The value of this object indicates the desired status of the
+ script execution defined by this row.
+
+ Setting this object to `abort' will abort execution if the
+
+ value of smRunState is `initializing', `executing',
+ `suspending', `suspended' or `resuming'. Setting this object
+ to `abort' when the value of smRunState is `aborting' or
+ `terminated', or if the implementation can determine that
+ the attempt to abort the execution would fail, will result
+ in an inconsistentValue error.
+
+ Setting this object to `suspend' will suspend execution
+ if the value of smRunState is `executing'. Setting this
+ object to `suspend' will cause an inconsistentValue error
+ if the value of smRunState is not `executing' or if the
+ implementation can determine that the attempt to suspend
+ the execution would fail.
+
+ Setting this object to `resume' will resume execution
+ if the value of smRunState is `suspending' or
+ `suspended'. Setting this object to `resume' will cause an
+ inconsistentValue error if the value of smRunState is
+ not `suspended' or if the implementation can determine
+ that the attempt to resume the execution would fail.
+
+ Setting this object to nop(4) has no effect."
+ DEFVAL { nop }
+ ::= { smRunEntry 9 }
+
+smRunState OBJECT-TYPE
+ SYNTAX INTEGER {
+ initializing(1),
+ executing(2),
+ suspending(3),
+ suspended(4),
+ resuming(5),
+ aborting(6),
+ terminated(7)
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of this object indicates the script's execution
+ state. If the script has been invoked but has not yet
+ begun execution, the value will be `initializing'. If the
+ script is running, the value will be `executing'.
+
+ A running script which received a request to suspend
+ execution first transitions into a temporary `suspending'
+ state. The temporary `suspending' state changes to
+ `suspended' when the script has actually been suspended. The
+ temporary `suspending' state changes back to `executing' if
+
+ the attempt to suspend the running script fails.
+
+ A suspended script which received a request to resume
+ execution first transitions into a temporary `resuming'
+ state. The temporary `resuming' state changes to `running'
+ when the script has actually been resumed. The temporary
+ `resuming' state changes back to `suspended' if the attempt
+ to resume the suspended script fails.
+
+ A script which received a request to abort execution but
+ which is still running first transitions into a temporary
+ `aborting' state.
+
+ A script which has finished its execution is `terminated'."
+ ::= { smRunEntry 10 }
+
+smRunError OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "This object contains a descriptive error message if the
+ script startup or execution raised an abnormal condition.
+ An implementation must store a descriptive error message
+ in this object if the script exits with the smRunExitCode
+ `genericError'."
+ DEFVAL { ''H }
+ ::= { smRunEntry 11 }
+
+smRunResultTime OBJECT-TYPE
+ SYNTAX DateAndTime
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The date and time when the smRunResult was last updated.
+ The value '0000000000000000'H is returned if smRunResult
+ has not yet been updated after the creation of this
+ smRunTable entry."
+ DEFVAL { '0000000000000000'H }
+ ::= { smRunEntry 12 }
+
+smRunErrorTime OBJECT-TYPE
+ SYNTAX DateAndTime
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The date and time when the smRunError was last updated.
+ The value '0000000000000000'H is returned if smRunError
+
+ has not yet been updated after the creation of this
+ smRunTable entry."
+ DEFVAL { '0000000000000000'H }
+ ::= { smRunEntry 13 }
+
+--
+-- Notifications. The definition of smTraps makes notification
+-- registrations reversible (see STD 58, RFC 2578).
+--
+
+smTraps OBJECT IDENTIFIER ::= { smNotifications 0 }
+
+smScriptAbort NOTIFICATION-TYPE
+ OBJECTS { smRunExitCode, smRunEndTime, smRunError }
+ STATUS current
+ DESCRIPTION
+ "This notification is generated whenever a running script
+ terminates with an smRunExitCode unequal to `noError'."
+ ::= { smTraps 1 }
+
+smScriptResult NOTIFICATION-TYPE
+ OBJECTS { smRunResult }
+ STATUS current
+ DESCRIPTION
+ "This notification can be used by scripts to notify other
+ management applications about results produced by the
+ script.
+
+ This notification is not automatically generated by the
+ Script MIB implementation. It is the responsibility of
+ the executing script to emit this notification where it
+ is appropriate to do so."
+ ::= { smTraps 2 }
+
+smScriptException NOTIFICATION-TYPE
+ OBJECTS { smRunError }
+ STATUS current
+ DESCRIPTION
+ "This notification can be used by scripts to notify other
+ management applications about script errors.
+
+ This notification is not automatically generated by the
+ Script MIB implementation. It is the responsibility of
+ the executing script or the runtime system to emit this
+ notification where it is appropriate to do so."
+ ::= { smTraps 3 }
+
+-- conformance information
+
+smCompliances OBJECT IDENTIFIER ::= { smConformance 1 }
+smGroups OBJECT IDENTIFIER ::= { smConformance 2 }
+
+-- compliance statements
+
+smCompliance2 MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for SNMP entities which implement
+ the Script MIB."
+ MODULE -- this module
+ MANDATORY-GROUPS {
+ smLanguageGroup, smScriptGroup2, smLaunchGroup2,
+ smRunGroup2, smNotificationsGroup2
+ }
+ GROUP smCodeGroup
+ DESCRIPTION
+ "The smCodeGroup is mandatory only for those implementations
+ that support the downloading of scripts via SNMP."
+ OBJECT smScriptSource
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "The smScriptSource object is read-only for implementations
+ that are not able to download script code from a URL."
+ OBJECT smCodeText
+ DESCRIPTION
+ "A compliant implementation need only support write access to
+ the smCodeText object only during row creation."
+ OBJECT smLaunchArgument
+ DESCRIPTION
+ "A compliant implementation has to support a minimum size
+ for smLaunchArgument of 255 octets."
+ OBJECT smRunArgument
+ DESCRIPTION
+ "A compliant implementation has to support a minimum size
+ for smRunArgument of 255 octets."
+ OBJECT smRunResult
+ DESCRIPTION
+ "A compliant implementation has to support a minimum size
+ for smRunResult of 255 octets."
+ OBJECT smRunState
+ DESCRIPTION
+ "A compliant implementation does not have to support script
+ suspension and the smRunState `suspended'. Such an
+ implementation will change into the `suspending' state
+ when the smRunControl is set to `suspend' and remain in this
+ state until smRunControl is set to `resume' or the script
+ terminates."
+ ::= { smCompliances 2 }
+
+smLanguageGroup OBJECT-GROUP
+ OBJECTS {
+ smLangLanguage, smLangVersion,
+ smLangVendor, smLangRevision,
+ smLangDescr, smExtsnExtension,
+ smExtsnVersion, smExtsnVendor,
+ smExtsnRevision, smExtsnDescr
+ }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing information about the
+ capabilities of the scripting engine."
+ ::= { smGroups 1 }
+
+smScriptGroup2 OBJECT-GROUP
+ OBJECTS {
+ smScriptDescr, smScriptLanguage,
+ smScriptSource, smScriptAdminStatus,
+ smScriptOperStatus, smScriptStorageType,
+ smScriptRowStatus, smScriptError,
+ smScriptLastChange
+ }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing information about
+ installed scripts."
+ ::= { smGroups 7 }
+
+smCodeGroup OBJECT-GROUP
+ OBJECTS {
+ smCodeText, smCodeRowStatus
+ }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects used to download or modify scripts
+ by using SNMP set requests."
+ ::= { smGroups 3 }
+
+smLaunchGroup2 OBJECT-GROUP
+ OBJECTS {
+ smLaunchScriptOwner, smLaunchScriptName,
+ smLaunchArgument, smLaunchMaxRunning,
+ smLaunchMaxCompleted, smLaunchLifeTime,
+ smLaunchExpireTime, smLaunchStart,
+ smLaunchControl, smLaunchAdminStatus,
+ smLaunchOperStatus, smLaunchRunIndexNext,
+ smLaunchStorageType, smLaunchRowStatus,
+ smLaunchError, smLaunchLastChange,
+ smLaunchRowExpireTime
+ }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing information about scripts
+ that can be launched."
+ ::= { smGroups 8 }
+
+smRunGroup2 OBJECT-GROUP
+ OBJECTS {
+ smRunArgument, smRunStartTime,
+ smRunEndTime, smRunLifeTime,
+ smRunExpireTime, smRunExitCode,
+ smRunResult, smRunState,
+ smRunControl, smRunError,
+ smRunResultTime, smRunErrorTime
+ }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing information about running
+ scripts."
+ ::= { smGroups 9 }
+
+smNotificationsGroup2 NOTIFICATION-GROUP
+ NOTIFICATIONS {
+ smScriptAbort,
+ smScriptResult,
+ smScriptException
+ }
+ STATUS current
+ DESCRIPTION
+ "The notifications emitted by the Script MIB."
+ ::= { smGroups 10 }
+
+--
+-- Deprecated compliance and conformance group definitions
+-- from RFC 2592.
+--
+
+smCompliance MODULE-COMPLIANCE
+ STATUS deprecated
+ DESCRIPTION
+ "The compliance statement for SNMP entities which implement
+ the Script MIB."
+ MODULE -- this module
+ MANDATORY-GROUPS {
+
+ smLanguageGroup, smScriptGroup, smLaunchGroup, smRunGroup
+ }
+ GROUP smCodeGroup
+ DESCRIPTION
+ "The smCodeGroup is mandatory only for those implementations
+ that support the downloading of scripts via SNMP."
+ OBJECT smScriptSource
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "The smScriptSource object is read-only for implementations
+ that are not able to download script code from a URL."
+ OBJECT smCodeText
+ DESCRIPTION
+ "A compliant implementation need only support write access
+ to the smCodeText object during row creation."
+ OBJECT smLaunchArgument
+ DESCRIPTION
+ "A compliant implementation has to support a minimum size
+ for smLaunchArgument of 255 octets."
+ OBJECT smRunArgument
+ DESCRIPTION
+ "A compliant implementation has to support a minimum size
+ for smRunArgument of 255 octets."
+ OBJECT smRunResult
+ DESCRIPTION
+ "A compliant implementation has to support a minimum size
+ for smRunResult of 255 octets."
+ OBJECT smRunState
+ DESCRIPTION
+ "A compliant implementation does not have to support script
+ suspension and the smRunState `suspended'. Such an
+ implementation will change into the `suspending' state
+ when the smRunControl is set to `suspend' and remain in this
+ state until smRunControl is set to `resume' or the script
+ terminates."
+ ::= { smCompliances 1 }
+
+smScriptGroup OBJECT-GROUP
+ OBJECTS {
+ smScriptDescr, smScriptLanguage,
+ smScriptSource, smScriptAdminStatus,
+ smScriptOperStatus, smScriptStorageType,
+ smScriptRowStatus
+ }
+ STATUS deprecated
+ DESCRIPTION
+ "A collection of objects providing information about
+ installed scripts."
+ ::= { smGroups 2 }
+
+smLaunchGroup OBJECT-GROUP
+ OBJECTS {
+ smLaunchScriptOwner, smLaunchScriptName,
+ smLaunchArgument, smLaunchMaxRunning,
+ smLaunchMaxCompleted, smLaunchLifeTime,
+ smLaunchExpireTime, smLaunchStart,
+ smLaunchControl, smLaunchAdminStatus,
+ smLaunchOperStatus, smLaunchRunIndexNext,
+ smLaunchStorageType, smLaunchRowStatus
+ }
+ STATUS deprecated
+ DESCRIPTION
+ "A collection of objects providing information about scripts
+ that can be launched."
+ ::= { smGroups 4 }
+
+smRunGroup OBJECT-GROUP
+ OBJECTS {
+ smRunArgument, smRunStartTime,
+ smRunEndTime, smRunLifeTime,
+ smRunExpireTime, smRunExitCode,
+ smRunResult, smRunState,
+ smRunControl, smRunError
+ }
+ STATUS deprecated
+ DESCRIPTION
+ "A collection of objects providing information about running
+ scripts."
+ ::= { smGroups 5 }
+
+smNotificationsGroup NOTIFICATION-GROUP
+ NOTIFICATIONS {
+ smScriptAbort,
+ smScriptResult
+ }
+ STATUS deprecated
+ DESCRIPTION
+ "The notifications emitted by the Script MIB."
+ ::= { smGroups 6 }
+
+END
diff --git a/php/extras/mibs/DISMAN-TRACEROUTE-MIB.txt b/php/extras/mibs/DISMAN-TRACEROUTE-MIB.txt
new file mode 100644
index 000000000..d207b2455
--- /dev/null
+++ b/php/extras/mibs/DISMAN-TRACEROUTE-MIB.txt
@@ -0,0 +1,1850 @@
+DISMAN-TRACEROUTE-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE, Integer32,
+ Gauge32, Unsigned32, mib-2,
+ NOTIFICATION-TYPE,
+ OBJECT-IDENTITY
+ FROM SNMPv2-SMI -- RFC2578
+ RowStatus, StorageType,
+ TruthValue, DateAndTime
+ FROM SNMPv2-TC -- RFC2579
+ MODULE-COMPLIANCE, OBJECT-GROUP,
+ NOTIFICATION-GROUP
+ FROM SNMPv2-CONF -- RFC2580
+ SnmpAdminString
+ FROM SNMP-FRAMEWORK-MIB -- RFC3411
+ InterfaceIndexOrZero -- RFC2863
+ FROM IF-MIB
+ InetAddressType, InetAddress
+ FROM INET-ADDRESS-MIB -- RFC4001
+ OperationResponseStatus
+ FROM DISMAN-PING-MIB; -- RFC4560
+
+ traceRouteMIB MODULE-IDENTITY
+ LAST-UPDATED "200606130000Z" -- 13 June 2006
+ ORGANIZATION "IETF Distributed Management Working Group"
+ CONTACT-INFO
+ "Juergen Quittek
+
+ NEC Europe Ltd.
+ Network Laboratories
+ Kurfuersten-Anlage 36
+ 69115 Heidelberg
+ Germany
+
+ Phone: +49 6221 4342-115
+ Email: quittek@netlab.nec.de"
+ DESCRIPTION
+ "The Traceroute MIB (DISMAN-TRACEROUTE-MIB) provides
+ access to the traceroute capability at a remote host.
+
+ Copyright (C) The Internet Society (2006). This version of
+ this MIB module is part of RFC 4560; see the RFC itself for
+ full legal notices."
+
+ -- Revision history
+
+ REVISION "200606130000Z" -- 13 June 2006
+ DESCRIPTION
+ "Updated version, published as RFC 4560.
+ - Correctly considered IPv6 in DESCRIPTION clause of
+ object traceRouteCtlDataSize
+ - Replaced references to RFC 2575 by RFC 3415
+ - Replaced references to RFC 2571 by RFC 3411
+ - Replaced references to RFC 2851 by RFC 4001
+ - Clarified DESCRIPTION clause of object
+ traceRouteResultsLastGoodPath
+ - Changed range of object traceRouteCtlInitialTtl
+ from (0..255) to (1..255)
+ - Extended DESCRIPTION clause of traceRouteResultsTable
+ describing re-initialization of entries
+ - Changed SYNTAX of traceRouteResultsTestAttempts and
+ traceRouteResultsTestSuccesses from Unsigned32 to
+ Gauge32
+ - Changed status of traceRouteCompliance to deprecated
+ - Added traceRouteFullCompliance and
+ traceRouteMinimumCompliance
+ - Changed status of traceRouteGroup and
+ traceRouteTimeStampGroup to deprecated
+ - Added traceRouteMinimumGroup,
+ traceRouteCtlRowStatusGroup, and
+ traceRouteHistoryGroup
+ - Changed DEFVAL of object
+ traceRouteCtlTargetAddressType from { ipv4 }
+ to { unknown }
+ - Changed DEFVAL of object traceRouteCtlDescr
+ from { '00'H } to { ''H }
+ - Added DEFVAL for object traceRouteCtlTrapGeneration
+ of DEFVAL { { } }"
+ REVISION "200009210000Z" -- 21 September 2000
+ DESCRIPTION
+ "Initial version, published as RFC 2925."
+ ::= { mib-2 81 }
+
+ -- Top level structure of the MIB
+
+ traceRouteNotifications OBJECT IDENTIFIER ::= { traceRouteMIB 0 }
+ traceRouteObjects OBJECT IDENTIFIER ::= { traceRouteMIB 1 }
+ traceRouteConformance OBJECT IDENTIFIER ::= { traceRouteMIB 2 }
+
+ -- The registration node (point) for traceroute implementation types
+
+ traceRouteImplementationTypeDomains OBJECT IDENTIFIER
+ ::= { traceRouteMIB 3 }
+
+ traceRouteUsingUdpProbes OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "Indicates that an implementation is using UDP probes to
+ perform the traceroute operation."
+ ::= { traceRouteImplementationTypeDomains 1 }
+
+ -- Simple Object Definitions
+
+ traceRouteMaxConcurrentRequests OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "requests"
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The maximum number of concurrent active traceroute requests
+ that are allowed within an agent implementation. A value
+ of 0 for this object implies that there is no limit for
+ the number of concurrent active requests in effect.
+
+ The limit applies only to new requests being activated.
+ When a new value is set, the agent will continue processing
+ all the requests already active, even if their number
+ exceeds the limit just imposed."
+ DEFVAL { 10 }
+ ::= { traceRouteObjects 1 }
+
+ -- Traceroute Control Table
+
+ traceRouteCtlTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF TraceRouteCtlEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Defines the Remote Operations Traceroute Control Table for
+ providing the capability of invoking traceroute from a remote
+ host. The results of traceroute operations can be stored in
+ the traceRouteResultsTable, traceRouteProbeHistoryTable, and
+ the traceRouteHopsTable."
+ ::= { traceRouteObjects 2 }
+
+ traceRouteCtlEntry OBJECT-TYPE
+ SYNTAX TraceRouteCtlEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Defines an entry in the traceRouteCtlTable. The first
+ index element, traceRouteCtlOwnerIndex, is of type
+ SnmpAdminString, a textual convention that allows for
+ use of the SNMPv3 View-Based Access Control Model
+ (RFC 3415, VACM) and that allows a management
+ application to identify its entries. The second index,
+ traceRouteCtlTestName (also an SnmpAdminString),
+ enables the same management application to have
+ multiple requests outstanding."
+ INDEX {
+ traceRouteCtlOwnerIndex,
+ traceRouteCtlTestName
+ }
+ ::= { traceRouteCtlTable 1 }
+
+ TraceRouteCtlEntry ::=
+ SEQUENCE {
+ traceRouteCtlOwnerIndex SnmpAdminString,
+ traceRouteCtlTestName SnmpAdminString,
+ traceRouteCtlTargetAddressType InetAddressType,
+ traceRouteCtlTargetAddress InetAddress,
+ traceRouteCtlByPassRouteTable TruthValue,
+ traceRouteCtlDataSize Unsigned32,
+ traceRouteCtlTimeOut Unsigned32,
+ traceRouteCtlProbesPerHop Unsigned32,
+ traceRouteCtlPort Unsigned32,
+ traceRouteCtlMaxTtl Unsigned32,
+ traceRouteCtlDSField Unsigned32,
+ traceRouteCtlSourceAddressType InetAddressType,
+ traceRouteCtlSourceAddress InetAddress,
+ traceRouteCtlIfIndex InterfaceIndexOrZero,
+ traceRouteCtlMiscOptions SnmpAdminString,
+ traceRouteCtlMaxFailures Unsigned32,
+ traceRouteCtlDontFragment TruthValue,
+ traceRouteCtlInitialTtl Unsigned32,
+ traceRouteCtlFrequency Unsigned32,
+ traceRouteCtlStorageType StorageType,
+ traceRouteCtlAdminStatus INTEGER,
+ traceRouteCtlDescr SnmpAdminString,
+ traceRouteCtlMaxRows Unsigned32,
+ traceRouteCtlTrapGeneration BITS,
+ traceRouteCtlCreateHopsEntries TruthValue,
+ traceRouteCtlType OBJECT IDENTIFIER,
+ traceRouteCtlRowStatus RowStatus
+ }
+
+ traceRouteCtlOwnerIndex OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(0..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "To facilitate the provisioning of access control by a
+ security administrator using the View-Based Access
+ Control Model (RFC 3415, VACM) for tables in which
+ multiple users may need to create or
+ modify entries independently, the initial index is used as
+ an 'owner index'. Such an initial index has a syntax of
+ SnmpAdminString and can thus be trivially mapped to a
+ securityName or groupName defined in VACM, in
+ accordance with a security policy.
+
+ When used in conjunction with such a security policy,
+ all entries in the table belonging to a particular user
+ (or group) will have the same value for this initial
+ index. For a given user's entries in a particular
+ table, the object identifiers for the information in
+ these entries will have the same subidentifiers (except
+ for the 'column' subidentifier) up to the end of the
+ encoded owner index. To configure VACM to permit access
+ to this portion of the table, one would create
+ vacmViewTreeFamilyTable entries with the value of
+ vacmViewTreeFamilySubtree including the owner index
+ portion, and vacmViewTreeFamilyMask 'wildcarding' the
+ column subidentifier. More elaborate configurations
+ are possible."
+ ::= { traceRouteCtlEntry 1 }
+
+ traceRouteCtlTestName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(0..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The name of a traceroute test. This is locally unique,
+ within the scope of a traceRouteCtlOwnerIndex."
+ ::= { traceRouteCtlEntry 2 }
+
+ traceRouteCtlTargetAddressType OBJECT-TYPE
+ SYNTAX InetAddressType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Specifies the type of host address to be used on the
+ traceroute request at the remote host."
+ DEFVAL { unknown }
+ ::= { traceRouteCtlEntry 3 }
+
+ traceRouteCtlTargetAddress OBJECT-TYPE
+ SYNTAX InetAddress
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Specifies the host address used on the
+ traceroute request at the remote host. The
+ host address type can be determined by
+ examining the value of the corresponding
+ traceRouteCtlTargetAddressType.
+
+ A value for this object MUST be set prior to
+ transitioning its corresponding traceRouteCtlEntry to
+ active(1) via traceRouteCtlRowStatus."
+ ::= { traceRouteCtlEntry 4 }
+
+ traceRouteCtlByPassRouteTable OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The purpose of this object is to enable optional
+ bypassing the route table. If enabled, the remote
+ host will bypass the normal routing tables and send
+ directly to a host on an attached network. If the
+ host is not on a directly attached network, an
+ error is returned. This option can be used to perform
+ the traceroute operation to a local host through an
+ interface that has no route defined (e.g., after the
+ interface was dropped by the routing daemon at the host)."
+ DEFVAL { false }
+ ::= { traceRouteCtlEntry 5 }
+
+ traceRouteCtlDataSize OBJECT-TYPE
+ SYNTAX Unsigned32 (0..65507)
+ UNITS "octets"
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Specifies the size of the data portion of a traceroute
+ request, in octets. If the RECOMMENDED traceroute method
+ (UDP datagrams as probes) is used, then the value
+ contained in this object MUST be applied. If another
+ traceroute method is used for which the specified size
+ is not appropriate, then the implementation SHOULD use
+ whatever size (appropriate to the method) is closest to
+ the specified size.
+
+ The maximum value for this object was computed by
+ subtracting the smallest possible IP header size of
+ 20 octets (IPv4 header with no options) and the UDP
+ header size of 8 octets from the maximum IP packet size.
+ An IP packet has a maximum size of 65535 octets
+ (excluding IPv6 Jumbograms)."
+ DEFVAL { 0 }
+ ::= { traceRouteCtlEntry 6 }
+
+ traceRouteCtlTimeOut OBJECT-TYPE
+ SYNTAX Unsigned32 (1..60)
+ UNITS "seconds"
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Specifies the time-out value, in seconds, for
+ a traceroute request."
+ DEFVAL { 3 }
+ ::= { traceRouteCtlEntry 7 }
+
+ traceRouteCtlProbesPerHop OBJECT-TYPE
+ SYNTAX Unsigned32 (1..10)
+ UNITS "probes"
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Specifies the number of times to reissue a traceroute
+ request with the same time-to-live (TTL) value."
+ DEFVAL { 3 }
+ ::= { traceRouteCtlEntry 8 }
+
+ traceRouteCtlPort OBJECT-TYPE
+ SYNTAX Unsigned32 (1..65535)
+ UNITS "UDP Port"
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Specifies the (initial) UDP port to send the traceroute
+ request to. A port needs to be specified that is not in
+ use at the destination (target) host. The default
+ value for this object is the IANA assigned port,
+ 33434, for the traceroute function."
+ DEFVAL { 33434 }
+ ::= { traceRouteCtlEntry 9 }
+
+ traceRouteCtlMaxTtl OBJECT-TYPE
+ SYNTAX Unsigned32 (1..255)
+ UNITS "time-to-live value"
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Specifies the maximum time-to-live value."
+ DEFVAL { 30 }
+ ::= { traceRouteCtlEntry 10 }
+
+ traceRouteCtlDSField OBJECT-TYPE
+ SYNTAX Unsigned32 (0..255)
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Specifies the value to store in the Type of Service
+ (TOS) octet in the IPv4 header or in the Traffic
+ Class octet in the IPv6 header, respectively, of the
+ IP packet used to encapsulate the traceroute probe.
+
+ The octet to be set in the IP header contains the
+ Differentiated Services (DS) Field in the six most
+ significant bits.
+
+ This option can be used to determine what effect an
+ explicit DS Field setting has on a traceroute response.
+ Not all values are legal or meaningful. A value of 0
+ means that the function represented by this option is
+ not supported. DS Field usage is often not supported
+ by IP implementations, and not all values are supported.
+ Refer to RFC 2474 and RFC 3260 for guidance on usage of
+ this field."
+ REFERENCE
+ "Refer to RFC 1812 for the definition of the IPv4 TOS
+ octet and to RFC 2460 for the definition of the IPv6
+ Traffic Class octet. Refer to RFC 2474 and RFC 3260
+ for the definition of the Differentiated Services Field."
+ DEFVAL { 0 }
+ ::= { traceRouteCtlEntry 11 }
+
+ traceRouteCtlSourceAddressType OBJECT-TYPE
+ SYNTAX InetAddressType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Specifies the type of the source address,
+ traceRouteCtlSourceAddress, to be used at a remote host
+ when a traceroute operation is performed."
+ DEFVAL { unknown }
+ ::= { traceRouteCtlEntry 12 }
+
+ traceRouteCtlSourceAddress OBJECT-TYPE
+ SYNTAX InetAddress
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Use the specified IP address (which must be given as an
+ IP number, not a hostname) as the source address in
+ outgoing probe packets. On hosts with more than one IP
+ address, this option can be used to select the address
+ to be used. If the IP address is not one of this
+ machine's interface addresses, an error is returned, and
+ nothing is sent. A zero-length octet string value for
+ this object disables source address specification.
+ The address type (InetAddressType) that relates to
+ this object is specified by the corresponding value
+ of traceRouteCtlSourceAddressType."
+ DEFVAL { ''H }
+ ::= { traceRouteCtlEntry 13 }
+
+ traceRouteCtlIfIndex OBJECT-TYPE
+ SYNTAX InterfaceIndexOrZero
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Setting this object to an interface's ifIndex prior
+ to starting a remote traceroute operation directs
+ the traceroute probes to be transmitted over the
+ specified interface. A value of zero for this object
+ implies that this option is not enabled."
+ DEFVAL { 0 }
+ ::= { traceRouteCtlEntry 14 }
+
+ traceRouteCtlMiscOptions OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Enables an application to specify implementation-dependent
+ options."
+ DEFVAL { ''H }
+ ::= { traceRouteCtlEntry 15 }
+
+ traceRouteCtlMaxFailures OBJECT-TYPE
+ SYNTAX Unsigned32 (0..255)
+ UNITS "timeouts"
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The value of this object indicates the maximum number
+ of consecutive timeouts allowed before a remote traceroute
+ request is terminated. A value of either 255 (maximum
+ hop count/possible TTL value) or 0 indicates that the
+ function of terminating a remote traceroute request when a
+ specific number of consecutive timeouts are detected is
+ disabled."
+ DEFVAL { 5 }
+ ::= { traceRouteCtlEntry 16 }
+
+ traceRouteCtlDontFragment OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object enables setting of the don't fragment flag (DF)
+ in the IP header for a probe. Use of this object enables
+ a manual PATH MTU test is performed."
+ DEFVAL { false }
+ ::= { traceRouteCtlEntry 17 }
+
+ traceRouteCtlInitialTtl OBJECT-TYPE
+ SYNTAX Unsigned32 (1..255)
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The value of this object specifies the initial TTL value to
+ use. This enables bypassing the initial (often well known)
+ portion of a path."
+ DEFVAL { 1 }
+ ::= { traceRouteCtlEntry 18 }
+
+ traceRouteCtlFrequency OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "seconds"
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The number of seconds to wait before repeating a
+ traceroute test, as defined by the value of the
+ various objects in the corresponding row.
+
+ After a single test is completed the number of seconds
+ as defined by the value of traceRouteCtlFrequency MUST
+ elapse before the next traceroute test is started.
+
+ A value of 0 for this object implies that the test
+ as defined by the corresponding entry will not be
+
+ repeated."
+ DEFVAL { 0 }
+ ::= { traceRouteCtlEntry 19 }
+
+ traceRouteCtlStorageType OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The storage type for this conceptual row.
+ Conceptual rows having the value 'permanent' need not
+ allow write-access to any columnar objects in the row."
+ DEFVAL { nonVolatile }
+ ::= { traceRouteCtlEntry 20 }
+
+ traceRouteCtlAdminStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+
+ enabled(1), -- operation should be started
+ disabled(2) -- operation should be stopped
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Reflects the desired state that an traceRouteCtlEntry
+ should be in:
+
+ enabled(1) - Attempt to activate the test as defined by
+ this traceRouteCtlEntry.
+ disabled(2) - Deactivate the test as defined by this
+ traceRouteCtlEntry.
+
+ Refer to the corresponding traceRouteResultsOperStatus to
+ determine the operational state of the test defined by
+ this entry."
+ DEFVAL { disabled }
+ ::= { traceRouteCtlEntry 21 }
+
+ traceRouteCtlDescr OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The purpose of this object is to provide a
+ descriptive name of the remote traceroute
+ test."
+ DEFVAL { ''H }
+ ::= { traceRouteCtlEntry 22 }
+
+ traceRouteCtlMaxRows OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "rows"
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The maximum number of corresponding entries allowed
+ in the traceRouteProbeHistoryTable. An implementation
+ of this MIB will remove the oldest corresponding entry
+ in the traceRouteProbeHistoryTable to allow the
+ addition of an new entry once the number of
+ corresponding rows in the traceRouteProbeHistoryTable
+ reaches this value.
+
+ Old entries are not removed when a new test is
+ started. Entries are added to the
+ traceRouteProbeHistoryTable until traceRouteCtlMaxRows
+ is reached before entries begin to be removed.
+ A value of 0 for this object disables creation of
+ traceRouteProbeHistoryTable entries."
+ DEFVAL { 50 }
+ ::= { traceRouteCtlEntry 23 }
+
+ traceRouteCtlTrapGeneration OBJECT-TYPE
+ SYNTAX BITS {
+ pathChange(0),
+ testFailure(1),
+ testCompletion(2)
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The value of this object determines when and whether to
+ generate a notification for this entry:
+
+ pathChange(0) - Generate a traceRoutePathChange
+ notification when the current path varies from a
+ previously determined path.
+ testFailure(1) - Generate a traceRouteTestFailed
+ notification when the full path to a target
+ can't be determined.
+ testCompletion(2) - Generate a traceRouteTestCompleted
+ notification when the path to a target has been
+ determined.
+
+ The value of this object defaults to an empty set,
+ indicating that none of the above options has been
+ selected."
+ DEFVAL { { } }
+ ::= { traceRouteCtlEntry 24 }
+
+ traceRouteCtlCreateHopsEntries OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The current path for a traceroute test is kept in the
+ traceRouteHopsTable on a per-hop basis when the value of
+ this object is true(1)."
+ DEFVAL { false }
+ ::= { traceRouteCtlEntry 25 }
+
+ traceRouteCtlType OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The value of this object is used either to report or to
+ select the implementation method to be used for
+ performing a traceroute operation. The value of this
+ object may be selected from
+ traceRouteImplementationTypeDomains.
+
+ Additional implementation types should be allocated as
+ required by implementers of the DISMAN-TRACEROUTE-MIB
+ under their enterprise specific registration point,
+ not beneath traceRouteImplementationTypeDomains."
+ DEFVAL { traceRouteUsingUdpProbes }
+ ::= { traceRouteCtlEntry 26 }
+
+ traceRouteCtlRowStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object allows entries to be created and deleted
+ in the traceRouteCtlTable. Deletion of an entry in
+ this table results in a deletion of all corresponding (same
+ traceRouteCtlOwnerIndex and traceRouteCtlTestName
+ index values) traceRouteResultsTable,
+ traceRouteProbeHistoryTable, and traceRouteHopsTable
+ entries.
+
+ A value MUST be specified for traceRouteCtlTargetAddress
+ prior to acceptance of a transition to active(1) state.
+
+ When a value for pingCtlTargetAddress is set,
+ the value of object pingCtlRowStatus changes
+ from notReady(3) to notInService(2).
+
+ Activation of a remote traceroute operation is
+ controlled via traceRouteCtlAdminStatus, and not
+ by transitioning of this object's value to active(1).
+
+ Transitions in and out of active(1) state are not
+ allowed while an entry's traceRouteResultsOperStatus
+ is active(1), with the exception that deletion of
+ an entry in this table by setting its RowStatus
+ object to destroy(6) will stop an active
+ traceroute operation.
+
+ The operational state of an traceroute operation
+ can be determined by examination of the corresponding
+ traceRouteResultsOperStatus object."
+ REFERENCE
+ "See definition of RowStatus in RFC 2579, 'Textual
+ Conventions for SMIv2.'"
+ ::= { traceRouteCtlEntry 27 }
+
+ -- Traceroute Results Table
+
+ traceRouteResultsTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF TraceRouteResultsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Defines the Remote Operations Traceroute Results Table for
+ keeping track of the status of a traceRouteCtlEntry.
+
+ An entry is added to the traceRouteResultsTable when an
+ traceRouteCtlEntry is started by successful transition
+ of its traceRouteCtlAdminStatus object to enabled(1).
+
+ If the object traceRouteCtlAdminStatus already has the value
+ enabled(1), and if the corresponding
+ traceRouteResultsOperStatus object has the value
+ completed(3), then successfully writing enabled(1) to the
+ object traceRouteCtlAdminStatus re-initializes the already
+ existing entry in the traceRouteResultsTable. The values of
+ objects in the re-initialized entry are the same as
+ the values of objects in a new entry would be.
+
+ An entry is removed from the traceRouteResultsTable when
+
+ its corresponding traceRouteCtlEntry is deleted."
+ ::= { traceRouteObjects 3 }
+
+ traceRouteResultsEntry OBJECT-TYPE
+ SYNTAX TraceRouteResultsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Defines an entry in the traceRouteResultsTable. The
+ traceRouteResultsTable has the same indexing as the
+ traceRouteCtlTable so that a traceRouteResultsEntry
+ corresponds to the traceRouteCtlEntry that caused it to
+ be created."
+ INDEX {
+ traceRouteCtlOwnerIndex,
+ traceRouteCtlTestName
+ }
+ ::= { traceRouteResultsTable 1 }
+
+ TraceRouteResultsEntry ::=
+ SEQUENCE {
+ traceRouteResultsOperStatus INTEGER,
+ traceRouteResultsCurHopCount Gauge32,
+ traceRouteResultsCurProbeCount Gauge32,
+ traceRouteResultsIpTgtAddrType InetAddressType,
+ traceRouteResultsIpTgtAddr InetAddress,
+ traceRouteResultsTestAttempts Gauge32,
+ traceRouteResultsTestSuccesses Gauge32,
+ traceRouteResultsLastGoodPath DateAndTime
+ }
+
+ traceRouteResultsOperStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ enabled(1), -- test is in progress
+ disabled(2), -- test has stopped
+ completed(3) -- test is completed
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Reflects the operational state of an traceRouteCtlEntry:
+
+ enabled(1) - Test is active.
+ disabled(2) - Test has stopped.
+ completed(3) - Test is completed."
+ ::= { traceRouteResultsEntry 1 }
+
+ traceRouteResultsCurHopCount OBJECT-TYPE
+ SYNTAX Gauge32
+ UNITS "hops"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Reflects the current TTL value (from 1 to
+ 255) for a remote traceroute operation.
+ Maximum TTL value is determined by
+ traceRouteCtlMaxTtl."
+ ::= { traceRouteResultsEntry 2 }
+
+ traceRouteResultsCurProbeCount OBJECT-TYPE
+ SYNTAX Gauge32
+ UNITS "probes"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Reflects the current probe count (1..10) for
+ a remote traceroute operation. The maximum
+ probe count is determined by
+ traceRouteCtlProbesPerHop."
+ ::= { traceRouteResultsEntry 3 }
+
+ traceRouteResultsIpTgtAddrType OBJECT-TYPE
+ SYNTAX InetAddressType
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "This object indicates the type of address stored
+ in the corresponding traceRouteResultsIpTgtAddr
+ object."
+ ::= { traceRouteResultsEntry 4 }
+
+ traceRouteResultsIpTgtAddr OBJECT-TYPE
+ SYNTAX InetAddress
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "This object reports the IP address associated
+ with a traceRouteCtlTargetAddress value when the
+ destination address is specified as a DNS name.
+ The value of this object should be a zero-length
+ octet string when a DNS name is not specified or
+ when a specified DNS name fails to resolve."
+ ::= { traceRouteResultsEntry 5 }
+
+ traceRouteResultsTestAttempts OBJECT-TYPE
+ SYNTAX Gauge32
+ UNITS "tests"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The current number of attempts to determine a path
+ to a target. The value of this object MUST be started
+ at 0."
+ ::= { traceRouteResultsEntry 6 }
+
+ traceRouteResultsTestSuccesses OBJECT-TYPE
+ SYNTAX Gauge32
+ UNITS "tests"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The current number of attempts to determine a path
+ to a target that have succeeded. The value of this
+ object MUST be reported as 0 when no attempts have
+ succeeded."
+ ::= { traceRouteResultsEntry 7 }
+
+ traceRouteResultsLastGoodPath OBJECT-TYPE
+ SYNTAX DateAndTime
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The date and time when the last complete path
+ was determined. A path is complete if responses
+ were received or timeout occurred for each hop on
+ the path; i.e., for each TTL value from the value
+ of the corresponding traceRouteCtlInitialTtl object
+ up to the end of the path or (if no reply from the
+ target IP address was received) up to the value of
+ the corresponding traceRouteCtlMaxTtl object."
+ ::= { traceRouteResultsEntry 8 }
+
+ -- Trace Route Probe History Table
+
+ traceRouteProbeHistoryTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF TraceRouteProbeHistoryEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Defines the Remote Operations Traceroute Results Table
+ for storing the results of a traceroute operation.
+
+ An implementation of this MIB will remove the oldest
+
+ entry in the traceRouteProbeHistoryTable of the
+ corresponding entry in the traceRouteCtlTable to allow
+ the addition of a new entry once the number of rows in
+ the traceRouteProbeHistoryTable reaches the value specified
+ by traceRouteCtlMaxRows for the corresponding entry in the
+ traceRouteCtlTable."
+ ::= { traceRouteObjects 4 }
+
+ traceRouteProbeHistoryEntry OBJECT-TYPE
+ SYNTAX TraceRouteProbeHistoryEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Defines a table for storing the results of a traceroute
+ operation. Entries in this table are limited by
+ the value of the corresponding traceRouteCtlMaxRows
+ object.
+
+ The first two index elements identify the
+ traceRouteCtlEntry that a traceRouteProbeHistoryEntry
+ belongs to. The third index element selects a single
+ traceroute operation result. The fourth and fifth indexes
+ select the hop and the probe for a particular
+ traceroute operation."
+ INDEX {
+ traceRouteCtlOwnerIndex,
+ traceRouteCtlTestName,
+ traceRouteProbeHistoryIndex,
+ traceRouteProbeHistoryHopIndex,
+ traceRouteProbeHistoryProbeIndex
+
+ }
+ ::= { traceRouteProbeHistoryTable 1 }
+
+ TraceRouteProbeHistoryEntry ::=
+ SEQUENCE {
+ traceRouteProbeHistoryIndex Unsigned32,
+ traceRouteProbeHistoryHopIndex Unsigned32,
+ traceRouteProbeHistoryProbeIndex Unsigned32,
+ traceRouteProbeHistoryHAddrType InetAddressType,
+ traceRouteProbeHistoryHAddr InetAddress,
+ traceRouteProbeHistoryResponse Unsigned32,
+ traceRouteProbeHistoryStatus OperationResponseStatus,
+ traceRouteProbeHistoryLastRC Integer32,
+ traceRouteProbeHistoryTime DateAndTime
+ }
+
+ traceRouteProbeHistoryIndex OBJECT-TYPE
+ SYNTAX Unsigned32 (1..'ffffffff'h)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry in this table is created when the result of
+ a traceroute probe is determined. The initial 2 instance
+ identifier index values identify the traceRouteCtlEntry
+ that a probe result (traceRouteProbeHistoryEntry) belongs
+ to. An entry is removed from this table when
+ its corresponding traceRouteCtlEntry is deleted.
+
+ An implementation MUST start assigning
+ traceRouteProbeHistoryIndex values at 1 and wrap after
+ exceeding the maximum possible value, as defined by the
+ limit of this object ('ffffffff'h)."
+ ::= { traceRouteProbeHistoryEntry 1 }
+
+ traceRouteProbeHistoryHopIndex OBJECT-TYPE
+ SYNTAX Unsigned32 (1..255)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Indicates which hop in a traceroute path the probe's
+ results are for. The value of this object is initially
+ determined by the value of traceRouteCtlInitialTtl."
+ ::= { traceRouteProbeHistoryEntry 2 }
+
+ traceRouteProbeHistoryProbeIndex OBJECT-TYPE
+ SYNTAX Unsigned32 (1..10)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Indicates the index of a probe for a particular
+ hop in a traceroute path. The number of probes per
+ hop is determined by the value of the corresponding
+ traceRouteCtlProbesPerHop object."
+ ::= { traceRouteProbeHistoryEntry 3 }
+
+ traceRouteProbeHistoryHAddrType OBJECT-TYPE
+ SYNTAX InetAddressType
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "This objects indicates the type of address stored
+ in the corresponding traceRouteProbeHistoryHAddr
+ object."
+ ::= { traceRouteProbeHistoryEntry 4 }
+
+ traceRouteProbeHistoryHAddr OBJECT-TYPE
+ SYNTAX InetAddress
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The address of a hop in a traceroute path. This object
+ is not allowed to be a DNS name. The value of the
+ corresponding object, traceRouteProbeHistoryHAddrType,
+ indicates this object's IP address type."
+ ::= { traceRouteProbeHistoryEntry 5 }
+
+ traceRouteProbeHistoryResponse OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "milliseconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The amount of time measured in milliseconds from when
+ a probe was sent to when its response was received or
+ when it timed out. The value of this object is reported
+ as 0 when it is not possible to transmit a probe."
+ ::= { traceRouteProbeHistoryEntry 6 }
+
+ traceRouteProbeHistoryStatus OBJECT-TYPE
+ SYNTAX OperationResponseStatus
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The result of a traceroute operation made by a remote
+ host for a particular probe."
+ ::= { traceRouteProbeHistoryEntry 7 }
+
+ traceRouteProbeHistoryLastRC OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The last implementation-method-specific reply code received.
+
+ Traceroute is usually implemented by transmitting a series of
+ probe packets with increasing time-to-live values. A probe
+ packet is a UDP datagram encapsulated into an IP packet.
+ Each hop in a path to the target (destination) host rejects
+ the probe packets (probe's TTL too small, ICMP reply) until
+ either the maximum TTL is exceeded or the target host is
+ received."
+ ::= { traceRouteProbeHistoryEntry 8 }
+
+ traceRouteProbeHistoryTime OBJECT-TYPE
+ SYNTAX DateAndTime
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Timestamp for when this probe's results were determined."
+ ::= { traceRouteProbeHistoryEntry 9 }
+
+ -- Traceroute Hop Results Table
+
+ traceRouteHopsTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF TraceRouteHopsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Defines the Remote Operations Traceroute Hop Table for
+ keeping track of the results of traceroute tests on a
+ per-hop basis."
+ ::= { traceRouteObjects 5 }
+
+ traceRouteHopsEntry OBJECT-TYPE
+ SYNTAX TraceRouteHopsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Defines an entry in the traceRouteHopsTable.
+ The first two index elements identify the
+ traceRouteCtlEntry that a traceRouteHopsEntry
+ belongs to. The third index element,
+ traceRouteHopsHopIndex, selects a
+ hop in a traceroute path."
+ INDEX {
+ traceRouteCtlOwnerIndex,
+ traceRouteCtlTestName,
+ traceRouteHopsHopIndex
+ }
+ ::= { traceRouteHopsTable 1 }
+
+ TraceRouteHopsEntry ::=
+ SEQUENCE {
+ traceRouteHopsHopIndex Unsigned32,
+ traceRouteHopsIpTgtAddressType InetAddressType,
+ traceRouteHopsIpTgtAddress InetAddress,
+ traceRouteHopsMinRtt Unsigned32,
+ traceRouteHopsMaxRtt Unsigned32,
+ traceRouteHopsAverageRtt Unsigned32,
+ traceRouteHopsRttSumOfSquares Unsigned32,
+ traceRouteHopsSentProbes Unsigned32,
+ traceRouteHopsProbeResponses Unsigned32,
+ traceRouteHopsLastGoodProbe DateAndTime
+ }
+
+ traceRouteHopsHopIndex OBJECT-TYPE
+ SYNTAX Unsigned32 (1..'ffffffff'h)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Specifies the hop index for a traceroute hop. Values
+ for this object with respect to the same
+ traceRouteCtlOwnerIndex and traceRouteCtlTestName
+ MUST start at 1 and be given increasing values for
+ subsequent hops. The value of traceRouteHopsHopIndex is not
+ necessarily the number of the hop on the traced path.
+
+ The traceRouteHopsTable keeps the current traceroute
+ path per traceRouteCtlEntry if enabled by
+ setting the corresponding traceRouteCtlCreateHopsEntries
+ to true(1).
+
+ All hops (traceRouteHopsTable entries) in a traceroute
+ path MUST be updated at the same time when a traceroute
+ operation is completed. Care needs to be applied when a path
+ either changes or can't be determined. The initial portion
+ of the path, up to the first hop change, MUST retain the
+ same traceRouteHopsHopIndex values. The remaining portion
+ of the path SHOULD be assigned new traceRouteHopsHopIndex
+ values."
+ ::= { traceRouteHopsEntry 1 }
+
+ traceRouteHopsIpTgtAddressType OBJECT-TYPE
+ SYNTAX InetAddressType
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "This object indicates the type of address stored
+ in the corresponding traceRouteHopsIpTgtAddress
+ object."
+ ::= { traceRouteHopsEntry 2 }
+
+ traceRouteHopsIpTgtAddress OBJECT-TYPE
+ SYNTAX InetAddress
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "This object reports the IP address associated with
+
+ the hop. A value for this object should be reported
+ as a numeric IP address, not as a DNS name.
+
+ The address type (InetAddressType) that relates to
+ this object is specified by the corresponding value
+ of pingCtlSourceAddressType."
+ ::= { traceRouteHopsEntry 3 }
+
+ traceRouteHopsMinRtt OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The minimum traceroute round-trip-time (RTT) received for
+ this hop. A value of 0 for this object implies that no
+ RTT has been received."
+ ::= { traceRouteHopsEntry 4 }
+
+ traceRouteHopsMaxRtt OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The maximum traceroute round-trip-time (RTT) received for
+ this hop. A value of 0 for this object implies that no
+ RTT has been received."
+ ::= { traceRouteHopsEntry 5 }
+
+ traceRouteHopsAverageRtt OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The current average traceroute round-trip-time (RTT) for
+ this hop."
+ ::= { traceRouteHopsEntry 6 }
+
+ traceRouteHopsRttSumOfSquares OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "This object contains the sum of the squares of all
+ round-trip-times received for this hop. Its purpose is
+ to enable standard deviation calculation."
+ ::= { traceRouteHopsEntry 7 }
+
+ traceRouteHopsSentProbes OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of this object reflects the number of probes sent
+ for this hop during this traceroute test. The value of this
+ object should start at 0."
+ ::= { traceRouteHopsEntry 8 }
+
+ traceRouteHopsProbeResponses OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Number of responses received for this hop during this
+ traceroute test. This value of this object should start
+ at 0."
+ ::= { traceRouteHopsEntry 9 }
+
+ traceRouteHopsLastGoodProbe OBJECT-TYPE
+ SYNTAX DateAndTime
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Date and time at which the last response was received for a
+ probe for this hop during this traceroute test."
+ ::= { traceRouteHopsEntry 10 }
+
+ -- Notification Definition section
+
+ traceRoutePathChange NOTIFICATION-TYPE
+ OBJECTS {
+ traceRouteCtlTargetAddressType,
+ traceRouteCtlTargetAddress,
+ traceRouteResultsIpTgtAddrType,
+ traceRouteResultsIpTgtAddr
+ }
+ STATUS current
+ DESCRIPTION
+ "The path to a target has changed."
+ ::= { traceRouteNotifications 1 }
+
+ traceRouteTestFailed NOTIFICATION-TYPE
+ OBJECTS {
+ traceRouteCtlTargetAddressType,
+ traceRouteCtlTargetAddress,
+ traceRouteResultsIpTgtAddrType,
+ traceRouteResultsIpTgtAddr
+
+ }
+ STATUS current
+ DESCRIPTION
+ "Could not determine the path to a target."
+ ::= { traceRouteNotifications 2 }
+
+ traceRouteTestCompleted NOTIFICATION-TYPE
+ OBJECTS {
+ traceRouteCtlTargetAddressType,
+ traceRouteCtlTargetAddress,
+ traceRouteResultsIpTgtAddrType,
+ traceRouteResultsIpTgtAddr
+ }
+ STATUS current
+ DESCRIPTION
+ "The path to a target has just been determined."
+ ::= { traceRouteNotifications 3 }
+
+ -- Conformance information
+ -- Compliance statements
+
+ traceRouteCompliances OBJECT IDENTIFIER
+ ::= { traceRouteConformance 1 }
+ traceRouteGroups OBJECT IDENTIFIER
+ ::= { traceRouteConformance 2 }
+
+ -- Compliance statements
+
+ traceRouteFullCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for SNMP entities that
+ fully implement the DISMAN-TRACEROUTE-MIB."
+ MODULE -- this module
+ MANDATORY-GROUPS {
+ traceRouteMinimumGroup,
+ traceRouteCtlRowStatusGroup,
+ traceRouteHistoryGroup
+ }
+
+ GROUP traceRouteHopsTableGroup
+ DESCRIPTION
+ "This group lists the objects that make up a
+ traceRouteHopsEntry. Support of the traceRouteHopsTable
+ is optional."
+
+ GROUP traceRouteNotificationsGroup
+ DESCRIPTION
+ "This group defines a collection of optional
+ notifications."
+
+ OBJECT traceRouteMaxConcurrentRequests
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "The agent is not required to support SET
+ operations to this object."
+
+ OBJECT traceRouteCtlByPassRouteTable
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access to this object is not required by
+ implementations that are not capable of its
+ implementation. The function represented by this
+ object is implementable if the setsockopt
+ SOL_SOCKET SO_DONTROUTE option is supported."
+
+ OBJECT traceRouteCtlDSField
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required. If write access is
+ not supported, return a 0 as the value of this object.
+ A value of 0 implies that the function represented by
+ this option is not supported."
+
+ OBJECT traceRouteCtlSourceAddressType
+ SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2) }
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access to this object is not required by
+ implementations that are not capable of binding the
+ send socket with a source address. An implementation
+ is only required to support IPv4 and IPv6 addresses."
+
+ OBJECT traceRouteCtlSourceAddress
+ SYNTAX InetAddress (SIZE(0|4|16))
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access to this object is not required by
+ implementations that are not capable of binding the
+ send socket with a source address. An implementation
+ is only required to support IPv4 and IPv6 addresses."
+
+ OBJECT traceRouteCtlIfIndex
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required. If write access is
+
+ not supported, return a 0 as the value of this object.
+ A value of 0 implies that the function represented by
+ this option is not supported."
+
+ OBJECT traceRouteCtlMiscOptions
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Support of this object is optional. If not
+ supporting, do not allow write access and return a
+ zero-length octet string as the value of the object."
+
+ OBJECT traceRouteCtlStorageType
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required. It is also allowed
+ that implementations support only the volatile(2)
+ StorageType enumeration."
+
+ OBJECT traceRouteCtlType
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required. In addition, the only
+ value that is RECOMMENDED to be supported by an
+ implementation is traceRouteUsingUdpProbes."
+
+ OBJECT traceRouteResultsIpTgtAddrType
+ SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2) }
+ DESCRIPTION
+ "An implementation should only support IPv4 and
+ globally unique IPv6 address values for this object."
+
+ OBJECT traceRouteResultsIpTgtAddr
+ SYNTAX InetAddress (SIZE(0|4|16))
+ DESCRIPTION
+ "An implementation should only support IPv4 and
+ globally unique IPv6 address values for this object."
+
+ OBJECT traceRouteResultsLastGoodPath
+ DESCRIPTION
+ "If the traceRouteHopsTableGroup is implemented, then
+ this object is mandatory for implementations that have
+ access to a system clock and that are capable of setting
+ the values for DateAndTime objects. It is RECOMMENDED
+ that when this object is not supported its values
+ be reported as '0000000000000000'H."
+
+ OBJECT traceRouteProbeHistoryHAddrType
+ SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2) }
+ DESCRIPTION
+ "An implementation should only support IPv4 and
+ globally unique IPv6 address values for this object."
+
+ OBJECT traceRouteProbeHistoryHAddr
+ SYNTAX InetAddress (SIZE(0|4|16))
+ DESCRIPTION
+ "An implementation should only support IPv4 and
+ globally unique IPv6 address values for this object."
+
+ OBJECT traceRouteProbeHistoryTime
+ DESCRIPTION
+ "This object is mandatory for implementations that have
+ access to a system clock and that are capable of setting
+ the values for DateAndTime objects. It is RECOMMENDED
+ that when this object is not supported its values
+ be reported as '0000000000000000'H."
+
+ OBJECT traceRouteHopsIpTgtAddressType
+ SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2) }
+ DESCRIPTION
+ "An implementation should only support IPv4 and
+ globally unique IPv6 address values for this object."
+
+ OBJECT traceRouteHopsIpTgtAddress
+ SYNTAX InetAddress (SIZE(0|4|16))
+ DESCRIPTION
+ "An implementation should only support IPv4 and
+ globally unique IPv6 address values for this object."
+
+ OBJECT traceRouteHopsLastGoodProbe
+ DESCRIPTION
+ "This object is mandatory for implementations that have
+ access to a system clock and that are capable of setting
+ the values for DateAndTime objects. It is RECOMMENDED
+ that when this object is not supported its values
+ be reported as '0000000000000000'H."
+ ::= { traceRouteCompliances 2 }
+
+ traceRouteMinimumCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The minimum compliance statement for SNMP entities
+ which implement the minimal subset of the
+ DISMAN-TRACEROUTE-MIB. Implementors might choose this
+ subset for small devices with limited resources."
+ MODULE -- this module
+
+ MANDATORY-GROUPS { traceRouteMinimumGroup }
+
+ GROUP traceRouteCtlRowStatusGroup
+ DESCRIPTION
+ "A compliant implementation does not have to implement
+ the traceRouteCtlRowStatusGroup."
+
+ GROUP traceRouteHistoryGroup
+ DESCRIPTION
+ "A compliant implementation does not have to implement
+ the traceRouteHistoryGroup."
+
+ GROUP traceRouteHopsTableGroup
+ DESCRIPTION
+ "This group lists the objects that make up a
+ traceRouteHopsEntry. Support of the traceRouteHopsTable
+ is optional."
+
+ GROUP traceRouteNotificationsGroup
+ DESCRIPTION
+ "This group defines a collection of optional
+ notifications."
+
+ OBJECT traceRouteMaxConcurrentRequests
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "The agent is not required to support SET
+ operations to this object."
+
+ OBJECT traceRouteCtlByPassRouteTable
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required. If write access is
+ not supported, return a false(2) as the value of this
+ object. A value of false(2) means that the function
+ represented by this option is not supported."
+
+ OBJECT traceRouteCtlDSField
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required. If write access is
+ not supported, return a 0 as the value of this object.
+ A value of 0 implies that the function represented by
+ this option is not supported."
+
+ OBJECT traceRouteCtlSourceAddressType
+ SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2) }
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access to this object is not required by
+ implementations that are not capable of binding the
+ send socket with a source address. An implementation
+ is only required to support IPv4 and IPv6 addresses."
+
+ OBJECT traceRouteCtlSourceAddress
+ SYNTAX InetAddress (SIZE(0|4|16))
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access to this object is not required by
+ implementations that are not capable of binding the
+ send socket with a source address. An implementation
+ is only required to support IPv4 and IPv6 addresses."
+
+ OBJECT traceRouteCtlIfIndex
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required. If write access is
+ not supported, return a 0 as the value of this object.
+ A value of 0 implies that the function represented by
+ this option is not supported."
+
+ OBJECT traceRouteCtlMiscOptions
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Support of this object is optional. If not
+ supporting, do not allow write access, and return a
+ zero-length octet string as the value of the object."
+
+ OBJECT traceRouteCtlDontFragment
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required. If write access is
+ not supported, return a false(2) as the value of this
+ object. A value of false(2) means that the function
+ represented by this option is not supported."
+
+ OBJECT traceRouteCtlInitialTtl
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required. If write access is
+ not supported, return a 1 as the value of this object."
+
+ OBJECT traceRouteCtlFrequency
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required. If write access is
+ not supported, return a 0 as the value of this object.
+ A value of 0 implies that the function represented by
+ this option is not supported."
+
+ OBJECT traceRouteCtlStorageType
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required. It is also allowed
+ that implementations support only the volatile(2)
+ StorageType enumeration."
+
+ OBJECT traceRouteCtlDescr
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "The agent is not required to support set
+ operations to this object."
+
+ OBJECT traceRouteCtlMaxRows
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required. If the
+ traceRouteHistoryGroup is not implemented, then write
+ access to this object MUST be disabled, and the object
+ MUST return a value of 0 when retrieved."
+
+ OBJECT traceRouteCtlTrapGeneration
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required. If the
+ traceRouteNotificationsGroup is not implemented, then
+ write access to this object MUST be disabled, and the
+ object MUST return a value with no bit set when
+ retrieved. No bit set indicates that no notification
+ is generated."
+
+ OBJECT traceRouteCtlCreateHopsEntries
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required. If the
+ traceRouteHopsTableGroup is not implemented, then
+ write access to this object MUST be disabled, and the
+ object MUST return a value of false(2) when retrieved."
+
+ OBJECT traceRouteCtlType
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required. In addition, the only
+
+ value that is RECOMMENDED to be supported by an
+ implementation is traceRouteUsingUdpProbes."
+
+ OBJECT traceRouteResultsIpTgtAddrType
+ SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2) }
+ DESCRIPTION
+ "An implementation should only support IPv4 and
+ globally unique IPv6 address values for this object."
+
+ OBJECT traceRouteResultsIpTgtAddr
+ SYNTAX InetAddress (SIZE(0|4|16))
+ DESCRIPTION
+ "An implementation should only support IPv4 and
+ globally unique IPv6 address values for this object."
+
+ OBJECT traceRouteResultsLastGoodPath
+ DESCRIPTION
+ "This object is mandatory for implementations that have
+ access to a system clock and that are capable of setting
+ the values for DateAndTime objects. It is RECOMMENDED
+ that when this object is not supported its values
+ be reported as '0000000000000000'H."
+
+ OBJECT traceRouteProbeHistoryHAddrType
+ SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2) }
+ DESCRIPTION
+ "An implementation should only support IPv4 and
+ globally unique IPv6 address values for this object."
+
+ OBJECT traceRouteProbeHistoryHAddr
+ SYNTAX InetAddress (SIZE(0|4|16))
+ DESCRIPTION
+ "An implementation should only support IPv4 and
+ globally unique IPv6 address values for this object."
+
+ OBJECT traceRouteProbeHistoryTime
+ DESCRIPTION
+ "If the traceRouteHistoryGroup is implemented, then
+ this object is mandatory for implementations that have
+ access to a system clock and that are capable of setting
+ the values for DateAndTime objects. It is RECOMMENDED
+ that when this object is not supported its values
+ be reported as '0000000000000000'H."
+
+ OBJECT traceRouteHopsIpTgtAddressType
+ SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2) }
+ DESCRIPTION
+ "An implementation should only support IPv4 and
+
+ globally unique IPv6 address values for this object."
+
+ OBJECT traceRouteHopsIpTgtAddress
+ SYNTAX InetAddress (SIZE(0|4|16))
+ DESCRIPTION
+ "An implementation should only support IPv4 and
+ globally unique IPv6 address values for this object."
+
+ OBJECT traceRouteHopsLastGoodProbe
+ DESCRIPTION
+ "If the traceRouteHopsTableGroup is implemented, then
+ this object is mandatory for implementations that have
+ access to a system clock and that are capable of setting
+ the values for DateAndTime objects. It is RECOMMENDED
+ that when this object is not supported its values
+ be reported as '0000000000000000'H."
+ ::= { traceRouteCompliances 3 }
+
+ traceRouteCompliance MODULE-COMPLIANCE
+ STATUS deprecated
+ DESCRIPTION
+ "The compliance statement for the DISMAN-TRACEROUTE-MIB.
+ This compliance statement has been deprecated because
+ the traceRouteGroup and the traceRouteTimeStampGroup
+ have been split and deprecated. The
+ traceRouteFullCompliance is semantically identical to the
+ deprecated traceRouteCompliance statement."
+ MODULE -- this module
+ MANDATORY-GROUPS {
+ traceRouteGroup
+ }
+ GROUP traceRouteTimeStampGroup
+ DESCRIPTION
+ "This group is mandatory for implementations that have
+ access to a system clock and that are capable of setting
+ the values for DateAndTime objects."
+
+ GROUP traceRouteNotificationsGroup
+ DESCRIPTION
+ "This group defines a collection of optional
+ notifications."
+
+ GROUP traceRouteHopsTableGroup
+ DESCRIPTION
+ "This group lists the objects that make up a
+ traceRouteHopsEntry. Support of the traceRouteHopsTable
+ is optional."
+
+ OBJECT traceRouteMaxConcurrentRequests
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "The agent is not required to support SET
+ operations to this object."
+
+ OBJECT traceRouteCtlByPassRouteTable
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "This object is not required by implementations that
+ are not capable of its implementation. The function
+ represented by this object is implementable if the
+ setsockopt SOL_SOCKET SO_DONTROUTE option is
+ supported."
+
+ OBJECT traceRouteCtlSourceAddressType
+ SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2) }
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "This object is not required by implementations that
+ are not capable of binding the send socket with a
+ source address. An implementation is only required to
+ support IPv4 and IPv6 addresses."
+
+ OBJECT traceRouteCtlSourceAddress
+ SYNTAX InetAddress (SIZE(0|4|16))
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "This object is not required by implementations that
+ are not capable of binding the send socket with a
+ source address. An implementation is only required to
+ support IPv4 and globally unique IPv6 addresses."
+
+ OBJECT traceRouteCtlIfIndex
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required. When write access is
+ not supported, return a 0 as the value of this object.
+ A value of 0 implies that the function represented by
+ this option is not supported."
+
+ OBJECT traceRouteCtlMiscOptions
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Support of this object is optional. When not
+ supporting, do not allow write access, and return a
+ zero-length octet string as the value of the object."
+
+ OBJECT traceRouteCtlStorageType
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required. It is also allowed
+ that implementations support only the volatile
+ StorageType enumeration."
+
+ OBJECT traceRouteCtlDSField
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required. When write access is
+ not supported, return a 0 as the value of this object.
+ A value of 0 implies that the function represented by
+ this option is not supported."
+
+ OBJECT traceRouteCtlType
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required. In addition, the only
+ value that is RECOMMENDED to be supported by an
+ implementation is traceRouteUsingUdpProbes."
+
+ OBJECT traceRouteResultsIpTgtAddrType
+ SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2) }
+ DESCRIPTION
+ "An implementation should only support IPv4 and
+ globally unique IPv6 address values for this object."
+
+ OBJECT traceRouteResultsIpTgtAddr
+ SYNTAX InetAddress (SIZE(0|4|16))
+ DESCRIPTION
+ "An implementation should only support IPv4 and
+ globally unique IPv6 address values for this object."
+
+ OBJECT traceRouteProbeHistoryHAddrType
+ SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2) }
+ DESCRIPTION
+ "An implementation should only support IPv4 and
+ globally unique IPv6 address values for this object."
+
+ OBJECT traceRouteProbeHistoryHAddr
+ SYNTAX InetAddress (SIZE(0|4|16))
+ DESCRIPTION
+ "An implementation should only support IPv4 and
+ globally unique IPv6 address values for this object."
+
+ OBJECT traceRouteHopsIpTgtAddressType
+ SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2) }
+ DESCRIPTION
+ "An implementation should only support IPv4 and
+ globally unique IPv6 address values for this object."
+
+ OBJECT traceRouteHopsIpTgtAddress
+ SYNTAX InetAddress (SIZE(0|4|16))
+ DESCRIPTION
+ "An implementation should only support IPv4 and
+ globally unique IPv6 address values for this object."
+ ::= { traceRouteCompliances 1 }
+
+ -- MIB groupings
+
+ traceRouteMinimumGroup OBJECT-GROUP
+ OBJECTS {
+ traceRouteMaxConcurrentRequests,
+ traceRouteCtlTargetAddressType,
+ traceRouteCtlTargetAddress,
+ traceRouteCtlByPassRouteTable,
+ traceRouteCtlDataSize,
+ traceRouteCtlTimeOut,
+ traceRouteCtlProbesPerHop,
+ traceRouteCtlPort,
+ traceRouteCtlMaxTtl,
+ traceRouteCtlDSField,
+ traceRouteCtlSourceAddressType,
+ traceRouteCtlSourceAddress,
+ traceRouteCtlIfIndex,
+ traceRouteCtlMiscOptions,
+ traceRouteCtlMaxFailures,
+ traceRouteCtlDontFragment,
+ traceRouteCtlInitialTtl,
+ traceRouteCtlFrequency,
+ traceRouteCtlStorageType,
+ traceRouteCtlAdminStatus,
+ traceRouteCtlMaxRows,
+ traceRouteCtlTrapGeneration,
+ traceRouteCtlDescr,
+ traceRouteCtlCreateHopsEntries,
+ traceRouteCtlType,
+ traceRouteResultsOperStatus,
+ traceRouteResultsCurHopCount,
+ traceRouteResultsCurProbeCount,
+ traceRouteResultsIpTgtAddrType,
+ traceRouteResultsIpTgtAddr,
+ traceRouteResultsTestAttempts,
+ traceRouteResultsTestSuccesses,
+ traceRouteResultsLastGoodPath
+
+ }
+ STATUS current
+ DESCRIPTION
+ "The group of objects that constitute the remote traceroute
+ operation."
+ ::= { traceRouteGroups 5 }
+
+ traceRouteCtlRowStatusGroup OBJECT-GROUP
+ OBJECTS {
+ traceRouteCtlRowStatus
+ }
+ STATUS current
+ DESCRIPTION
+ "The RowStatus object of the traceRouteCtlTable."
+ ::= { traceRouteGroups 6 }
+
+ traceRouteHistoryGroup OBJECT-GROUP
+ OBJECTS {
+ traceRouteProbeHistoryHAddrType,
+ traceRouteProbeHistoryHAddr,
+ traceRouteProbeHistoryResponse,
+ traceRouteProbeHistoryStatus,
+ traceRouteProbeHistoryLastRC,
+ traceRouteProbeHistoryTime
+ }
+ STATUS current
+ DESCRIPTION
+ "The group of objects that constitute the history
+ capability."
+ ::= { traceRouteGroups 7 }
+
+ traceRouteNotificationsGroup NOTIFICATION-GROUP
+ NOTIFICATIONS {
+ traceRoutePathChange,
+ traceRouteTestFailed,
+ traceRouteTestCompleted
+ }
+ STATUS current
+ DESCRIPTION
+ "The notifications that are required to be supported by
+ implementations of this MIB."
+ ::= { traceRouteGroups 3 }
+
+ traceRouteHopsTableGroup OBJECT-GROUP
+ OBJECTS {
+ traceRouteHopsIpTgtAddressType,
+ traceRouteHopsIpTgtAddress,
+ traceRouteHopsMinRtt,
+ traceRouteHopsMaxRtt,
+ traceRouteHopsAverageRtt,
+ traceRouteHopsRttSumOfSquares,
+ traceRouteHopsSentProbes,
+ traceRouteHopsProbeResponses,
+ traceRouteHopsLastGoodProbe
+ }
+ STATUS current
+ DESCRIPTION
+ "The group of objects that constitute the
+ traceRouteHopsTable."
+ ::= { traceRouteGroups 4 }
+
+ traceRouteGroup OBJECT-GROUP
+ OBJECTS {
+ traceRouteMaxConcurrentRequests,
+ traceRouteCtlTargetAddressType,
+ traceRouteCtlTargetAddress,
+ traceRouteCtlByPassRouteTable,
+ traceRouteCtlDataSize,
+ traceRouteCtlTimeOut,
+ traceRouteCtlProbesPerHop,
+ traceRouteCtlPort,
+ traceRouteCtlMaxTtl,
+ traceRouteCtlDSField,
+ traceRouteCtlSourceAddressType,
+ traceRouteCtlSourceAddress,
+ traceRouteCtlIfIndex,
+ traceRouteCtlMiscOptions,
+ traceRouteCtlMaxFailures,
+ traceRouteCtlDontFragment,
+ traceRouteCtlInitialTtl,
+ traceRouteCtlFrequency,
+ traceRouteCtlStorageType,
+ traceRouteCtlAdminStatus,
+ traceRouteCtlMaxRows,
+ traceRouteCtlTrapGeneration,
+ traceRouteCtlDescr,
+ traceRouteCtlCreateHopsEntries,
+ traceRouteCtlType,
+ traceRouteCtlRowStatus,
+ traceRouteResultsOperStatus,
+ traceRouteResultsCurHopCount,
+ traceRouteResultsCurProbeCount,
+ traceRouteResultsIpTgtAddrType,
+ traceRouteResultsIpTgtAddr,
+ traceRouteResultsTestAttempts,
+ traceRouteResultsTestSuccesses,
+ traceRouteProbeHistoryHAddrType,
+ traceRouteProbeHistoryHAddr,
+ traceRouteProbeHistoryResponse,
+ traceRouteProbeHistoryStatus,
+ traceRouteProbeHistoryLastRC
+ }
+ STATUS deprecated
+ DESCRIPTION
+ "The group of objects that constitute the remote traceroute
+ operation."
+ ::= { traceRouteGroups 1 }
+
+ traceRouteTimeStampGroup OBJECT-GROUP
+ OBJECTS {
+ traceRouteResultsLastGoodPath,
+ traceRouteProbeHistoryTime
+ }
+ STATUS deprecated
+ DESCRIPTION
+ "The group of DateAndTime objects."
+ ::= { traceRouteGroups 2 }
+
+END
diff --git a/php/extras/mibs/EtherLike-MIB.txt b/php/extras/mibs/EtherLike-MIB.txt
new file mode 100644
index 000000000..dcec7cee4
--- /dev/null
+++ b/php/extras/mibs/EtherLike-MIB.txt
@@ -0,0 +1,1862 @@
+EtherLike-MIB DEFINITIONS ::= BEGIN
+
+ IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE, OBJECT-IDENTITY,
+ Integer32, Counter32, Counter64, mib-2, transmission
+ FROM SNMPv2-SMI
+ MODULE-COMPLIANCE, OBJECT-GROUP
+ FROM SNMPv2-CONF
+ TruthValue
+ FROM SNMPv2-TC
+ ifIndex, InterfaceIndex
+ FROM IF-MIB;
+
+ etherMIB MODULE-IDENTITY
+ LAST-UPDATED "200309190000Z" -- September 19, 2003
+ ORGANIZATION "IETF Ethernet Interfaces and Hub MIB
+ Working Group"
+ CONTACT-INFO
+ "WG E-mail: hubmib@ietf.org
+ To subscribe: hubmib-request@ietf.org
+
+ Chair: Dan Romascanu
+ Postal: Avaya Inc.
+ Atidum Technology Park, Bldg. 3
+ Tel Aviv 61131
+ Israel
+ Tel: +972 3 645 8414
+ E-mail: dromasca@avaya.com
+
+ Editor: John Flick
+ Postal: Hewlett-Packard Company
+ 8000 Foothills Blvd. M/S 5557
+ Roseville, CA 95747-5557
+ USA
+ Tel: +1 916 785 4018
+ Fax: +1 916 785 1199
+ E-mail: johnf@rose.hp.com"
+ DESCRIPTION "The MIB module to describe generic objects for
+ ethernet-like network interfaces.
+
+ The following reference is used throughout this
+ MIB module:
+
+ [IEEE 802.3 Std] refers to:
+ IEEE Std 802.3, 2002 Edition: 'IEEE Standard
+
+ for Information technology -
+ Telecommunications and information exchange
+ between systems - Local and metropolitan
+ area networks - Specific requirements -
+ Part 3: Carrier sense multiple access with
+ collision detection (CSMA/CD) access method
+ and physical layer specifications', as
+ amended by IEEE Std 802.3ae-2002:
+ 'Amendment: Media Access Control (MAC)
+ Parameters, Physical Layer, and Management
+ Parameters for 10 Gb/s Operation', August,
+ 2002.
+
+ Of particular interest is Clause 30, '10 Mb/s,
+ 100 Mb/s, 1000 Mb/s, and 10 Gb/s Management'.
+
+ Copyright (C) The Internet Society (2003). This
+ version of this MIB module is part of RFC 3635;
+ see the RFC itself for full legal notices."
+
+ REVISION "200309190000Z" -- September 19, 2003
+ DESCRIPTION "Updated to include support for 10 Gb/sec
+ interfaces. This resulted in the following
+ revisions:
+
+ - Updated dot3StatsAlignmentErrors and
+ dot3StatsSymbolErrors DESCRIPTIONs to
+ reflect behaviour at 10 Gb/s
+ - Added dot3StatsRateControlAbility and
+ dot3RateControlStatus for management
+ of the Rate Control function in 10 Gb/s
+ WAN applications
+ - Added 64-bit versions of all counters
+ that are used on high-speed ethernet
+ interfaces
+ - Added object groups to contain the new
+ objects
+ - Deprecated etherStatsBaseGroup and
+ split into etherStatsBaseGroup2 and
+ etherStatsHalfDuplexGroup, so that
+ interfaces which can only operate at
+ full-duplex do not need to implement
+ half-duplex-only statistics
+ - Deprecated dot3Compliance and replaced
+ it with dot3Compliance2, which includes
+ the compliance information for the new
+ object groups
+
+ In addition, the dot3Tests and dot3Errors
+ object identities have been deprecated,
+ since there is no longer a standard method
+ for using them.
+
+ This version published as RFC 3635."
+
+ REVISION "199908240400Z" -- August 24, 1999
+ DESCRIPTION "Updated to include support for 1000 Mb/sec
+ interfaces and full-duplex interfaces.
+ This version published as RFC 2665."
+
+ REVISION "199806032150Z" -- June 3, 1998
+ DESCRIPTION "Updated to include support for 100 Mb/sec
+ interfaces.
+ This version published as RFC 2358."
+
+ REVISION "199402030400Z" -- February 3, 1994
+ DESCRIPTION "Initial version, published as RFC 1650."
+ ::= { mib-2 35 }
+
+ etherMIBObjects OBJECT IDENTIFIER ::= { etherMIB 1 }
+
+ dot3 OBJECT IDENTIFIER ::= { transmission 7 }
+
+ -- the Ethernet-like Statistics group
+
+ dot3StatsTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF Dot3StatsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "Statistics for a collection of ethernet-like
+ interfaces attached to a particular system.
+ There will be one row in this table for each
+ ethernet-like interface in the system."
+ ::= { dot3 2 }
+
+ dot3StatsEntry OBJECT-TYPE
+ SYNTAX Dot3StatsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "Statistics for a particular interface to an
+ ethernet-like medium."
+ INDEX { dot3StatsIndex }
+ ::= { dot3StatsTable 1 }
+
+ Dot3StatsEntry ::=
+ SEQUENCE {
+
+ dot3StatsIndex InterfaceIndex,
+ dot3StatsAlignmentErrors Counter32,
+ dot3StatsFCSErrors Counter32,
+ dot3StatsSingleCollisionFrames Counter32,
+ dot3StatsMultipleCollisionFrames Counter32,
+ dot3StatsSQETestErrors Counter32,
+ dot3StatsDeferredTransmissions Counter32,
+ dot3StatsLateCollisions Counter32,
+ dot3StatsExcessiveCollisions Counter32,
+ dot3StatsInternalMacTransmitErrors Counter32,
+ dot3StatsCarrierSenseErrors Counter32,
+ dot3StatsFrameTooLongs Counter32,
+ dot3StatsInternalMacReceiveErrors Counter32,
+ dot3StatsEtherChipSet OBJECT IDENTIFIER,
+ dot3StatsSymbolErrors Counter32,
+ dot3StatsDuplexStatus INTEGER,
+ dot3StatsRateControlAbility TruthValue,
+ dot3StatsRateControlStatus INTEGER
+ }
+
+ dot3StatsIndex OBJECT-TYPE
+ SYNTAX InterfaceIndex
+ MAX-ACCESS read-only -- read-only since originally an
+ -- SMIv1 index
+ STATUS current
+ DESCRIPTION "An index value that uniquely identifies an
+ interface to an ethernet-like medium. The
+ interface identified by a particular value of
+ this index is the same interface as identified
+ by the same value of ifIndex."
+ REFERENCE "RFC 2863, ifIndex"
+ ::= { dot3StatsEntry 1 }
+
+ dot3StatsAlignmentErrors OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "A count of frames received on a particular
+ interface that are not an integral number of
+ octets in length and do not pass the FCS check.
+
+ The count represented by an instance of this
+ object is incremented when the alignmentError
+ status is returned by the MAC service to the
+ LLC (or other MAC user). Received frames for
+ which multiple error conditions pertain are,
+ according to the conventions of IEEE 802.3
+ Layer Management, counted exclusively according
+
+ to the error status presented to the LLC.
+
+ This counter does not increment for group
+ encoding schemes greater than 4 bits per group.
+
+ For interfaces operating at 10 Gb/s, this
+ counter can roll over in less than 5 minutes if
+ it is incrementing at its maximum rate. Since
+ that amount of time could be less than a
+ management station's poll cycle time, in order
+ to avoid a loss of information, a management
+ station is advised to poll the
+ dot3HCStatsAlignmentErrors object for 10 Gb/s
+ or faster interfaces.
+
+ Discontinuities in the value of this counter can
+ occur at re-initialization of the management
+ system, and at other times as indicated by the
+ value of ifCounterDiscontinuityTime."
+ REFERENCE "[IEEE 802.3 Std.], 30.3.1.1.7,
+ aAlignmentErrors"
+ ::= { dot3StatsEntry 2 }
+
+ dot3StatsFCSErrors OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "A count of frames received on a particular
+ interface that are an integral number of octets
+ in length but do not pass the FCS check. This
+ count does not include frames received with
+ frame-too-long or frame-too-short error.
+
+ The count represented by an instance of this
+ object is incremented when the frameCheckError
+ status is returned by the MAC service to the
+ LLC (or other MAC user). Received frames for
+ which multiple error conditions pertain are,
+ according to the conventions of IEEE 802.3
+ Layer Management, counted exclusively according
+ to the error status presented to the LLC.
+
+ Note: Coding errors detected by the physical
+ layer for speeds above 10 Mb/s will cause the
+ frame to fail the FCS check.
+
+ For interfaces operating at 10 Gb/s, this
+ counter can roll over in less than 5 minutes if
+
+ it is incrementing at its maximum rate. Since
+ that amount of time could be less than a
+ management station's poll cycle time, in order
+ to avoid a loss of information, a management
+ station is advised to poll the
+ dot3HCStatsFCSErrors object for 10 Gb/s or
+ faster interfaces.
+
+ Discontinuities in the value of this counter can
+ occur at re-initialization of the management
+ system, and at other times as indicated by the
+ value of ifCounterDiscontinuityTime."
+ REFERENCE "[IEEE 802.3 Std.], 30.3.1.1.6,
+ aFrameCheckSequenceErrors."
+ ::= { dot3StatsEntry 3 }
+
+ dot3StatsSingleCollisionFrames OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "A count of frames that are involved in a single
+ collision, and are subsequently transmitted
+ successfully.
+
+ A frame that is counted by an instance of this
+ object is also counted by the corresponding
+ instance of either the ifOutUcastPkts,
+ ifOutMulticastPkts, or ifOutBroadcastPkts,
+ and is not counted by the corresponding
+ instance of the dot3StatsMultipleCollisionFrames
+ object.
+
+ This counter does not increment when the
+ interface is operating in full-duplex mode.
+
+ Discontinuities in the value of this counter can
+ occur at re-initialization of the management
+ system, and at other times as indicated by the
+ value of ifCounterDiscontinuityTime."
+ REFERENCE "[IEEE 802.3 Std.], 30.3.1.1.3,
+ aSingleCollisionFrames."
+ ::= { dot3StatsEntry 4 }
+
+ dot3StatsMultipleCollisionFrames OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "A count of frames that are involved in more
+
+ than one collision and are subsequently
+ transmitted successfully.
+
+ A frame that is counted by an instance of this
+ object is also counted by the corresponding
+ instance of either the ifOutUcastPkts,
+ ifOutMulticastPkts, or ifOutBroadcastPkts,
+ and is not counted by the corresponding
+ instance of the dot3StatsSingleCollisionFrames
+ object.
+
+ This counter does not increment when the
+ interface is operating in full-duplex mode.
+
+ Discontinuities in the value of this counter can
+ occur at re-initialization of the management
+ system, and at other times as indicated by the
+ value of ifCounterDiscontinuityTime."
+ REFERENCE "[IEEE 802.3 Std.], 30.3.1.1.4,
+ aMultipleCollisionFrames."
+ ::= { dot3StatsEntry 5 }
+
+ dot3StatsSQETestErrors OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "A count of times that the SQE TEST ERROR
+ is received on a particular interface. The
+ SQE TEST ERROR is set in accordance with the
+ rules for verification of the SQE detection
+ mechanism in the PLS Carrier Sense Function as
+ described in IEEE Std. 802.3, 2000 Edition,
+ section 7.2.4.6.
+
+ This counter does not increment on interfaces
+ operating at speeds greater than 10 Mb/s, or on
+ interfaces operating in full-duplex mode.
+
+ Discontinuities in the value of this counter can
+ occur at re-initialization of the management
+ system, and at other times as indicated by the
+ value of ifCounterDiscontinuityTime."
+ REFERENCE "[IEEE 802.3 Std.], 7.2.4.6, also 30.3.2.1.4,
+ aSQETestErrors."
+ ::= { dot3StatsEntry 6 }
+
+ dot3StatsDeferredTransmissions OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "A count of frames for which the first
+ transmission attempt on a particular interface
+ is delayed because the medium is busy.
+
+ The count represented by an instance of this
+ object does not include frames involved in
+ collisions.
+
+ This counter does not increment when the
+ interface is operating in full-duplex mode.
+
+ Discontinuities in the value of this counter can
+ occur at re-initialization of the management
+ system, and at other times as indicated by the
+ value of ifCounterDiscontinuityTime."
+ REFERENCE "[IEEE 802.3 Std.], 30.3.1.1.9,
+ aFramesWithDeferredXmissions."
+ ::= { dot3StatsEntry 7 }
+
+ dot3StatsLateCollisions OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "The number of times that a collision is
+ detected on a particular interface later than
+ one slotTime into the transmission of a packet.
+
+ A (late) collision included in a count
+ represented by an instance of this object is
+ also considered as a (generic) collision for
+ purposes of other collision-related
+ statistics.
+
+ This counter does not increment when the
+ interface is operating in full-duplex mode.
+
+ Discontinuities in the value of this counter can
+ occur at re-initialization of the management
+ system, and at other times as indicated by the
+ value of ifCounterDiscontinuityTime."
+ REFERENCE "[IEEE 802.3 Std.], 30.3.1.1.10,
+ aLateCollisions."
+ ::= { dot3StatsEntry 8 }
+
+ dot3StatsExcessiveCollisions OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "A count of frames for which transmission on a
+ particular interface fails due to excessive
+ collisions.
+
+ This counter does not increment when the
+ interface is operating in full-duplex mode.
+
+ Discontinuities in the value of this counter can
+ occur at re-initialization of the management
+ system, and at other times as indicated by the
+ value of ifCounterDiscontinuityTime."
+ REFERENCE "[IEEE 802.3 Std.], 30.3.1.1.11,
+ aFramesAbortedDueToXSColls."
+ ::= { dot3StatsEntry 9 }
+
+ dot3StatsInternalMacTransmitErrors OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "A count of frames for which transmission on a
+ particular interface fails due to an internal
+ MAC sublayer transmit error. A frame is only
+ counted by an instance of this object if it is
+ not counted by the corresponding instance of
+ either the dot3StatsLateCollisions object, the
+ dot3StatsExcessiveCollisions object, or the
+ dot3StatsCarrierSenseErrors object.
+
+ The precise meaning of the count represented by
+ an instance of this object is implementation-
+ specific. In particular, an instance of this
+ object may represent a count of transmission
+ errors on a particular interface that are not
+ otherwise counted.
+
+ For interfaces operating at 10 Gb/s, this
+ counter can roll over in less than 5 minutes if
+ it is incrementing at its maximum rate. Since
+ that amount of time could be less than a
+ management station's poll cycle time, in order
+ to avoid a loss of information, a management
+ station is advised to poll the
+ dot3HCStatsInternalMacTransmitErrors object for
+ 10 Gb/s or faster interfaces.
+
+ Discontinuities in the value of this counter can
+
+ occur at re-initialization of the management
+ system, and at other times as indicated by the
+ value of ifCounterDiscontinuityTime."
+ REFERENCE "[IEEE 802.3 Std.], 30.3.1.1.12,
+ aFramesLostDueToIntMACXmitError."
+ ::= { dot3StatsEntry 10 }
+
+ dot3StatsCarrierSenseErrors OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "The number of times that the carrier sense
+ condition was lost or never asserted when
+ attempting to transmit a frame on a particular
+ interface.
+
+ The count represented by an instance of this
+ object is incremented at most once per
+ transmission attempt, even if the carrier sense
+ condition fluctuates during a transmission
+ attempt.
+
+ This counter does not increment when the
+ interface is operating in full-duplex mode.
+
+ Discontinuities in the value of this counter can
+ occur at re-initialization of the management
+ system, and at other times as indicated by the
+ value of ifCounterDiscontinuityTime."
+ REFERENCE "[IEEE 802.3 Std.], 30.3.1.1.13,
+ aCarrierSenseErrors."
+ ::= { dot3StatsEntry 11 }
+
+ -- { dot3StatsEntry 12 } is not assigned
+
+ dot3StatsFrameTooLongs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "A count of frames received on a particular
+ interface that exceed the maximum permitted
+ frame size.
+
+ The count represented by an instance of this
+ object is incremented when the frameTooLong
+ status is returned by the MAC service to the
+ LLC (or other MAC user). Received frames for
+ which multiple error conditions pertain are,
+ according to the conventions of IEEE 802.3
+ Layer Management, counted exclusively according
+ to the error status presented to the LLC.
+
+ For interfaces operating at 10 Gb/s, this
+ counter can roll over in less than 80 minutes if
+ it is incrementing at its maximum rate. Since
+ that amount of time could be less than a
+ management station's poll cycle time, in order
+ to avoid a loss of information, a management
+ station is advised to poll the
+ dot3HCStatsFrameTooLongs object for 10 Gb/s
+ or faster interfaces.
+
+ Discontinuities in the value of this counter can
+ occur at re-initialization of the management
+ system, and at other times as indicated by the
+ value of ifCounterDiscontinuityTime."
+ REFERENCE "[IEEE 802.3 Std.], 30.3.1.1.25,
+ aFrameTooLongErrors."
+ ::= { dot3StatsEntry 13 }
+
+ -- { dot3StatsEntry 14 } is not assigned
+
+ -- { dot3StatsEntry 15 } is not assigned
+
+ dot3StatsInternalMacReceiveErrors OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "A count of frames for which reception on a
+ particular interface fails due to an internal
+ MAC sublayer receive error. A frame is only
+ counted by an instance of this object if it is
+ not counted by the corresponding instance of
+ either the dot3StatsFrameTooLongs object, the
+ dot3StatsAlignmentErrors object, or the
+ dot3StatsFCSErrors object.
+
+ The precise meaning of the count represented by
+ an instance of this object is implementation-
+ specific. In particular, an instance of this
+ object may represent a count of receive errors
+ on a particular interface that are not
+ otherwise counted.
+
+ For interfaces operating at 10 Gb/s, this
+ counter can roll over in less than 5 minutes if
+
+ it is incrementing at its maximum rate. Since
+ that amount of time could be less than a
+ management station's poll cycle time, in order
+ to avoid a loss of information, a management
+ station is advised to poll the
+ dot3HCStatsInternalMacReceiveErrors object for
+ 10 Gb/s or faster interfaces.
+
+ Discontinuities in the value of this counter can
+ occur at re-initialization of the management
+ system, and at other times as indicated by the
+ value of ifCounterDiscontinuityTime."
+ REFERENCE "[IEEE 802.3 Std.], 30.3.1.1.15,
+ aFramesLostDueToIntMACRcvError."
+ ::= { dot3StatsEntry 16 }
+
+ dot3StatsEtherChipSet OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION "******** THIS OBJECT IS DEPRECATED ********
+
+ This object contains an OBJECT IDENTIFIER
+ which identifies the chipset used to
+ realize the interface. Ethernet-like
+ interfaces are typically built out of
+ several different chips. The MIB implementor
+ is presented with a decision of which chip
+ to identify via this object. The implementor
+ should identify the chip which is usually
+ called the Medium Access Control chip.
+ If no such chip is easily identifiable,
+ the implementor should identify the chip
+ which actually gathers the transmit
+ and receive statistics and error
+ indications. This would allow a
+ manager station to correlate the
+ statistics and the chip generating
+ them, giving it the ability to take
+ into account any known anomalies
+ in the chip.
+
+ This object has been deprecated. Implementation
+ feedback indicates that it is of limited use for
+ debugging network problems in the field, and
+ the administrative overhead involved in
+ maintaining a registry of chipset OIDs is not
+ justified."
+ ::= { dot3StatsEntry 17 }
+
+ dot3StatsSymbolErrors OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "For an interface operating at 100 Mb/s, the
+ number of times there was an invalid data symbol
+ when a valid carrier was present.
+
+ For an interface operating in half-duplex mode
+ at 1000 Mb/s, the number of times the receiving
+ media is non-idle (a carrier event) for a period
+ of time equal to or greater than slotTime, and
+ during which there was at least one occurrence
+ of an event that causes the PHY to indicate
+ 'Data reception error' or 'carrier extend error'
+ on the GMII.
+
+ For an interface operating in full-duplex mode
+ at 1000 Mb/s, the number of times the receiving
+ media is non-idle (a carrier event) for a period
+ of time equal to or greater than minFrameSize,
+ and during which there was at least one
+ occurrence of an event that causes the PHY to
+ indicate 'Data reception error' on the GMII.
+
+ For an interface operating at 10 Gb/s, the
+ number of times the receiving media is non-idle
+ (a carrier event) for a period of time equal to
+ or greater than minFrameSize, and during which
+ there was at least one occurrence of an event
+ that causes the PHY to indicate 'Receive Error'
+ on the XGMII.
+
+ The count represented by an instance of this
+ object is incremented at most once per carrier
+ event, even if multiple symbol errors occur
+ during the carrier event. This count does
+ not increment if a collision is present.
+
+ This counter does not increment when the
+ interface is operating at 10 Mb/s.
+
+ For interfaces operating at 10 Gb/s, this
+ counter can roll over in less than 5 minutes if
+ it is incrementing at its maximum rate. Since
+ that amount of time could be less than a
+
+ management station's poll cycle time, in order
+ to avoid a loss of information, a management
+ station is advised to poll the
+ dot3HCStatsSymbolErrors object for 10 Gb/s
+ or faster interfaces.
+
+ Discontinuities in the value of this counter can
+ occur at re-initialization of the management
+ system, and at other times as indicated by the
+ value of ifCounterDiscontinuityTime."
+ REFERENCE "[IEEE 802.3 Std.], 30.3.2.1.5,
+ aSymbolErrorDuringCarrier."
+ ::= { dot3StatsEntry 18 }
+
+ dot3StatsDuplexStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown(1),
+ halfDuplex(2),
+ fullDuplex(3)
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "The current mode of operation of the MAC
+ entity. 'unknown' indicates that the current
+ duplex mode could not be determined.
+
+ Management control of the duplex mode is
+ accomplished through the MAU MIB. When
+ an interface does not support autonegotiation,
+ or when autonegotiation is not enabled, the
+ duplex mode is controlled using
+ ifMauDefaultType. When autonegotiation is
+ supported and enabled, duplex mode is controlled
+ using ifMauAutoNegAdvertisedBits. In either
+ case, the currently operating duplex mode is
+ reflected both in this object and in ifMauType.
+
+ Note that this object provides redundant
+ information with ifMauType. Normally, redundant
+ objects are discouraged. However, in this
+ instance, it allows a management application to
+ determine the duplex status of an interface
+ without having to know every possible value of
+ ifMauType. This was felt to be sufficiently
+ valuable to justify the redundancy."
+ REFERENCE "[IEEE 802.3 Std.], 30.3.1.1.32,
+ aDuplexStatus."
+ ::= { dot3StatsEntry 19 }
+
+ dot3StatsRateControlAbility OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "'true' for interfaces operating at speeds above
+ 1000 Mb/s that support Rate Control through
+ lowering the average data rate of the MAC
+ sublayer, with frame granularity, and 'false'
+ otherwise."
+ REFERENCE "[IEEE 802.3 Std.], 30.3.1.1.33,
+ aRateControlAbility."
+ ::= { dot3StatsEntry 20 }
+
+ dot3StatsRateControlStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ rateControlOff(1),
+ rateControlOn(2),
+ unknown(3)
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "The current Rate Control mode of operation of
+ the MAC sublayer of this interface."
+ REFERENCE "[IEEE 802.3 Std.], 30.3.1.1.34,
+ aRateControlStatus."
+ ::= { dot3StatsEntry 21 }
+
+ -- the Ethernet-like Collision Statistics group
+
+ -- Implementation of this group is optional; it is appropriate
+ -- for all systems which have the necessary metering
+
+ dot3CollTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF Dot3CollEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "A collection of collision histograms for a
+ particular set of interfaces."
+ REFERENCE "[IEEE 802.3 Std.], 30.3.1.1.30,
+ aCollisionFrames."
+ ::= { dot3 5 }
+
+ dot3CollEntry OBJECT-TYPE
+ SYNTAX Dot3CollEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "A cell in the histogram of per-frame
+ collisions for a particular interface. An
+
+ instance of this object represents the
+ frequency of individual MAC frames for which
+ the transmission (successful or otherwise) on a
+ particular interface is accompanied by a
+ particular number of media collisions."
+ INDEX { ifIndex, dot3CollCount }
+ ::= { dot3CollTable 1 }
+
+ Dot3CollEntry ::=
+ SEQUENCE {
+ dot3CollCount Integer32,
+ dot3CollFrequencies Counter32
+ }
+
+ -- { dot3CollEntry 1 } is no longer in use
+
+ dot3CollCount OBJECT-TYPE
+ SYNTAX Integer32 (1..16)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "The number of per-frame media collisions for
+ which a particular collision histogram cell
+ represents the frequency on a particular
+ interface."
+ ::= { dot3CollEntry 2 }
+
+ dot3CollFrequencies OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "A count of individual MAC frames for which the
+ transmission (successful or otherwise) on a
+ particular interface occurs after the
+ frame has experienced exactly the number
+ of collisions in the associated
+ dot3CollCount object.
+
+ For example, a frame which is transmitted
+ on interface 77 after experiencing
+ exactly 4 collisions would be indicated
+ by incrementing only dot3CollFrequencies.77.4.
+ No other instance of dot3CollFrequencies would
+ be incremented in this example.
+
+ This counter does not increment when the
+ interface is operating in full-duplex mode.
+
+ Discontinuities in the value of this counter can
+
+ occur at re-initialization of the management
+ system, and at other times as indicated by the
+ value of ifCounterDiscontinuityTime."
+ ::= { dot3CollEntry 3 }
+
+ dot3ControlTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF Dot3ControlEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "A table of descriptive and status information
+ about the MAC Control sublayer on the
+ ethernet-like interfaces attached to a
+ particular system. There will be one row in
+ this table for each ethernet-like interface in
+ the system which implements the MAC Control
+ sublayer. If some, but not all, of the
+ ethernet-like interfaces in the system implement
+ the MAC Control sublayer, there will be fewer
+ rows in this table than in the dot3StatsTable."
+ ::= { dot3 9 }
+
+ dot3ControlEntry OBJECT-TYPE
+ SYNTAX Dot3ControlEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "An entry in the table, containing information
+ about the MAC Control sublayer on a single
+ ethernet-like interface."
+ INDEX { dot3StatsIndex }
+ ::= { dot3ControlTable 1 }
+
+ Dot3ControlEntry ::=
+ SEQUENCE {
+ dot3ControlFunctionsSupported BITS,
+ dot3ControlInUnknownOpcodes Counter32,
+ dot3HCControlInUnknownOpcodes Counter64
+ }
+
+ dot3ControlFunctionsSupported OBJECT-TYPE
+ SYNTAX BITS {
+ pause(0) -- 802.3 flow control
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "A list of the possible MAC Control functions
+ implemented for this interface."
+ REFERENCE "[IEEE 802.3 Std.], 30.3.3.2,
+ aMACControlFunctionsSupported."
+ ::= { dot3ControlEntry 1 }
+
+ dot3ControlInUnknownOpcodes OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "A count of MAC Control frames received on this
+ interface that contain an opcode that is not
+ supported by this device.
+
+ For interfaces operating at 10 Gb/s, this
+ counter can roll over in less than 5 minutes if
+ it is incrementing at its maximum rate. Since
+ that amount of time could be less than a
+ management station's poll cycle time, in order
+ to avoid a loss of information, a management
+ station is advised to poll the
+ dot3HCControlInUnknownOpcodes object for 10 Gb/s
+ or faster interfaces.
+
+ Discontinuities in the value of this counter can
+ occur at re-initialization of the management
+ system, and at other times as indicated by the
+ value of ifCounterDiscontinuityTime."
+ REFERENCE "[IEEE 802.3 Std.], 30.3.3.5,
+ aUnsupportedOpcodesReceived"
+ ::= { dot3ControlEntry 2 }
+
+ dot3HCControlInUnknownOpcodes OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "A count of MAC Control frames received on this
+ interface that contain an opcode that is not
+ supported by this device.
+
+ This counter is a 64 bit version of
+ dot3ControlInUnknownOpcodes. It should be used
+ on interfaces operating at 10 Gb/s or faster.
+
+ Discontinuities in the value of this counter can
+ occur at re-initialization of the management
+ system, and at other times as indicated by the
+ value of ifCounterDiscontinuityTime."
+ REFERENCE "[IEEE 802.3 Std.], 30.3.3.5,
+ aUnsupportedOpcodesReceived"
+ ::= { dot3ControlEntry 3 }
+
+ dot3PauseTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF Dot3PauseEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "A table of descriptive and status information
+ about the MAC Control PAUSE function on the
+ ethernet-like interfaces attached to a
+ particular system. There will be one row in
+ this table for each ethernet-like interface in
+ the system which supports the MAC Control PAUSE
+ function (i.e., the 'pause' bit in the
+ corresponding instance of
+ dot3ControlFunctionsSupported is set). If some,
+ but not all, of the ethernet-like interfaces in
+ the system implement the MAC Control PAUSE
+ function (for example, if some interfaces only
+ support half-duplex), there will be fewer rows
+ in this table than in the dot3StatsTable."
+ ::= { dot3 10 }
+
+ dot3PauseEntry OBJECT-TYPE
+ SYNTAX Dot3PauseEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "An entry in the table, containing information
+ about the MAC Control PAUSE function on a single
+ ethernet-like interface."
+ INDEX { dot3StatsIndex }
+ ::= { dot3PauseTable 1 }
+
+ Dot3PauseEntry ::=
+
+ SEQUENCE {
+ dot3PauseAdminMode INTEGER,
+ dot3PauseOperMode INTEGER,
+ dot3InPauseFrames Counter32,
+ dot3OutPauseFrames Counter32,
+ dot3HCInPauseFrames Counter64,
+ dot3HCOutPauseFrames Counter64
+ }
+
+ dot3PauseAdminMode OBJECT-TYPE
+ SYNTAX INTEGER {
+ disabled(1),
+ enabledXmit(2),
+ enabledRcv(3),
+ enabledXmitAndRcv(4)
+ }
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION "This object is used to configure the default
+ administrative PAUSE mode for this interface.
+
+ This object represents the
+ administratively-configured PAUSE mode for this
+ interface. If auto-negotiation is not enabled
+ or is not implemented for the active MAU
+ attached to this interface, the value of this
+ object determines the operational PAUSE mode
+ of the interface whenever it is operating in
+ full-duplex mode. In this case, a set to this
+ object will force the interface into the
+ specified mode.
+
+ If auto-negotiation is implemented and enabled
+ for the MAU attached to this interface, the
+ PAUSE mode for this interface is determined by
+ auto-negotiation, and the value of this object
+ denotes the mode to which the interface will
+ automatically revert if/when auto-negotiation is
+ later disabled. Note that when auto-negotiation
+ is running, administrative control of the PAUSE
+ mode may be accomplished using the
+ ifMauAutoNegCapAdvertisedBits object in the
+ MAU-MIB.
+
+ Note that the value of this object is ignored
+ when the interface is not operating in
+ full-duplex mode.
+
+ An attempt to set this object to
+ 'enabledXmit(2)' or 'enabledRcv(3)' will fail
+ on interfaces that do not support operation
+ at greater than 100 Mb/s."
+ ::= { dot3PauseEntry 1 }
+
+ dot3PauseOperMode OBJECT-TYPE
+ SYNTAX INTEGER {
+ disabled(1),
+ enabledXmit(2),
+ enabledRcv(3),
+ enabledXmitAndRcv(4)
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "This object reflects the PAUSE mode currently
+
+ in use on this interface, as determined by
+ either (1) the result of the auto-negotiation
+ function or (2) if auto-negotiation is not
+ enabled or is not implemented for the active MAU
+ attached to this interface, by the value of
+ dot3PauseAdminMode. Interfaces operating at
+ 100 Mb/s or less will never return
+ 'enabledXmit(2)' or 'enabledRcv(3)'. Interfaces
+ operating in half-duplex mode will always return
+ 'disabled(1)'. Interfaces on which
+ auto-negotiation is enabled but not yet
+ completed should return the value
+ 'disabled(1)'."
+ ::= { dot3PauseEntry 2 }
+
+ dot3InPauseFrames OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "A count of MAC Control frames received on this
+ interface with an opcode indicating the PAUSE
+ operation.
+
+ This counter does not increment when the
+ interface is operating in half-duplex mode.
+
+ For interfaces operating at 10 Gb/s, this
+ counter can roll over in less than 5 minutes if
+ it is incrementing at its maximum rate. Since
+ that amount of time could be less than a
+ management station's poll cycle time, in order
+ to avoid a loss of information, a management
+ station is advised to poll the
+ dot3HCInPauseFrames object for 10 Gb/s or
+ faster interfaces.
+
+ Discontinuities in the value of this counter can
+ occur at re-initialization of the management
+ system, and at other times as indicated by the
+ value of ifCounterDiscontinuityTime."
+ REFERENCE "[IEEE 802.3 Std.], 30.3.4.3,
+ aPAUSEMACCtrlFramesReceived."
+ ::= { dot3PauseEntry 3 }
+
+ dot3OutPauseFrames OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "A count of MAC Control frames transmitted on
+ this interface with an opcode indicating the
+ PAUSE operation.
+
+ This counter does not increment when the
+ interface is operating in half-duplex mode.
+
+ For interfaces operating at 10 Gb/s, this
+ counter can roll over in less than 5 minutes if
+ it is incrementing at its maximum rate. Since
+ that amount of time could be less than a
+ management station's poll cycle time, in order
+ to avoid a loss of information, a management
+ station is advised to poll the
+ dot3HCOutPauseFrames object for 10 Gb/s or
+ faster interfaces.
+
+ Discontinuities in the value of this counter can
+ occur at re-initialization of the management
+ system, and at other times as indicated by the
+ value of ifCounterDiscontinuityTime."
+ REFERENCE "[IEEE 802.3 Std.], 30.3.4.2,
+ aPAUSEMACCtrlFramesTransmitted."
+ ::= { dot3PauseEntry 4 }
+
+ dot3HCInPauseFrames OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "A count of MAC Control frames received on this
+ interface with an opcode indicating the PAUSE
+ operation.
+
+ This counter does not increment when the
+ interface is operating in half-duplex mode.
+
+ This counter is a 64 bit version of
+ dot3InPauseFrames. It should be used on
+ interfaces operating at 10 Gb/s or faster.
+
+ Discontinuities in the value of this counter can
+ occur at re-initialization of the management
+ system, and at other times as indicated by the
+ value of ifCounterDiscontinuityTime."
+ REFERENCE "[IEEE 802.3 Std.], 30.3.4.3,
+ aPAUSEMACCtrlFramesReceived."
+ ::= { dot3PauseEntry 5 }
+
+ dot3HCOutPauseFrames OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "A count of MAC Control frames transmitted on
+ this interface with an opcode indicating the
+ PAUSE operation.
+
+ This counter does not increment when the
+ interface is operating in half-duplex mode.
+
+ This counter is a 64 bit version of
+ dot3OutPauseFrames. It should be used on
+ interfaces operating at 10 Gb/s or faster.
+
+ Discontinuities in the value of this counter can
+ occur at re-initialization of the management
+ system, and at other times as indicated by the
+ value of ifCounterDiscontinuityTime."
+ REFERENCE "[IEEE 802.3 Std.], 30.3.4.2,
+ aPAUSEMACCtrlFramesTransmitted."
+ ::= { dot3PauseEntry 6 }
+
+ dot3HCStatsTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF Dot3HCStatsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "A table containing 64-bit versions of error
+ counters from the dot3StatsTable. The 32-bit
+ versions of these counters may roll over quite
+ quickly on higher speed ethernet interfaces.
+ The counters that have 64-bit versions in this
+ table are the counters that apply to full-duplex
+ interfaces, since 10 Gb/s and faster
+ ethernet-like interfaces do not support
+ half-duplex, and very few 1000 Mb/s
+ ethernet-like interfaces support half-duplex.
+
+ Entries in this table are recommended for
+ interfaces capable of operating at 1000 Mb/s or
+ faster, and are required for interfaces capable
+ of operating at 10 Gb/s or faster. Lower speed
+ ethernet-like interfaces do not need entries in
+ this table, in which case there may be fewer
+ entries in this table than in the
+ dot3StatsTable. However, implementations
+ containing interfaces with a mix of speeds may
+ choose to implement entries in this table for
+
+ all ethernet-like interfaces."
+ ::= { dot3 11 }
+
+ dot3HCStatsEntry OBJECT-TYPE
+ SYNTAX Dot3HCStatsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "An entry containing 64-bit statistics for a
+ single ethernet-like interface."
+ INDEX { dot3StatsIndex }
+ ::= { dot3HCStatsTable 1 }
+
+ Dot3HCStatsEntry ::=
+ SEQUENCE {
+ dot3HCStatsAlignmentErrors Counter64,
+ dot3HCStatsFCSErrors Counter64,
+ dot3HCStatsInternalMacTransmitErrors Counter64,
+ dot3HCStatsFrameTooLongs Counter64,
+ dot3HCStatsInternalMacReceiveErrors Counter64,
+ dot3HCStatsSymbolErrors Counter64
+ }
+
+ dot3HCStatsAlignmentErrors OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "A count of frames received on a particular
+ interface that are not an integral number of
+ octets in length and do not pass the FCS check.
+
+ The count represented by an instance of this
+ object is incremented when the alignmentError
+ status is returned by the MAC service to the
+ LLC (or other MAC user). Received frames for
+ which multiple error conditions pertain are,
+ according to the conventions of IEEE 802.3
+ Layer Management, counted exclusively according
+ to the error status presented to the LLC.
+
+ This counter does not increment for group
+ encoding schemes greater than 4 bits per group.
+
+ This counter is a 64 bit version of
+ dot3StatsAlignmentErrors. It should be used
+ on interfaces operating at 10 Gb/s or faster.
+
+ Discontinuities in the value of this counter can
+ occur at re-initialization of the management
+
+ system, and at other times as indicated by the
+ value of ifCounterDiscontinuityTime."
+ REFERENCE "[IEEE 802.3 Std.], 30.3.1.1.7,
+ aAlignmentErrors"
+ ::= { dot3HCStatsEntry 1 }
+
+ dot3HCStatsFCSErrors OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "A count of frames received on a particular
+ interface that are an integral number of octets
+ in length but do not pass the FCS check. This
+ count does not include frames received with
+ frame-too-long or frame-too-short error.
+
+ The count represented by an instance of this
+ object is incremented when the frameCheckError
+ status is returned by the MAC service to the
+ LLC (or other MAC user). Received frames for
+ which multiple error conditions pertain are,
+ according to the conventions of IEEE 802.3
+ Layer Management, counted exclusively according
+ to the error status presented to the LLC.
+
+ Note: Coding errors detected by the physical
+ layer for speeds above 10 Mb/s will cause the
+ frame to fail the FCS check.
+
+ This counter is a 64 bit version of
+ dot3StatsFCSErrors. It should be used on
+ interfaces operating at 10 Gb/s or faster.
+
+ Discontinuities in the value of this counter can
+ occur at re-initialization of the management
+ system, and at other times as indicated by the
+ value of ifCounterDiscontinuityTime."
+ REFERENCE "[IEEE 802.3 Std.], 30.3.1.1.6,
+ aFrameCheckSequenceErrors."
+ ::= { dot3HCStatsEntry 2 }
+
+ dot3HCStatsInternalMacTransmitErrors OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "A count of frames for which transmission on a
+ particular interface fails due to an internal
+ MAC sublayer transmit error. A frame is only
+
+ counted by an instance of this object if it is
+ not counted by the corresponding instance of
+ either the dot3StatsLateCollisions object, the
+ dot3StatsExcessiveCollisions object, or the
+ dot3StatsCarrierSenseErrors object.
+
+ The precise meaning of the count represented by
+ an instance of this object is implementation-
+ specific. In particular, an instance of this
+ object may represent a count of transmission
+ errors on a particular interface that are not
+ otherwise counted.
+
+ This counter is a 64 bit version of
+ dot3StatsInternalMacTransmitErrors. It should
+ be used on interfaces operating at 10 Gb/s or
+ faster.
+
+ Discontinuities in the value of this counter can
+ occur at re-initialization of the management
+ system, and at other times as indicated by the
+ value of ifCounterDiscontinuityTime."
+ REFERENCE "[IEEE 802.3 Std.], 30.3.1.1.12,
+ aFramesLostDueToIntMACXmitError."
+ ::= { dot3HCStatsEntry 3 }
+
+ dot3HCStatsFrameTooLongs OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "A count of frames received on a particular
+ interface that exceed the maximum permitted
+ frame size.
+
+ The count represented by an instance of this
+ object is incremented when the frameTooLong
+ status is returned by the MAC service to the
+ LLC (or other MAC user). Received frames for
+ which multiple error conditions pertain are,
+ according to the conventions of IEEE 802.3
+ Layer Management, counted exclusively according
+ to the error status presented to the LLC.
+
+ This counter is a 64 bit version of
+ dot3StatsFrameTooLongs. It should be used on
+ interfaces operating at 10 Gb/s or faster.
+
+ Discontinuities in the value of this counter can
+
+ occur at re-initialization of the management
+ system, and at other times as indicated by the
+ value of ifCounterDiscontinuityTime."
+ REFERENCE "[IEEE 802.3 Std.], 30.3.1.1.25,
+ aFrameTooLongErrors."
+ ::= { dot3HCStatsEntry 4 }
+
+ dot3HCStatsInternalMacReceiveErrors OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "A count of frames for which reception on a
+ particular interface fails due to an internal
+ MAC sublayer receive error. A frame is only
+ counted by an instance of this object if it is
+ not counted by the corresponding instance of
+ either the dot3StatsFrameTooLongs object, the
+ dot3StatsAlignmentErrors object, or the
+ dot3StatsFCSErrors object.
+
+ The precise meaning of the count represented by
+ an instance of this object is implementation-
+ specific. In particular, an instance of this
+ object may represent a count of receive errors
+ on a particular interface that are not
+ otherwise counted.
+
+ This counter is a 64 bit version of
+ dot3StatsInternalMacReceiveErrors. It should be
+ used on interfaces operating at 10 Gb/s or
+ faster.
+
+ Discontinuities in the value of this counter can
+ occur at re-initialization of the management
+ system, and at other times as indicated by the
+ value of ifCounterDiscontinuityTime."
+ REFERENCE "[IEEE 802.3 Std.], 30.3.1.1.15,
+ aFramesLostDueToIntMACRcvError."
+ ::= { dot3HCStatsEntry 5 }
+
+ dot3HCStatsSymbolErrors OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "For an interface operating at 100 Mb/s, the
+ number of times there was an invalid data symbol
+ when a valid carrier was present.
+
+ For an interface operating in half-duplex mode
+ at 1000 Mb/s, the number of times the receiving
+ media is non-idle (a carrier event) for a period
+ of time equal to or greater than slotTime, and
+ during which there was at least one occurrence
+ of an event that causes the PHY to indicate
+ 'Data reception error' or 'carrier extend error'
+ on the GMII.
+
+ For an interface operating in full-duplex mode
+ at 1000 Mb/s, the number of times the receiving
+ media is non-idle (a carrier event) for a period
+ of time equal to or greater than minFrameSize,
+ and during which there was at least one
+ occurrence of an event that causes the PHY to
+ indicate 'Data reception error' on the GMII.
+
+ For an interface operating at 10 Gb/s, the
+ number of times the receiving media is non-idle
+ (a carrier event) for a period of time equal to
+ or greater than minFrameSize, and during which
+ there was at least one occurrence of an event
+ that causes the PHY to indicate 'Receive Error'
+ on the XGMII.
+
+ The count represented by an instance of this
+ object is incremented at most once per carrier
+ event, even if multiple symbol errors occur
+ during the carrier event. This count does
+ not increment if a collision is present.
+
+ This counter is a 64 bit version of
+ dot3StatsSymbolErrors. It should be used on
+ interfaces operating at 10 Gb/s or faster.
+
+ Discontinuities in the value of this counter can
+ occur at re-initialization of the management
+ system, and at other times as indicated by the
+ value of ifCounterDiscontinuityTime."
+ REFERENCE "[IEEE 802.3 Std.], 30.3.2.1.5,
+ aSymbolErrorDuringCarrier."
+ ::= { dot3HCStatsEntry 6 }
+
+ -- 802.3 Tests
+
+ dot3Tests OBJECT IDENTIFIER ::= { dot3 6 }
+
+ dot3Errors OBJECT IDENTIFIER ::= { dot3 7 }
+
+ -- TDR Test
+
+ dot3TestTdr OBJECT-IDENTITY
+ STATUS deprecated
+ DESCRIPTION "******** THIS IDENTITY IS DEPRECATED *******
+
+ The Time-Domain Reflectometry (TDR) test is
+ specific to ethernet-like interfaces of type
+ 10Base5 and 10Base2. The TDR value may be
+ useful in determining the approximate distance
+ to a cable fault. It is advisable to repeat
+ this test to check for a consistent resulting
+ TDR value, to verify that there is a fault.
+
+ A TDR test returns as its result the time
+ interval, measured in 10 MHz ticks or 100 nsec
+ units, between the start of TDR test
+ transmission and the subsequent detection of a
+ collision or deassertion of carrier. On
+ successful completion of a TDR test, the result
+ is stored as the value of an appropriate
+ instance of an appropriate vendor specific MIB
+ object, and the OBJECT IDENTIFIER of that
+ instance is stored in the appropriate instance
+ of the appropriate test result code object
+ (thereby indicating where the result has been
+ stored).
+
+ This object identity has been deprecated, since
+ the ifTestTable in the IF-MIB was deprecated,
+ and there is no longer a standard mechanism for
+ initiating an interface test. This left no
+ standard way of using this object identity."
+ ::= { dot3Tests 1 }
+
+ -- Loopback Test
+
+ dot3TestLoopBack OBJECT-IDENTITY
+ STATUS deprecated
+ DESCRIPTION "******** THIS IDENTITY IS DEPRECATED *******
+
+ This test configures the MAC chip and executes
+ an internal loopback test of memory, data paths,
+ and the MAC chip logic. This loopback test can
+ only be executed if the interface is offline.
+ Once the test has completed, the MAC chip should
+
+ be reinitialized for network operation, but it
+ should remain offline.
+
+ If an error occurs during a test, the
+ appropriate test result object will be set
+ to indicate a failure. The two OBJECT
+ IDENTIFIER values dot3ErrorInitError and
+ dot3ErrorLoopbackError may be used to provided
+ more information as values for an appropriate
+ test result code object.
+
+ This object identity has been deprecated, since
+ the ifTestTable in the IF-MIB was deprecated,
+ and there is no longer a standard mechanism for
+ initiating an interface test. This left no
+ standard way of using this object identity."
+ ::= { dot3Tests 2 }
+
+ dot3ErrorInitError OBJECT-IDENTITY
+ STATUS deprecated
+ DESCRIPTION "******** THIS IDENTITY IS DEPRECATED *******
+
+ Couldn't initialize MAC chip for test.
+
+ This object identity has been deprecated, since
+ the ifTestTable in the IF-MIB was deprecated,
+ and there is no longer a standard mechanism for
+ initiating an interface test. This left no
+ standard way of using this object identity."
+ ::= { dot3Errors 1 }
+
+ dot3ErrorLoopbackError OBJECT-IDENTITY
+ STATUS deprecated
+ DESCRIPTION "******** THIS IDENTITY IS DEPRECATED *******
+
+ Expected data not received (or not received
+ correctly) in loopback test.
+
+ This object identity has been deprecated, since
+ the ifTestTable in the IF-MIB was deprecated,
+ and there is no longer a standard mechanism for
+ initiating an interface test. This left no
+ standard way of using this object identity."
+ ::= { dot3Errors 2 }
+
+ -- { dot3 8 }, the dot3ChipSets tree, is defined in [RFC2666]
+
+ -- conformance information
+
+ etherConformance OBJECT IDENTIFIER ::= { etherMIB 2 }
+
+ etherGroups OBJECT IDENTIFIER ::= { etherConformance 1 }
+ etherCompliances OBJECT IDENTIFIER ::= { etherConformance 2 }
+
+ -- compliance statements
+
+ etherCompliance MODULE-COMPLIANCE
+ STATUS deprecated
+ DESCRIPTION "******** THIS COMPLIANCE IS DEPRECATED ********
+
+ The compliance statement for managed network
+ entities which have ethernet-like network
+ interfaces.
+
+ This compliance is deprecated and replaced by
+ dot3Compliance."
+
+ MODULE -- this module
+ MANDATORY-GROUPS { etherStatsGroup }
+
+ GROUP etherCollisionTableGroup
+ DESCRIPTION "This group is optional. It is appropriate
+ for all systems which have the necessary
+ metering. Implementation in such systems is
+ highly recommended."
+ ::= { etherCompliances 1 }
+
+ ether100MbsCompliance MODULE-COMPLIANCE
+ STATUS deprecated
+ DESCRIPTION "******** THIS COMPLIANCE IS DEPRECATED ********
+
+ The compliance statement for managed network
+ entities which have 100 Mb/sec ethernet-like
+ network interfaces.
+
+ This compliance is deprecated and replaced by
+ dot3Compliance."
+
+ MODULE -- this module
+ MANDATORY-GROUPS { etherStats100MbsGroup }
+
+ GROUP etherCollisionTableGroup
+ DESCRIPTION "This group is optional. It is appropriate
+ for all systems which have the necessary
+ metering. Implementation in such systems is
+ highly recommended."
+ ::= { etherCompliances 2 }
+
+ dot3Compliance MODULE-COMPLIANCE
+ STATUS deprecated
+ DESCRIPTION "******** THIS COMPLIANCE IS DEPRECATED ********
+
+ The compliance statement for managed network
+ entities which have ethernet-like network
+ interfaces.
+
+ This compliance is deprecated and replaced by
+ dot3Compliance2."
+
+ MODULE -- this module
+ MANDATORY-GROUPS { etherStatsBaseGroup }
+
+ GROUP etherDuplexGroup
+ DESCRIPTION "This group is mandatory for all
+ ethernet-like network interfaces which are
+ capable of operating in full-duplex mode.
+ It is highly recommended for all
+ ethernet-like network interfaces."
+
+ GROUP etherStatsLowSpeedGroup
+ DESCRIPTION "This group is mandatory for all
+ ethernet-like network interfaces which are
+ capable of operating at 10 Mb/s or slower in
+ half-duplex mode."
+
+ GROUP etherStatsHighSpeedGroup
+ DESCRIPTION "This group is mandatory for all
+ ethernet-like network interfaces which are
+ capable of operating at 100 Mb/s or faster."
+
+ GROUP etherControlGroup
+ DESCRIPTION "This group is mandatory for all
+ ethernet-like network interfaces that
+ support the MAC Control sublayer."
+
+ GROUP etherControlPauseGroup
+ DESCRIPTION "This group is mandatory for all
+ ethernet-like network interfaces that
+ support the MAC Control PAUSE function."
+
+ GROUP etherCollisionTableGroup
+ DESCRIPTION "This group is optional. It is appropriate
+ for all ethernet-like network interfaces
+ which are capable of operating in
+ half-duplex mode and have the necessary
+ metering. Implementation in systems with
+
+ such interfaces is highly recommended."
+ ::= { etherCompliances 3 }
+
+ dot3Compliance2 MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION "The compliance statement for managed network
+ entities which have ethernet-like network
+ interfaces.
+
+ Note that compliance with this MIB module
+ requires compliance with the ifCompliance3
+ MODULE-COMPLIANCE statement of the IF-MIB
+ (RFC2863). In addition, compliance with this
+ MIB module requires compliance with the
+ mauModIfCompl3 MODULE-COMPLIANCE statement of
+ the MAU-MIB (RFC3636)."
+
+ MODULE -- this module
+ MANDATORY-GROUPS { etherStatsBaseGroup2 }
+
+ GROUP etherDuplexGroup
+ DESCRIPTION "This group is mandatory for all
+ ethernet-like network interfaces which are
+ capable of operating in full-duplex mode.
+ It is highly recommended for all
+ ethernet-like network interfaces."
+
+ GROUP etherRateControlGroup
+ DESCRIPTION "This group is mandatory for all
+ ethernet-like network interfaces which are
+ capable of operating at speeds faster than
+ 1000 Mb/s. It is highly recommended for all
+ ethernet-like network interfaces."
+
+ GROUP etherStatsLowSpeedGroup
+ DESCRIPTION "This group is mandatory for all
+ ethernet-like network interfaces which are
+ capable of operating at 10 Mb/s or slower in
+ half-duplex mode."
+
+ GROUP etherStatsHighSpeedGroup
+ DESCRIPTION "This group is mandatory for all
+ ethernet-like network interfaces which are
+ capable of operating at 100 Mb/s or faster."
+
+ GROUP etherStatsHalfDuplexGroup
+ DESCRIPTION "This group is mandatory for all
+ ethernet-like network interfaces which are
+
+ capable of operating in half-duplex mode."
+
+ GROUP etherHCStatsGroup
+ DESCRIPTION "This group is mandatory for all
+ ethernet-like network interfaces which are
+ capable of operating at 10 Gb/s or faster.
+ It is recommended for all ethernet-like
+ network interfaces which are capable of
+ operating at 1000 Mb/s or faster."
+
+ GROUP etherControlGroup
+ DESCRIPTION "This group is mandatory for all
+ ethernet-like network interfaces that
+ support the MAC Control sublayer."
+
+ GROUP etherHCControlGroup
+ DESCRIPTION "This group is mandatory for all
+ ethernet-like network interfaces that
+ support the MAC Control sublayer and are
+ capable of operating at 10 Gb/s or faster."
+
+ GROUP etherControlPauseGroup
+ DESCRIPTION "This group is mandatory for all
+ ethernet-like network interfaces that
+ support the MAC Control PAUSE function."
+
+ GROUP etherHCControlPauseGroup
+ DESCRIPTION "This group is mandatory for all
+ ethernet-like network interfaces that
+ support the MAC Control PAUSE function and
+ are capable of operating at 10 Gb/s or
+ faster."
+
+ GROUP etherCollisionTableGroup
+ DESCRIPTION "This group is optional. It is appropriate
+ for all ethernet-like network interfaces
+ which are capable of operating in
+ half-duplex mode and have the necessary
+ metering. Implementation in systems with
+ such interfaces is highly recommended."
+ ::= { etherCompliances 4 }
+
+ -- units of conformance
+
+ etherStatsGroup OBJECT-GROUP
+ OBJECTS { dot3StatsIndex,
+ dot3StatsAlignmentErrors,
+ dot3StatsFCSErrors,
+ dot3StatsSingleCollisionFrames,
+ dot3StatsMultipleCollisionFrames,
+ dot3StatsSQETestErrors,
+ dot3StatsDeferredTransmissions,
+ dot3StatsLateCollisions,
+ dot3StatsExcessiveCollisions,
+ dot3StatsInternalMacTransmitErrors,
+ dot3StatsCarrierSenseErrors,
+ dot3StatsFrameTooLongs,
+ dot3StatsInternalMacReceiveErrors,
+ dot3StatsEtherChipSet
+ }
+ STATUS deprecated
+ DESCRIPTION "********* THIS GROUP IS DEPRECATED **********
+
+ A collection of objects providing information
+ applicable to all ethernet-like network
+ interfaces.
+
+ This object group has been deprecated and
+ replaced by etherStatsBaseGroup and
+ etherStatsLowSpeedGroup."
+ ::= { etherGroups 1 }
+
+ etherCollisionTableGroup OBJECT-GROUP
+ OBJECTS { dot3CollFrequencies
+ }
+ STATUS current
+ DESCRIPTION "A collection of objects providing a histogram
+ of packets successfully transmitted after
+ experiencing exactly N collisions."
+ ::= { etherGroups 2 }
+
+ etherStats100MbsGroup OBJECT-GROUP
+ OBJECTS { dot3StatsIndex,
+ dot3StatsAlignmentErrors,
+ dot3StatsFCSErrors,
+ dot3StatsSingleCollisionFrames,
+ dot3StatsMultipleCollisionFrames,
+ dot3StatsDeferredTransmissions,
+ dot3StatsLateCollisions,
+ dot3StatsExcessiveCollisions,
+ dot3StatsInternalMacTransmitErrors,
+ dot3StatsCarrierSenseErrors,
+ dot3StatsFrameTooLongs,
+ dot3StatsInternalMacReceiveErrors,
+ dot3StatsEtherChipSet,
+ dot3StatsSymbolErrors
+
+ }
+ STATUS deprecated
+ DESCRIPTION "********* THIS GROUP IS DEPRECATED **********
+
+ A collection of objects providing information
+ applicable to 100 Mb/sec ethernet-like network
+ interfaces.
+
+ This object group has been deprecated and
+ replaced by etherStatsBaseGroup and
+ etherStatsHighSpeedGroup."
+ ::= { etherGroups 3 }
+
+ etherStatsBaseGroup OBJECT-GROUP
+ OBJECTS { dot3StatsIndex,
+ dot3StatsAlignmentErrors,
+ dot3StatsFCSErrors,
+ dot3StatsSingleCollisionFrames,
+ dot3StatsMultipleCollisionFrames,
+ dot3StatsDeferredTransmissions,
+ dot3StatsLateCollisions,
+ dot3StatsExcessiveCollisions,
+ dot3StatsInternalMacTransmitErrors,
+ dot3StatsCarrierSenseErrors,
+ dot3StatsFrameTooLongs,
+ dot3StatsInternalMacReceiveErrors
+ }
+ STATUS deprecated
+ DESCRIPTION "********* THIS GROUP IS DEPRECATED **********
+
+ A collection of objects providing information
+ applicable to all ethernet-like network
+ interfaces.
+
+ This object group has been deprecated and
+ replaced by etherStatsBaseGroup2 and
+ etherStatsHalfDuplexGroup, to separate
+ objects which must be implemented by all
+ ethernet-like network interfaces from
+ objects that need only be implemented on
+ ethernet-like network interfaces that are
+ capable of half-duplex operation."
+ ::= { etherGroups 4 }
+
+ etherStatsLowSpeedGroup OBJECT-GROUP
+ OBJECTS { dot3StatsSQETestErrors }
+ STATUS current
+ DESCRIPTION "A collection of objects providing information
+
+ applicable to ethernet-like network interfaces
+ capable of operating at 10 Mb/s or slower in
+ half-duplex mode."
+ ::= { etherGroups 5 }
+
+ etherStatsHighSpeedGroup OBJECT-GROUP
+ OBJECTS { dot3StatsSymbolErrors }
+ STATUS current
+ DESCRIPTION "A collection of objects providing information
+ applicable to ethernet-like network interfaces
+ capable of operating at 100 Mb/s or faster."
+ ::= { etherGroups 6 }
+
+ etherDuplexGroup OBJECT-GROUP
+ OBJECTS { dot3StatsDuplexStatus }
+ STATUS current
+ DESCRIPTION "A collection of objects providing information
+ about the duplex mode of an ethernet-like
+ network interface."
+ ::= { etherGroups 7 }
+
+ etherControlGroup OBJECT-GROUP
+ OBJECTS { dot3ControlFunctionsSupported,
+ dot3ControlInUnknownOpcodes
+ }
+ STATUS current
+ DESCRIPTION "A collection of objects providing information
+ about the MAC Control sublayer on ethernet-like
+ network interfaces."
+ ::= { etherGroups 8 }
+
+ etherControlPauseGroup OBJECT-GROUP
+ OBJECTS { dot3PauseAdminMode,
+ dot3PauseOperMode,
+ dot3InPauseFrames,
+ dot3OutPauseFrames
+ }
+ STATUS current
+ DESCRIPTION "A collection of objects providing information
+ about and control of the MAC Control PAUSE
+ function on ethernet-like network interfaces."
+ ::= { etherGroups 9 }
+
+ etherStatsBaseGroup2 OBJECT-GROUP
+ OBJECTS { dot3StatsIndex,
+ dot3StatsAlignmentErrors,
+ dot3StatsFCSErrors,
+ dot3StatsInternalMacTransmitErrors,
+ dot3StatsFrameTooLongs,
+ dot3StatsInternalMacReceiveErrors
+ }
+ STATUS current
+ DESCRIPTION "A collection of objects providing information
+ applicable to all ethernet-like network
+ interfaces."
+ ::= { etherGroups 10 }
+
+ etherStatsHalfDuplexGroup OBJECT-GROUP
+ OBJECTS { dot3StatsSingleCollisionFrames,
+ dot3StatsMultipleCollisionFrames,
+ dot3StatsDeferredTransmissions,
+ dot3StatsLateCollisions,
+ dot3StatsExcessiveCollisions,
+ dot3StatsCarrierSenseErrors
+ }
+ STATUS current
+ DESCRIPTION "A collection of objects providing information
+ applicable only to half-duplex ethernet-like
+ network interfaces."
+ ::= { etherGroups 11 }
+
+ etherHCStatsGroup OBJECT-GROUP
+ OBJECTS { dot3HCStatsAlignmentErrors,
+ dot3HCStatsFCSErrors,
+ dot3HCStatsInternalMacTransmitErrors,
+ dot3HCStatsFrameTooLongs,
+ dot3HCStatsInternalMacReceiveErrors,
+ dot3HCStatsSymbolErrors
+ }
+ STATUS current
+ DESCRIPTION "A collection of objects providing high-capacity
+ statistics applicable to higher-speed
+ ethernet-like network interfaces."
+ ::= { etherGroups 12 }
+
+ etherHCControlGroup OBJECT-GROUP
+ OBJECTS { dot3HCControlInUnknownOpcodes }
+ STATUS current
+ DESCRIPTION "A collection of objects providing high-capacity
+ statistics for the MAC Control sublayer on
+ higher-speed ethernet-like network interfaces."
+ ::= { etherGroups 13 }
+
+ etherHCControlPauseGroup OBJECT-GROUP
+ OBJECTS { dot3HCInPauseFrames,
+ dot3HCOutPauseFrames
+
+ }
+ STATUS current
+ DESCRIPTION "A collection of objects providing high-capacity
+ statistics for the MAC Control PAUSE function on
+ higher-speed ethernet-like network interfaces."
+ ::= { etherGroups 14 }
+
+ etherRateControlGroup OBJECT-GROUP
+ OBJECTS { dot3StatsRateControlAbility,
+ dot3StatsRateControlStatus
+ }
+ STATUS current
+ DESCRIPTION "A collection of objects providing information
+ about the Rate Control function on ethernet-like
+ interfaces."
+ ::= { etherGroups 15 }
+
+END
diff --git a/php/extras/mibs/HCNUM-TC.txt b/php/extras/mibs/HCNUM-TC.txt
new file mode 100644
index 000000000..4be3d547e
--- /dev/null
+++ b/php/extras/mibs/HCNUM-TC.txt
@@ -0,0 +1,118 @@
+HCNUM-TC DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, mib-2, Counter64
+ FROM SNMPv2-SMI
+ TEXTUAL-CONVENTION
+ FROM SNMPv2-TC;
+
+hcnumTC MODULE-IDENTITY
+ LAST-UPDATED "200006080000Z"
+
+ ORGANIZATION "IETF OPS Area"
+ CONTACT-INFO
+ " E-mail: mibs@ops.ietf.org
+ Subscribe: majordomo@psg.com
+ with msg body: subscribe mibs
+
+ Andy Bierman
+ Cisco Systems Inc.
+ 170 West Tasman Drive
+ San Jose, CA 95134 USA
+ +1 408-527-3711
+ abierman@cisco.com
+
+ Keith McCloghrie
+ Cisco Systems Inc.
+ 170 West Tasman Drive
+ San Jose, CA 95134 USA
+ +1 408-526-5260
+ kzm@cisco.com
+
+ Randy Presuhn
+ BMC Software, Inc.
+ Office 1-3141
+ 2141 North First Street
+ San Jose, California 95131 USA
+ +1 408 546-1006
+ rpresuhn@bmc.com"
+ DESCRIPTION
+ "A MIB module containing textual conventions
+ for high capacity data types. This module
+ addresses an immediate need for data types not directly
+ supported in the SMIv2. This short-term solution
+ is meant to be deprecated as a long-term solution
+ is deployed."
+ REVISION "200006080000Z"
+ DESCRIPTION
+ "Initial Version of the High Capacity Numbers
+ MIB module, published as RFC 2856."
+ ::= { mib-2 78 }
+
+CounterBasedGauge64 ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "The CounterBasedGauge64 type represents a non-negative
+ integer, which may increase or decrease, but shall never
+ exceed a maximum value, nor fall below a minimum value. The
+ maximum value can not be greater than 2^64-1
+ (18446744073709551615 decimal), and the minimum value can
+
+ not be smaller than 0. The value of a CounterBasedGauge64
+ has its maximum value whenever the information being modeled
+ is greater than or equal to its maximum value, and has its
+ minimum value whenever the information being modeled is
+ smaller than or equal to its minimum value. If the
+ information being modeled subsequently decreases below
+ (increases above) the maximum (minimum) value, the
+ CounterBasedGauge64 also decreases (increases).
+
+ Note that this TC is not strictly supported in SMIv2,
+ because the 'always increasing' and 'counter wrap' semantics
+ associated with the Counter64 base type are not preserved.
+ It is possible that management applications which rely
+ solely upon the (Counter64) ASN.1 tag to determine object
+ semantics will mistakenly operate upon objects of this type
+ as they would for Counter64 objects.
+
+ This textual convention represents a limited and short-term
+ solution, and may be deprecated as a long term solution is
+ defined and deployed to replace it."
+ SYNTAX Counter64
+
+ZeroBasedCounter64 ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "This TC describes an object which counts events with the
+ following semantics: objects of this type will be set to
+ zero(0) on creation and will thereafter count appropriate
+ events, wrapping back to zero(0) when the value 2^64 is
+ reached.
+
+ Provided that an application discovers the new object within
+ the minimum time to wrap it can use the initial value as a
+ delta since it last polled the table of which this object is
+ part. It is important for a management station to be aware
+ of this minimum time and the actual time between polls, and
+ to discard data if the actual time is too long or there is
+ no defined minimum time.
+
+ Typically this TC is used in tables where the INDEX space is
+ constantly changing and/or the TimeFilter mechanism is in
+ use.
+
+ Note that this textual convention does not retain all the
+ semantics of the Counter64 base type. Specifically, a
+ Counter64 has an arbitrary initial value, but objects
+ defined with this TC are required to start at the value
+
+ zero. This behavior is not likely to have any adverse
+ effects on management applications which are expecting
+ Counter64 semantics.
+
+ This textual convention represents a limited and short-term
+ solution, and may be deprecated as a long term solution is
+ defined and deployed to replace it."
+ SYNTAX Counter64
+
+END
diff --git a/php/extras/mibs/HOST-RESOURCES-MIB.txt b/php/extras/mibs/HOST-RESOURCES-MIB.txt
new file mode 100644
index 000000000..373b9b328
--- /dev/null
+++ b/php/extras/mibs/HOST-RESOURCES-MIB.txt
@@ -0,0 +1,1540 @@
+HOST-RESOURCES-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+MODULE-IDENTITY, OBJECT-TYPE, mib-2,
+Integer32, Counter32, Gauge32, TimeTicks FROM SNMPv2-SMI
+
+TEXTUAL-CONVENTION, DisplayString,
+TruthValue, DateAndTime, AutonomousType FROM SNMPv2-TC
+
+MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
+
+InterfaceIndexOrZero FROM IF-MIB;
+
+hostResourcesMibModule MODULE-IDENTITY
+ LAST-UPDATED "200003060000Z" -- 6 March 2000
+ ORGANIZATION "IETF Host Resources MIB Working Group"
+ CONTACT-INFO
+ "Steve Waldbusser
+ Postal: Lucent Technologies, Inc.
+ 1213 Innsbruck Dr.
+ Sunnyvale, CA 94089
+ USA
+ Phone: 650-318-1251
+ Fax: 650-318-1633
+ Email: waldbusser@lucent.com
+
+ In addition, the Host Resources MIB mailing list is
+ dedicated to discussion of this MIB. To join the
+ mailing list, send a request message to
+ hostmib-request@andrew.cmu.edu. The mailing list
+ address is hostmib@andrew.cmu.edu."
+ DESCRIPTION
+ "This MIB is for use in managing host systems. The term
+ `host' is construed to mean any computer that communicates
+ with other similar computers attached to the internet and
+ that is directly used by one or more human beings. Although
+ this MIB does not necessarily apply to devices whose primary
+ function is communications services (e.g., terminal servers,
+ routers, bridges, monitoring equipment), such relevance is
+ not explicitly precluded. This MIB instruments attributes
+ common to all internet hosts including, for example, both
+ personal computers and systems that run variants of Unix."
+
+ REVISION "200003060000Z" -- 6 March 2000
+ DESCRIPTION
+ "Clarifications and bug fixes based on implementation
+ experience. This revision was also reformatted in the SMIv2
+ format. The revisions made were:
+
+ New RFC document standards:
+ Added Copyright notice, updated introduction to SNMP
+ Framework, updated references section, added reference to
+ RFC 2119, and added a meaningful Security Considerations
+ section.
+
+ New IANA considerations section for registration of new types
+
+ Conversion to new SMIv2 syntax for the following types and
+ macros:
+ Counter32, Integer32, Gauge32, MODULE-IDENTITY,
+ OBJECT-TYPE, TEXTUAL-CONVENTION, OBJECT-IDENTITY,
+ MODULE-COMPLIANCE, OBJECT-GROUP
+
+ Used new Textual Conventions:
+ TruthValue, DateAndTime, AutonomousType,
+ InterfaceIndexOrZero
+
+ Fixed typo in hrPrinterStatus.
+
+ Added missing error bits to hrPrinterDetectedErrorState and
+ clarified confusion resulting from suggested mappings to
+ hrPrinterStatus.
+
+ Clarified that size of objects of type
+ InternationalDisplayString is number of octets, not number
+ of encoded symbols.
+
+ Clarified the use of the following objects based on
+ implementation experience:
+ hrSystemInitialLoadDevice, hrSystemInitialLoadParameters,
+ hrMemorySize, hrStorageSize, hrStorageAllocationFailures,
+ hrDeviceErrors, hrProcessorLoad, hrNetworkIfIndex,
+ hrDiskStorageCapacity, hrSWRunStatus, hrSWRunPerfCPU,
+ and hrSWInstalledDate.
+
+ Clarified implementation technique for hrSWInstalledTable.
+
+ Used new AUGMENTS clause for hrSWRunPerfTable.
+
+ Added Internationalization Considerations section.
+
+This revision published as RFC2790."
+
+ REVISION "9910202200Z" -- 20 October, 1999
+ DESCRIPTION
+ "The original version of this MIB, published as
+ RFC1514."
+ ::= { hrMIBAdminInfo 1 }
+
+host OBJECT IDENTIFIER ::= { mib-2 25 }
+
+hrSystem OBJECT IDENTIFIER ::= { host 1 }
+hrStorage OBJECT IDENTIFIER ::= { host 2 }
+hrDevice OBJECT IDENTIFIER ::= { host 3 }
+hrSWRun OBJECT IDENTIFIER ::= { host 4 }
+hrSWRunPerf OBJECT IDENTIFIER ::= { host 5 }
+hrSWInstalled OBJECT IDENTIFIER ::= { host 6 }
+hrMIBAdminInfo OBJECT IDENTIFIER ::= { host 7 }
+
+-- textual conventions
+
+KBytes ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "Storage size, expressed in units of 1024 bytes."
+ SYNTAX Integer32 (0..2147483647)
+
+ProductID ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "This textual convention is intended to identify the
+
+ manufacturer, model, and version of a specific
+ hardware or software product. It is suggested that
+ these OBJECT IDENTIFIERs are allocated such that all
+ products from a particular manufacturer are registered
+ under a subtree distinct to that manufacturer. In
+ addition, all versions of a product should be
+ registered under a subtree distinct to that product.
+ With this strategy, a management station may uniquely
+ determine the manufacturer and/or model of a product
+ whose productID is unknown to the management station.
+ Objects of this type may be useful for inventory
+ purposes or for automatically detecting
+ incompatibilities or version mismatches between
+ various hardware and software components on a system.
+
+ For example, the product ID for the ACME 4860 66MHz
+ clock doubled processor might be:
+ enterprises.acme.acmeProcessors.a4860DX2.MHz66
+
+ A software product might be registered as:
+ enterprises.acme.acmeOperatingSystems.acmeDOS.six(6).one(1)
+ "
+ SYNTAX OBJECT IDENTIFIER
+
+-- unknownProduct will be used for any unknown ProductID
+-- unknownProduct OBJECT IDENTIFIER ::= { 0 0 }
+
+InternationalDisplayString ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "This data type is used to model textual information
+ in some character set. A network management station
+ should use a local algorithm to determine which
+ character set is in use and how it should be
+ displayed. Note that this character set may be
+ encoded with more than one octet per symbol, but will
+ most often be NVT ASCII. When a size clause is
+ specified for an object of this type, the size refers
+ to the length in octets, not the number of symbols."
+ SYNTAX OCTET STRING
+
+-- The Host Resources System Group
+
+hrSystemUptime OBJECT-TYPE
+ SYNTAX TimeTicks
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The amount of time since this host was last
+ initialized. Note that this is different from
+ sysUpTime in the SNMPv2-MIB [RFC1907] because
+ sysUpTime is the uptime of the network management
+ portion of the system."
+ ::= { hrSystem 1 }
+
+hrSystemDate OBJECT-TYPE
+ SYNTAX DateAndTime
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The host's notion of the local date and time of day."
+ ::= { hrSystem 2 }
+
+hrSystemInitialLoadDevice OBJECT-TYPE
+ SYNTAX Integer32 (1..2147483647)
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The index of the hrDeviceEntry for the device from
+ which this host is configured to load its initial
+ operating system configuration (i.e., which operating
+ system code and/or boot parameters).
+
+ Note that writing to this object just changes the
+ configuration that will be used the next time the
+ operating system is loaded and does not actually cause
+ the reload to occur."
+ ::= { hrSystem 3 }
+
+hrSystemInitialLoadParameters OBJECT-TYPE
+ SYNTAX InternationalDisplayString (SIZE (0..128))
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "This object contains the parameters (e.g. a pathname
+ and parameter) supplied to the load device when
+ requesting the initial operating system configuration
+ from that device.
+
+ Note that writing to this object just changes the
+ configuration that will be used the next time the
+ operating system is loaded and does not actually cause
+ the reload to occur."
+ ::= { hrSystem 4 }
+
+hrSystemNumUsers OBJECT-TYPE
+ SYNTAX Gauge32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of user sessions for which this host is
+ storing state information. A session is a collection
+ of processes requiring a single act of user
+ authentication and possibly subject to collective job
+ control."
+ ::= { hrSystem 5 }
+
+hrSystemProcesses OBJECT-TYPE
+ SYNTAX Gauge32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of process contexts currently loaded or
+ running on this system."
+ ::= { hrSystem 6 }
+
+hrSystemMaxProcesses OBJECT-TYPE
+ SYNTAX Integer32 (0..2147483647)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The maximum number of process contexts this system
+ can support. If there is no fixed maximum, the value
+ should be zero. On systems that have a fixed maximum,
+ this object can help diagnose failures that occur when
+ this maximum is reached."
+ ::= { hrSystem 7 }
+
+-- The Host Resources Storage Group
+
+-- Registration point for storage types, for use with hrStorageType.
+-- These are defined in the HOST-RESOURCES-TYPES module.
+hrStorageTypes OBJECT IDENTIFIER ::= { hrStorage 1 }
+
+hrMemorySize OBJECT-TYPE
+ SYNTAX KBytes
+ UNITS "KBytes"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The amount of physical read-write main memory,
+ typically RAM, contained by the host."
+ ::= { hrStorage 2 }
+
+hrStorageTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF HrStorageEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The (conceptual) table of logical storage areas on
+ the host.
+
+ An entry shall be placed in the storage table for each
+ logical area of storage that is allocated and has
+ fixed resource limits. The amount of storage
+ represented in an entity is the amount actually usable
+ by the requesting entity, and excludes loss due to
+ formatting or file system reference information.
+
+ These entries are associated with logical storage
+ areas, as might be seen by an application, rather than
+ physical storage entities which are typically seen by
+ an operating system. Storage such as tapes and
+ floppies without file systems on them are typically
+ not allocated in chunks by the operating system to
+ requesting applications, and therefore shouldn't
+ appear in this table. Examples of valid storage for
+ this table include disk partitions, file systems, ram
+ (for some architectures this is further segmented into
+ regular memory, extended memory, and so on), backing
+ store for virtual memory (`swap space').
+
+ This table is intended to be a useful diagnostic for
+ `out of memory' and `out of buffers' types of
+ failures. In addition, it can be a useful performance
+ monitoring tool for tracking memory, disk, or buffer
+ usage."
+ ::= { hrStorage 3 }
+
+hrStorageEntry OBJECT-TYPE
+ SYNTAX HrStorageEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A (conceptual) entry for one logical storage area on
+ the host. As an example, an instance of the
+ hrStorageType object might be named hrStorageType.3"
+ INDEX { hrStorageIndex }
+ ::= { hrStorageTable 1 }
+
+HrStorageEntry ::= SEQUENCE {
+ hrStorageIndex Integer32,
+ hrStorageType AutonomousType,
+ hrStorageDescr DisplayString,
+ hrStorageAllocationUnits Integer32,
+ hrStorageSize Integer32,
+ hrStorageUsed Integer32,
+ hrStorageAllocationFailures Counter32
+ }
+
+hrStorageIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..2147483647)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A unique value for each logical storage area
+ contained by the host."
+ ::= { hrStorageEntry 1 }
+
+hrStorageType OBJECT-TYPE
+ SYNTAX AutonomousType
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The type of storage represented by this entry."
+ ::= { hrStorageEntry 2 }
+
+hrStorageDescr OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A description of the type and instance of the storage
+ described by this entry."
+ ::= { hrStorageEntry 3 }
+
+hrStorageAllocationUnits OBJECT-TYPE
+ SYNTAX Integer32 (1..2147483647)
+ UNITS "Bytes"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The size, in bytes, of the data objects allocated
+ from this pool. If this entry is monitoring sectors,
+ blocks, buffers, or packets, for example, this number
+ will commonly be greater than one. Otherwise this
+ number will typically be one."
+ ::= { hrStorageEntry 4 }
+
+hrStorageSize OBJECT-TYPE
+ SYNTAX Integer32 (0..2147483647)
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The size of the storage represented by this entry, in
+ units of hrStorageAllocationUnits. This object is
+ writable to allow remote configuration of the size of
+ the storage area in those cases where such an
+ operation makes sense and is possible on the
+ underlying system. For example, the amount of main
+ memory allocated to a buffer pool might be modified or
+ the amount of disk space allocated to virtual memory
+ might be modified."
+ ::= { hrStorageEntry 5 }
+
+hrStorageUsed OBJECT-TYPE
+ SYNTAX Integer32 (0..2147483647)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The amount of the storage represented by this entry
+ that is allocated, in units of
+ hrStorageAllocationUnits."
+ ::= { hrStorageEntry 6 }
+
+hrStorageAllocationFailures OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of requests for storage represented by
+ this entry that could not be honored due to not enough
+ storage. It should be noted that as this object has a
+ SYNTAX of Counter32, that it does not have a defined
+ initial value. However, it is recommended that this
+ object be initialized to zero, even though management
+ stations must not depend on such an initialization."
+ ::= { hrStorageEntry 7 }
+
+-- The Host Resources Device Group
+--
+-- The device group is useful for identifying and diagnosing the
+-- devices on a system. The hrDeviceTable contains common
+-- information for any type of device. In addition, some devices
+-- have device-specific tables for more detailed information. More
+-- such tables may be defined in the future for other device types.
+
+-- Registration point for device types, for use with hrDeviceType.
+
+-- These are defined in the HOST-RESOURCES-TYPES module.
+hrDeviceTypes OBJECT IDENTIFIER ::= { hrDevice 1 }
+
+hrDeviceTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF HrDeviceEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The (conceptual) table of devices contained by the
+ host."
+ ::= { hrDevice 2 }
+
+hrDeviceEntry OBJECT-TYPE
+ SYNTAX HrDeviceEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A (conceptual) entry for one device contained by the
+ host. As an example, an instance of the hrDeviceType
+ object might be named hrDeviceType.3"
+ INDEX { hrDeviceIndex }
+ ::= { hrDeviceTable 1 }
+
+HrDeviceEntry ::= SEQUENCE {
+ hrDeviceIndex Integer32,
+ hrDeviceType AutonomousType,
+ hrDeviceDescr DisplayString,
+ hrDeviceID ProductID,
+ hrDeviceStatus INTEGER,
+ hrDeviceErrors Counter32
+ }
+
+hrDeviceIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..2147483647)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A unique value for each device contained by the host.
+ The value for each device must remain constant at
+ least from one re-initialization of the agent to the
+ next re-initialization."
+ ::= { hrDeviceEntry 1 }
+
+hrDeviceType OBJECT-TYPE
+ SYNTAX AutonomousType
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An indication of the type of device.
+
+ If this value is
+ `hrDeviceProcessor { hrDeviceTypes 3 }' then an entry
+ exists in the hrProcessorTable which corresponds to
+ this device.
+
+ If this value is
+ `hrDeviceNetwork { hrDeviceTypes 4 }', then an entry
+ exists in the hrNetworkTable which corresponds to this
+ device.
+
+ If this value is
+ `hrDevicePrinter { hrDeviceTypes 5 }', then an entry
+ exists in the hrPrinterTable which corresponds to this
+ device.
+
+ If this value is
+ `hrDeviceDiskStorage { hrDeviceTypes 6 }', then an
+ entry exists in the hrDiskStorageTable which
+ corresponds to this device."
+ ::= { hrDeviceEntry 2 }
+
+hrDeviceDescr OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..64))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A textual description of this device, including the
+ device's manufacturer and revision, and optionally,
+ its serial number."
+ ::= { hrDeviceEntry 3 }
+
+hrDeviceID OBJECT-TYPE
+ SYNTAX ProductID
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The product ID for this device."
+ ::= { hrDeviceEntry 4 }
+
+hrDeviceStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown(1),
+ running(2),
+ warning(3),
+ testing(4),
+ down(5)
+
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The current operational state of the device described
+ by this row of the table. A value unknown(1)
+ indicates that the current state of the device is
+ unknown. running(2) indicates that the device is up
+ and running and that no unusual error conditions are
+ known. The warning(3) state indicates that agent has
+ been informed of an unusual error condition by the
+ operational software (e.g., a disk device driver) but
+ that the device is still 'operational'. An example
+ would be a high number of soft errors on a disk. A
+ value of testing(4), indicates that the device is not
+ available for use because it is in the testing state.
+ The state of down(5) is used only when the agent has
+ been informed that the device is not available for any
+ use."
+ ::= { hrDeviceEntry 5 }
+
+hrDeviceErrors OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of errors detected on this device. It
+ should be noted that as this object has a SYNTAX of
+ Counter32, that it does not have a defined initial
+ value. However, it is recommended that this object be
+ initialized to zero, even though management stations
+ must not depend on such an initialization."
+ ::= { hrDeviceEntry 6 }
+
+hrProcessorTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF HrProcessorEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The (conceptual) table of processors contained by the
+ host.
+
+ Note that this table is potentially sparse: a
+ (conceptual) entry exists only if the correspondent
+ value of the hrDeviceType object is
+ `hrDeviceProcessor'."
+ ::= { hrDevice 3 }
+
+hrProcessorEntry OBJECT-TYPE
+ SYNTAX HrProcessorEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A (conceptual) entry for one processor contained by
+ the host. The hrDeviceIndex in the index represents
+ the entry in the hrDeviceTable that corresponds to the
+ hrProcessorEntry.
+
+ As an example of how objects in this table are named,
+ an instance of the hrProcessorFrwID object might be
+ named hrProcessorFrwID.3"
+ INDEX { hrDeviceIndex }
+ ::= { hrProcessorTable 1 }
+
+HrProcessorEntry ::= SEQUENCE {
+ hrProcessorFrwID ProductID,
+ hrProcessorLoad Integer32
+ }
+
+hrProcessorFrwID OBJECT-TYPE
+ SYNTAX ProductID
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The product ID of the firmware associated with the
+ processor."
+ ::= { hrProcessorEntry 1 }
+
+hrProcessorLoad OBJECT-TYPE
+ SYNTAX Integer32 (0..100)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The average, over the last minute, of the percentage
+ of time that this processor was not idle.
+ Implementations may approximate this one minute
+ smoothing period if necessary."
+ ::= { hrProcessorEntry 2 }
+
+hrNetworkTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF HrNetworkEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The (conceptual) table of network devices contained
+ by the host.
+
+ Note that this table is potentially sparse: a
+ (conceptual) entry exists only if the correspondent
+ value of the hrDeviceType object is
+ `hrDeviceNetwork'."
+ ::= { hrDevice 4 }
+
+hrNetworkEntry OBJECT-TYPE
+ SYNTAX HrNetworkEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A (conceptual) entry for one network device contained
+ by the host. The hrDeviceIndex in the index
+ represents the entry in the hrDeviceTable that
+ corresponds to the hrNetworkEntry.
+
+ As an example of how objects in this table are named,
+ an instance of the hrNetworkIfIndex object might be
+ named hrNetworkIfIndex.3"
+ INDEX { hrDeviceIndex }
+ ::= { hrNetworkTable 1 }
+
+HrNetworkEntry ::= SEQUENCE {
+ hrNetworkIfIndex InterfaceIndexOrZero
+ }
+
+hrNetworkIfIndex OBJECT-TYPE
+ SYNTAX InterfaceIndexOrZero
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of ifIndex which corresponds to this
+ network device. If this device is not represented in
+ the ifTable, then this value shall be zero."
+ ::= { hrNetworkEntry 1 }
+
+hrPrinterTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF HrPrinterEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The (conceptual) table of printers local to the host.
+
+ Note that this table is potentially sparse: a
+ (conceptual) entry exists only if the correspondent
+ value of the hrDeviceType object is
+ `hrDevicePrinter'."
+ ::= { hrDevice 5 }
+
+hrPrinterEntry OBJECT-TYPE
+ SYNTAX HrPrinterEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A (conceptual) entry for one printer local to the
+ host. The hrDeviceIndex in the index represents the
+ entry in the hrDeviceTable that corresponds to the
+ hrPrinterEntry.
+
+ As an example of how objects in this table are named,
+ an instance of the hrPrinterStatus object might be
+ named hrPrinterStatus.3"
+ INDEX { hrDeviceIndex }
+ ::= { hrPrinterTable 1 }
+
+HrPrinterEntry ::= SEQUENCE {
+ hrPrinterStatus INTEGER,
+ hrPrinterDetectedErrorState OCTET STRING
+ }
+
+hrPrinterStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ other(1),
+ unknown(2),
+ idle(3),
+ printing(4),
+ warmup(5)
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The current status of this printer device."
+ ::= { hrPrinterEntry 1 }
+
+hrPrinterDetectedErrorState OBJECT-TYPE
+ SYNTAX OCTET STRING
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "This object represents any error conditions detected
+ by the printer. The error conditions are encoded as
+ bits in an octet string, with the following
+ definitions:
+
+ Condition Bit #
+
+ lowPaper 0
+
+ noPaper 1
+ lowToner 2
+ noToner 3
+ doorOpen 4
+ jammed 5
+ offline 6
+ serviceRequested 7
+ inputTrayMissing 8
+ outputTrayMissing 9
+ markerSupplyMissing 10
+ outputNearFull 11
+ outputFull 12
+ inputTrayEmpty 13
+ overduePreventMaint 14
+
+ Bits are numbered starting with the most significant
+ bit of the first byte being bit 0, the least
+ significant bit of the first byte being bit 7, the
+ most significant bit of the second byte being bit 8,
+ and so on. A one bit encodes that the condition was
+ detected, while a zero bit encodes that the condition
+ was not detected.
+
+ This object is useful for alerting an operator to
+ specific warning or error conditions that may occur,
+ especially those requiring human intervention."
+ ::= { hrPrinterEntry 2 }
+
+hrDiskStorageTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF HrDiskStorageEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The (conceptual) table of long-term storage devices
+ contained by the host. In particular, disk devices
+ accessed remotely over a network are not included
+ here.
+
+ Note that this table is potentially sparse: a
+ (conceptual) entry exists only if the correspondent
+ value of the hrDeviceType object is
+ `hrDeviceDiskStorage'."
+ ::= { hrDevice 6 }
+
+hrDiskStorageEntry OBJECT-TYPE
+ SYNTAX HrDiskStorageEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A (conceptual) entry for one long-term storage device
+ contained by the host. The hrDeviceIndex in the index
+ represents the entry in the hrDeviceTable that
+ corresponds to the hrDiskStorageEntry. As an example,
+ an instance of the hrDiskStorageCapacity object might
+ be named hrDiskStorageCapacity.3"
+ INDEX { hrDeviceIndex }
+ ::= { hrDiskStorageTable 1 }
+
+HrDiskStorageEntry ::= SEQUENCE {
+ hrDiskStorageAccess INTEGER,
+ hrDiskStorageMedia INTEGER,
+ hrDiskStorageRemoveble TruthValue,
+ hrDiskStorageCapacity KBytes
+ }
+
+hrDiskStorageAccess OBJECT-TYPE
+ SYNTAX INTEGER {
+ readWrite(1),
+ readOnly(2)
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An indication if this long-term storage device is
+ readable and writable or only readable. This should
+ reflect the media type, any write-protect mechanism,
+ and any device configuration that affects the entire
+ device."
+ ::= { hrDiskStorageEntry 1 }
+
+hrDiskStorageMedia OBJECT-TYPE
+ SYNTAX INTEGER {
+ other(1),
+ unknown(2),
+ hardDisk(3),
+ floppyDisk(4),
+ opticalDiskROM(5),
+ opticalDiskWORM(6), -- Write Once Read Many
+ opticalDiskRW(7),
+ ramDisk(8)
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An indication of the type of media used in this long-
+ term storage device."
+ ::= { hrDiskStorageEntry 2 }
+
+hrDiskStorageRemoveble OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Denotes whether or not the disk media may be removed
+ from the drive."
+ ::= { hrDiskStorageEntry 3 }
+
+hrDiskStorageCapacity OBJECT-TYPE
+ SYNTAX KBytes
+ UNITS "KBytes"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total size for this long-term storage device. If
+ the media is removable and is currently removed, this
+ value should be zero."
+ ::= { hrDiskStorageEntry 4 }
+
+hrPartitionTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF HrPartitionEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The (conceptual) table of partitions for long-term
+ storage devices contained by the host. In particular,
+ partitions accessed remotely over a network are not
+ included here."
+ ::= { hrDevice 7 }
+
+hrPartitionEntry OBJECT-TYPE
+ SYNTAX HrPartitionEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A (conceptual) entry for one partition. The
+ hrDeviceIndex in the index represents the entry in the
+ hrDeviceTable that corresponds to the
+ hrPartitionEntry.
+
+ As an example of how objects in this table are named,
+ an instance of the hrPartitionSize object might be
+ named hrPartitionSize.3.1"
+ INDEX { hrDeviceIndex, hrPartitionIndex }
+ ::= { hrPartitionTable 1 }
+
+HrPartitionEntry ::= SEQUENCE {
+ hrPartitionIndex Integer32,
+ hrPartitionLabel InternationalDisplayString,
+ hrPartitionID OCTET STRING,
+ hrPartitionSize KBytes,
+ hrPartitionFSIndex Integer32
+ }
+
+hrPartitionIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..2147483647)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A unique value for each partition on this long-term
+ storage device. The value for each long-term storage
+ device must remain constant at least from one re-
+ initialization of the agent to the next re-
+ initialization."
+ ::= { hrPartitionEntry 1 }
+
+hrPartitionLabel OBJECT-TYPE
+ SYNTAX InternationalDisplayString (SIZE (0..128))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A textual description of this partition."
+ ::= { hrPartitionEntry 2 }
+
+hrPartitionID OBJECT-TYPE
+ SYNTAX OCTET STRING
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A descriptor which uniquely represents this partition
+ to the responsible operating system. On some systems,
+ this might take on a binary representation."
+ ::= { hrPartitionEntry 3 }
+
+hrPartitionSize OBJECT-TYPE
+ SYNTAX KBytes
+ UNITS "KBytes"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The size of this partition."
+ ::= { hrPartitionEntry 4 }
+
+hrPartitionFSIndex OBJECT-TYPE
+ SYNTAX Integer32 (0..2147483647)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The index of the file system mounted on this
+ partition. If no file system is mounted on this
+ partition, then this value shall be zero. Note that
+ multiple partitions may point to one file system,
+ denoting that that file system resides on those
+ partitions. Multiple file systems may not reside on
+ one partition."
+ ::= { hrPartitionEntry 5 }
+
+-- The File System Table
+
+-- Registration point for popular File System types,
+-- for use with hrFSType. These are defined in the
+-- HOST-RESOURCES-TYPES module.
+hrFSTypes OBJECT IDENTIFIER ::= { hrDevice 9 }
+
+hrFSTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF HrFSEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The (conceptual) table of file systems local to this
+ host or remotely mounted from a file server. File
+ systems that are in only one user's environment on a
+ multi-user system will not be included in this table."
+ ::= { hrDevice 8 }
+
+hrFSEntry OBJECT-TYPE
+ SYNTAX HrFSEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A (conceptual) entry for one file system local to
+ this host or remotely mounted from a file server.
+ File systems that are in only one user's environment
+ on a multi-user system will not be included in this
+ table.
+
+ As an example of how objects in this table are named,
+ an instance of the hrFSMountPoint object might be
+ named hrFSMountPoint.3"
+ INDEX { hrFSIndex }
+ ::= { hrFSTable 1 }
+
+HrFSEntry ::= SEQUENCE {
+ hrFSIndex Integer32,
+ hrFSMountPoint InternationalDisplayString,
+ hrFSRemoteMountPoint InternationalDisplayString,
+ hrFSType AutonomousType,
+ hrFSAccess INTEGER,
+ hrFSBootable TruthValue,
+ hrFSStorageIndex Integer32,
+ hrFSLastFullBackupDate DateAndTime,
+ hrFSLastPartialBackupDate DateAndTime
+ }
+
+hrFSIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..2147483647)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A unique value for each file system local to this
+ host. The value for each file system must remain
+ constant at least from one re-initialization of the
+ agent to the next re-initialization."
+ ::= { hrFSEntry 1 }
+
+hrFSMountPoint OBJECT-TYPE
+ SYNTAX InternationalDisplayString (SIZE(0..128))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The path name of the root of this file system."
+ ::= { hrFSEntry 2 }
+
+hrFSRemoteMountPoint OBJECT-TYPE
+ SYNTAX InternationalDisplayString (SIZE(0..128))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A description of the name and/or address of the
+ server that this file system is mounted from. This
+ may also include parameters such as the mount point on
+ the remote file system. If this is not a remote file
+ system, this string should have a length of zero."
+ ::= { hrFSEntry 3 }
+
+hrFSType OBJECT-TYPE
+ SYNTAX AutonomousType
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of this object identifies the type of this
+ file system."
+ ::= { hrFSEntry 4 }
+
+hrFSAccess OBJECT-TYPE
+ SYNTAX INTEGER {
+ readWrite(1),
+ readOnly(2)
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An indication if this file system is logically
+ configured by the operating system to be readable and
+ writable or only readable. This does not represent
+ any local access-control policy, except one that is
+ applied to the file system as a whole."
+ ::= { hrFSEntry 5 }
+
+hrFSBootable OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A flag indicating whether this file system is
+ bootable."
+ ::= { hrFSEntry 6 }
+
+hrFSStorageIndex OBJECT-TYPE
+ SYNTAX Integer32 (0..2147483647)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The index of the hrStorageEntry that represents
+ information about this file system. If there is no
+ such information available, then this value shall be
+ zero. The relevant storage entry will be useful in
+ tracking the percent usage of this file system and
+ diagnosing errors that may occur when it runs out of
+ space."
+ ::= { hrFSEntry 7 }
+
+hrFSLastFullBackupDate OBJECT-TYPE
+ SYNTAX DateAndTime
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The last date at which this complete file system was
+
+ copied to another storage device for backup. This
+ information is useful for ensuring that backups are
+ being performed regularly.
+
+ If this information is not known, then this variable
+ shall have the value corresponding to January 1, year
+ 0000, 00:00:00.0, which is encoded as
+ (hex)'00 00 01 01 00 00 00 00'."
+ ::= { hrFSEntry 8 }
+
+hrFSLastPartialBackupDate OBJECT-TYPE
+ SYNTAX DateAndTime
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The last date at which a portion of this file system
+ was copied to another storage device for backup. This
+ information is useful for ensuring that backups are
+ being performed regularly.
+
+ If this information is not known, then this variable
+ shall have the value corresponding to January 1, year
+ 0000, 00:00:00.0, which is encoded as
+ (hex)'00 00 01 01 00 00 00 00'."
+ ::= { hrFSEntry 9 }
+
+-- The Host Resources Running Software Group
+--
+-- The hrSWRunTable contains an entry for each distinct piece of
+-- software that is running or loaded into physical or virtual
+-- memory in preparation for running. This includes the host's
+-- operating system, device drivers, and applications.
+
+hrSWOSIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..2147483647)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of the hrSWRunIndex for the hrSWRunEntry
+ that represents the primary operating system running
+ on this host. This object is useful for quickly and
+ uniquely identifying that primary operating system."
+ ::= { hrSWRun 1 }
+
+hrSWRunTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF HrSWRunEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The (conceptual) table of software running on the
+ host."
+ ::= { hrSWRun 2 }
+
+hrSWRunEntry OBJECT-TYPE
+ SYNTAX HrSWRunEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A (conceptual) entry for one piece of software
+ running on the host Note that because the installed
+ software table only contains information for software
+ stored locally on this host, not every piece of
+ running software will be found in the installed
+ software table. This is true of software that was
+ loaded and run from a non-local source, such as a
+ network-mounted file system.
+
+ As an example of how objects in this table are named,
+ an instance of the hrSWRunName object might be named
+ hrSWRunName.1287"
+ INDEX { hrSWRunIndex }
+ ::= { hrSWRunTable 1 }
+
+HrSWRunEntry ::= SEQUENCE {
+ hrSWRunIndex Integer32,
+ hrSWRunName InternationalDisplayString,
+ hrSWRunID ProductID,
+ hrSWRunPath InternationalDisplayString,
+ hrSWRunParameters InternationalDisplayString,
+ hrSWRunType INTEGER,
+ hrSWRunStatus INTEGER
+ }
+
+hrSWRunIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..2147483647)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A unique value for each piece of software running on
+ the host. Wherever possible, this should be the
+ system's native, unique identification number."
+ ::= { hrSWRunEntry 1 }
+
+hrSWRunName OBJECT-TYPE
+ SYNTAX InternationalDisplayString (SIZE (0..64))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A textual description of this running piece of
+ software, including the manufacturer, revision, and
+ the name by which it is commonly known. If this
+ software was installed locally, this should be the
+ same string as used in the corresponding
+ hrSWInstalledName."
+ ::= { hrSWRunEntry 2 }
+
+hrSWRunID OBJECT-TYPE
+ SYNTAX ProductID
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The product ID of this running piece of software."
+ ::= { hrSWRunEntry 3 }
+
+hrSWRunPath OBJECT-TYPE
+ SYNTAX InternationalDisplayString (SIZE(0..128))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A description of the location on long-term storage
+ (e.g. a disk drive) from which this software was
+ loaded."
+ ::= { hrSWRunEntry 4 }
+
+hrSWRunParameters OBJECT-TYPE
+ SYNTAX InternationalDisplayString (SIZE(0..128))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A description of the parameters supplied to this
+ software when it was initially loaded."
+ ::= { hrSWRunEntry 5 }
+
+hrSWRunType OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown(1),
+ operatingSystem(2),
+ deviceDriver(3),
+ application(4)
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The type of this software."
+ ::= { hrSWRunEntry 6 }
+
+hrSWRunStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ running(1),
+ runnable(2), -- waiting for resource
+ -- (i.e., CPU, memory, IO)
+ notRunnable(3), -- loaded but waiting for event
+ invalid(4) -- not loaded
+ }
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The status of this running piece of software.
+ Setting this value to invalid(4) shall cause this
+ software to stop running and to be unloaded. Sets to
+ other values are not valid."
+ ::= { hrSWRunEntry 7 }
+
+-- The Host Resources Running Software Performance Group
+--
+-- The hrSWRunPerfTable contains an entry corresponding to
+-- each entry in the hrSWRunTable.
+
+hrSWRunPerfTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF HrSWRunPerfEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The (conceptual) table of running software
+ performance metrics."
+ ::= { hrSWRunPerf 1 }
+
+hrSWRunPerfEntry OBJECT-TYPE
+ SYNTAX HrSWRunPerfEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A (conceptual) entry containing software performance
+ metrics. As an example, an instance of the
+ hrSWRunPerfCPU object might be named
+ hrSWRunPerfCPU.1287"
+ AUGMENTS { hrSWRunEntry } -- This table augments information in
+ -- the hrSWRunTable.
+ ::= { hrSWRunPerfTable 1 }
+
+HrSWRunPerfEntry ::= SEQUENCE {
+ hrSWRunPerfCPU Integer32,
+ hrSWRunPerfMem KBytes
+}
+
+hrSWRunPerfCPU OBJECT-TYPE
+ SYNTAX Integer32 (0..2147483647)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of centi-seconds of the total system's CPU
+ resources consumed by this process. Note that on a
+ multi-processor system, this value may increment by
+ more than one centi-second in one centi-second of real
+ (wall clock) time."
+ ::= { hrSWRunPerfEntry 1 }
+
+hrSWRunPerfMem OBJECT-TYPE
+ SYNTAX KBytes
+ UNITS "KBytes"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total amount of real system memory allocated to
+ this process."
+ ::= { hrSWRunPerfEntry 2 }
+
+-- The Host Resources Installed Software Group
+--
+-- The hrSWInstalledTable contains an entry for each piece
+-- of software installed in long-term storage (e.g. a disk
+-- drive) locally on this host. Note that this does not
+-- include software loadable remotely from a network
+-- server.
+--
+-- Different implementations may track software in varying
+-- ways. For example, while some implementations may track
+-- executable files as distinct pieces of software, other
+-- implementations may use other strategies such as keeping
+-- track of software "packages" (e.g., related groups of files)
+-- or keeping track of system or application "patches".
+--
+-- This table is useful for identifying and inventorying
+-- software on a host and for diagnosing incompatibility
+-- and version mismatch problems between various pieces
+-- of hardware and software.
+
+hrSWInstalledLastChange OBJECT-TYPE
+ SYNTAX TimeTicks
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime when an entry in the
+ hrSWInstalledTable was last added, renamed, or
+ deleted. Because this table is likely to contain many
+ entries, polling of this object allows a management
+ station to determine when re-downloading of the table
+ might be useful."
+ ::= { hrSWInstalled 1 }
+
+hrSWInstalledLastUpdateTime OBJECT-TYPE
+ SYNTAX TimeTicks
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime when the hrSWInstalledTable
+ was last completely updated. Because caching of this
+ data will be a popular implementation strategy,
+ retrieval of this object allows a management station
+ to obtain a guarantee that no data in this table is
+ older than the indicated time."
+ ::= { hrSWInstalled 2 }
+
+hrSWInstalledTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF HrSWInstalledEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The (conceptual) table of software installed on this
+ host."
+ ::= { hrSWInstalled 3 }
+
+hrSWInstalledEntry OBJECT-TYPE
+ SYNTAX HrSWInstalledEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A (conceptual) entry for a piece of software
+ installed on this host.
+
+ As an example of how objects in this table are named,
+ an instance of the hrSWInstalledName object might be
+ named hrSWInstalledName.96"
+ INDEX { hrSWInstalledIndex }
+ ::= { hrSWInstalledTable 1 }
+
+HrSWInstalledEntry ::= SEQUENCE {
+ hrSWInstalledIndex Integer32,
+ hrSWInstalledName InternationalDisplayString,
+ hrSWInstalledID ProductID,
+ hrSWInstalledType INTEGER,
+ hrSWInstalledDate DateAndTime
+}
+
+hrSWInstalledIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..2147483647)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A unique value for each piece of software installed
+ on the host. This value shall be in the range from 1
+ to the number of pieces of software installed on the
+ host."
+ ::= { hrSWInstalledEntry 1 }
+
+hrSWInstalledName OBJECT-TYPE
+ SYNTAX InternationalDisplayString (SIZE (0..64))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A textual description of this installed piece of
+ software, including the manufacturer, revision, the
+ name by which it is commonly known, and optionally,
+ its serial number."
+ ::= { hrSWInstalledEntry 2 }
+
+hrSWInstalledID OBJECT-TYPE
+ SYNTAX ProductID
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The product ID of this installed piece of software."
+ ::= { hrSWInstalledEntry 3 }
+
+hrSWInstalledType OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown(1),
+ operatingSystem(2),
+ deviceDriver(3),
+ application(4)
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The type of this software."
+ ::= { hrSWInstalledEntry 4 }
+
+hrSWInstalledDate OBJECT-TYPE
+ SYNTAX DateAndTime
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The last-modification date of this application as it
+ would appear in a directory listing.
+
+ If this information is not known, then this variable
+ shall have the value corresponding to January 1, year
+ 0000, 00:00:00.0, which is encoded as
+ (hex)'00 00 01 01 00 00 00 00'."
+ ::= { hrSWInstalledEntry 5 }
+
+-- Conformance information
+
+hrMIBCompliances OBJECT IDENTIFIER ::= { hrMIBAdminInfo 2 }
+hrMIBGroups OBJECT IDENTIFIER ::= { hrMIBAdminInfo 3 }
+
+-- Compliance Statements
+hrMIBCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The requirements for conformance to the Host Resources MIB."
+ MODULE -- this module
+ MANDATORY-GROUPS { hrSystemGroup, hrStorageGroup,
+ hrDeviceGroup }
+
+ OBJECT hrSystemDate
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+
+ OBJECT hrSystemInitialLoadDevice
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+
+ OBJECT hrSystemInitialLoadParameters
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+
+ OBJECT hrStorageSize
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+
+ OBJECT hrFSLastFullBackupDate
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+
+ OBJECT hrFSLastPartialBackupDate
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+
+ GROUP hrSWRunGroup
+ DESCRIPTION
+ "The Running Software Group. Implementation
+ of this group is mandatory only when the
+ hrSWRunPerfGroup is implemented."
+
+ OBJECT hrSWRunStatus
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+
+ GROUP hrSWRunPerfGroup
+ DESCRIPTION
+ "The Running Software Performance Group.
+ Implementation of this group is at the discretion
+ of the implementor."
+
+ GROUP hrSWInstalledGroup
+ DESCRIPTION
+ "The Installed Software Group.
+ Implementation of this group is at the discretion
+ of the implementor."
+ ::= { hrMIBCompliances 1 }
+
+ hrSystemGroup OBJECT-GROUP
+ OBJECTS {
+ hrSystemUptime, hrSystemDate,
+ hrSystemInitialLoadDevice,
+ hrSystemInitialLoadParameters,
+ hrSystemNumUsers, hrSystemProcesses,
+ hrSystemMaxProcesses
+ }
+ STATUS current
+ DESCRIPTION
+ "The Host Resources System Group."
+ ::= { hrMIBGroups 1 }
+
+ hrStorageGroup OBJECT-GROUP
+ OBJECTS {
+ hrMemorySize, hrStorageIndex, hrStorageType,
+ hrStorageDescr, hrStorageAllocationUnits,
+ hrStorageSize, hrStorageUsed,
+ hrStorageAllocationFailures
+ }
+ STATUS current
+ DESCRIPTION
+ "The Host Resources Storage Group."
+ ::= { hrMIBGroups 2 }
+
+ hrDeviceGroup OBJECT-GROUP
+ OBJECTS {
+ hrDeviceIndex, hrDeviceType, hrDeviceDescr,
+ hrDeviceID, hrDeviceStatus, hrDeviceErrors,
+ hrProcessorFrwID, hrProcessorLoad,
+ hrNetworkIfIndex, hrPrinterStatus,
+ hrPrinterDetectedErrorState,
+ hrDiskStorageAccess, hrDiskStorageMedia,
+ hrDiskStorageRemoveble, hrDiskStorageCapacity,
+ hrPartitionIndex, hrPartitionLabel,
+ hrPartitionID, hrPartitionSize,
+ hrPartitionFSIndex, hrFSIndex, hrFSMountPoint,
+ hrFSRemoteMountPoint, hrFSType, hrFSAccess,
+ hrFSBootable, hrFSStorageIndex,
+ hrFSLastFullBackupDate,
+ hrFSLastPartialBackupDate
+ }
+ STATUS current
+ DESCRIPTION
+ "The Host Resources Device Group."
+ ::= { hrMIBGroups 3 }
+
+ hrSWRunGroup OBJECT-GROUP
+ OBJECTS {
+ hrSWOSIndex, hrSWRunIndex, hrSWRunName,
+ hrSWRunID, hrSWRunPath, hrSWRunParameters,
+ hrSWRunType, hrSWRunStatus
+ }
+ STATUS current
+ DESCRIPTION
+ "The Host Resources Running Software Group."
+ ::= { hrMIBGroups 4 }
+
+ hrSWRunPerfGroup OBJECT-GROUP
+ OBJECTS { hrSWRunPerfCPU, hrSWRunPerfMem }
+ STATUS current
+ DESCRIPTION
+ "The Host Resources Running Software
+ Performance Group."
+ ::= { hrMIBGroups 5 }
+
+ hrSWInstalledGroup OBJECT-GROUP
+ OBJECTS {
+ hrSWInstalledLastChange,
+ hrSWInstalledLastUpdateTime,
+ hrSWInstalledIndex, hrSWInstalledName,
+ hrSWInstalledID, hrSWInstalledType,
+ hrSWInstalledDate
+ }
+ STATUS current
+ DESCRIPTION
+ "The Host Resources Installed Software Group."
+ ::= { hrMIBGroups 6 }
+
+END
diff --git a/php/extras/mibs/HOST-RESOURCES-TYPES.txt b/php/extras/mibs/HOST-RESOURCES-TYPES.txt
new file mode 100644
index 000000000..d25bb4032
--- /dev/null
+++ b/php/extras/mibs/HOST-RESOURCES-TYPES.txt
@@ -0,0 +1,389 @@
+HOST-RESOURCES-TYPES DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-IDENTITY FROM SNMPv2-SMI
+ hrMIBAdminInfo, hrStorage, hrDevice FROM HOST-RESOURCES-MIB;
+
+hostResourcesTypesModule MODULE-IDENTITY
+ LAST-UPDATED "200003060000Z" -- 6 March, 2000
+ ORGANIZATION "IETF Host Resources MIB Working Group"
+ CONTACT-INFO
+ "Steve Waldbusser
+ Postal: Lucent Technologies, Inc.
+ 1213 Innsbruck Dr.
+ Sunnyvale, CA 94089
+ USA
+ Phone: 650-318-1251
+ Fax: 650-318-1633
+ Email: waldbusser@ins.com
+
+ In addition, the Host Resources MIB mailing list is dedicated
+ to discussion of this MIB. To join the mailing list, send a
+ request message to hostmib-request@andrew.cmu.edu. The mailing
+ list address is hostmib@andrew.cmu.edu."
+ DESCRIPTION
+ "This MIB module registers type definitions for
+ storage types, device types, and file system types.
+
+ After the initial revision, this module will be
+ maintained by IANA."
+ REVISION "200003060000Z" -- 6 March 2000
+ DESCRIPTION
+ "The original version of this module, published as RFC
+ 2790."
+ ::= { hrMIBAdminInfo 4 }
+
+-- Registrations for some storage types, for use with hrStorageType
+hrStorageTypes OBJECT IDENTIFIER ::= { hrStorage 1 }
+
+hrStorageOther OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The storage type identifier used when no other defined
+ type is appropriate."
+ ::= { hrStorageTypes 1 }
+
+hrStorageRam OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The storage type identifier used for RAM."
+ ::= { hrStorageTypes 2 }
+
+hrStorageVirtualMemory OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The storage type identifier used for virtual memory,
+ temporary storage of swapped or paged memory."
+ ::= { hrStorageTypes 3 }
+
+hrStorageFixedDisk OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The storage type identifier used for non-removable
+ rigid rotating magnetic storage devices."
+ ::= { hrStorageTypes 4 }
+
+hrStorageRemovableDisk OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The storage type identifier used for removable rigid
+ rotating magnetic storage devices."
+ ::= { hrStorageTypes 5 }
+
+hrStorageFloppyDisk OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The storage type identifier used for non-rigid rotating
+ magnetic storage devices."
+ ::= { hrStorageTypes 6 }
+
+hrStorageCompactDisc OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The storage type identifier used for read-only rotating
+ optical storage devices."
+ ::= { hrStorageTypes 7 }
+
+hrStorageRamDisk OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The storage type identifier used for a file system that
+ is stored in RAM."
+ ::= { hrStorageTypes 8 }
+
+hrStorageFlashMemory OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The storage type identifier used for flash memory."
+ ::= { hrStorageTypes 9 }
+
+hrStorageNetworkDisk OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The storage type identifier used for a
+ networked file system."
+ ::= { hrStorageTypes 10 }
+
+-- Registrations for some device types, for use with hrDeviceType
+hrDeviceTypes OBJECT IDENTIFIER ::= { hrDevice 1 }
+
+hrDeviceOther OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The device type identifier used when no other defined
+ type is appropriate."
+ ::= { hrDeviceTypes 1 }
+
+hrDeviceUnknown OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The device type identifier used when the device type is
+ unknown."
+ ::= { hrDeviceTypes 2 }
+
+hrDeviceProcessor OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The device type identifier used for a CPU."
+ ::= { hrDeviceTypes 3 }
+
+hrDeviceNetwork OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The device type identifier used for a network interface."
+ ::= { hrDeviceTypes 4 }
+
+hrDevicePrinter OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The device type identifier used for a printer."
+ ::= { hrDeviceTypes 5 }
+
+hrDeviceDiskStorage OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The device type identifier used for a disk drive."
+ ::= { hrDeviceTypes 6 }
+
+hrDeviceVideo OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The device type identifier used for a video device."
+ ::= { hrDeviceTypes 10 }
+
+hrDeviceAudio OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The device type identifier used for an audio device."
+ ::= { hrDeviceTypes 11 }
+
+hrDeviceCoprocessor OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The device type identifier used for a co-processor."
+ ::= { hrDeviceTypes 12 }
+
+hrDeviceKeyboard OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The device type identifier used for a keyboard device."
+ ::= { hrDeviceTypes 13 }
+
+hrDeviceModem OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The device type identifier used for a modem."
+ ::= { hrDeviceTypes 14 }
+
+hrDeviceParallelPort OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The device type identifier used for a parallel port."
+ ::= { hrDeviceTypes 15 }
+
+hrDevicePointing OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The device type identifier used for a pointing device
+ (e.g., a mouse)."
+ ::= { hrDeviceTypes 16 }
+
+hrDeviceSerialPort OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The device type identifier used for a serial port."
+ ::= { hrDeviceTypes 17 }
+
+hrDeviceTape OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The device type identifier used for a tape storage device."
+ ::= { hrDeviceTypes 18 }
+
+hrDeviceClock OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The device type identifier used for a clock device."
+ ::= { hrDeviceTypes 19 }
+
+hrDeviceVolatileMemory OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The device type identifier used for a volatile memory
+ storage device."
+ ::= { hrDeviceTypes 20 }
+
+hrDeviceNonVolatileMemory OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The device type identifier used for a non-volatile memory
+
+ storage device."
+ ::= { hrDeviceTypes 21 }
+
+-- Registrations for some popular File System types,
+-- for use with hrFSType.
+hrFSTypes OBJECT IDENTIFIER ::= { hrDevice 9 }
+
+hrFSOther OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The file system type identifier used when no other
+ defined type is appropriate."
+ ::= { hrFSTypes 1 }
+
+hrFSUnknown OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The file system type identifier used when the type of
+ file system is unknown."
+ ::= { hrFSTypes 2 }
+
+hrFSBerkeleyFFS OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The file system type identifier used for the
+ Berkeley Fast File System."
+ ::= { hrFSTypes 3 }
+
+hrFSSys5FS OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The file system type identifier used for the
+ System V File System."
+ ::= { hrFSTypes 4 }
+
+hrFSFat OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The file system type identifier used for
+ DOS's FAT file system."
+ ::= { hrFSTypes 5 }
+
+hrFSHPFS OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The file system type identifier used for OS/2's
+ High Performance File System."
+ ::= { hrFSTypes 6 }
+
+hrFSHFS OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The file system type identifier used for the
+ Macintosh Hierarchical File System."
+ ::= { hrFSTypes 7 }
+
+hrFSMFS OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The file system type identifier used for the
+ Macintosh File System."
+ ::= { hrFSTypes 8 }
+
+hrFSNTFS OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The file system type identifier used for the
+ Windows NT File System."
+ ::= { hrFSTypes 9 }
+
+hrFSVNode OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The file system type identifier used for the
+ VNode File System."
+ ::= { hrFSTypes 10 }
+
+hrFSJournaled OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The file system type identifier used for the
+ Journaled File System."
+ ::= { hrFSTypes 11 }
+
+hrFSiso9660 OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The file system type identifier used for the
+ ISO 9660 File System for CD's."
+ ::= { hrFSTypes 12 }
+
+hrFSRockRidge OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The file system type identifier used for the
+ RockRidge File System for CD's."
+ ::= { hrFSTypes 13 }
+
+hrFSNFS OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The file system type identifier used for the
+ NFS File System."
+ ::= { hrFSTypes 14 }
+
+hrFSNetware OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The file system type identifier used for the
+ Netware File System."
+ ::= { hrFSTypes 15 }
+
+hrFSAFS OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The file system type identifier used for the
+ Andrew File System."
+ ::= { hrFSTypes 16 }
+
+hrFSDFS OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The file system type identifier used for the
+ OSF DCE Distributed File System."
+ ::= { hrFSTypes 17 }
+
+hrFSAppleshare OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The file system type identifier used for the
+ AppleShare File System."
+ ::= { hrFSTypes 18 }
+
+hrFSRFS OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The file system type identifier used for the
+ RFS File System."
+ ::= { hrFSTypes 19 }
+
+hrFSDGCFS OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The file system type identifier used for the
+ Data General DGCFS."
+ ::= { hrFSTypes 20 }
+
+hrFSBFS OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The file system type identifier used for the
+ SVR4 Boot File System."
+ ::= { hrFSTypes 21 }
+
+hrFSFAT32 OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The file system type identifier used for the
+ Windows FAT32 File System."
+ ::= { hrFSTypes 22 }
+
+hrFSLinuxExt2 OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The file system type identifier used for the
+ Linux EXT2 File System."
+ ::= { hrFSTypes 23 }
+
+END
diff --git a/php/extras/mibs/IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt b/php/extras/mibs/IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt
new file mode 100644
index 000000000..1680acecb
--- /dev/null
+++ b/php/extras/mibs/IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt
@@ -0,0 +1,121 @@
+ IANA-ADDRESS-FAMILY-NUMBERS-MIB DEFINITIONS ::= BEGIN
+
+ IMPORTS
+ MODULE-IDENTITY,
+ mib-2 FROM SNMPv2-SMI
+ TEXTUAL-CONVENTION FROM SNMPv2-TC;
+
+ ianaAddressFamilyNumbers MODULE-IDENTITY
+ LAST-UPDATED "200203140000Z" -- March 14, 2002
+ ORGANIZATION "IANA"
+ CONTACT-INFO
+ "Postal: Internet Assigned Numbers Authority
+ Internet Corporation for Assigned Names
+ and Numbers
+ 4676 Admiralty Way, Suite 330
+ Marina del Rey, CA 90292-6601
+ USA
+
+ Tel: +1 310-823-9358
+ E-Mail: iana@iana.org"
+ DESCRIPTION
+ "The MIB module defines the AddressFamilyNumbers
+ textual convention."
+
+ -- revision history
+
+ REVISION "200203140000Z" -- March 14, 2002
+ DESCRIPTION "AddressFamilyNumbers assignment 22 to
+ fibreChannelWWPN. AddressFamilyNumbers
+ assignment 23 to fibreChannelWWNN.
+ AddressFamilyNumers assignment 24 to gwid."
+
+ REVISION "200009080000Z" -- September 8, 2000
+ DESCRIPTION "AddressFamilyNumbers assignment 19 to xtpOverIpv4.
+ AddressFamilyNumbers assignment 20 to xtpOverIpv6.
+ AddressFamilyNumbers assignment 21 to xtpNativeModeXTP."
+
+ REVISION "200003010000Z" -- March 1, 2000
+ DESCRIPTION "AddressFamilyNumbers assignment 17 to distinguishedName.
+ AddressFamilyNumbers assignment 18 to asNumber."
+
+ REVISION "200002040000Z" -- February 4, 2000
+ DESCRIPTION "AddressFamilyNumbers assignment 16 to dns."
+
+ REVISION "9908260000Z" -- August 26, 1999
+ DESCRIPTION "Initial version, published as RFC 2677."
+ ::= { mib-2 72 }
+
+ AddressFamilyNumbers ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "The definition of this textual convention with the
+ addition of newly assigned values is published
+ periodically by the IANA, in either the Assigned
+ Numbers RFC, or some derivative of it specific to
+ Internet Network Management number assignments.
+ (The latest arrangements can be obtained by
+ contacting the IANA.)
+
+ The enumerations are described as:
+
+ other(0), -- none of the following
+ ipV4(1), -- IP Version 4
+ ipV6(2), -- IP Version 6
+ nsap(3), -- NSAP
+ hdlc(4), -- (8-bit multidrop)
+ bbn1822(5),
+ all802(6), -- (includes all 802 media
+ -- plus Ethernet 'canonical format')
+ e163(7),
+ e164(8), -- (SMDS, Frame Relay, ATM)
+ f69(9), -- (Telex)
+ x121(10), -- (X.25, Frame Relay)
+ ipx(11), -- IPX (Internet Protocol Exchange)
+ appleTalk(12), -- Apple Talk
+ decnetIV(13), -- DEC Net Phase IV
+ banyanVines(14), -- Banyan Vines
+ e164withNsap(15),
+ -- (E.164 with NSAP format subaddress)
+ dns(16), -- (Domain Name System)
+ distinguishedName(17), -- (Distinguished Name, per X.500)
+ asNumber(18), -- (16-bit quantity, per the AS number space)
+ xtpOverIpv4(19), -- XTP over IP version 4
+ xtpOverIpv6(20), -- XTP over IP version 6
+ xtpNativeModeXTP(21), -- XTP native mode XTP
+ fibreChannelWWPN(22), -- Fibre Channel World-Wide Port Name
+ fibreChannelWWNN(23), -- Fibre Channel World-Wide Node Name
+ gwid(24), -- Gateway Identifier
+ reserved(65535)
+
+ Requests for new values should be made to IANA via
+ email (iana@iana.org)."
+ SYNTAX INTEGER {
+ other(0),
+ ipV4(1),
+ ipV6(2),
+ nsap(3),
+ hdlc(4),
+ bbn1822(5),
+ all802(6),
+ e163(7),
+ e164(8),
+ f69(9),
+ x121(10),
+ ipx(11),
+ appleTalk(12),
+ decnetIV(13),
+ banyanVines(14),
+ e164withNsap(15),
+ dns(16),
+ distinguishedName(17), -- (Distinguished Name, per X.500)
+ asNumber(18), -- (16-bit quantity, per the AS number space)
+ xtpOverIpv4(19),
+ xtpOverIpv6(20),
+ xtpNativeModeXTP(21),
+ fibreChannelWWPN(22),
+ fibreChannelWWNN(23),
+ gwid(24),
+ reserved(65535)
+ }
+ END
diff --git a/php/extras/mibs/IANA-LANGUAGE-MIB.txt b/php/extras/mibs/IANA-LANGUAGE-MIB.txt
new file mode 100644
index 000000000..b0ad3ed5f
--- /dev/null
+++ b/php/extras/mibs/IANA-LANGUAGE-MIB.txt
@@ -0,0 +1,123 @@
+IANA-LANGUAGE-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-IDENTITY, mib-2
+ FROM SNMPv2-SMI;
+
+ianaLanguages MODULE-IDENTITY
+ LAST-UPDATED "200005100000Z" -- May 10, 2000
+ ORGANIZATION "IANA"
+ CONTACT-INFO
+ "Internet Assigned Numbers Authority (IANA)
+
+ Postal: ICANN
+ 4676 Admiralty Way, Suite 330
+ Marina del Rey, CA 90292
+
+ Tel: +1 310 823 9358 x20
+ E-Mail: iana@iana.org"
+ DESCRIPTION
+ "The MIB module registers object identifier values for
+ well-known programming and scripting languages. Every
+ language registration MUST describe the format used
+ when transferring scripts written in this language.
+
+ Any additions or changes to the contents of this MIB
+ module require Designated Expert Review as defined in
+ the Guidelines for Writing IANA Considerations Section
+ document. The Designated Expert will be selected by
+ the IESG Area Director of the OPS Area.
+
+ Note, this module does not have to register all possible
+ languages since languages are identified by object
+ identifier values. It is therefore possible to registered
+ languages in private OID trees. The references given below are not
+ normative with regard to the language version. Other
+ references might be better suited to describe some newer
+ versions of this language. The references are only
+ provided as `a pointer into the right direction'."
+
+ -- Revision log, in reverse chronological order
+
+ REVISION "200005100000Z" -- May 10, 2000
+ DESCRIPTION "Import mib-2 instead of experimental, so that
+ this module compiles"
+
+ REVISION "199909090900Z" -- September 9, 1999
+ DESCRIPTION "Initial version as published at time of
+ publication of RFC 2591."
+ ::= { mib-2 73 }
+
+ianaLangJavaByteCode OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "Java byte code to be processed by a Java virtual machine.
+ A script written in Java byte code is transferred by using
+ the Java archive file format (JAR)."
+ REFERENCE
+ "The Java Virtual Machine Specification.
+ ISBN 0-201-63452-X"
+ ::= { ianaLanguages 1 }
+
+ianaLangTcl OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The Tool Command Language (Tcl). A script written in the
+ Tcl language is transferred in Tcl source code format."
+ REFERENCE
+ "Tcl and the Tk Toolkit.
+ ISBN 0-201-63337-X"
+ ::= { ianaLanguages 2 }
+
+ianaLangPerl OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The Perl language. A script written in the Perl language
+ is transferred in Perl source code format."
+ REFERENCE
+ "Programming Perl.
+ ISBN 1-56592-149-6"
+ ::= { ianaLanguages 3 }
+
+ianaLangScheme OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The Scheme language. A script written in the Scheme
+ language is transferred in Scheme source code format."
+ REFERENCE
+ "The Revised^4 Report on the Algorithmic Language Scheme.
+ MIT Press"
+ ::= { ianaLanguages 4 }
+
+ianaLangSRSL OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The SNMP Script Language defined by SNMP Research. A
+ script written in the SNMP Script Language is transferred
+ in the SNMP Script Language source code format."
+ ::= { ianaLanguages 5 }
+
+ianaLangPSL OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The Patrol Script Language defined by BMC Software. A script
+ written in the Patrol Script Language is transferred in the
+ Patrol Script Language source code format."
+ REFERENCE
+ "PATROL Script Language Reference Manual, Version 3.0,
+ November 30, 1995. BMC Software, Inc. 2101 City West Blvd.,
+ Houston, Texas 77042."
+ ::= { ianaLanguages 6 }
+
+ianaLangSMSL OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The Systems Management Scripting Language. A script written
+ in the SMSL language is transferred in the SMSL source code
+ format."
+ REFERENCE
+ "ISO/ITU Command Sequencer.
+ ISO 10164-21 or ITU X.753"
+ ::= { ianaLanguages 7 }
+
+END
diff --git a/php/extras/mibs/IANA-RTPROTO-MIB.txt b/php/extras/mibs/IANA-RTPROTO-MIB.txt
new file mode 100644
index 000000000..57e73a2ca
--- /dev/null
+++ b/php/extras/mibs/IANA-RTPROTO-MIB.txt
@@ -0,0 +1,92 @@
+
+IANA-RTPROTO-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, mib-2 FROM SNMPv2-SMI
+ TEXTUAL-CONVENTION FROM SNMPv2-TC;
+
+ianaRtProtoMIB MODULE-IDENTITY
+ LAST-UPDATED "200009260000Z" -- September 26, 2000
+ ORGANIZATION "IANA"
+ CONTACT-INFO
+ " Internet Assigned Numbers Authority
+ Internet Corporation for Assigned Names and Numbers
+ 4676 Admiralty Way, Suite 330
+ Marina del Rey, CA 90292-6601
+
+ Phone: +1 310 823 9358
+ EMail: iana@iana.org"
+ DESCRIPTION
+ "This MIB module defines the IANAipRouteProtocol and
+ IANAipMRouteProtocol textual conventions for use in MIBs
+ which need to identify unicast or multicast routing
+ mechanisms.
+
+ Any additions or changes to the contents of this MIB module
+ require either publication of an RFC, or Designated Expert
+ Review as defined in RFC 2434, Guidelines for Writing an
+ IANA Considerations Section in RFCs. The Designated Expert
+ will be selected by the IESG Area Director(s) of the Routing
+ Area."
+
+ REVISION "200009260000Z" -- September 26, 2000
+ DESCRIPTION "Original version, published in coordination
+ with RFC 2932."
+
+ ::= { mib-2 84 }
+
+IANAipRouteProtocol ::= TEXTUAL-CONVENTION
+ STATUS current
+
+ DESCRIPTION
+ "A mechanism for learning routes. Inclusion of values for
+ routing protocols is not intended to imply that those
+ protocols need be supported."
+ SYNTAX INTEGER {
+ other (1), -- not specified
+ local (2), -- local interface
+ netmgmt (3), -- static route
+ icmp (4), -- result of ICMP Redirect
+
+ -- the following are all dynamic
+ -- routing protocols
+
+ egp (5), -- Exterior Gateway Protocol
+ ggp (6), -- Gateway-Gateway Protocol
+ hello (7), -- FuzzBall HelloSpeak
+ rip (8), -- Berkeley RIP or RIP-II
+ isIs (9), -- Dual IS-IS
+ esIs (10), -- ISO 9542
+ ciscoIgrp (11), -- Cisco IGRP
+ bbnSpfIgp (12), -- BBN SPF IGP
+ ospf (13), -- Open Shortest Path First
+ bgp (14), -- Border Gateway Protocol
+ idpr (15), -- InterDomain Policy Routing
+ ciscoEigrp (16), -- Cisco EIGRP
+ dvmrp (17) -- DVMRP
+ }
+
+IANAipMRouteProtocol ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "The multicast routing protocol. Inclusion of values for
+ multicast routing protocols is not intended to imply that
+ those protocols need be supported."
+ SYNTAX INTEGER {
+ other(1), -- none of the following
+ local(2), -- e.g., manually configured
+ netmgmt(3), -- set via net.mgmt protocol
+ dvmrp(4),
+ mospf(5),
+ pimSparseDense(6), -- PIMv1, both DM and SM
+ cbt(7),
+ pimSparseMode(8), -- PIM-SM
+ pimDenseMode(9), -- PIM-DM
+ igmpOnly(10),
+ bgmp(11),
+ msdp(12)
+ }
+
+END
+
+
diff --git a/php/extras/mibs/IANAifType-MIB.txt b/php/extras/mibs/IANAifType-MIB.txt
new file mode 100644
index 000000000..542e2477e
--- /dev/null
+++ b/php/extras/mibs/IANAifType-MIB.txt
@@ -0,0 +1,487 @@
+ IANAifType-MIB DEFINITIONS ::= BEGIN
+
+ IMPORTS
+ MODULE-IDENTITY, mib-2 FROM SNMPv2-SMI
+ TEXTUAL-CONVENTION FROM SNMPv2-TC;
+
+ ianaifType MODULE-IDENTITY
+ LAST-UPDATED "200510100000Z" -- October 10, 2005
+ ORGANIZATION "IANA"
+ CONTACT-INFO " Internet Assigned Numbers Authority
+
+ Postal: ICANN
+ 4676 Admiralty Way, Suite 330
+ Marina del Rey, CA 90292
+
+ Tel: +1 310 823 9358
+ E-Mail: iana@iana.org"
+
+ DESCRIPTION "This MIB module defines the IANAifType Textual
+ Convention, and thus the enumerated values of
+ the ifType object defined in MIB-II's ifTable."
+
+ REVISION "200510100000Z" -- October 10, 2005
+ DESCRIPTION "Registration of new IANA ifType 230."
+
+ REVISION "200509090000Z" -- September 09, 2005
+ DESCRIPTION "Registration of new IANA ifType 229."
+
+ REVISION "200505270000Z" -- May 27, 2005
+ DESCRIPTION "Registration of new IANA ifType 228."
+
+ REVISION "200503030000Z" -- March 3, 2005
+ DESCRIPTION "Added the IANAtunnelType TC and deprecated
+ IANAifType sixToFour (215) per
+ RFC4087."
+
+ REVISION "200411220000Z" -- November 22, 2004
+ DESCRIPTION "Registration of new IANA ifType 227."
+
+ REVISION "200406170000Z" -- June 17, 2004
+ DESCRIPTION "Registration of new IANA ifType 226."
+
+ REVISION "200405120000Z" -- May 12, 2004
+ DESCRIPTION "Added description for IANAifType 6, and
+ changed the descriptions for IANAifTypes
+ 180, 181, and 182."
+
+ REVISION "200405070000Z" -- May 7, 2004
+ DESCRIPTION "Registration of new IANAifType 225."
+
+ REVISION "200308250000Z" -- Aug 25, 2003
+ DESCRIPTION "Deprecated IANAifTypes 7 and 11. Obsoleted
+ IANAifTypes 62, 69, and 117. ethernetCsmacd (6)
+ should be used instead of these values"
+
+ REVISION "200308180000Z" -- Aug 18, 2003
+ DESCRIPTION "Registration of new IANAifType
+ 224."
+
+ REVISION "200308070000Z" -- Aug 7, 2003
+ DESCRIPTION "Registration of new IANAifTypes
+ 222 and 223."
+
+ REVISION "200303180000Z" -- Mar 18, 2003
+ DESCRIPTION "Registration of new IANAifType
+ 221."
+
+ REVISION "200301130000Z" -- Jan 13, 2003
+ DESCRIPTION "Registration of new IANAifType
+ 220."
+
+ REVISION "200210170000Z" -- Oct 17, 2002
+ DESCRIPTION "Registration of new IANAifType
+ 219."
+
+ REVISION "200207160000Z" -- Jul 16, 2002
+ DESCRIPTION "Registration of new IANAifTypes
+ 217 and 218."
+
+ REVISION "200207100000Z" -- Jul 10, 2002
+ DESCRIPTION "Registration of new IANAifTypes
+ 215 and 216."
+
+ REVISION "200206190000Z" -- Jun 19, 2002
+ DESCRIPTION "Registration of new IANAifType
+ 214."
+
+ REVISION "200201040000Z" -- Jan 4, 2002
+ DESCRIPTION "Registration of new IANAifTypes
+ 211, 212 and 213."
+
+ REVISION "200112200000Z" -- Dec 20, 2001
+ DESCRIPTION "Registration of new IANAifTypes
+ 209 and 210."
+
+ REVISION "200111150000Z" -- Nov 15, 2001
+ DESCRIPTION "Registration of new IANAifTypes
+ 207 and 208."
+
+ REVISION "200111060000Z" -- Nov 6, 2001
+ DESCRIPTION "Registration of new IANAifType
+ 206."
+
+ REVISION "200111020000Z" -- Nov 2, 2001
+ DESCRIPTION "Registration of new IANAifType
+ 205."
+
+ REVISION "200110160000Z" -- Oct 16, 2001
+ DESCRIPTION "Registration of new IANAifTypes
+ 199, 200, 201, 202, 203, and 204."
+
+ REVISION "200109190000Z" -- Sept 19, 2001
+ DESCRIPTION "Registration of new IANAifType
+ 198."
+
+ REVISION "200105110000Z" -- May 11, 2001
+ DESCRIPTION "Registration of new IANAifType
+ 197."
+
+ REVISION "200101120000Z" -- Jan 12, 2001
+ DESCRIPTION "Registration of new IANAifTypes
+ 195 and 196."
+
+ REVISION "200012190000Z" -- Dec 19, 2000
+ DESCRIPTION "Registration of new IANAifTypes
+ 193 and 194."
+
+ REVISION "200012070000Z" -- Dec 07, 2000
+ DESCRIPTION "Registration of new IANAifTypes
+ 191 and 192."
+
+ REVISION "200012040000Z" -- Dec 04, 2000
+ DESCRIPTION "Registration of new IANAifType
+ 190."
+
+ REVISION "200010170000Z" -- Oct 17, 2000
+ DESCRIPTION "Registration of new IANAifTypes
+ 188 and 189."
+
+ REVISION "200010020000Z" -- Oct 02, 2000
+ DESCRIPTION "Registration of new IANAifType 187."
+
+ REVISION "200009010000Z" -- Sept 01, 2000
+ DESCRIPTION "Registration of new IANAifTypes
+ 184, 185, and 186."
+
+ REVISION "200008240000Z" -- Aug 24, 2000
+ DESCRIPTION "Registration of new IANAifType 183."
+
+ REVISION "200008230000Z" -- Aug 23, 2000
+ DESCRIPTION "Registration of new IANAifTypes
+ 174-182."
+
+ REVISION "200008220000Z" -- Aug 22, 2000
+ DESCRIPTION "Registration of new IANAifTypes 170,
+ 171, 172 and 173."
+
+ REVISION "200004250000Z" -- Apr 25, 2000
+ DESCRIPTION "Registration of new IANAifTypes 168 and 169."
+
+ REVISION "200003060000Z" -- Mar 6, 2000
+ DESCRIPTION "Fixed a missing semi-colon in the IMPORT.
+ Also cleaned up the REVISION log a bit.
+ It is not complete, but from now on it will
+ be maintained and kept up to date with each
+ change to this MIB module."
+
+ REVISION "199910081430Z" -- Oct 08, 1999
+ DESCRIPTION "Include new name assignments up to cnr(85).
+ This is the first version available via the WWW
+ at: ftp://ftp.isi.edu/mib/ianaiftype.mib"
+
+ REVISION "199401310000Z" -- Jan 31, 1994
+ DESCRIPTION "Initial version of this MIB as published in
+ RFC 1573."
+ ::= { mib-2 30 }
+
+ IANAifType ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "This data type is used as the syntax of the ifType
+ object in the (updated) definition of MIB-II's
+ ifTable.
+
+ The definition of this textual convention with the
+ addition of newly assigned values is published
+ periodically by the IANA, in either the Assigned
+ Numbers RFC, or some derivative of it specific to
+ Internet Network Management number assignments. (The
+ latest arrangements can be obtained by contacting the
+ IANA.)
+
+ Requests for new values should be made to IANA via
+ email (iana@iana.org).
+
+ The relationship between the assignment of ifType
+ values and of OIDs to particular media-specific MIBs
+ is solely the purview of IANA and is subject to change
+ without notice. Quite often, a media-specific MIB's
+ OID-subtree assignment within MIB-II's 'transmission'
+ subtree will be the same as its ifType value.
+ However, in some circumstances this will not be the
+ case, and implementors must not pre-assume any
+ specific relationship between ifType values and
+ transmission subtree OIDs."
+ SYNTAX INTEGER {
+ other(1), -- none of the following
+ regular1822(2),
+ hdh1822(3),
+ ddnX25(4),
+ rfc877x25(5),
+ ethernetCsmacd(6), -- for all ethernet-like interfaces,
+ -- regardless of speed, as per RFC3635
+ iso88023Csmacd(7), -- Deprecated via RFC-draft-ietf-hubmib-etherif-mib-v3 ethernetCsmacd (6) should be used instead
+ iso88024TokenBus(8),
+ iso88025TokenRing(9),
+ iso88026Man(10),
+ starLan(11), -- Deprecated via RFC-draft-ietf-hubmib-etherif-mib-v3 ethernetCsmacd (6) should be used instead
+ proteon10Mbit(12),
+ proteon80Mbit(13),
+ hyperchannel(14),
+ fddi(15),
+ lapb(16),
+ sdlc(17),
+ ds1(18), -- DS1-MIB
+ e1(19), -- Obsolete see DS1-MIB
+ basicISDN(20),
+ primaryISDN(21),
+ propPointToPointSerial(22), -- proprietary serial
+ ppp(23),
+ softwareLoopback(24),
+ eon(25), -- CLNP over IP
+ ethernet3Mbit(26),
+ nsip(27), -- XNS over IP
+ slip(28), -- generic SLIP
+ ultra(29), -- ULTRA technologies
+ ds3(30), -- DS3-MIB
+ sip(31), -- SMDS, coffee
+ frameRelay(32), -- DTE only.
+ rs232(33),
+ para(34), -- parallel-port
+ arcnet(35), -- arcnet
+ arcnetPlus(36), -- arcnet plus
+ atm(37), -- ATM cells
+ miox25(38),
+ sonet(39), -- SONET or SDH
+ x25ple(40),
+ iso88022llc(41),
+ localTalk(42),
+ smdsDxi(43),
+ frameRelayService(44), -- FRNETSERV-MIB
+ v35(45),
+ hssi(46),
+ hippi(47),
+ modem(48), -- Generic modem
+ aal5(49), -- AAL5 over ATM
+ sonetPath(50),
+ sonetVT(51),
+ smdsIcip(52), -- SMDS InterCarrier Interface
+ propVirtual(53), -- proprietary virtual/internal
+ propMultiplexor(54),-- proprietary multiplexing
+ ieee80212(55), -- 100BaseVG
+ fibreChannel(56), -- Fibre Channel
+ hippiInterface(57), -- HIPPI interfaces
+ frameRelayInterconnect(58), -- Obsolete use either
+ -- frameRelay(32) or
+ -- frameRelayService(44).
+ aflane8023(59), -- ATM Emulated LAN for 802.3
+ aflane8025(60), -- ATM Emulated LAN for 802.5
+ cctEmul(61), -- ATM Emulated circuit
+ fastEther(62), -- Obsoleted via RFC-draft-ietf-hubmib-etherif-mib-v3 ethernetCsmacd (6) should be used instead
+ isdn(63), -- ISDN and X.25
+ v11(64), -- CCITT V.11/X.21
+ v36(65), -- CCITT V.36
+ g703at64k(66), -- CCITT G703 at 64Kbps
+ g703at2mb(67), -- Obsolete see DS1-MIB
+ qllc(68), -- SNA QLLC
+ fastEtherFX(69), -- Obsoleted via RFC-draft-ietf-hubmib-etherif-mib-v3 ethernetCsmacd (6) should be used instead
+ channel(70), -- channel
+ ieee80211(71), -- radio spread spectrum
+ ibm370parChan(72), -- IBM System 360/370 OEMI Channel
+ escon(73), -- IBM Enterprise Systems Connection
+ dlsw(74), -- Data Link Switching
+ isdns(75), -- ISDN S/T interface
+ isdnu(76), -- ISDN U interface
+ lapd(77), -- Link Access Protocol D
+ ipSwitch(78), -- IP Switching Objects
+ rsrb(79), -- Remote Source Route Bridging
+ atmLogical(80), -- ATM Logical Port
+ ds0(81), -- Digital Signal Level 0
+ ds0Bundle(82), -- group of ds0s on the same ds1
+ bsc(83), -- Bisynchronous Protocol
+ async(84), -- Asynchronous Protocol
+ cnr(85), -- Combat Net Radio
+ iso88025Dtr(86), -- ISO 802.5r DTR
+ eplrs(87), -- Ext Pos Loc Report Sys
+ arap(88), -- Appletalk Remote Access Protocol
+ propCnls(89), -- Proprietary Connectionless Protocol
+ hostPad(90), -- CCITT-ITU X.29 PAD Protocol
+ termPad(91), -- CCITT-ITU X.3 PAD Facility
+ frameRelayMPI(92), -- Multiproto Interconnect over FR
+ x213(93), -- CCITT-ITU X213
+ adsl(94), -- Asymmetric Digital Subscriber Loop
+ radsl(95), -- Rate-Adapt. Digital Subscriber Loop
+ sdsl(96), -- Symmetric Digital Subscriber Loop
+ vdsl(97), -- Very H-Speed Digital Subscrib. Loop
+ iso88025CRFPInt(98), -- ISO 802.5 CRFP
+ myrinet(99), -- Myricom Myrinet
+ voiceEM(100), -- voice recEive and transMit
+ voiceFXO(101), -- voice Foreign Exchange Office
+ voiceFXS(102), -- voice Foreign Exchange Station
+ voiceEncap(103), -- voice encapsulation
+ voiceOverIp(104), -- voice over IP encapsulation
+ atmDxi(105), -- ATM DXI
+ atmFuni(106), -- ATM FUNI
+ atmIma (107), -- ATM IMA
+ pppMultilinkBundle(108), -- PPP Multilink Bundle
+ ipOverCdlc (109), -- IBM ipOverCdlc
+ ipOverClaw (110), -- IBM Common Link Access to Workstn
+ stackToStack (111), -- IBM stackToStack
+ virtualIpAddress (112), -- IBM VIPA
+ mpc (113), -- IBM multi-protocol channel support
+ ipOverAtm (114), -- IBM ipOverAtm
+ iso88025Fiber (115), -- ISO 802.5j Fiber Token Ring
+ tdlc (116), -- IBM twinaxial data link control
+ gigabitEthernet (117), -- Obsoleted via RFC-draft-ietf-hubmib-etherif-mib-v3 ethernetCsmacd (6) should be used instead
+ hdlc (118), -- HDLC
+ lapf (119), -- LAP F
+ v37 (120), -- V.37
+ x25mlp (121), -- Multi-Link Protocol
+ x25huntGroup (122), -- X25 Hunt Group
+ trasnpHdlc (123), -- Transp HDLC
+ interleave (124), -- Interleave channel
+ fast (125), -- Fast channel
+ ip (126), -- IP (for APPN HPR in IP networks)
+ docsCableMaclayer (127), -- CATV Mac Layer
+ docsCableDownstream (128), -- CATV Downstream interface
+ docsCableUpstream (129), -- CATV Upstream interface
+ a12MppSwitch (130), -- Avalon Parallel Processor
+ tunnel (131), -- Encapsulation interface
+ coffee (132), -- coffee pot
+ ces (133), -- Circuit Emulation Service
+ atmSubInterface (134), -- ATM Sub Interface
+ l2vlan (135), -- Layer 2 Virtual LAN using 802.1Q
+ l3ipvlan (136), -- Layer 3 Virtual LAN using IP
+ l3ipxvlan (137), -- Layer 3 Virtual LAN using IPX
+ digitalPowerline (138), -- IP over Power Lines
+ mediaMailOverIp (139), -- Multimedia Mail over IP
+ dtm (140), -- Dynamic syncronous Transfer Mode
+ dcn (141), -- Data Communications Network
+ ipForward (142), -- IP Forwarding Interface
+ msdsl (143), -- Multi-rate Symmetric DSL
+ ieee1394 (144), -- IEEE1394 High Performance Serial Bus
+ if-gsn (145), -- HIPPI-6400
+ dvbRccMacLayer (146), -- DVB-RCC MAC Layer
+ dvbRccDownstream (147), -- DVB-RCC Downstream Channel
+ dvbRccUpstream (148), -- DVB-RCC Upstream Channel
+ atmVirtual (149), -- ATM Virtual Interface
+ mplsTunnel (150), -- MPLS Tunnel Virtual Interface
+ srp (151), -- Spatial Reuse Protocol
+ voiceOverAtm (152), -- Voice Over ATM
+ voiceOverFrameRelay (153), -- Voice Over Frame Relay
+ idsl (154), -- Digital Subscriber Loop over ISDN
+ compositeLink (155), -- Avici Composite Link Interface
+ ss7SigLink (156), -- SS7 Signaling Link
+ propWirelessP2P (157), -- Prop. P2P wireless interface
+ frForward (158), -- Frame Forward Interface
+ rfc1483 (159), -- Multiprotocol over ATM AAL5
+ usb (160), -- USB Interface
+ ieee8023adLag (161), -- IEEE 802.3ad Link Aggregate
+ bgppolicyaccounting (162), -- BGP Policy Accounting
+ frf16MfrBundle (163), -- FRF .16 Multilink Frame Relay
+ h323Gatekeeper (164), -- H323 Gatekeeper
+ h323Proxy (165), -- H323 Voice and Video Proxy
+ mpls (166), -- MPLS
+ mfSigLink (167), -- Multi-frequency signaling link
+ hdsl2 (168), -- High Bit-Rate DSL - 2nd generation
+ shdsl (169), -- Multirate HDSL2
+ ds1FDL (170), -- Facility Data Link 4Kbps on a DS1
+ pos (171), -- Packet over SONET/SDH Interface
+ dvbAsiIn (172), -- DVB-ASI Input
+ dvbAsiOut (173), -- DVB-ASI Output
+ plc (174), -- Power Line Communtications
+ nfas (175), -- Non Facility Associated Signaling
+ tr008 (176), -- TR008
+ gr303RDT (177), -- Remote Digital Terminal
+ gr303IDT (178), -- Integrated Digital Terminal
+ isup (179), -- ISUP
+ propDocsWirelessMaclayer (180), -- Cisco proprietary Maclayer
+ propDocsWirelessDownstream (181), -- Cisco proprietary Downstream
+ propDocsWirelessUpstream (182), -- Cisco proprietary Upstream
+ hiperlan2 (183), -- HIPERLAN Type 2 Radio Interface
+ propBWAp2Mp (184), -- PropBroadbandWirelessAccesspt2multipt
+ sonetOverheadChannel (185), -- SONET Overhead Channel
+ digitalWrapperOverheadChannel (186), -- Digital Wrapper
+ aal2 (187), -- ATM adaptation layer 2
+ radioMAC (188), -- MAC layer over radio links
+ atmRadio (189), -- ATM over radio links
+ imt (190), -- Inter Machine Trunks
+ mvl (191), -- Multiple Virtual Lines DSL
+ reachDSL (192), -- Long Reach DSL
+ frDlciEndPt (193), -- Frame Relay DLCI End Point
+ atmVciEndPt (194), -- ATM VCI End Point
+ opticalChannel (195), -- Optical Channel
+ opticalTransport (196), -- Optical Transport
+ propAtm (197), -- Proprietary ATM
+ voiceOverCable (198), -- Voice Over Cable Interface
+ infiniband (199), -- Infiniband
+ teLink (200), -- TE Link
+ q2931 (201), -- Q.2931
+ virtualTg (202), -- Virtual Trunk Group
+ sipTg (203), -- SIP Trunk Group
+ sipSig (204), -- SIP Signaling
+ docsCableUpstreamChannel (205), -- CATV Upstream Channel
+ econet (206), -- Acorn Econet
+ pon155 (207), -- FSAN 155Mb Symetrical PON interface
+ pon622 (208), -- FSAN622Mb Symetrical PON interface
+ bridge (209), -- Transparent bridge interface
+ linegroup (210), -- Interface common to multiple lines
+ voiceEMFGD (211), -- voice E&M Feature Group D
+ voiceFGDEANA (212), -- voice FGD Exchange Access North American
+ voiceDID (213), -- voice Direct Inward Dialing
+ mpegTransport (214), -- MPEG transport interface
+ sixToFour (215), -- 6to4 interface (DEPRECATED)
+ gtp (216), -- GTP (GPRS Tunneling Protocol)
+ pdnEtherLoop1 (217), -- Paradyne EtherLoop 1
+ pdnEtherLoop2 (218), -- Paradyne EtherLoop 2
+ opticalChannelGroup (219), -- Optical Channel Group
+ homepna (220), -- HomePNA ITU-T G.989
+ gfp (221), -- Generic Framing Procedure (GFP)
+ ciscoISLvlan (222), -- Layer 2 Virtual LAN using Cisco ISL
+ actelisMetaLOOP (223), -- Acteleis proprietary MetaLOOP High Speed Link
+ fcipLink (224), -- FCIP Link
+ rpr (225), -- Resilient Packet Ring Interface Type
+ qam (226), -- RF Qam Interface
+ lmp (227), -- Link Management Protocol
+ cblVectaStar (228), -- Cambridge Broadband Limited VectaStar
+ docsCableMCmtsDownstream (229), -- CATV Modular CMTS Downstream Interface
+ adsl2 (230) -- Asymmetric Digital Subscriber Loop Version 2
+ }
+
+IANAtunnelType ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "The encapsulation method used by a tunnel. The value
+ direct indicates that a packet is encapsulated
+ directly within a normal IP header, with no
+ intermediate header, and unicast to the remote tunnel
+ endpoint (e.g., an RFC 2003 IP-in-IP tunnel, or an RFC
+ 1933 IPv6-in-IPv4 tunnel). The value minimal indicates
+ that a Minimal Forwarding Header (RFC 2004) is
+ inserted between the outer header and the payload
+ packet. The value UDP indicates that the payload
+ packet is encapsulated within a normal UDP packet
+ (e.g., RFC 1234).
+
+ The values sixToFour, sixOverFour, and isatap
+ indicates that an IPv6 packet is encapsulated directly
+ within an IPv4 header, with no intermediate header,
+ and unicast to the destination determined by the 6to4,
+ 6over4, or ISATAP protocol.
+
+ The remaining protocol-specific values indicate that a
+ header of the protocol of that name is inserted
+ between the outer header and the payload header.
+
+ The assignment policy for IANAtunnelType values is
+ identical to the policy for assigning IANAifType
+ values."
+ SYNTAX INTEGER {
+ other(1), -- none of the following
+ direct(2), -- no intermediate header
+ gre(3), -- GRE encapsulation
+ minimal(4), -- Minimal encapsulation
+ l2tp(5), -- L2TP encapsulation
+ pptp(6), -- PPTP encapsulation
+ l2f(7), -- L2F encapsulation
+ udp(8), -- UDP encapsulation
+ atmp(9), -- ATMP encapsulation
+ msdp(10), -- MSDP encapsulation
+ sixToFour(11), -- 6to4 encapsulation
+ sixOverFour(12), -- 6over4 encapsulation
+ isatap(13), -- ISATAP encapsulation
+ teredo(14) -- Teredo encapsulation
+ }
+
+ END
diff --git a/php/extras/mibs/IF-INVERTED-STACK-MIB.txt b/php/extras/mibs/IF-INVERTED-STACK-MIB.txt
new file mode 100644
index 000000000..eb8797b58
--- /dev/null
+++ b/php/extras/mibs/IF-INVERTED-STACK-MIB.txt
@@ -0,0 +1,149 @@
+IF-INVERTED-STACK-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE, mib-2 FROM SNMPv2-SMI
+ RowStatus FROM SNMPv2-TC
+ MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
+ ifStackGroup2,
+ ifStackHigherLayer, ifStackLowerLayer FROM IF-MIB;
+
+ifInvertedStackMIB MODULE-IDENTITY
+ LAST-UPDATED "200006140000Z"
+ ORGANIZATION "IETF Interfaces MIB Working Group"
+ CONTACT-INFO
+ " Keith McCloghrie
+ Cisco Systems, Inc.
+ 170 West Tasman Drive
+ San Jose, CA 95134-1706
+ US
+
+ 408-526-5260
+ kzm@cisco.com"
+ DESCRIPTION
+ "The MIB module which provides the Inverted Stack Table for
+ interface sub-layers."
+ REVISION "200006140000Z"
+ DESCRIPTION
+ "Initial revision, published as RFC 2864"
+ ::= { mib-2 77 }
+
+ifInvMIBObjects OBJECT IDENTIFIER ::= { ifInvertedStackMIB 1 }
+
+--
+-- The Inverted Interface Stack Group
+--
+
+ifInvStackTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IfInvStackEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table containing information on the relationships between
+
+ the multiple sub-layers of network interfaces. In
+ particular, it contains information on which sub-layers run
+ 'underneath' which other sub-layers, where each sub-layer
+ corresponds to a conceptual row in the ifTable. For
+ example, when the sub-layer with ifIndex value x runs
+ underneath the sub-layer with ifIndex value y, then this
+ table contains:
+
+ ifInvStackStatus.x.y=active
+
+ For each ifIndex value, z, which identifies an active
+ interface, there are always at least two instantiated rows
+ in this table associated with z. For one of these rows, z
+ is the value of ifStackHigherLayer; for the other, z is the
+ value of ifStackLowerLayer. (If z is not involved in
+ multiplexing, then these are the only two rows associated
+ with z.)
+
+ For example, two rows exist even for an interface which has
+ no others stacked on top or below it:
+
+ ifInvStackStatus.z.0=active
+ ifInvStackStatus.0.z=active
+
+ This table contains exactly the same number of rows as the
+ ifStackTable, but the rows appear in a different order."
+ REFERENCE
+ "ifStackTable of RFC 2863"
+ ::= { ifInvMIBObjects 1 }
+
+ifInvStackEntry OBJECT-TYPE
+ SYNTAX IfInvStackEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Information on a particular relationship between two sub-
+ layers, specifying that one sub-layer runs underneath the
+ other sub-layer. Each sub-layer corresponds to a conceptual
+ row in the ifTable."
+ INDEX { ifStackLowerLayer, ifStackHigherLayer }
+ ::= { ifInvStackTable 1 }
+
+IfInvStackEntry ::=
+ SEQUENCE {
+ ifInvStackStatus RowStatus
+ }
+
+ifInvStackStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The status of the relationship between two sub-layers.
+
+ An instance of this object exists for each instance of the
+ ifStackStatus object, and vice versa. For example, if the
+ variable ifStackStatus.H.L exists, then the variable
+ ifInvStackStatus.L.H must also exist, and vice versa. In
+ addition, the two variables always have the same value.
+
+ However, unlike ifStackStatus, the ifInvStackStatus object
+ is NOT write-able. A network management application wishing
+ to change a relationship between sub-layers H and L cannot
+ do so by modifying the value of ifInvStackStatus.L.H, but
+ must instead modify the value of ifStackStatus.H.L. After
+ the ifStackTable is modified, the change will be reflected
+ in this table."
+ ::= { ifInvStackEntry 1 }
+
+-- conformance information
+
+ifInvConformance OBJECT IDENTIFIER ::= { ifInvMIBObjects 2 }
+
+ifInvGroups OBJECT IDENTIFIER ::= { ifInvConformance 1 }
+ifInvCompliances OBJECT IDENTIFIER ::= { ifInvConformance 2 }
+
+-- compliance statements
+
+ifInvCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for SNMP entities which provide
+ inverted information on the layering of network interfaces."
+
+ MODULE -- this module
+ MANDATORY-GROUPS { ifInvStackGroup }
+
+ OBJECT ifInvStackStatus
+ SYNTAX INTEGER { active(1) }
+ DESCRIPTION
+ "Support is only required for 'active'."
+
+ MODULE IF-MIB
+ MANDATORY-GROUPS { ifStackGroup2 }
+ ::= { ifInvCompliances 1 }
+
+-- units of conformance
+
+ifInvStackGroup OBJECT-GROUP
+ OBJECTS { ifInvStackStatus }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing inverted information on
+ the layering of MIB-II interfaces."
+ ::= { ifInvGroups 1 }
+
+END
diff --git a/php/extras/mibs/IF-MIB.txt b/php/extras/mibs/IF-MIB.txt
new file mode 100644
index 000000000..7704f0c25
--- /dev/null
+++ b/php/extras/mibs/IF-MIB.txt
@@ -0,0 +1,1814 @@
+IF-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE, Counter32, Gauge32, Counter64,
+ Integer32, TimeTicks, mib-2,
+ NOTIFICATION-TYPE FROM SNMPv2-SMI
+ TEXTUAL-CONVENTION, DisplayString,
+ PhysAddress, TruthValue, RowStatus,
+ TimeStamp, AutonomousType, TestAndIncr FROM SNMPv2-TC
+ MODULE-COMPLIANCE, OBJECT-GROUP,
+ NOTIFICATION-GROUP FROM SNMPv2-CONF
+ snmpTraps FROM SNMPv2-MIB
+ IANAifType FROM IANAifType-MIB;
+
+ifMIB MODULE-IDENTITY
+ LAST-UPDATED "200006140000Z"
+ ORGANIZATION "IETF Interfaces MIB Working Group"
+ CONTACT-INFO
+ " Keith McCloghrie
+ Cisco Systems, Inc.
+ 170 West Tasman Drive
+ San Jose, CA 95134-1706
+ US
+
+ 408-526-5260
+ kzm@cisco.com"
+ DESCRIPTION
+ "The MIB module to describe generic objects for network
+ interface sub-layers. This MIB is an updated version of
+ MIB-II's ifTable, and incorporates the extensions defined in
+ RFC 1229."
+
+ REVISION "200006140000Z"
+ DESCRIPTION
+ "Clarifications agreed upon by the Interfaces MIB WG, and
+ published as RFC 2863."
+ REVISION "199602282155Z"
+ DESCRIPTION
+ "Revisions made by the Interfaces MIB WG, and published in
+ RFC 2233."
+ REVISION "199311082155Z"
+ DESCRIPTION
+ "Initial revision, published as part of RFC 1573."
+ ::= { mib-2 31 }
+
+ifMIBObjects OBJECT IDENTIFIER ::= { ifMIB 1 }
+
+interfaces OBJECT IDENTIFIER ::= { mib-2 2 }
+
+--
+-- Textual Conventions
+--
+
+-- OwnerString has the same semantics as used in RFC 1271
+
+OwnerString ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "255a"
+ STATUS deprecated
+ DESCRIPTION
+ "This data type is used to model an administratively
+ assigned name of the owner of a resource. This information
+ is taken from the NVT ASCII character set. It is suggested
+ that this name contain one or more of the following: ASCII
+ form of the manager station's transport address, management
+ station name (e.g., domain name), network management
+ personnel's name, location, or phone number. In some cases
+ the agent itself will be the owner of an entry. In these
+ cases, this string shall be set to a string starting with
+ 'agent'."
+ SYNTAX OCTET STRING (SIZE(0..255))
+
+-- InterfaceIndex contains the semantics of ifIndex and should be used
+-- for any objects defined in other MIB modules that need these semantics.
+
+InterfaceIndex ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "d"
+ STATUS current
+ DESCRIPTION
+ "A unique value, greater than zero, for each interface or
+ interface sub-layer in the managed system. It is
+ recommended that values are assigned contiguously starting
+ from 1. The value for each interface sub-layer must remain
+ constant at least from one re-initialization of the entity's
+ network management system to the next re-initialization."
+ SYNTAX Integer32 (1..2147483647)
+
+InterfaceIndexOrZero ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "d"
+ STATUS current
+ DESCRIPTION
+ "This textual convention is an extension of the
+ InterfaceIndex convention. The latter defines a greater
+ than zero value used to identify an interface or interface
+ sub-layer in the managed system. This extension permits the
+ additional value of zero. the value zero is object-specific
+ and must therefore be defined as part of the description of
+ any object which uses this syntax. Examples of the usage of
+ zero might include situations where interface was unknown,
+ or when none or all interfaces need to be referenced."
+ SYNTAX Integer32 (0..2147483647)
+
+ifNumber OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of network interfaces (regardless of their
+ current state) present on this system."
+ ::= { interfaces 1 }
+
+ifTableLastChange OBJECT-TYPE
+ SYNTAX TimeTicks
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime at the time of the last creation or
+ deletion of an entry in the ifTable. If the number of
+ entries has been unchanged since the last re-initialization
+ of the local network management subsystem, then this object
+ contains a zero value."
+ ::= { ifMIBObjects 5 }
+
+-- the Interfaces table
+
+-- The Interfaces table contains information on the entity's
+
+-- interfaces. Each sub-layer below the internetwork-layer
+-- of a network interface is considered to be an interface.
+
+ifTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IfEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A list of interface entries. The number of entries is
+ given by the value of ifNumber."
+ ::= { interfaces 2 }
+
+ifEntry OBJECT-TYPE
+ SYNTAX IfEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry containing management information applicable to a
+ particular interface."
+ INDEX { ifIndex }
+ ::= { ifTable 1 }
+
+IfEntry ::=
+ SEQUENCE {
+ ifIndex InterfaceIndex,
+ ifDescr DisplayString,
+ ifType IANAifType,
+ ifMtu Integer32,
+ ifSpeed Gauge32,
+ ifPhysAddress PhysAddress,
+ ifAdminStatus INTEGER,
+ ifOperStatus INTEGER,
+ ifLastChange TimeTicks,
+ ifInOctets Counter32,
+ ifInUcastPkts Counter32,
+ ifInNUcastPkts Counter32, -- deprecated
+ ifInDiscards Counter32,
+ ifInErrors Counter32,
+ ifInUnknownProtos Counter32,
+ ifOutOctets Counter32,
+ ifOutUcastPkts Counter32,
+ ifOutNUcastPkts Counter32, -- deprecated
+ ifOutDiscards Counter32,
+ ifOutErrors Counter32,
+ ifOutQLen Gauge32, -- deprecated
+ ifSpecific OBJECT IDENTIFIER -- deprecated
+ }
+
+ifIndex OBJECT-TYPE
+ SYNTAX InterfaceIndex
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A unique value, greater than zero, for each interface. It
+ is recommended that values are assigned contiguously
+ starting from 1. The value for each interface sub-layer
+ must remain constant at least from one re-initialization of
+ the entity's network management system to the next re-
+ initialization."
+ ::= { ifEntry 1 }
+
+ifDescr OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..255))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A textual string containing information about the
+ interface. This string should include the name of the
+ manufacturer, the product name and the version of the
+ interface hardware/software."
+ ::= { ifEntry 2 }
+
+ifType OBJECT-TYPE
+ SYNTAX IANAifType
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The type of interface. Additional values for ifType are
+ assigned by the Internet Assigned Numbers Authority (IANA),
+ through updating the syntax of the IANAifType textual
+ convention."
+ ::= { ifEntry 3 }
+
+ifMtu OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The size of the largest packet which can be sent/received
+ on the interface, specified in octets. For interfaces that
+ are used for transmitting network datagrams, this is the
+ size of the largest network datagram that can be sent on the
+ interface."
+ ::= { ifEntry 4 }
+
+ifSpeed OBJECT-TYPE
+ SYNTAX Gauge32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An estimate of the interface's current bandwidth in bits
+ per second. For interfaces which do not vary in bandwidth
+ or for those where no accurate estimation can be made, this
+ object should contain the nominal bandwidth. If the
+ bandwidth of the interface is greater than the maximum value
+ reportable by this object then this object should report its
+ maximum value (4,294,967,295) and ifHighSpeed must be used
+ to report the interace's speed. For a sub-layer which has
+ no concept of bandwidth, this object should be zero."
+ ::= { ifEntry 5 }
+
+ifPhysAddress OBJECT-TYPE
+ SYNTAX PhysAddress
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The interface's address at its protocol sub-layer. For
+ example, for an 802.x interface, this object normally
+ contains a MAC address. The interface's media-specific MIB
+ must define the bit and byte ordering and the format of the
+ value of this object. For interfaces which do not have such
+ an address (e.g., a serial line), this object should contain
+ an octet string of zero length."
+ ::= { ifEntry 6 }
+
+ifAdminStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ up(1), -- ready to pass packets
+ down(2),
+ testing(3) -- in some test mode
+ }
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The desired state of the interface. The testing(3) state
+ indicates that no operational packets can be passed. When a
+ managed system initializes, all interfaces start with
+ ifAdminStatus in the down(2) state. As a result of either
+ explicit management action or per configuration information
+ retained by the managed system, ifAdminStatus is then
+ changed to either the up(1) or testing(3) states (or remains
+ in the down(2) state)."
+ ::= { ifEntry 7 }
+
+ifOperStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ up(1), -- ready to pass packets
+ down(2),
+ testing(3), -- in some test mode
+ unknown(4), -- status can not be determined
+ -- for some reason.
+ dormant(5),
+ notPresent(6), -- some component is missing
+ lowerLayerDown(7) -- down due to state of
+ -- lower-layer interface(s)
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The current operational state of the interface. The
+ testing(3) state indicates that no operational packets can
+ be passed. If ifAdminStatus is down(2) then ifOperStatus
+ should be down(2). If ifAdminStatus is changed to up(1)
+ then ifOperStatus should change to up(1) if the interface is
+ ready to transmit and receive network traffic; it should
+ change to dormant(5) if the interface is waiting for
+ external actions (such as a serial line waiting for an
+ incoming connection); it should remain in the down(2) state
+ if and only if there is a fault that prevents it from going
+ to the up(1) state; it should remain in the notPresent(6)
+ state if the interface has missing (typically, hardware)
+ components."
+ ::= { ifEntry 8 }
+
+ifLastChange OBJECT-TYPE
+ SYNTAX TimeTicks
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime at the time the interface entered
+ its current operational state. If the current state was
+ entered prior to the last re-initialization of the local
+ network management subsystem, then this object contains a
+ zero value."
+ ::= { ifEntry 9 }
+
+ifInOctets OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of octets received on the interface,
+ including framing characters.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ifCounterDiscontinuityTime."
+ ::= { ifEntry 10 }
+
+ifInUcastPkts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of packets, delivered by this sub-layer to a
+ higher (sub-)layer, which were not addressed to a multicast
+ or broadcast address at this sub-layer.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ifCounterDiscontinuityTime."
+ ::= { ifEntry 11 }
+
+ifInNUcastPkts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of packets, delivered by this sub-layer to a
+ higher (sub-)layer, which were addressed to a multicast or
+ broadcast address at this sub-layer.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ifCounterDiscontinuityTime.
+
+ This object is deprecated in favour of ifInMulticastPkts and
+ ifInBroadcastPkts."
+ ::= { ifEntry 12 }
+
+ifInDiscards OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of inbound packets which were chosen to be
+ discarded even though no errors had been detected to prevent
+
+ their being deliverable to a higher-layer protocol. One
+ possible reason for discarding such a packet could be to
+ free up buffer space.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ifCounterDiscontinuityTime."
+ ::= { ifEntry 13 }
+
+ifInErrors OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "For packet-oriented interfaces, the number of inbound
+ packets that contained errors preventing them from being
+ deliverable to a higher-layer protocol. For character-
+ oriented or fixed-length interfaces, the number of inbound
+ transmission units that contained errors preventing them
+ from being deliverable to a higher-layer protocol.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ifCounterDiscontinuityTime."
+ ::= { ifEntry 14 }
+
+ifInUnknownProtos OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "For packet-oriented interfaces, the number of packets
+ received via the interface which were discarded because of
+ an unknown or unsupported protocol. For character-oriented
+ or fixed-length interfaces that support protocol
+ multiplexing the number of transmission units received via
+ the interface which were discarded because of an unknown or
+ unsupported protocol. For any interface that does not
+ support protocol multiplexing, this counter will always be
+ 0.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ifCounterDiscontinuityTime."
+ ::= { ifEntry 15 }
+
+ifOutOctets OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of octets transmitted out of the
+ interface, including framing characters.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ifCounterDiscontinuityTime."
+ ::= { ifEntry 16 }
+
+ifOutUcastPkts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of packets that higher-level protocols
+ requested be transmitted, and which were not addressed to a
+ multicast or broadcast address at this sub-layer, including
+ those that were discarded or not sent.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ifCounterDiscontinuityTime."
+ ::= { ifEntry 17 }
+
+ifOutNUcastPkts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The total number of packets that higher-level protocols
+ requested be transmitted, and which were addressed to a
+ multicast or broadcast address at this sub-layer, including
+ those that were discarded or not sent.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ifCounterDiscontinuityTime.
+
+ This object is deprecated in favour of ifOutMulticastPkts
+ and ifOutBroadcastPkts."
+ ::= { ifEntry 18 }
+
+ifOutDiscards OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of outbound packets which were chosen to be
+ discarded even though no errors had been detected to prevent
+ their being transmitted. One possible reason for discarding
+ such a packet could be to free up buffer space.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ifCounterDiscontinuityTime."
+ ::= { ifEntry 19 }
+
+ifOutErrors OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "For packet-oriented interfaces, the number of outbound
+ packets that could not be transmitted because of errors.
+ For character-oriented or fixed-length interfaces, the
+ number of outbound transmission units that could not be
+ transmitted because of errors.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ifCounterDiscontinuityTime."
+ ::= { ifEntry 20 }
+
+ifOutQLen OBJECT-TYPE
+ SYNTAX Gauge32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The length of the output packet queue (in packets)."
+ ::= { ifEntry 21 }
+
+ifSpecific OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "A reference to MIB definitions specific to the particular
+ media being used to realize the interface. It is
+
+ recommended that this value point to an instance of a MIB
+ object in the media-specific MIB, i.e., that this object
+ have the semantics associated with the InstancePointer
+ textual convention defined in RFC 2579. In fact, it is
+ recommended that the media-specific MIB specify what value
+ ifSpecific should/can take for values of ifType. If no MIB
+ definitions specific to the particular media are available,
+ the value should be set to the OBJECT IDENTIFIER { 0 0 }."
+ ::= { ifEntry 22 }
+
+--
+-- Extension to the interface table
+--
+-- This table replaces the ifExtnsTable table.
+--
+
+ifXTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IfXEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A list of interface entries. The number of entries is
+ given by the value of ifNumber. This table contains
+ additional objects for the interface table."
+ ::= { ifMIBObjects 1 }
+
+ifXEntry OBJECT-TYPE
+ SYNTAX IfXEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry containing additional management information
+ applicable to a particular interface."
+ AUGMENTS { ifEntry }
+ ::= { ifXTable 1 }
+
+IfXEntry ::=
+ SEQUENCE {
+ ifName DisplayString,
+ ifInMulticastPkts Counter32,
+ ifInBroadcastPkts Counter32,
+ ifOutMulticastPkts Counter32,
+ ifOutBroadcastPkts Counter32,
+ ifHCInOctets Counter64,
+ ifHCInUcastPkts Counter64,
+ ifHCInMulticastPkts Counter64,
+ ifHCInBroadcastPkts Counter64,
+ ifHCOutOctets Counter64,
+ ifHCOutUcastPkts Counter64,
+ ifHCOutMulticastPkts Counter64,
+ ifHCOutBroadcastPkts Counter64,
+ ifLinkUpDownTrapEnable INTEGER,
+ ifHighSpeed Gauge32,
+ ifPromiscuousMode TruthValue,
+ ifConnectorPresent TruthValue,
+ ifAlias DisplayString,
+ ifCounterDiscontinuityTime TimeStamp
+ }
+
+ifName OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The textual name of the interface. The value of this
+ object should be the name of the interface as assigned by
+ the local device and should be suitable for use in commands
+ entered at the device's `console'. This might be a text
+ name, such as `le0' or a simple port number, such as `1',
+ depending on the interface naming syntax of the device. If
+ several entries in the ifTable together represent a single
+ interface as named by the device, then each will have the
+ same value of ifName. Note that for an agent which responds
+ to SNMP queries concerning an interface on some other
+ (proxied) device, then the value of ifName for such an
+ interface is the proxied device's local name for it.
+
+ If there is no local name, or this object is otherwise not
+ applicable, then this object contains a zero-length string."
+ ::= { ifXEntry 1 }
+
+ifInMulticastPkts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of packets, delivered by this sub-layer to a
+ higher (sub-)layer, which were addressed to a multicast
+ address at this sub-layer. For a MAC layer protocol, this
+ includes both Group and Functional addresses.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+
+ times as indicated by the value of
+ ifCounterDiscontinuityTime."
+ ::= { ifXEntry 2 }
+
+ifInBroadcastPkts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of packets, delivered by this sub-layer to a
+ higher (sub-)layer, which were addressed to a broadcast
+ address at this sub-layer.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ifCounterDiscontinuityTime."
+ ::= { ifXEntry 3 }
+
+ifOutMulticastPkts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of packets that higher-level protocols
+ requested be transmitted, and which were addressed to a
+ multicast address at this sub-layer, including those that
+ were discarded or not sent. For a MAC layer protocol, this
+ includes both Group and Functional addresses.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ifCounterDiscontinuityTime."
+ ::= { ifXEntry 4 }
+
+ifOutBroadcastPkts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of packets that higher-level protocols
+ requested be transmitted, and which were addressed to a
+ broadcast address at this sub-layer, including those that
+ were discarded or not sent.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+
+ times as indicated by the value of
+ ifCounterDiscontinuityTime."
+ ::= { ifXEntry 5 }
+
+--
+-- High Capacity Counter objects. These objects are all
+-- 64 bit versions of the "basic" ifTable counters. These
+-- objects all have the same basic semantics as their 32-bit
+-- counterparts, however, their syntax has been extended
+-- to 64 bits.
+--
+
+ifHCInOctets OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of octets received on the interface,
+ including framing characters. This object is a 64-bit
+ version of ifInOctets.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ifCounterDiscontinuityTime."
+ ::= { ifXEntry 6 }
+
+ifHCInUcastPkts OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of packets, delivered by this sub-layer to a
+ higher (sub-)layer, which were not addressed to a multicast
+ or broadcast address at this sub-layer. This object is a
+ 64-bit version of ifInUcastPkts.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ifCounterDiscontinuityTime."
+ ::= { ifXEntry 7 }
+
+ifHCInMulticastPkts OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of packets, delivered by this sub-layer to a
+ higher (sub-)layer, which were addressed to a multicast
+ address at this sub-layer. For a MAC layer protocol, this
+ includes both Group and Functional addresses. This object
+ is a 64-bit version of ifInMulticastPkts.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ifCounterDiscontinuityTime."
+ ::= { ifXEntry 8 }
+
+ifHCInBroadcastPkts OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of packets, delivered by this sub-layer to a
+ higher (sub-)layer, which were addressed to a broadcast
+ address at this sub-layer. This object is a 64-bit version
+ of ifInBroadcastPkts.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ifCounterDiscontinuityTime."
+ ::= { ifXEntry 9 }
+
+ifHCOutOctets OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of octets transmitted out of the
+ interface, including framing characters. This object is a
+ 64-bit version of ifOutOctets.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ifCounterDiscontinuityTime."
+ ::= { ifXEntry 10 }
+
+ifHCOutUcastPkts OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of packets that higher-level protocols
+ requested be transmitted, and which were not addressed to a
+ multicast or broadcast address at this sub-layer, including
+ those that were discarded or not sent. This object is a
+ 64-bit version of ifOutUcastPkts.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ifCounterDiscontinuityTime."
+ ::= { ifXEntry 11 }
+
+ifHCOutMulticastPkts OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of packets that higher-level protocols
+ requested be transmitted, and which were addressed to a
+ multicast address at this sub-layer, including those that
+ were discarded or not sent. For a MAC layer protocol, this
+ includes both Group and Functional addresses. This object
+ is a 64-bit version of ifOutMulticastPkts.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ifCounterDiscontinuityTime."
+ ::= { ifXEntry 12 }
+
+ifHCOutBroadcastPkts OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of packets that higher-level protocols
+ requested be transmitted, and which were addressed to a
+ broadcast address at this sub-layer, including those that
+ were discarded or not sent. This object is a 64-bit version
+ of ifOutBroadcastPkts.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ifCounterDiscontinuityTime."
+ ::= { ifXEntry 13 }
+
+ifLinkUpDownTrapEnable OBJECT-TYPE
+ SYNTAX INTEGER { enabled(1), disabled(2) }
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "Indicates whether linkUp/linkDown traps should be generated
+ for this interface.
+
+ By default, this object should have the value enabled(1) for
+ interfaces which do not operate on 'top' of any other
+ interface (as defined in the ifStackTable), and disabled(2)
+ otherwise."
+ ::= { ifXEntry 14 }
+
+ifHighSpeed OBJECT-TYPE
+ SYNTAX Gauge32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An estimate of the interface's current bandwidth in units
+ of 1,000,000 bits per second. If this object reports a
+ value of `n' then the speed of the interface is somewhere in
+ the range of `n-500,000' to `n+499,999'. For interfaces
+ which do not vary in bandwidth or for those where no
+ accurate estimation can be made, this object should contain
+ the nominal bandwidth. For a sub-layer which has no concept
+ of bandwidth, this object should be zero."
+ ::= { ifXEntry 15 }
+
+ifPromiscuousMode OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "This object has a value of false(2) if this interface only
+ accepts packets/frames that are addressed to this station.
+ This object has a value of true(1) when the station accepts
+ all packets/frames transmitted on the media. The value
+ true(1) is only legal on certain types of media. If legal,
+ setting this object to a value of true(1) may require the
+ interface to be reset before becoming effective.
+
+ The value of ifPromiscuousMode does not affect the reception
+ of broadcast and multicast packets/frames by the interface."
+ ::= { ifXEntry 16 }
+
+ifConnectorPresent OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "This object has the value 'true(1)' if the interface
+ sublayer has a physical connector and the value 'false(2)'
+ otherwise."
+ ::= { ifXEntry 17 }
+
+ifAlias OBJECT-TYPE
+ SYNTAX DisplayString (SIZE(0..64))
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "This object is an 'alias' name for the interface as
+ specified by a network manager, and provides a non-volatile
+ 'handle' for the interface.
+
+ On the first instantiation of an interface, the value of
+ ifAlias associated with that interface is the zero-length
+ string. As and when a value is written into an instance of
+ ifAlias through a network management set operation, then the
+ agent must retain the supplied value in the ifAlias instance
+ associated with the same interface for as long as that
+ interface remains instantiated, including across all re-
+ initializations/reboots of the network management system,
+ including those which result in a change of the interface's
+ ifIndex value.
+
+ An example of the value which a network manager might store
+ in this object for a WAN interface is the (Telco's) circuit
+ number/identifier of the interface.
+
+ Some agents may support write-access only for interfaces
+ having particular values of ifType. An agent which supports
+ write access to this object is required to keep the value in
+ non-volatile storage, but it may limit the length of new
+ values depending on how much storage is already occupied by
+ the current values for other interfaces."
+ ::= { ifXEntry 18 }
+
+ifCounterDiscontinuityTime OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime on the most recent occasion at which
+ any one or more of this interface's counters suffered a
+ discontinuity. The relevant counters are the specific
+ instances associated with this interface of any Counter32 or
+
+ Counter64 object contained in the ifTable or ifXTable. If
+ no such discontinuities have occurred since the last re-
+ initialization of the local management subsystem, then this
+ object contains a zero value."
+ ::= { ifXEntry 19 }
+
+-- The Interface Stack Group
+--
+-- Implementation of this group is optional, but strongly recommended
+-- for all systems
+--
+
+ifStackTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IfStackEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The table containing information on the relationships
+ between the multiple sub-layers of network interfaces. In
+ particular, it contains information on which sub-layers run
+ 'on top of' which other sub-layers, where each sub-layer
+ corresponds to a conceptual row in the ifTable. For
+ example, when the sub-layer with ifIndex value x runs over
+ the sub-layer with ifIndex value y, then this table
+ contains:
+
+ ifStackStatus.x.y=active
+
+ For each ifIndex value, I, which identifies an active
+ interface, there are always at least two instantiated rows
+ in this table associated with I. For one of these rows, I
+ is the value of ifStackHigherLayer; for the other, I is the
+ value of ifStackLowerLayer. (If I is not involved in
+ multiplexing, then these are the only two rows associated
+ with I.)
+
+ For example, two rows exist even for an interface which has
+ no others stacked on top or below it:
+
+ ifStackStatus.0.x=active
+ ifStackStatus.x.0=active "
+ ::= { ifMIBObjects 2 }
+
+ifStackEntry OBJECT-TYPE
+ SYNTAX IfStackEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Information on a particular relationship between two sub-
+ layers, specifying that one sub-layer runs on 'top' of the
+ other sub-layer. Each sub-layer corresponds to a conceptual
+ row in the ifTable."
+ INDEX { ifStackHigherLayer, ifStackLowerLayer }
+ ::= { ifStackTable 1 }
+
+IfStackEntry ::=
+ SEQUENCE {
+ ifStackHigherLayer InterfaceIndexOrZero,
+ ifStackLowerLayer InterfaceIndexOrZero,
+ ifStackStatus RowStatus
+ }
+
+ifStackHigherLayer OBJECT-TYPE
+ SYNTAX InterfaceIndexOrZero
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The value of ifIndex corresponding to the higher sub-layer
+ of the relationship, i.e., the sub-layer which runs on 'top'
+ of the sub-layer identified by the corresponding instance of
+ ifStackLowerLayer. If there is no higher sub-layer (below
+ the internetwork layer), then this object has the value 0."
+ ::= { ifStackEntry 1 }
+
+ifStackLowerLayer OBJECT-TYPE
+ SYNTAX InterfaceIndexOrZero
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The value of ifIndex corresponding to the lower sub-layer
+ of the relationship, i.e., the sub-layer which runs 'below'
+ the sub-layer identified by the corresponding instance of
+ ifStackHigherLayer. If there is no lower sub-layer, then
+ this object has the value 0."
+ ::= { ifStackEntry 2 }
+
+ifStackStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status of the relationship between two sub-layers.
+
+ Changing the value of this object from 'active' to
+ 'notInService' or 'destroy' will likely have consequences up
+ and down the interface stack. Thus, write access to this
+ object is likely to be inappropriate for some types of
+ interfaces, and many implementations will choose not to
+ support write-access for any type of interface."
+ ::= { ifStackEntry 3 }
+
+ifStackLastChange OBJECT-TYPE
+ SYNTAX TimeTicks
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime at the time of the last change of
+ the (whole) interface stack. A change of the interface
+ stack is defined to be any creation, deletion, or change in
+ value of any instance of ifStackStatus. If the interface
+ stack has been unchanged since the last re-initialization of
+ the local network management subsystem, then this object
+ contains a zero value."
+ ::= { ifMIBObjects 6 }
+
+-- Generic Receive Address Table
+--
+-- This group of objects is mandatory for all types of
+-- interfaces which can receive packets/frames addressed to
+-- more than one address.
+--
+-- This table replaces the ifExtnsRcvAddr table. The main
+-- difference is that this table makes use of the RowStatus
+-- textual convention, while ifExtnsRcvAddr did not.
+
+ifRcvAddressTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IfRcvAddressEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This table contains an entry for each address (broadcast,
+ multicast, or uni-cast) for which the system will receive
+ packets/frames on a particular interface, except as follows:
+
+ - for an interface operating in promiscuous mode, entries
+ are only required for those addresses for which the system
+ would receive frames were it not operating in promiscuous
+ mode.
+
+ - for 802.5 functional addresses, only one entry is
+ required, for the address which has the functional address
+ bit ANDed with the bit mask of all functional addresses for
+ which the interface will accept frames.
+
+ A system is normally able to use any unicast address which
+ corresponds to an entry in this table as a source address."
+ ::= { ifMIBObjects 4 }
+
+ifRcvAddressEntry OBJECT-TYPE
+ SYNTAX IfRcvAddressEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A list of objects identifying an address for which the
+ system will accept packets/frames on the particular
+ interface identified by the index value ifIndex."
+ INDEX { ifIndex, ifRcvAddressAddress }
+ ::= { ifRcvAddressTable 1 }
+
+IfRcvAddressEntry ::=
+ SEQUENCE {
+ ifRcvAddressAddress PhysAddress,
+ ifRcvAddressStatus RowStatus,
+ ifRcvAddressType INTEGER
+ }
+
+ifRcvAddressAddress OBJECT-TYPE
+ SYNTAX PhysAddress
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An address for which the system will accept packets/frames
+ on this entry's interface."
+ ::= { ifRcvAddressEntry 1 }
+
+ifRcvAddressStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object is used to create and delete rows in the
+ ifRcvAddressTable."
+ ::= { ifRcvAddressEntry 2 }
+
+ifRcvAddressType OBJECT-TYPE
+ SYNTAX INTEGER {
+
+ other(1),
+ volatile(2),
+ nonVolatile(3)
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object has the value nonVolatile(3) for those entries
+ in the table which are valid and will not be deleted by the
+ next restart of the managed system. Entries having the
+ value volatile(2) are valid and exist, but have not been
+ saved, so that will not exist after the next restart of the
+ managed system. Entries having the value other(1) are valid
+ and exist but are not classified as to whether they will
+ continue to exist after the next restart."
+ DEFVAL { volatile }
+ ::= { ifRcvAddressEntry 3 }
+
+-- definition of interface-related traps.
+
+linkDown NOTIFICATION-TYPE
+ OBJECTS { ifIndex, ifAdminStatus, ifOperStatus }
+ STATUS current
+ DESCRIPTION
+ "A linkDown trap signifies that the SNMP entity, acting in
+ an agent role, has detected that the ifOperStatus object for
+ one of its communication links is about to enter the down
+ state from some other state (but not from the notPresent
+ state). This other state is indicated by the included value
+ of ifOperStatus."
+ ::= { snmpTraps 3 }
+
+linkUp NOTIFICATION-TYPE
+ OBJECTS { ifIndex, ifAdminStatus, ifOperStatus }
+ STATUS current
+ DESCRIPTION
+ "A linkUp trap signifies that the SNMP entity, acting in an
+ agent role, has detected that the ifOperStatus object for
+ one of its communication links left the down state and
+ transitioned into some other state (but not into the
+ notPresent state). This other state is indicated by the
+ included value of ifOperStatus."
+ ::= { snmpTraps 4 }
+
+-- conformance information
+
+ifConformance OBJECT IDENTIFIER ::= { ifMIB 2 }
+
+ifGroups OBJECT IDENTIFIER ::= { ifConformance 1 }
+ifCompliances OBJECT IDENTIFIER ::= { ifConformance 2 }
+
+-- compliance statements
+
+ifCompliance3 MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for SNMP entities which have
+ network interfaces."
+
+ MODULE -- this module
+ MANDATORY-GROUPS { ifGeneralInformationGroup,
+ linkUpDownNotificationsGroup }
+
+-- The groups:
+-- ifFixedLengthGroup
+-- ifHCFixedLengthGroup
+-- ifPacketGroup
+-- ifHCPacketGroup
+-- ifVHCPacketGroup
+-- are mutually exclusive; at most one of these groups is implemented
+-- for a particular interface. When any of these groups is implemented
+-- for a particular interface, then ifCounterDiscontinuityGroup must
+-- also be implemented for that interface.
+
+ GROUP ifFixedLengthGroup
+ DESCRIPTION
+ "This group is mandatory for those network interfaces which
+ are character-oriented or transmit data in fixed-length
+ transmission units, and for which the value of the
+ corresponding instance of ifSpeed is less than or equal to
+ 20,000,000 bits/second."
+
+ GROUP ifHCFixedLengthGroup
+ DESCRIPTION
+ "This group is mandatory for those network interfaces which
+ are character-oriented or transmit data in fixed-length
+ transmission units, and for which the value of the
+ corresponding instance of ifSpeed is greater than 20,000,000
+ bits/second."
+
+ GROUP ifPacketGroup
+ DESCRIPTION
+ "This group is mandatory for those network interfaces which
+ are packet-oriented, and for which the value of the
+ corresponding instance of ifSpeed is less than or equal to
+ 20,000,000 bits/second."
+
+ GROUP ifHCPacketGroup
+ DESCRIPTION
+ "This group is mandatory only for those network interfaces
+ which are packet-oriented and for which the value of the
+ corresponding instance of ifSpeed is greater than 20,000,000
+ bits/second but less than or equal to 650,000,000
+ bits/second."
+
+ GROUP ifVHCPacketGroup
+ DESCRIPTION
+ "This group is mandatory only for those network interfaces
+ which are packet-oriented and for which the value of the
+ corresponding instance of ifSpeed is greater than
+ 650,000,000 bits/second."
+
+ GROUP ifCounterDiscontinuityGroup
+ DESCRIPTION
+ "This group is mandatory for those network interfaces that
+ are required to maintain counters (i.e., those for which one
+ of the ifFixedLengthGroup, ifHCFixedLengthGroup,
+ ifPacketGroup, ifHCPacketGroup, or ifVHCPacketGroup is
+ mandatory)."
+
+ GROUP ifRcvAddressGroup
+ DESCRIPTION
+ "The applicability of this group MUST be defined by the
+ media-specific MIBs. Media-specific MIBs must define the
+ exact meaning, use, and semantics of the addresses in this
+ group."
+
+ OBJECT ifLinkUpDownTrapEnable
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+
+ OBJECT ifPromiscuousMode
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+
+ OBJECT ifAdminStatus
+ SYNTAX INTEGER { up(1), down(2) }
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required, nor is support for the value
+ testing(3)."
+
+ OBJECT ifAlias
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+ ::= { ifCompliances 3 }
+
+-- units of conformance
+
+ifGeneralInformationGroup OBJECT-GROUP
+ OBJECTS { ifIndex, ifDescr, ifType, ifSpeed, ifPhysAddress,
+ ifAdminStatus, ifOperStatus, ifLastChange,
+ ifLinkUpDownTrapEnable, ifConnectorPresent,
+ ifHighSpeed, ifName, ifNumber, ifAlias,
+ ifTableLastChange }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing information applicable to
+ all network interfaces."
+ ::= { ifGroups 10 }
+
+-- the following five groups are mutually exclusive; at most
+-- one of these groups is implemented for any interface
+
+ifFixedLengthGroup OBJECT-GROUP
+ OBJECTS { ifInOctets, ifOutOctets, ifInUnknownProtos,
+ ifInErrors, ifOutErrors }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing information specific to
+ non-high speed (non-high speed interfaces transmit and
+ receive at speeds less than or equal to 20,000,000
+ bits/second) character-oriented or fixed-length-transmission
+ network interfaces."
+ ::= { ifGroups 2 }
+
+ifHCFixedLengthGroup OBJECT-GROUP
+ OBJECTS { ifHCInOctets, ifHCOutOctets,
+ ifInOctets, ifOutOctets, ifInUnknownProtos,
+ ifInErrors, ifOutErrors }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing information specific to
+ high speed (greater than 20,000,000 bits/second) character-
+ oriented or fixed-length-transmission network interfaces."
+ ::= { ifGroups 3 }
+
+ifPacketGroup OBJECT-GROUP
+ OBJECTS { ifInOctets, ifOutOctets, ifInUnknownProtos,
+ ifInErrors, ifOutErrors,
+ ifMtu, ifInUcastPkts, ifInMulticastPkts,
+ ifInBroadcastPkts, ifInDiscards,
+ ifOutUcastPkts, ifOutMulticastPkts,
+ ifOutBroadcastPkts, ifOutDiscards,
+ ifPromiscuousMode }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing information specific to
+ non-high speed (non-high speed interfaces transmit and
+ receive at speeds less than or equal to 20,000,000
+ bits/second) packet-oriented network interfaces."
+ ::= { ifGroups 4 }
+
+ifHCPacketGroup OBJECT-GROUP
+ OBJECTS { ifHCInOctets, ifHCOutOctets,
+ ifInOctets, ifOutOctets, ifInUnknownProtos,
+ ifInErrors, ifOutErrors,
+ ifMtu, ifInUcastPkts, ifInMulticastPkts,
+ ifInBroadcastPkts, ifInDiscards,
+ ifOutUcastPkts, ifOutMulticastPkts,
+ ifOutBroadcastPkts, ifOutDiscards,
+ ifPromiscuousMode }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing information specific to
+ high speed (greater than 20,000,000 bits/second but less
+ than or equal to 650,000,000 bits/second) packet-oriented
+ network interfaces."
+ ::= { ifGroups 5 }
+
+ifVHCPacketGroup OBJECT-GROUP
+ OBJECTS { ifHCInUcastPkts, ifHCInMulticastPkts,
+ ifHCInBroadcastPkts, ifHCOutUcastPkts,
+ ifHCOutMulticastPkts, ifHCOutBroadcastPkts,
+ ifHCInOctets, ifHCOutOctets,
+ ifInOctets, ifOutOctets, ifInUnknownProtos,
+ ifInErrors, ifOutErrors,
+ ifMtu, ifInUcastPkts, ifInMulticastPkts,
+ ifInBroadcastPkts, ifInDiscards,
+ ifOutUcastPkts, ifOutMulticastPkts,
+ ifOutBroadcastPkts, ifOutDiscards,
+ ifPromiscuousMode }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing information specific to
+ higher speed (greater than 650,000,000 bits/second) packet-
+ oriented network interfaces."
+ ::= { ifGroups 6 }
+
+ifRcvAddressGroup OBJECT-GROUP
+ OBJECTS { ifRcvAddressStatus, ifRcvAddressType }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing information on the
+ multiple addresses which an interface receives."
+ ::= { ifGroups 7 }
+
+ifStackGroup2 OBJECT-GROUP
+ OBJECTS { ifStackStatus, ifStackLastChange }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing information on the
+ layering of MIB-II interfaces."
+ ::= { ifGroups 11 }
+
+ifCounterDiscontinuityGroup OBJECT-GROUP
+ OBJECTS { ifCounterDiscontinuityTime }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing information specific to
+ interface counter discontinuities."
+ ::= { ifGroups 13 }
+
+linkUpDownNotificationsGroup NOTIFICATION-GROUP
+ NOTIFICATIONS { linkUp, linkDown }
+ STATUS current
+ DESCRIPTION
+ "The notifications which indicate specific changes in the
+ value of ifOperStatus."
+ ::= { ifGroups 14 }
+
+-- Deprecated Definitions - Objects
+
+--
+-- The Interface Test Table
+--
+-- This group of objects is optional. However, a media-specific
+
+-- MIB may make implementation of this group mandatory.
+--
+-- This table replaces the ifExtnsTestTable
+--
+
+ifTestTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IfTestEntry
+ MAX-ACCESS not-accessible
+ STATUS deprecated
+ DESCRIPTION
+ "This table contains one entry per interface. It defines
+ objects which allow a network manager to instruct an agent
+ to test an interface for various faults. Tests for an
+ interface are defined in the media-specific MIB for that
+ interface. After invoking a test, the object ifTestResult
+ can be read to determine the outcome. If an agent can not
+ perform the test, ifTestResult is set to so indicate. The
+ object ifTestCode can be used to provide further test-
+ specific or interface-specific (or even enterprise-specific)
+ information concerning the outcome of the test. Only one
+ test can be in progress on each interface at any one time.
+ If one test is in progress when another test is invoked, the
+ second test is rejected. Some agents may reject a test when
+ a prior test is active on another interface.
+
+ Before starting a test, a manager-station must first obtain
+ 'ownership' of the entry in the ifTestTable for the
+ interface to be tested. This is accomplished with the
+ ifTestId and ifTestStatus objects as follows:
+
+ try_again:
+ get (ifTestId, ifTestStatus)
+ while (ifTestStatus != notInUse)
+ /*
+ * Loop while a test is running or some other
+ * manager is configuring a test.
+ */
+ short delay
+ get (ifTestId, ifTestStatus)
+ }
+
+ /*
+ * Is not being used right now -- let's compete
+ * to see who gets it.
+ */
+ lock_value = ifTestId
+
+ if ( set(ifTestId = lock_value, ifTestStatus = inUse,
+ ifTestOwner = 'my-IP-address') == FAILURE)
+ /*
+ * Another manager got the ifTestEntry -- go
+ * try again
+ */
+ goto try_again;
+
+ /*
+ * I have the lock
+ */
+ set up any test parameters.
+
+ /*
+ * This starts the test
+ */
+ set(ifTestType = test_to_run);
+
+ wait for test completion by polling ifTestResult
+
+ when test completes, agent sets ifTestResult
+ agent also sets ifTestStatus = 'notInUse'
+
+ retrieve any additional test results, and ifTestId
+
+ if (ifTestId == lock_value+1) results are valid
+
+ A manager station first retrieves the value of the
+ appropriate ifTestId and ifTestStatus objects, periodically
+ repeating the retrieval if necessary, until the value of
+ ifTestStatus is 'notInUse'. The manager station then tries
+ to set the same ifTestId object to the value it just
+ retrieved, the same ifTestStatus object to 'inUse', and the
+ corresponding ifTestOwner object to a value indicating
+ itself. If the set operation succeeds then the manager has
+ obtained ownership of the ifTestEntry, and the value of the
+ ifTestId object is incremented by the agent (per the
+ semantics of TestAndIncr). Failure of the set operation
+ indicates that some other manager has obtained ownership of
+ the ifTestEntry.
+
+ Once ownership is obtained, any test parameters can be
+ setup, and then the test is initiated by setting ifTestType.
+ On completion of the test, the agent sets ifTestStatus to
+ 'notInUse'. Once this occurs, the manager can retrieve the
+ results. In the (rare) event that the invocation of tests
+ by two network managers were to overlap, then there would be
+ a possibility that the first test's results might be
+ overwritten by the second test's results prior to the first
+
+ results being read. This unlikely circumstance can be
+ detected by a network manager retrieving ifTestId at the
+ same time as retrieving the test results, and ensuring that
+ the results are for the desired request.
+
+ If ifTestType is not set within an abnormally long period of
+ time after ownership is obtained, the agent should time-out
+ the manager, and reset the value of the ifTestStatus object
+ back to 'notInUse'. It is suggested that this time-out
+ period be 5 minutes.
+
+ In general, a management station must not retransmit a
+ request to invoke a test for which it does not receive a
+ response; instead, it properly inspects an agent's MIB to
+ determine if the invocation was successful. Only if the
+ invocation was unsuccessful, is the invocation request
+ retransmitted.
+
+ Some tests may require the interface to be taken off-line in
+ order to execute them, or may even require the agent to
+ reboot after completion of the test. In these
+ circumstances, communication with the management station
+ invoking the test may be lost until after completion of the
+ test. An agent is not required to support such tests.
+ However, if such tests are supported, then the agent should
+ make every effort to transmit a response to the request
+ which invoked the test prior to losing communication. When
+ the agent is restored to normal service, the results of the
+ test are properly made available in the appropriate objects.
+ Note that this requires that the ifIndex value assigned to
+ an interface must be unchanged even if the test causes a
+ reboot. An agent must reject any test for which it cannot,
+ perhaps due to resource constraints, make available at least
+ the minimum amount of information after that test
+ completes."
+ ::= { ifMIBObjects 3 }
+
+ifTestEntry OBJECT-TYPE
+ SYNTAX IfTestEntry
+ MAX-ACCESS not-accessible
+ STATUS deprecated
+ DESCRIPTION
+ "An entry containing objects for invoking tests on an
+ interface."
+ AUGMENTS { ifEntry }
+ ::= { ifTestTable 1 }
+
+IfTestEntry ::=
+
+ SEQUENCE {
+ ifTestId TestAndIncr,
+ ifTestStatus INTEGER,
+ ifTestType AutonomousType,
+ ifTestResult INTEGER,
+ ifTestCode OBJECT IDENTIFIER,
+ ifTestOwner OwnerString
+ }
+
+ifTestId OBJECT-TYPE
+ SYNTAX TestAndIncr
+ MAX-ACCESS read-write
+ STATUS deprecated
+ DESCRIPTION
+ "This object identifies the current invocation of the
+ interface's test."
+ ::= { ifTestEntry 1 }
+
+ifTestStatus OBJECT-TYPE
+ SYNTAX INTEGER { notInUse(1), inUse(2) }
+ MAX-ACCESS read-write
+ STATUS deprecated
+ DESCRIPTION
+ "This object indicates whether or not some manager currently
+ has the necessary 'ownership' required to invoke a test on
+ this interface. A write to this object is only successful
+ when it changes its value from 'notInUse(1)' to 'inUse(2)'.
+ After completion of a test, the agent resets the value back
+ to 'notInUse(1)'."
+ ::= { ifTestEntry 2 }
+
+ifTestType OBJECT-TYPE
+ SYNTAX AutonomousType
+ MAX-ACCESS read-write
+ STATUS deprecated
+ DESCRIPTION
+ "A control variable used to start and stop operator-
+ initiated interface tests. Most OBJECT IDENTIFIER values
+ assigned to tests are defined elsewhere, in association with
+ specific types of interface. However, this document assigns
+ a value for a full-duplex loopback test, and defines the
+ special meanings of the subject identifier:
+
+ noTest OBJECT IDENTIFIER ::= { 0 0 }
+
+ When the value noTest is written to this object, no action
+ is taken unless a test is in progress, in which case the
+ test is aborted. Writing any other value to this object is
+
+ only valid when no test is currently in progress, in which
+ case the indicated test is initiated.
+
+ When read, this object always returns the most recent value
+ that ifTestType was set to. If it has not been set since
+ the last initialization of the network management subsystem
+ on the agent, a value of noTest is returned."
+ ::= { ifTestEntry 3 }
+
+ifTestResult OBJECT-TYPE
+ SYNTAX INTEGER {
+ none(1), -- no test yet requested
+ success(2),
+ inProgress(3),
+ notSupported(4),
+ unAbleToRun(5), -- due to state of system
+ aborted(6),
+ failed(7)
+ }
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "This object contains the result of the most recently
+ requested test, or the value none(1) if no tests have been
+ requested since the last reset. Note that this facility
+ provides no provision for saving the results of one test
+ when starting another, as could be required if used by
+ multiple managers concurrently."
+ ::= { ifTestEntry 4 }
+
+ifTestCode OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "This object contains a code which contains more specific
+ information on the test result, for example an error-code
+ after a failed test. Error codes and other values this
+ object may take are specific to the type of interface and/or
+ test. The value may have the semantics of either the
+ AutonomousType or InstancePointer textual conventions as
+ defined in RFC 2579. The identifier:
+
+ testCodeUnknown OBJECT IDENTIFIER ::= { 0 0 }
+
+ is defined for use if no additional result code is
+ available."
+ ::= { ifTestEntry 5 }
+
+ifTestOwner OBJECT-TYPE
+ SYNTAX OwnerString
+ MAX-ACCESS read-write
+ STATUS deprecated
+ DESCRIPTION
+ "The entity which currently has the 'ownership' required to
+ invoke a test on this interface."
+ ::= { ifTestEntry 6 }
+
+-- Deprecated Definitions - Groups
+
+ifGeneralGroup OBJECT-GROUP
+ OBJECTS { ifDescr, ifType, ifSpeed, ifPhysAddress,
+ ifAdminStatus, ifOperStatus, ifLastChange,
+ ifLinkUpDownTrapEnable, ifConnectorPresent,
+ ifHighSpeed, ifName }
+ STATUS deprecated
+ DESCRIPTION
+ "A collection of objects deprecated in favour of
+ ifGeneralInformationGroup."
+ ::= { ifGroups 1 }
+
+ifTestGroup OBJECT-GROUP
+ OBJECTS { ifTestId, ifTestStatus, ifTestType,
+ ifTestResult, ifTestCode, ifTestOwner }
+ STATUS deprecated
+ DESCRIPTION
+ "A collection of objects providing the ability to invoke
+ tests on an interface."
+ ::= { ifGroups 8 }
+
+ifStackGroup OBJECT-GROUP
+ OBJECTS { ifStackStatus }
+ STATUS deprecated
+ DESCRIPTION
+ "The previous collection of objects providing information on
+ the layering of MIB-II interfaces."
+ ::= { ifGroups 9 }
+
+ifOldObjectsGroup OBJECT-GROUP
+ OBJECTS { ifInNUcastPkts, ifOutNUcastPkts,
+ ifOutQLen, ifSpecific }
+ STATUS deprecated
+ DESCRIPTION
+ "The collection of objects deprecated from the original MIB-
+ II interfaces group."
+ ::= { ifGroups 12 }
+
+-- Deprecated Definitions - Compliance
+
+ifCompliance MODULE-COMPLIANCE
+ STATUS deprecated
+ DESCRIPTION
+ "A compliance statement defined in a previous version of
+ this MIB module, for SNMP entities which have network
+ interfaces."
+
+ MODULE -- this module
+ MANDATORY-GROUPS { ifGeneralGroup, ifStackGroup }
+
+ GROUP ifFixedLengthGroup
+ DESCRIPTION
+ "This group is mandatory for all network interfaces which
+ are character-oriented or transmit data in fixed-length
+ transmission units."
+
+ GROUP ifHCFixedLengthGroup
+ DESCRIPTION
+ "This group is mandatory only for those network interfaces
+ which are character-oriented or transmit data in fixed-
+ length transmission units, and for which the value of the
+ corresponding instance of ifSpeed is greater than 20,000,000
+ bits/second."
+
+ GROUP ifPacketGroup
+ DESCRIPTION
+ "This group is mandatory for all network interfaces which
+ are packet-oriented."
+
+ GROUP ifHCPacketGroup
+ DESCRIPTION
+ "This group is mandatory only for those network interfaces
+ which are packet-oriented and for which the value of the
+ corresponding instance of ifSpeed is greater than
+ 650,000,000 bits/second."
+
+ GROUP ifTestGroup
+ DESCRIPTION
+ "This group is optional. Media-specific MIBs which require
+ interface tests are strongly encouraged to use this group
+ for invoking tests and reporting results. A medium specific
+ MIB which has mandatory tests may make implementation of
+
+ this group mandatory."
+
+ GROUP ifRcvAddressGroup
+ DESCRIPTION
+ "The applicability of this group MUST be defined by the
+ media-specific MIBs. Media-specific MIBs must define the
+ exact meaning, use, and semantics of the addresses in this
+ group."
+
+ OBJECT ifLinkUpDownTrapEnable
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+
+ OBJECT ifPromiscuousMode
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+
+ OBJECT ifStackStatus
+ SYNTAX INTEGER { active(1) } -- subset of RowStatus
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required, and only one of the six
+ enumerated values for the RowStatus textual convention need
+ be supported, specifically: active(1)."
+
+ OBJECT ifAdminStatus
+ SYNTAX INTEGER { up(1), down(2) }
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required, nor is support for the value
+ testing(3)."
+ ::= { ifCompliances 1 }
+
+ifCompliance2 MODULE-COMPLIANCE
+ STATUS deprecated
+ DESCRIPTION
+ "A compliance statement defined in a previous version of
+ this MIB module, for SNMP entities which have network
+ interfaces."
+
+ MODULE -- this module
+ MANDATORY-GROUPS { ifGeneralInformationGroup, ifStackGroup2,
+ ifCounterDiscontinuityGroup }
+
+ GROUP ifFixedLengthGroup
+ DESCRIPTION
+ "This group is mandatory for all network interfaces which
+ are character-oriented or transmit data in fixed-length
+ transmission units."
+
+ GROUP ifHCFixedLengthGroup
+ DESCRIPTION
+ "This group is mandatory only for those network interfaces
+ which are character-oriented or transmit data in fixed-
+ length transmission units, and for which the value of the
+ corresponding instance of ifSpeed is greater than 20,000,000
+ bits/second."
+
+ GROUP ifPacketGroup
+ DESCRIPTION
+ "This group is mandatory for all network interfaces which
+ are packet-oriented."
+
+ GROUP ifHCPacketGroup
+ DESCRIPTION
+ "This group is mandatory only for those network interfaces
+ which are packet-oriented and for which the value of the
+ corresponding instance of ifSpeed is greater than
+ 650,000,000 bits/second."
+
+ GROUP ifRcvAddressGroup
+ DESCRIPTION
+ "The applicability of this group MUST be defined by the
+ media-specific MIBs. Media-specific MIBs must define the
+ exact meaning, use, and semantics of the addresses in this
+ group."
+
+ OBJECT ifLinkUpDownTrapEnable
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+
+ OBJECT ifPromiscuousMode
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+
+ OBJECT ifStackStatus
+ SYNTAX INTEGER { active(1) } -- subset of RowStatus
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required, and only one of the six
+ enumerated values for the RowStatus textual convention need
+ be supported, specifically: active(1)."
+
+ OBJECT ifAdminStatus
+ SYNTAX INTEGER { up(1), down(2) }
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required, nor is support for the value
+ testing(3)."
+
+ OBJECT ifAlias
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+ ::= { ifCompliances 2 }
+
+END
diff --git a/php/extras/mibs/INET-ADDRESS-MIB.txt b/php/extras/mibs/INET-ADDRESS-MIB.txt
new file mode 100644
index 000000000..a778cba6b
--- /dev/null
+++ b/php/extras/mibs/INET-ADDRESS-MIB.txt
@@ -0,0 +1,402 @@
+INET-ADDRESS-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, mib-2, Unsigned32 FROM SNMPv2-SMI
+ TEXTUAL-CONVENTION FROM SNMPv2-TC;
+
+inetAddressMIB MODULE-IDENTITY
+ LAST-UPDATED "200502040000Z"
+ ORGANIZATION
+ "IETF Operations and Management Area"
+ CONTACT-INFO
+ "Juergen Schoenwaelder (Editor)
+ International University Bremen
+ P.O. Box 750 561
+ 28725 Bremen, Germany
+
+ Phone: +49 421 200-3587
+ EMail: j.schoenwaelder@iu-bremen.de
+
+ Send comments to ."
+ DESCRIPTION
+ "This MIB module defines textual conventions for
+ representing Internet addresses. An Internet
+ address can be an IPv4 address, an IPv6 address,
+ or a DNS domain name. This module also defines
+ textual conventions for Internet port numbers,
+ autonomous system numbers, and the length of an
+ Internet address prefix.
+
+ Copyright (C) The Internet Society (2005). This version
+ of this MIB module is part of RFC 4001, see the RFC
+ itself for full legal notices."
+ REVISION "200502040000Z"
+ DESCRIPTION
+ "Third version, published as RFC 4001. This revision
+ introduces the InetZoneIndex, InetScopeType, and
+ InetVersion textual conventions."
+ REVISION "200205090000Z"
+ DESCRIPTION
+ "Second version, published as RFC 3291. This
+ revision contains several clarifications and
+ introduces several new textual conventions:
+ InetAddressPrefixLength, InetPortNumber,
+ InetAutonomousSystemNumber, InetAddressIPv4z,
+ and InetAddressIPv6z."
+ REVISION "200006080000Z"
+ DESCRIPTION
+ "Initial version, published as RFC 2851."
+ ::= { mib-2 76 }
+
+InetAddressType ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "A value that represents a type of Internet address.
+
+ unknown(0) An unknown address type. This value MUST
+ be used if the value of the corresponding
+ InetAddress object is a zero-length string.
+ It may also be used to indicate an IP address
+ that is not in one of the formats defined
+ below.
+
+ ipv4(1) An IPv4 address as defined by the
+ InetAddressIPv4 textual convention.
+
+ ipv6(2) An IPv6 address as defined by the
+ InetAddressIPv6 textual convention.
+
+ ipv4z(3) A non-global IPv4 address including a zone
+ index as defined by the InetAddressIPv4z
+ textual convention.
+
+ ipv6z(4) A non-global IPv6 address including a zone
+ index as defined by the InetAddressIPv6z
+ textual convention.
+
+ dns(16) A DNS domain name as defined by the
+ InetAddressDNS textual convention.
+
+ Each definition of a concrete InetAddressType value must be
+ accompanied by a definition of a textual convention for use
+ with that InetAddressType.
+
+ To support future extensions, the InetAddressType textual
+ convention SHOULD NOT be sub-typed in object type definitions.
+ It MAY be sub-typed in compliance statements in order to
+ require only a subset of these address types for a compliant
+ implementation.
+
+ Implementations must ensure that InetAddressType objects
+ and any dependent objects (e.g., InetAddress objects) are
+ consistent. An inconsistentValue error must be generated
+ if an attempt to change an InetAddressType object would,
+ for example, lead to an undefined InetAddress value. In
+
+ particular, InetAddressType/InetAddress pairs must be
+ changed together if the address type changes (e.g., from
+ ipv6(2) to ipv4(1))."
+ SYNTAX INTEGER {
+ unknown(0),
+ ipv4(1),
+ ipv6(2),
+ ipv4z(3),
+ ipv6z(4),
+ dns(16)
+ }
+
+InetAddress ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "Denotes a generic Internet address.
+
+ An InetAddress value is always interpreted within the context
+ of an InetAddressType value. Every usage of the InetAddress
+ textual convention is required to specify the InetAddressType
+ object that provides the context. It is suggested that the
+ InetAddressType object be logically registered before the
+ object(s) that use the InetAddress textual convention, if
+ they appear in the same logical row.
+
+ The value of an InetAddress object must always be
+ consistent with the value of the associated InetAddressType
+ object. Attempts to set an InetAddress object to a value
+ inconsistent with the associated InetAddressType
+ must fail with an inconsistentValue error.
+
+ When this textual convention is used as the syntax of an
+ index object, there may be issues with the limit of 128
+ sub-identifiers specified in SMIv2, STD 58. In this case,
+ the object definition MUST include a 'SIZE' clause to
+ limit the number of potential instance sub-identifiers;
+ otherwise the applicable constraints MUST be stated in
+ the appropriate conceptual row DESCRIPTION clauses, or
+ in the surrounding documentation if there is no single
+ DESCRIPTION clause that is appropriate."
+ SYNTAX OCTET STRING (SIZE (0..255))
+
+InetAddressIPv4 ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "1d.1d.1d.1d"
+ STATUS current
+ DESCRIPTION
+ "Represents an IPv4 network address:
+
+ Octets Contents Encoding
+ 1-4 IPv4 address network-byte order
+
+ The corresponding InetAddressType value is ipv4(1).
+
+ This textual convention SHOULD NOT be used directly in object
+ definitions, as it restricts addresses to a specific format.
+ However, if it is used, it MAY be used either on its own or in
+ conjunction with InetAddressType, as a pair."
+ SYNTAX OCTET STRING (SIZE (4))
+
+InetAddressIPv6 ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "2x:2x:2x:2x:2x:2x:2x:2x"
+ STATUS current
+ DESCRIPTION
+ "Represents an IPv6 network address:
+
+ Octets Contents Encoding
+ 1-16 IPv6 address network-byte order
+
+ The corresponding InetAddressType value is ipv6(2).
+
+ This textual convention SHOULD NOT be used directly in object
+ definitions, as it restricts addresses to a specific format.
+ However, if it is used, it MAY be used either on its own or in
+ conjunction with InetAddressType, as a pair."
+ SYNTAX OCTET STRING (SIZE (16))
+
+InetAddressIPv4z ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "1d.1d.1d.1d%4d"
+ STATUS current
+ DESCRIPTION
+ "Represents a non-global IPv4 network address, together
+ with its zone index:
+
+ Octets Contents Encoding
+ 1-4 IPv4 address network-byte order
+ 5-8 zone index network-byte order
+
+ The corresponding InetAddressType value is ipv4z(3).
+
+ The zone index (bytes 5-8) is used to disambiguate identical
+ address values on nodes that have interfaces attached to
+ different zones of the same scope. The zone index may contain
+ the special value 0, which refers to the default zone for each
+ scope.
+
+ This textual convention SHOULD NOT be used directly in object
+
+ definitions, as it restricts addresses to a specific format.
+ However, if it is used, it MAY be used either on its own or in
+ conjunction with InetAddressType, as a pair."
+ SYNTAX OCTET STRING (SIZE (8))
+
+InetAddressIPv6z ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "2x:2x:2x:2x:2x:2x:2x:2x%4d"
+ STATUS current
+ DESCRIPTION
+ "Represents a non-global IPv6 network address, together
+ with its zone index:
+
+ Octets Contents Encoding
+ 1-16 IPv6 address network-byte order
+ 17-20 zone index network-byte order
+
+ The corresponding InetAddressType value is ipv6z(4).
+
+ The zone index (bytes 17-20) is used to disambiguate
+ identical address values on nodes that have interfaces
+ attached to different zones of the same scope. The zone index
+ may contain the special value 0, which refers to the default
+ zone for each scope.
+
+ This textual convention SHOULD NOT be used directly in object
+ definitions, as it restricts addresses to a specific format.
+ However, if it is used, it MAY be used either on its own or in
+ conjunction with InetAddressType, as a pair."
+ SYNTAX OCTET STRING (SIZE (20))
+
+InetAddressDNS ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "255a"
+ STATUS current
+ DESCRIPTION
+ "Represents a DNS domain name. The name SHOULD be fully
+ qualified whenever possible.
+
+ The corresponding InetAddressType is dns(16).
+
+ The DESCRIPTION clause of InetAddress objects that may have
+ InetAddressDNS values MUST fully describe how (and when)
+ these names are to be resolved to IP addresses.
+
+ The resolution of an InetAddressDNS value may require to
+ query multiple DNS records (e.g., A for IPv4 and AAAA for
+ IPv6). The order of the resolution process and which DNS
+ record takes precedence depends on the configuration of the
+ resolver.
+
+ This textual convention SHOULD NOT be used directly in object
+ definitions, as it restricts addresses to a specific format.
+ However, if it is used, it MAY be used either on its own or in
+ conjunction with InetAddressType, as a pair."
+ SYNTAX OCTET STRING (SIZE (1..255))
+
+InetAddressPrefixLength ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "d"
+ STATUS current
+ DESCRIPTION
+ "Denotes the length of a generic Internet network address
+ prefix. A value of n corresponds to an IP address mask
+ that has n contiguous 1-bits from the most significant
+ bit (MSB), with all other bits set to 0.
+
+ An InetAddressPrefixLength value is always interpreted within
+ the context of an InetAddressType value. Every usage of the
+ InetAddressPrefixLength textual convention is required to
+ specify the InetAddressType object that provides the
+ context. It is suggested that the InetAddressType object be
+ logically registered before the object(s) that use the
+ InetAddressPrefixLength textual convention, if they appear
+ in the same logical row.
+
+ InetAddressPrefixLength values larger than
+ the maximum length of an IP address for a specific
+ InetAddressType are treated as the maximum significant
+ value applicable for the InetAddressType. The maximum
+ significant value is 32 for the InetAddressType
+ 'ipv4(1)' and 'ipv4z(3)' and 128 for the InetAddressType
+ 'ipv6(2)' and 'ipv6z(4)'. The maximum significant value
+ for the InetAddressType 'dns(16)' is 0.
+
+ The value zero is object-specific and must be defined as
+ part of the description of any object that uses this
+ syntax. Examples of the usage of zero might include
+ situations where the Internet network address prefix
+ is unknown or does not apply.
+
+ The upper bound of the prefix length has been chosen to
+ be consistent with the maximum size of an InetAddress."
+ SYNTAX Unsigned32 (0..2040)
+
+InetPortNumber ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "d"
+ STATUS current
+ DESCRIPTION
+ "Represents a 16 bit port number of an Internet transport
+
+ layer protocol. Port numbers are assigned by IANA. A
+ current list of all assignments is available from
+ .
+
+ The value zero is object-specific and must be defined as
+ part of the description of any object that uses this
+ syntax. Examples of the usage of zero might include
+ situations where a port number is unknown, or when the
+ value zero is used as a wildcard in a filter."
+ REFERENCE "STD 6 (RFC 768), STD 7 (RFC 793) and RFC 2960"
+ SYNTAX Unsigned32 (0..65535)
+
+InetAutonomousSystemNumber ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "d"
+ STATUS current
+ DESCRIPTION
+ "Represents an autonomous system number that identifies an
+ Autonomous System (AS). An AS is a set of routers under a
+ single technical administration, using an interior gateway
+ protocol and common metrics to route packets within the AS,
+ and using an exterior gateway protocol to route packets to
+ other ASes'. IANA maintains the AS number space and has
+ delegated large parts to the regional registries.
+
+ Autonomous system numbers are currently limited to 16 bits
+ (0..65535). There is, however, work in progress to enlarge the
+ autonomous system number space to 32 bits. Therefore, this
+ textual convention uses an Unsigned32 value without a
+ range restriction in order to support a larger autonomous
+ system number space."
+ REFERENCE "RFC 1771, RFC 1930"
+ SYNTAX Unsigned32
+
+InetScopeType ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "Represents a scope type. This textual convention can be used
+ in cases where a MIB has to represent different scope types
+ and there is no context information, such as an InetAddress
+ object, that implicitly defines the scope type.
+
+ Note that not all possible values have been assigned yet, but
+ they may be assigned in future revisions of this specification.
+ Applications should therefore be able to deal with values
+ not yet assigned."
+ REFERENCE "RFC 3513"
+ SYNTAX INTEGER {
+ -- reserved(0),
+ interfaceLocal(1),
+ linkLocal(2),
+ subnetLocal(3),
+ adminLocal(4),
+ siteLocal(5), -- site-local unicast addresses
+ -- have been deprecated by RFC 3879
+ -- unassigned(6),
+ -- unassigned(7),
+ organizationLocal(8),
+ -- unassigned(9),
+ -- unassigned(10),
+ -- unassigned(11),
+ -- unassigned(12),
+ -- unassigned(13),
+ global(14)
+ -- reserved(15)
+ }
+
+InetZoneIndex ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "d"
+ STATUS current
+ DESCRIPTION
+ "A zone index identifies an instance of a zone of a
+ specific scope.
+
+ The zone index MUST disambiguate identical address
+ values. For link-local addresses, the zone index will
+ typically be the interface index (ifIndex as defined in the
+ IF-MIB) of the interface on which the address is configured.
+
+ The zone index may contain the special value 0, which refers
+ to the default zone. The default zone may be used in cases
+ where the valid zone index is not known (e.g., when a
+ management application has to write a link-local IPv6
+ address without knowing the interface index value). The
+ default zone SHOULD NOT be used as an easy way out in
+ cases where the zone index for a non-global IPv6 address
+ is known."
+ REFERENCE "RFC4007"
+ SYNTAX Unsigned32
+
+InetVersion ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "A value representing a version of the IP protocol.
+
+ unknown(0) An unknown or unspecified version of the IP
+ protocol.
+
+ ipv4(1) The IPv4 protocol as defined in RFC 791 (STD 5).
+
+ ipv6(2) The IPv6 protocol as defined in RFC 2460.
+
+ Note that this textual convention SHOULD NOT be used to
+ distinguish different address types associated with IP
+ protocols. The InetAddressType has been designed for this
+ purpose."
+ REFERENCE "RFC 791, RFC 2460"
+ SYNTAX INTEGER {
+ unknown(0),
+ ipv4(1),
+ ipv6(2)
+ }
+END
diff --git a/php/extras/mibs/IP-FORWARD-MIB.txt b/php/extras/mibs/IP-FORWARD-MIB.txt
new file mode 100644
index 000000000..3090ff795
--- /dev/null
+++ b/php/extras/mibs/IP-FORWARD-MIB.txt
@@ -0,0 +1,1357 @@
+IP-FORWARD-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE,
+ IpAddress, Integer32, Gauge32,
+ Counter32 FROM SNMPv2-SMI
+ RowStatus FROM SNMPv2-TC
+
+
+
+ MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
+ InterfaceIndexOrZero FROM IF-MIB
+ ip FROM IP-MIB
+ IANAipRouteProtocol FROM IANA-RTPROTO-MIB
+ InetAddress, InetAddressType,
+ InetAddressPrefixLength,
+ InetAutonomousSystemNumber FROM INET-ADDRESS-MIB;
+
+ipForward MODULE-IDENTITY
+ LAST-UPDATED "200602010000Z"
+ ORGANIZATION
+ "IETF IPv6 Working Group
+ http://www.ietf.org/html.charters/ipv6-charter.html"
+ CONTACT-INFO
+ "Editor:
+ Brian Haberman
+ Johns Hopkins University - Applied Physics Laboratory
+ Mailstop 17-S442
+ 11100 Johns Hopkins Road
+ Laurel MD, 20723-6099 USA
+
+ Phone: +1-443-778-1319
+ Email: brian@innovationslab.net
+
+ Send comments to "
+ DESCRIPTION
+ "The MIB module for the management of CIDR multipath IP
+ Routes.
+
+ Copyright (C) The Internet Society (2006). This version
+ of this MIB module is a part of RFC 4292; see the RFC
+ itself for full legal notices."
+
+ REVISION "200602010000Z"
+ DESCRIPTION
+ "IPv4/v6 version-independent revision. Minimal changes
+ were made to the original RFC 2096 MIB to allow easy
+ upgrade of existing IPv4 implementations to the
+ version-independent MIB. These changes include:
+
+ Adding inetCidrRouteDiscards as a replacement for the
+ deprecated ipRoutingDiscards and ipv6DiscardedRoutes
+ objects.
+
+ Adding a new conformance statement to support the
+ implementation of the IP Forwarding MIB in a
+ read-only mode.
+
+
+
+
+ The inetCidrRouteTable replaces the IPv4-specific
+ ipCidrRouteTable, its related objects, and related
+ conformance statements.
+
+ Published as RFC 4292."
+
+ REVISION "199609190000Z"
+ DESCRIPTION
+ "Revised to support CIDR routes.
+ Published as RFC 2096."
+
+ REVISION "199207022156Z"
+ DESCRIPTION
+ "Initial version, published as RFC 1354."
+ ::= { ip 24 }
+
+inetCidrRouteNumber OBJECT-TYPE
+ SYNTAX Gauge32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of current inetCidrRouteTable entries that
+ are not invalid."
+::= { ipForward 6 }
+
+inetCidrRouteDiscards OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of valid route entries discarded from the
+ inetCidrRouteTable. Discarded route entries do not
+ appear in the inetCidrRouteTable. One possible reason
+ for discarding an entry would be to free-up buffer space
+ for other route table entries."
+ ::= { ipForward 8 }
+
+-- Inet CIDR Route Table
+
+-- The Inet CIDR Route Table deprecates and replaces the
+-- ipCidrRoute Table currently in the IP Forwarding Table MIB.
+-- It adds IP protocol independence.
+
+inetCidrRouteTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF InetCidrRouteEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+
+
+
+ "This entity's IP Routing table."
+ REFERENCE
+ "RFC 1213 Section 6.6, The IP Group"
+ ::= { ipForward 7 }
+
+inetCidrRouteEntry OBJECT-TYPE
+ SYNTAX InetCidrRouteEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A particular route to a particular destination, under a
+ particular policy (as reflected in the
+ inetCidrRoutePolicy object).
+
+ Dynamically created rows will survive an agent reboot.
+
+ Implementers need to be aware that if the total number
+ of elements (octets or sub-identifiers) in
+ inetCidrRouteDest, inetCidrRoutePolicy, and
+ inetCidrRouteNextHop exceeds 111, then OIDs of column
+ instances in this table will have more than 128 sub-
+ identifiers and cannot be accessed using SNMPv1,
+ SNMPv2c, or SNMPv3."
+ INDEX {
+ inetCidrRouteDestType,
+ inetCidrRouteDest,
+ inetCidrRoutePfxLen,
+ inetCidrRoutePolicy,
+ inetCidrRouteNextHopType,
+ inetCidrRouteNextHop
+ }
+ ::= { inetCidrRouteTable 1 }
+
+InetCidrRouteEntry ::= SEQUENCE {
+ inetCidrRouteDestType InetAddressType,
+ inetCidrRouteDest InetAddress,
+ inetCidrRoutePfxLen InetAddressPrefixLength,
+ inetCidrRoutePolicy OBJECT IDENTIFIER,
+ inetCidrRouteNextHopType InetAddressType,
+ inetCidrRouteNextHop InetAddress,
+ inetCidrRouteIfIndex InterfaceIndexOrZero,
+ inetCidrRouteType INTEGER,
+ inetCidrRouteProto IANAipRouteProtocol,
+ inetCidrRouteAge Gauge32,
+ inetCidrRouteNextHopAS InetAutonomousSystemNumber,
+ inetCidrRouteMetric1 Integer32,
+ inetCidrRouteMetric2 Integer32,
+ inetCidrRouteMetric3 Integer32,
+
+
+
+ inetCidrRouteMetric4 Integer32,
+ inetCidrRouteMetric5 Integer32,
+ inetCidrRouteStatus RowStatus
+ }
+
+inetCidrRouteDestType OBJECT-TYPE
+ SYNTAX InetAddressType
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The type of the inetCidrRouteDest address, as defined
+ in the InetAddress MIB.
+
+ Only those address types that may appear in an actual
+ routing table are allowed as values of this object."
+ REFERENCE "RFC 4001"
+ ::= { inetCidrRouteEntry 1 }
+
+inetCidrRouteDest OBJECT-TYPE
+ SYNTAX InetAddress
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The destination IP address of this route.
+
+ The type of this address is determined by the value of
+ the inetCidrRouteDestType object.
+
+ The values for the index objects inetCidrRouteDest and
+ inetCidrRoutePfxLen must be consistent. When the value
+ of inetCidrRouteDest (excluding the zone index, if one
+ is present) is x, then the bitwise logical-AND
+ of x with the value of the mask formed from the
+ corresponding index object inetCidrRoutePfxLen MUST be
+ equal to x. If not, then the index pair is not
+ consistent and an inconsistentName error must be
+ returned on SET or CREATE requests."
+
+ ::= { inetCidrRouteEntry 2 }
+
+inetCidrRoutePfxLen OBJECT-TYPE
+ SYNTAX InetAddressPrefixLength
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Indicates the number of leading one bits that form the
+ mask to be logical-ANDed with the destination address
+ before being compared to the value in the
+
+
+
+ inetCidrRouteDest field.
+
+ The values for the index objects inetCidrRouteDest and
+ inetCidrRoutePfxLen must be consistent. When the value
+ of inetCidrRouteDest (excluding the zone index, if one
+ is present) is x, then the bitwise logical-AND
+ of x with the value of the mask formed from the
+ corresponding index object inetCidrRoutePfxLen MUST be
+ equal to x. If not, then the index pair is not
+ consistent and an inconsistentName error must be
+ returned on SET or CREATE requests."
+
+ ::= { inetCidrRouteEntry 3 }
+
+inetCidrRoutePolicy OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This object is an opaque object without any defined
+ semantics. Its purpose is to serve as an additional
+ index that may delineate between multiple entries to
+ the same destination. The value { 0 0 } shall be used
+ as the default value for this object."
+ ::= { inetCidrRouteEntry 4 }
+
+inetCidrRouteNextHopType OBJECT-TYPE
+ SYNTAX InetAddressType
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The type of the inetCidrRouteNextHop address, as
+ defined in the InetAddress MIB.
+
+ Value should be set to unknown(0) for non-remote
+ routes.
+
+ Only those address types that may appear in an actual
+ routing table are allowed as values of this object."
+ REFERENCE "RFC 4001"
+ ::= { inetCidrRouteEntry 5 }
+
+inetCidrRouteNextHop OBJECT-TYPE
+ SYNTAX InetAddress
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "On remote routes, the address of the next system en
+
+
+
+ route. For non-remote routes, a zero length string.
+
+ The type of this address is determined by the value of
+ the inetCidrRouteNextHopType object."
+ ::= { inetCidrRouteEntry 6 }
+
+inetCidrRouteIfIndex OBJECT-TYPE
+ SYNTAX InterfaceIndexOrZero
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The ifIndex value that identifies the local interface
+ through which the next hop of this route should be
+ reached. A value of 0 is valid and represents the
+ scenario where no interface is specified."
+ ::= { inetCidrRouteEntry 7 }
+
+inetCidrRouteType OBJECT-TYPE
+ SYNTAX INTEGER {
+ other (1), -- not specified by this MIB
+ reject (2), -- route that discards traffic and
+ -- returns ICMP notification
+ local (3), -- local interface
+ remote (4), -- remote destination
+ blackhole(5) -- route that discards traffic
+ -- silently
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The type of route. Note that local(3) refers to a
+ route for which the next hop is the final destination;
+ remote(4) refers to a route for which the next hop is
+ not the final destination.
+
+ Routes that do not result in traffic forwarding or
+ rejection should not be displayed, even if the
+ implementation keeps them stored internally.
+
+ reject(2) refers to a route that, if matched, discards
+ the message as unreachable and returns a notification
+ (e.g., ICMP error) to the message sender. This is used
+ in some protocols as a means of correctly aggregating
+ routes.
+
+ blackhole(5) refers to a route that, if matched,
+ discards the message silently."
+ ::= { inetCidrRouteEntry 8 }
+
+
+
+
+inetCidrRouteProto OBJECT-TYPE
+ SYNTAX IANAipRouteProtocol
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The routing mechanism via which this route was learned.
+ Inclusion of values for gateway routing protocols is
+ not intended to imply that hosts should support those
+ protocols."
+ ::= { inetCidrRouteEntry 9 }
+
+inetCidrRouteAge OBJECT-TYPE
+ SYNTAX Gauge32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of seconds since this route was last updated
+ or otherwise determined to be correct. Note that no
+ semantics of 'too old' can be implied, except through
+ knowledge of the routing protocol by which the route
+ was learned."
+ ::= { inetCidrRouteEntry 10 }
+
+inetCidrRouteNextHopAS OBJECT-TYPE
+ SYNTAX InetAutonomousSystemNumber
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The Autonomous System Number of the Next Hop. The
+ semantics of this object are determined by the routing-
+ protocol specified in the route's inetCidrRouteProto
+ value. When this object is unknown or not relevant, its
+ value should be set to zero."
+ DEFVAL { 0 }
+ ::= { inetCidrRouteEntry 11 }
+
+inetCidrRouteMetric1 OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The primary routing metric for this route. The
+ semantics of this metric are determined by the routing-
+ protocol specified in the route's inetCidrRouteProto
+ value. If this metric is not used, its value should be
+ set to -1."
+ DEFVAL { -1 }
+
+
+
+ ::= { inetCidrRouteEntry 12 }
+
+inetCidrRouteMetric2 OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "An alternate routing metric for this route. The
+ semantics of this metric are determined by the routing-
+ protocol specified in the route's inetCidrRouteProto
+ value. If this metric is not used, its value should be
+ set to -1."
+ DEFVAL { -1 }
+ ::= { inetCidrRouteEntry 13 }
+
+inetCidrRouteMetric3 OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "An alternate routing metric for this route. The
+ semantics of this metric are determined by the routing-
+ protocol specified in the route's inetCidrRouteProto
+ value. If this metric is not used, its value should be
+ set to -1."
+ DEFVAL { -1 }
+ ::= { inetCidrRouteEntry 14 }
+
+inetCidrRouteMetric4 OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "An alternate routing metric for this route. The
+ semantics of this metric are determined by the routing-
+ protocol specified in the route's inetCidrRouteProto
+ value. If this metric is not used, its value should be
+ set to -1."
+ DEFVAL { -1 }
+ ::= { inetCidrRouteEntry 15 }
+
+inetCidrRouteMetric5 OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "An alternate routing metric for this route. The
+ semantics of this metric are determined by the routing-
+
+
+
+ protocol specified in the route's inetCidrRouteProto
+ value. If this metric is not used, its value should be
+ set to -1."
+ DEFVAL { -1 }
+ ::= { inetCidrRouteEntry 16 }
+
+inetCidrRouteStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The row status variable, used according to row
+ installation and removal conventions.
+
+ A row entry cannot be modified when the status is
+ marked as active(1)."
+ ::= { inetCidrRouteEntry 17 }
+
+-- Conformance information
+
+ipForwardConformance
+ OBJECT IDENTIFIER ::= { ipForward 5 }
+
+ipForwardGroups
+ OBJECT IDENTIFIER ::= { ipForwardConformance 1 }
+
+ipForwardCompliances
+ OBJECT IDENTIFIER ::= { ipForwardConformance 2 }
+
+-- Compliance statements
+
+ipForwardFullCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "When this MIB is implemented for read-create, the
+ implementation can claim full compliance.
+
+ There are a number of INDEX objects that cannot be
+ represented in the form of OBJECT clauses in SMIv2,
+ but for which there are compliance requirements,
+ expressed in OBJECT clause form in this description:
+
+ -- OBJECT inetCidrRouteDestType
+ -- SYNTAX InetAddressType (ipv4(1), ipv6(2),
+ -- ipv4z(3), ipv6z(4))
+ -- DESCRIPTION
+ -- This MIB requires support for global and
+ -- non-global ipv4 and ipv6 addresses.
+
+
+
+ --
+ -- OBJECT inetCidrRouteDest
+ -- SYNTAX InetAddress (SIZE (4 | 8 | 16 | 20))
+ -- DESCRIPTION
+ -- This MIB requires support for global and
+ -- non-global IPv4 and IPv6 addresses.
+ --
+ -- OBJECT inetCidrRouteNextHopType
+ -- SYNTAX InetAddressType (unknown(0), ipv4(1),
+ -- ipv6(2), ipv4z(3)
+ -- ipv6z(4))
+ -- DESCRIPTION
+ -- This MIB requires support for global and
+ -- non-global ipv4 and ipv6 addresses.
+ --
+ -- OBJECT inetCidrRouteNextHop
+ -- SYNTAX InetAddress (SIZE (0 | 4 | 8 | 16 | 20))
+ -- DESCRIPTION
+ -- This MIB requires support for global and
+ -- non-global IPv4 and IPv6 addresses.
+ "
+
+ MODULE -- this module
+ MANDATORY-GROUPS { inetForwardCidrRouteGroup }
+
+ OBJECT inetCidrRouteStatus
+ SYNTAX RowStatus { active(1), notInService (2) }
+ WRITE-SYNTAX RowStatus { active(1), notInService (2),
+ createAndGo(4), destroy(6) }
+ DESCRIPTION "Support for createAndWait is not required."
+
+ ::= { ipForwardCompliances 3 }
+
+ipForwardReadOnlyCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "When this MIB is implemented without support for read-
+ create (i.e., in read-only mode), the implementation can
+ claim read-only compliance."
+ MODULE -- this module
+ MANDATORY-GROUPS { inetForwardCidrRouteGroup }
+
+ OBJECT inetCidrRouteIfIndex
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+
+ OBJECT inetCidrRouteType
+
+
+
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+
+ OBJECT inetCidrRouteNextHopAS
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+
+ OBJECT inetCidrRouteMetric1
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+
+ OBJECT inetCidrRouteMetric2
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+
+ OBJECT inetCidrRouteMetric3
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+
+ OBJECT inetCidrRouteMetric4
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+
+ OBJECT inetCidrRouteMetric5
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+
+ OBJECT inetCidrRouteStatus
+ SYNTAX RowStatus { active(1) }
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+
+ ::= { ipForwardCompliances 4 }
+
+-- units of conformance
+
+inetForwardCidrRouteGroup OBJECT-GROUP
+ OBJECTS { inetCidrRouteDiscards,
+ inetCidrRouteIfIndex, inetCidrRouteType,
+ inetCidrRouteProto, inetCidrRouteAge,
+
+
+
+ inetCidrRouteNextHopAS, inetCidrRouteMetric1,
+ inetCidrRouteMetric2, inetCidrRouteMetric3,
+ inetCidrRouteMetric4, inetCidrRouteMetric5,
+ inetCidrRouteStatus, inetCidrRouteNumber
+ }
+ STATUS current
+ DESCRIPTION
+ "The IP version-independent CIDR Route Table."
+ ::= { ipForwardGroups 4 }
+
+-- Deprecated Objects
+
+ipCidrRouteNumber OBJECT-TYPE
+ SYNTAX Gauge32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of current ipCidrRouteTable entries that are
+ not invalid. This object is deprecated in favor of
+ inetCidrRouteNumber and the inetCidrRouteTable."
+ ::= { ipForward 3 }
+
+-- IP CIDR Route Table
+
+-- The IP CIDR Route Table obsoletes and replaces the ipRoute
+-- Table current in MIB-I and MIB-II and the IP Forwarding Table.
+-- It adds knowledge of the autonomous system of the next hop,
+-- multiple next hops, policy routing, and Classless
+-- Inter-Domain Routing.
+
+ipCidrRouteTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IpCidrRouteEntry
+ MAX-ACCESS not-accessible
+ STATUS deprecated
+ DESCRIPTION
+ "This entity's IP Routing table. This table has been
+ deprecated in favor of the IP version neutral
+ inetCidrRouteTable."
+ REFERENCE
+ "RFC 1213 Section 6.6, The IP Group"
+ ::= { ipForward 4 }
+
+ipCidrRouteEntry OBJECT-TYPE
+ SYNTAX IpCidrRouteEntry
+ MAX-ACCESS not-accessible
+ STATUS deprecated
+ DESCRIPTION
+ "A particular route to a particular destination, under a
+
+
+
+ particular policy."
+ INDEX {
+ ipCidrRouteDest,
+ ipCidrRouteMask,
+ ipCidrRouteTos,
+ ipCidrRouteNextHop
+ }
+ ::= { ipCidrRouteTable 1 }
+
+IpCidrRouteEntry ::= SEQUENCE {
+ ipCidrRouteDest IpAddress,
+ ipCidrRouteMask IpAddress,
+ ipCidrRouteTos Integer32,
+ ipCidrRouteNextHop IpAddress,
+ ipCidrRouteIfIndex Integer32,
+ ipCidrRouteType INTEGER,
+ ipCidrRouteProto INTEGER,
+ ipCidrRouteAge Integer32,
+ ipCidrRouteInfo OBJECT IDENTIFIER,
+ ipCidrRouteNextHopAS Integer32,
+ ipCidrRouteMetric1 Integer32,
+ ipCidrRouteMetric2 Integer32,
+ ipCidrRouteMetric3 Integer32,
+ ipCidrRouteMetric4 Integer32,
+ ipCidrRouteMetric5 Integer32,
+ ipCidrRouteStatus RowStatus
+ }
+
+ipCidrRouteDest OBJECT-TYPE
+ SYNTAX IpAddress
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The destination IP address of this route.
+
+ This object may not take a Multicast (Class D) address
+ value.
+
+ Any assignment (implicit or otherwise) of an instance
+ of this object to a value x must be rejected if the
+ bitwise logical-AND of x with the value of the
+ corresponding instance of the ipCidrRouteMask object is
+ not equal to x."
+ ::= { ipCidrRouteEntry 1 }
+
+ipCidrRouteMask OBJECT-TYPE
+ SYNTAX IpAddress
+ MAX-ACCESS read-only
+
+
+
+ STATUS deprecated
+ DESCRIPTION
+ "Indicate the mask to be logical-ANDed with the
+ destination address before being compared to the value
+ in the ipCidrRouteDest field. For those systems that
+ do not support arbitrary subnet masks, an agent
+ constructs the value of the ipCidrRouteMask by
+ reference to the IP Address Class.
+
+ Any assignment (implicit or otherwise) of an instance
+ of this object to a value x must be rejected if the
+ bitwise logical-AND of x with the value of the
+ corresponding instance of the ipCidrRouteDest object is
+ not equal to ipCidrRouteDest."
+ ::= { ipCidrRouteEntry 2 }
+
+-- The following convention is included for specification
+-- of TOS Field contents. At this time, the Host Requirements
+-- and the Router Requirements documents disagree on the width
+-- of the TOS field. This mapping describes the Router
+-- Requirements mapping, and leaves room to widen the TOS field
+-- without impact to fielded systems.
+
+ipCidrRouteTos OBJECT-TYPE
+ SYNTAX Integer32 (0..2147483647)
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The policy specifier is the IP TOS Field. The encoding
+ of IP TOS is as specified by the following convention.
+ Zero indicates the default path if no more specific
+ policy applies.
+
+ +-----+-----+-----+-----+-----+-----+-----+-----+
+ | | | |
+ | PRECEDENCE | TYPE OF SERVICE | 0 |
+ | | | |
+ +-----+-----+-----+-----+-----+-----+-----+-----+
+
+ IP TOS IP TOS
+ Field Policy Field Policy
+ Contents Code Contents Code
+ 0 0 0 0 ==> 0 0 0 0 1 ==> 2
+ 0 0 1 0 ==> 4 0 0 1 1 ==> 6
+ 0 1 0 0 ==> 8 0 1 0 1 ==> 10
+ 0 1 1 0 ==> 12 0 1 1 1 ==> 14
+ 1 0 0 0 ==> 16 1 0 0 1 ==> 18
+ 1 0 1 0 ==> 20 1 0 1 1 ==> 22
+
+
+
+ 1 1 0 0 ==> 24 1 1 0 1 ==> 26
+ 1 1 1 0 ==> 28 1 1 1 1 ==> 30"
+ ::= { ipCidrRouteEntry 3 }
+
+ipCidrRouteNextHop OBJECT-TYPE
+ SYNTAX IpAddress
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "On remote routes, the address of the next system en
+ route; Otherwise, 0.0.0.0."
+ ::= { ipCidrRouteEntry 4 }
+
+ipCidrRouteIfIndex OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-create
+ STATUS deprecated
+ DESCRIPTION
+ "The ifIndex value that identifies the local interface
+ through which the next hop of this route should be
+ reached."
+ DEFVAL { 0 }
+ ::= { ipCidrRouteEntry 5 }
+
+ipCidrRouteType OBJECT-TYPE
+ SYNTAX INTEGER {
+ other (1), -- not specified by this MIB
+ reject (2), -- route that discards traffic
+ local (3), -- local interface
+ remote (4) -- remote destination
+ }
+ MAX-ACCESS read-create
+ STATUS deprecated
+ DESCRIPTION
+ "The type of route. Note that local(3) refers to a
+ route for which the next hop is the final destination;
+ remote(4) refers to a route for which the next hop is
+ not the final destination.
+
+ Routes that do not result in traffic forwarding or
+ rejection should not be displayed, even if the
+ implementation keeps them stored internally.
+
+ reject (2) refers to a route that, if matched,
+ discards the message as unreachable. This is used in
+ some protocols as a means of correctly aggregating
+ routes."
+ ::= { ipCidrRouteEntry 6 }
+
+
+
+
+ipCidrRouteProto OBJECT-TYPE
+ SYNTAX INTEGER {
+ other (1), -- not specified
+ local (2), -- local interface
+ netmgmt (3), -- static route
+ icmp (4), -- result of ICMP Redirect
+
+ -- the following are all dynamic
+ -- routing protocols
+ egp (5), -- Exterior Gateway Protocol
+ ggp (6), -- Gateway-Gateway Protocol
+ hello (7), -- FuzzBall HelloSpeak
+ rip (8), -- Berkeley RIP or RIP-II
+ isIs (9), -- Dual IS-IS
+ esIs (10), -- ISO 9542
+ ciscoIgrp (11), -- Cisco IGRP
+ bbnSpfIgp (12), -- BBN SPF IGP
+ ospf (13), -- Open Shortest Path First
+ bgp (14), -- Border Gateway Protocol
+ idpr (15), -- InterDomain Policy Routing
+ ciscoEigrp (16) -- Cisco EIGRP
+ }
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The routing mechanism via which this route was learned.
+ Inclusion of values for gateway routing protocols is
+ not intended to imply that hosts should support those
+ protocols."
+ ::= { ipCidrRouteEntry 7 }
+
+ipCidrRouteAge OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of seconds since this route was last updated
+ or otherwise determined to be correct. Note that no
+ semantics of `too old' can be implied, except through
+ knowledge of the routing protocol by which the route
+ was learned."
+ DEFVAL { 0 }
+ ::= { ipCidrRouteEntry 8 }
+
+ipCidrRouteInfo OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-create
+
+
+
+ STATUS deprecated
+ DESCRIPTION
+ "A reference to MIB definitions specific to the
+ particular routing protocol that is responsible for
+ this route, as determined by the value specified in the
+ route's ipCidrRouteProto value. If this information is
+ not present, its value should be set to the OBJECT
+ IDENTIFIER { 0 0 }, which is a syntactically valid
+ object identifier, and any implementation conforming to
+ ASN.1 and the Basic Encoding Rules must be able to
+ generate and recognize this value."
+ ::= { ipCidrRouteEntry 9 }
+
+ipCidrRouteNextHopAS OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-create
+ STATUS deprecated
+ DESCRIPTION
+ "The Autonomous System Number of the Next Hop. The
+ semantics of this object are determined by the routing-
+ protocol specified in the route's ipCidrRouteProto
+ value. When this object is unknown or not relevant, its
+ value should be set to zero."
+ DEFVAL { 0 }
+ ::= { ipCidrRouteEntry 10 }
+
+ipCidrRouteMetric1 OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-create
+ STATUS deprecated
+ DESCRIPTION
+ "The primary routing metric for this route. The
+ semantics of this metric are determined by the routing-
+ protocol specified in the route's ipCidrRouteProto
+ value. If this metric is not used, its value should be
+ set to -1."
+ DEFVAL { -1 }
+ ::= { ipCidrRouteEntry 11 }
+
+ipCidrRouteMetric2 OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-create
+ STATUS deprecated
+ DESCRIPTION
+ "An alternate routing metric for this route. The
+ semantics of this metric are determined by the routing-
+ protocol specified in the route's ipCidrRouteProto
+ value. If this metric is not used, its value should be
+
+
+
+ set to -1."
+ DEFVAL { -1 }
+ ::= { ipCidrRouteEntry 12 }
+
+ipCidrRouteMetric3 OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-create
+ STATUS deprecated
+ DESCRIPTION
+ "An alternate routing metric for this route. The
+ semantics of this metric are determined by the routing-
+ protocol specified in the route's ipCidrRouteProto
+ value. If this metric is not used, its value should be
+ set to -1."
+ DEFVAL { -1 }
+ ::= { ipCidrRouteEntry 13 }
+
+ipCidrRouteMetric4 OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-create
+ STATUS deprecated
+ DESCRIPTION
+ "An alternate routing metric for this route. The
+ semantics of this metric are determined by the routing-
+ protocol specified in the route's ipCidrRouteProto
+ value. If this metric is not used, its value should be
+ set to -1."
+ DEFVAL { -1 }
+ ::= { ipCidrRouteEntry 14 }
+
+ipCidrRouteMetric5 OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-create
+ STATUS deprecated
+ DESCRIPTION
+ "An alternate routing metric for this route. The
+ semantics of this metric are determined by the routing-
+ protocol specified in the route's ipCidrRouteProto
+ value. If this metric is not used, its value should be
+ set to -1."
+ DEFVAL { -1 }
+ ::= { ipCidrRouteEntry 15 }
+
+ipCidrRouteStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS deprecated
+ DESCRIPTION
+
+
+
+ "The row status variable, used according to row
+ installation and removal conventions."
+ ::= { ipCidrRouteEntry 16 }
+
+-- compliance statements
+
+ipForwardCompliance MODULE-COMPLIANCE
+ STATUS deprecated
+ DESCRIPTION
+ "The compliance statement for SNMPv2 entities that
+ implement the ipForward MIB.
+
+ This compliance statement has been deprecated and
+ replaced with ipForwardFullCompliance and
+ ipForwardReadOnlyCompliance."
+
+ MODULE -- this module
+ MANDATORY-GROUPS { ipForwardCidrRouteGroup }
+
+ ::= { ipForwardCompliances 1 }
+
+-- units of conformance
+
+ipForwardCidrRouteGroup OBJECT-GROUP
+ OBJECTS { ipCidrRouteNumber,
+ ipCidrRouteDest, ipCidrRouteMask, ipCidrRouteTos,
+ ipCidrRouteNextHop, ipCidrRouteIfIndex,
+ ipCidrRouteType, ipCidrRouteProto, ipCidrRouteAge,
+ ipCidrRouteInfo,ipCidrRouteNextHopAS,
+ ipCidrRouteMetric1, ipCidrRouteMetric2,
+ ipCidrRouteMetric3, ipCidrRouteMetric4,
+ ipCidrRouteMetric5, ipCidrRouteStatus
+ }
+ STATUS deprecated
+ DESCRIPTION
+ "The CIDR Route Table.
+
+ This group has been deprecated and replaced with
+ inetForwardCidrRouteGroup."
+ ::= { ipForwardGroups 3 }
+
+-- Obsoleted Definitions - Objects
+
+ipForwardNumber OBJECT-TYPE
+ SYNTAX Gauge32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+
+
+
+ "The number of current ipForwardTable entries that are
+ not invalid."
+ ::= { ipForward 1 }
+
+-- IP Forwarding Table
+
+-- The IP Forwarding Table obsoletes and replaces the ipRoute
+-- Table current in MIB-I and MIB-II. It adds knowledge of
+-- the autonomous system of the next hop, multiple next hop
+-- support, and policy routing support.
+
+ipForwardTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IpForwardEntry
+ MAX-ACCESS not-accessible
+ STATUS obsolete
+ DESCRIPTION
+ "This entity's IP Routing table."
+ REFERENCE
+ "RFC 1213 Section 6.6, The IP Group"
+ ::= { ipForward 2 }
+
+ipForwardEntry OBJECT-TYPE
+ SYNTAX IpForwardEntry
+ MAX-ACCESS not-accessible
+ STATUS obsolete
+ DESCRIPTION
+ "A particular route to a particular destination, under a
+ particular policy."
+ INDEX {
+ ipForwardDest,
+ ipForwardProto,
+ ipForwardPolicy,
+ ipForwardNextHop
+ }
+ ::= { ipForwardTable 1 }
+
+IpForwardEntry ::= SEQUENCE {
+ ipForwardDest IpAddress,
+ ipForwardMask IpAddress,
+ ipForwardPolicy Integer32,
+ ipForwardNextHop IpAddress,
+ ipForwardIfIndex Integer32,
+ ipForwardType INTEGER,
+ ipForwardProto INTEGER,
+ ipForwardAge Integer32,
+ ipForwardInfo OBJECT IDENTIFIER,
+ ipForwardNextHopAS Integer32,
+ ipForwardMetric1 Integer32,
+
+
+
+ ipForwardMetric2 Integer32,
+ ipForwardMetric3 Integer32,
+ ipForwardMetric4 Integer32,
+ ipForwardMetric5 Integer32
+ }
+
+ipForwardDest OBJECT-TYPE
+ SYNTAX IpAddress
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The destination IP address of this route. An entry
+ with a value of 0.0.0.0 is considered a default route.
+
+ This object may not take a Multicast (Class D) address
+ value.
+
+ Any assignment (implicit or otherwise) of an instance
+ of this object to a value x must be rejected if the
+ bitwise logical-AND of x with the value of the
+ corresponding instance of the ipForwardMask object is
+ not equal to x."
+ ::= { ipForwardEntry 1 }
+
+ipForwardMask OBJECT-TYPE
+ SYNTAX IpAddress
+ MAX-ACCESS read-create
+ STATUS obsolete
+ DESCRIPTION
+ "Indicate the mask to be logical-ANDed with the
+ destination address before being compared to the value
+ in the ipForwardDest field. For those systems that do
+ not support arbitrary subnet masks, an agent constructs
+ the value of the ipForwardMask by reference to the IP
+ Address Class.
+
+ Any assignment (implicit or otherwise) of an instance
+ of this object to a value x must be rejected if the
+ bitwise logical-AND of x with the value of the
+ corresponding instance of the ipForwardDest object is
+ not equal to ipForwardDest."
+ DEFVAL { '00000000'H } -- 0.0.0.0
+ ::= { ipForwardEntry 2 }
+
+-- The following convention is included for specification
+-- of TOS Field contents. At this time, the Host Requirements
+-- and the Router Requirements documents disagree on the width
+-- of the TOS field. This mapping describes the Router
+
+
+
+-- Requirements mapping, and leaves room to widen the TOS field
+-- without impact to fielded systems.
+
+ipForwardPolicy OBJECT-TYPE
+ SYNTAX Integer32 (0..2147483647)
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The general set of conditions that would cause
+ the selection of one multipath route (set of
+ next hops for a given destination) is referred
+ to as 'policy'.
+
+ Unless the mechanism indicated by ipForwardProto
+ specifies otherwise, the policy specifier is
+ the IP TOS Field. The encoding of IP TOS is as
+ specified by the following convention. Zero
+ indicates the default path if no more specific
+ policy applies.
+
+ +-----+-----+-----+-----+-----+-----+-----+-----+
+ | | | |
+ | PRECEDENCE | TYPE OF SERVICE | 0 |
+ | | | |
+ +-----+-----+-----+-----+-----+-----+-----+-----+
+
+
+
+ IP TOS IP TOS
+ Field Policy Field Policy
+ Contents Code Contents Code
+ 0 0 0 0 ==> 0 0 0 0 1 ==> 2
+ 0 0 1 0 ==> 4 0 0 1 1 ==> 6
+ 0 1 0 0 ==> 8 0 1 0 1 ==> 10
+ 0 1 1 0 ==> 12 0 1 1 1 ==> 14
+ 1 0 0 0 ==> 16 1 0 0 1 ==> 18
+ 1 0 1 0 ==> 20 1 0 1 1 ==> 22
+ 1 1 0 0 ==> 24 1 1 0 1 ==> 26
+ 1 1 1 0 ==> 28 1 1 1 1 ==> 30
+
+ Protocols defining 'policy' otherwise must either
+ define a set of values that are valid for
+ this object or must implement an integer-instanced
+ policy table for which this object's
+ value acts as an index."
+ ::= { ipForwardEntry 3 }
+
+ipForwardNextHop OBJECT-TYPE
+
+
+
+ SYNTAX IpAddress
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "On remote routes, the address of the next system en
+ route; otherwise, 0.0.0.0."
+ ::= { ipForwardEntry 4 }
+
+ipForwardIfIndex OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-create
+ STATUS obsolete
+ DESCRIPTION
+ "The ifIndex value that identifies the local interface
+ through which the next hop of this route should be
+ reached."
+ DEFVAL { 0 }
+ ::= { ipForwardEntry 5 }
+
+ipForwardType OBJECT-TYPE
+ SYNTAX INTEGER {
+ other (1), -- not specified by this MIB
+ invalid (2), -- logically deleted
+ local (3), -- local interface
+ remote (4) -- remote destination
+ }
+ MAX-ACCESS read-create
+ STATUS obsolete
+ DESCRIPTION
+ "The type of route. Note that local(3) refers to a
+ route for which the next hop is the final destination;
+ remote(4) refers to a route for which the next hop is
+ not the final destination.
+
+ Setting this object to the value invalid(2) has the
+ effect of invalidating the corresponding entry in the
+ ipForwardTable object. That is, it effectively
+ disassociates the destination identified with said
+ entry from the route identified with said entry. It is
+ an implementation-specific matter as to whether the
+ agent removes an invalidated entry from the table.
+ Accordingly, management stations must be prepared to
+ receive tabular information from agents that
+ corresponds to entries not currently in use. Proper
+ interpretation of such entries requires examination of
+ the relevant ipForwardType object."
+ DEFVAL { invalid }
+ ::= { ipForwardEntry 6 }
+
+
+
+
+ipForwardProto OBJECT-TYPE
+ SYNTAX INTEGER {
+ other (1), -- not specified
+ local (2), -- local interface
+ netmgmt (3), -- static route
+ icmp (4), -- result of ICMP Redirect
+
+ -- the following are all dynamic
+ -- routing protocols
+ egp (5), -- Exterior Gateway Protocol
+ ggp (6), -- Gateway-Gateway Protocol
+ hello (7), -- FuzzBall HelloSpeak
+ rip (8), -- Berkeley RIP or RIP-II
+ is-is (9), -- Dual IS-IS
+ es-is (10), -- ISO 9542
+ ciscoIgrp (11), -- Cisco IGRP
+ bbnSpfIgp (12), -- BBN SPF IGP
+ ospf (13), -- Open Shortest Path First
+ bgp (14), -- Border Gateway Protocol
+ idpr (15) -- InterDomain Policy Routing
+ }
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The routing mechanism via which this route was learned.
+ Inclusion of values for gateway routing protocols is
+ not intended to imply that hosts should support those
+ protocols."
+ ::= { ipForwardEntry 7 }
+
+ipForwardAge OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The number of seconds since this route was last updated
+ or otherwise determined to be correct. Note that no
+ semantics of `too old' can be implied except through
+ knowledge of the routing protocol by which the route
+ was learned."
+ DEFVAL { 0 }
+ ::= { ipForwardEntry 8 }
+
+ipForwardInfo OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-create
+ STATUS obsolete
+
+
+
+ DESCRIPTION
+ "A reference to MIB definitions specific to the
+ particular routing protocol that is responsible for
+ this route, as determined by the value specified in the
+ route's ipForwardProto value. If this information is
+ not present, its value should be set to the OBJECT
+ IDENTIFIER { 0 0 }, which is a syntactically valid
+ object identifier, and any implementation conforming to
+ ASN.1 and the Basic Encoding Rules must be able to
+ generate and recognize this value."
+ ::= { ipForwardEntry 9 }
+
+ipForwardNextHopAS OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-create
+ STATUS obsolete
+ DESCRIPTION
+ "The Autonomous System Number of the Next Hop. When
+ this is unknown or not relevant to the protocol
+ indicated by ipForwardProto, zero."
+ DEFVAL { 0 }
+ ::= { ipForwardEntry 10 }
+
+ipForwardMetric1 OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-create
+ STATUS obsolete
+ DESCRIPTION
+ "The primary routing metric for this route. The
+ semantics of this metric are determined by the routing-
+ protocol specified in the route's ipForwardProto value.
+ If this metric is not used, its value should be set to
+ -1."
+ DEFVAL { -1 }
+ ::= { ipForwardEntry 11 }
+
+ipForwardMetric2 OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-create
+ STATUS obsolete
+ DESCRIPTION
+ "An alternate routing metric for this route. The
+ semantics of this metric are determined by the routing-
+ protocol specified in the route's ipForwardProto value.
+ If this metric is not used, its value should be set to
+ -1."
+ DEFVAL { -1 }
+ ::= { ipForwardEntry 12 }
+
+
+
+
+ipForwardMetric3 OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-create
+ STATUS obsolete
+ DESCRIPTION
+ "An alternate routing metric for this route. The
+ semantics of this metric are determined by the routing-
+ protocol specified in the route's ipForwardProto value.
+ If this metric is not used, its value should be set to
+ -1."
+ DEFVAL { -1 }
+ ::= { ipForwardEntry 13 }
+
+ipForwardMetric4 OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-create
+ STATUS obsolete
+ DESCRIPTION
+ "An alternate routing metric for this route. The
+ semantics of this metric are determined by the routing-
+ protocol specified in the route's ipForwardProto value.
+ If this metric is not used, its value should be set to
+ -1."
+ DEFVAL { -1 }
+ ::= { ipForwardEntry 14 }
+
+ipForwardMetric5 OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-create
+ STATUS obsolete
+ DESCRIPTION
+ "An alternate routing metric for this route. The
+ semantics of this metric are determined by the routing-
+ protocol specified in the route's ipForwardProto value.
+ If this metric is not used, its value should be set to
+ -1."
+ DEFVAL { -1 }
+ ::= { ipForwardEntry 15 }
+
+-- Obsoleted Definitions - Groups
+-- compliance statements
+
+ipForwardOldCompliance MODULE-COMPLIANCE
+ STATUS obsolete
+ DESCRIPTION
+ "The compliance statement for SNMP entities that
+ implement the ipForward MIB."
+
+
+
+
+ MODULE -- this module
+ MANDATORY-GROUPS { ipForwardMultiPathGroup }
+
+ ::= { ipForwardCompliances 2 }
+
+ipForwardMultiPathGroup OBJECT-GROUP
+ OBJECTS { ipForwardNumber,
+ ipForwardDest, ipForwardMask, ipForwardPolicy,
+ ipForwardNextHop, ipForwardIfIndex, ipForwardType,
+ ipForwardProto, ipForwardAge, ipForwardInfo,
+ ipForwardNextHopAS,
+ ipForwardMetric1, ipForwardMetric2, ipForwardMetric3,
+ ipForwardMetric4, ipForwardMetric5
+ }
+ STATUS obsolete
+ DESCRIPTION
+ "IP Multipath Route Table."
+ ::= { ipForwardGroups 2 }
+
+END
diff --git a/php/extras/mibs/IP-MIB.txt b/php/extras/mibs/IP-MIB.txt
new file mode 100644
index 000000000..0a93501bc
--- /dev/null
+++ b/php/extras/mibs/IP-MIB.txt
@@ -0,0 +1,5254 @@
+IP-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE,
+ Integer32, Counter32, IpAddress,
+ mib-2, Unsigned32, Counter64,
+ zeroDotZero FROM SNMPv2-SMI
+ PhysAddress, TruthValue,
+ TimeStamp, RowPointer,
+ TEXTUAL-CONVENTION, TestAndIncr,
+ RowStatus, StorageType FROM SNMPv2-TC
+ MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
+ InetAddress, InetAddressType,
+ InetAddressPrefixLength,
+ InetVersion, InetZoneIndex FROM INET-ADDRESS-MIB
+ InterfaceIndex FROM IF-MIB;
+
+ipMIB MODULE-IDENTITY
+ LAST-UPDATED "200602020000Z"
+ ORGANIZATION "IETF IPv6 MIB Revision Team"
+ CONTACT-INFO
+ "Editor:
+
+
+
+ Shawn A. Routhier
+ Interworking Labs
+ 108 Whispering Pines Dr. Suite 235
+ Scotts Valley, CA 95066
+ USA
+ EMail: "
+ DESCRIPTION
+ "The MIB module for managing IP and ICMP implementations, but
+ excluding their management of IP routes.
+
+ Copyright (C) The Internet Society (2006). This version of
+ this MIB module is part of RFC 4293; see the RFC itself for
+ full legal notices."
+
+ REVISION "200602020000Z"
+ DESCRIPTION
+ "The IP version neutral revision with added IPv6 objects for
+ ND, default routers, and router advertisements. As well as
+ being the successor to RFC 2011, this MIB is also the
+ successor to RFCs 2465 and 2466. Published as RFC 4293."
+
+ REVISION "199411010000Z"
+ DESCRIPTION
+ "A separate MIB module (IP-MIB) for IP and ICMP management
+ objects. Published as RFC 2011."
+
+ REVISION "199103310000Z"
+ DESCRIPTION
+ "The initial revision of this MIB module was part of MIB-II,
+ which was published as RFC 1213."
+ ::= { mib-2 48}
+
+--
+-- The textual conventions we define and use in this MIB.
+--
+
+IpAddressOriginTC ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "The origin of the address.
+
+ manual(2) indicates that the address was manually configured
+ to a specified address, e.g., by user configuration.
+
+ dhcp(4) indicates an address that was assigned to this
+ system by a DHCP server.
+
+ linklayer(5) indicates an address created by IPv6 stateless
+
+
+
+ auto-configuration.
+
+ random(6) indicates an address chosen by the system at
+ random, e.g., an IPv4 address within 169.254/16, or an RFC
+ 3041 privacy address."
+ SYNTAX INTEGER {
+ other(1),
+ manual(2),
+ dhcp(4),
+ linklayer(5),
+ random(6)
+ }
+
+IpAddressStatusTC ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "The status of an address. Most of the states correspond to
+ states from the IPv6 Stateless Address Autoconfiguration
+ protocol.
+
+ The preferred(1) state indicates that this is a valid
+ address that can appear as the destination or source address
+ of a packet.
+
+ The deprecated(2) state indicates that this is a valid but
+ deprecated address that should no longer be used as a source
+ address in new communications, but packets addressed to such
+ an address are processed as expected.
+
+ The invalid(3) state indicates that this isn't a valid
+ address and it shouldn't appear as the destination or source
+ address of a packet.
+
+ The inaccessible(4) state indicates that the address is not
+ accessible because the interface to which this address is
+ assigned is not operational.
+
+ The unknown(5) state indicates that the status cannot be
+ determined for some reason.
+
+ The tentative(6) state indicates that the uniqueness of the
+ address on the link is being verified. Addresses in this
+ state should not be used for general communication and
+ should only be used to determine the uniqueness of the
+ address.
+
+ The duplicate(7) state indicates the address has been
+ determined to be non-unique on the link and so must not be
+
+
+
+ used.
+
+ The optimistic(8) state indicates the address is available
+ for use, subject to restrictions, while its uniqueness on
+ a link is being verified.
+
+ In the absence of other information, an IPv4 address is
+ always preferred(1)."
+ REFERENCE "RFC 2462"
+ SYNTAX INTEGER {
+ preferred(1),
+ deprecated(2),
+ invalid(3),
+ inaccessible(4),
+ unknown(5),
+ tentative(6),
+ duplicate(7),
+ optimistic(8)
+ }
+
+IpAddressPrefixOriginTC ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "The origin of this prefix.
+
+ manual(2) indicates a prefix that was manually configured.
+
+ wellknown(3) indicates a well-known prefix, e.g., 169.254/16
+ for IPv4 auto-configuration or fe80::/10 for IPv6 link-local
+ addresses. Well known prefixes may be assigned by IANA,
+ the address registries, or by specification in a standards
+ track RFC.
+
+ dhcp(4) indicates a prefix that was assigned by a DHCP
+ server.
+
+ routeradv(5) indicates a prefix learned from a router
+ advertisement.
+
+ Note: while IpAddressOriginTC and IpAddressPrefixOriginTC
+ are similar, they are not identical. The first defines how
+ an address was created, while the second defines how a
+ prefix was found."
+ SYNTAX INTEGER {
+ other(1),
+ manual(2),
+ wellknown(3),
+ dhcp(4),
+
+
+
+ routeradv(5)
+ }
+
+Ipv6AddressIfIdentifierTC ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "2x:"
+ STATUS current
+ DESCRIPTION
+ "This data type is used to model IPv6 address
+ interface identifiers. This is a binary string
+ of up to 8 octets in network byte-order."
+ SYNTAX OCTET STRING (SIZE (0..8))
+
+--
+-- the IP general group
+-- some objects that affect all of IPv4
+--
+
+ip OBJECT IDENTIFIER ::= { mib-2 4 }
+
+ipForwarding OBJECT-TYPE
+ SYNTAX INTEGER {
+ forwarding(1), -- acting as a router
+ notForwarding(2) -- NOT acting as a router
+ }
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The indication of whether this entity is acting as an IPv4
+ router in respect to the forwarding of datagrams received
+ by, but not addressed to, this entity. IPv4 routers forward
+ datagrams. IPv4 hosts do not (except those source-routed
+ via the host).
+
+ When this object is written, the entity should save the
+ change to non-volatile storage and restore the object from
+ non-volatile storage upon re-initialization of the system.
+ Note: a stronger requirement is not used because this object
+ was previously defined."
+ ::= { ip 1 }
+
+ipDefaultTTL OBJECT-TYPE
+ SYNTAX Integer32 (1..255)
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The default value inserted into the Time-To-Live field of
+ the IPv4 header of datagrams originated at this entity,
+ whenever a TTL value is not supplied by the transport layer
+
+
+
+ protocol.
+
+ When this object is written, the entity should save the
+ change to non-volatile storage and restore the object from
+ non-volatile storage upon re-initialization of the system.
+ Note: a stronger requirement is not used because this object
+ was previously defined."
+ ::= { ip 2 }
+
+ipReasmTimeout OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "seconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The maximum number of seconds that received fragments are
+ held while they are awaiting reassembly at this entity."
+ ::= { ip 13 }
+
+--
+-- the IPv6 general group
+-- Some objects that affect all of IPv6
+--
+
+ipv6IpForwarding OBJECT-TYPE
+ SYNTAX INTEGER {
+ forwarding(1), -- acting as a router
+ notForwarding(2) -- NOT acting as a router
+ }
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The indication of whether this entity is acting as an IPv6
+ router on any interface in respect to the forwarding of
+ datagrams received by, but not addressed to, this entity.
+ IPv6 routers forward datagrams. IPv6 hosts do not (except
+ those source-routed via the host).
+
+ When this object is written, the entity SHOULD save the
+ change to non-volatile storage and restore the object from
+ non-volatile storage upon re-initialization of the system."
+ ::= { ip 25 }
+
+ipv6IpDefaultHopLimit OBJECT-TYPE
+ SYNTAX Integer32 (0..255)
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+
+
+
+ "The default value inserted into the Hop Limit field of the
+ IPv6 header of datagrams originated at this entity whenever
+ a Hop Limit value is not supplied by the transport layer
+ protocol.
+
+ When this object is written, the entity SHOULD save the
+ change to non-volatile storage and restore the object from
+ non-volatile storage upon re-initialization of the system."
+ REFERENCE "RFC 2461 Section 6.3.2"
+ ::= { ip 26 }
+
+--
+-- IPv4 Interface Table
+--
+
+ipv4InterfaceTableLastChange OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime on the most recent occasion at which
+ a row in the ipv4InterfaceTable was added or deleted, or
+ when an ipv4InterfaceReasmMaxSize or an
+ ipv4InterfaceEnableStatus object was modified.
+
+ If new objects are added to the ipv4InterfaceTable that
+ require the ipv4InterfaceTableLastChange to be updated when
+ they are modified, they must specify that requirement in
+ their description clause."
+ ::= { ip 27 }
+
+ipv4InterfaceTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF Ipv4InterfaceEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The table containing per-interface IPv4-specific
+ information."
+ ::= { ip 28 }
+
+ipv4InterfaceEntry OBJECT-TYPE
+ SYNTAX Ipv4InterfaceEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry containing IPv4-specific information for a specific
+ interface."
+ INDEX { ipv4InterfaceIfIndex }
+
+
+
+ ::= { ipv4InterfaceTable 1 }
+
+Ipv4InterfaceEntry ::= SEQUENCE {
+ ipv4InterfaceIfIndex InterfaceIndex,
+ ipv4InterfaceReasmMaxSize Integer32,
+ ipv4InterfaceEnableStatus INTEGER,
+ ipv4InterfaceRetransmitTime Unsigned32
+ }
+
+ipv4InterfaceIfIndex OBJECT-TYPE
+ SYNTAX InterfaceIndex
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The index value that uniquely identifies the interface to
+ which this entry is applicable. The interface identified by
+ a particular value of this index is the same interface as
+ identified by the same value of the IF-MIB's ifIndex."
+ ::= { ipv4InterfaceEntry 1 }
+
+ipv4InterfaceReasmMaxSize OBJECT-TYPE
+ SYNTAX Integer32 (0..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The size of the largest IPv4 datagram that this entity can
+ re-assemble from incoming IPv4 fragmented datagrams received
+ on this interface."
+ ::= { ipv4InterfaceEntry 2 }
+
+ipv4InterfaceEnableStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ up(1),
+ down(2)
+ }
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The indication of whether IPv4 is enabled (up) or disabled
+ (down) on this interface. This object does not affect the
+ state of the interface itself, only its connection to an
+ IPv4 stack. The IF-MIB should be used to control the state
+ of the interface."
+ ::= { ipv4InterfaceEntry 3 }
+
+ipv4InterfaceRetransmitTime OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "milliseconds"
+
+
+
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The time between retransmissions of ARP requests to a
+ neighbor when resolving the address or when probing the
+ reachability of a neighbor."
+ REFERENCE "RFC 1122"
+ DEFVAL { 1000 }
+ ::= { ipv4InterfaceEntry 4 }
+
+--
+-- v6 interface table
+--
+
+ipv6InterfaceTableLastChange OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime on the most recent occasion at which
+ a row in the ipv6InterfaceTable was added or deleted or when
+ an ipv6InterfaceReasmMaxSize, ipv6InterfaceIdentifier,
+ ipv6InterfaceEnableStatus, ipv6InterfaceReachableTime,
+ ipv6InterfaceRetransmitTime, or ipv6InterfaceForwarding
+ object was modified.
+
+ If new objects are added to the ipv6InterfaceTable that
+ require the ipv6InterfaceTableLastChange to be updated when
+ they are modified, they must specify that requirement in
+ their description clause."
+ ::= { ip 29 }
+
+ipv6InterfaceTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF Ipv6InterfaceEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The table containing per-interface IPv6-specific
+ information."
+ ::= { ip 30 }
+
+ipv6InterfaceEntry OBJECT-TYPE
+ SYNTAX Ipv6InterfaceEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry containing IPv6-specific information for a given
+ interface."
+
+
+
+ INDEX { ipv6InterfaceIfIndex }
+ ::= { ipv6InterfaceTable 1 }
+
+Ipv6InterfaceEntry ::= SEQUENCE {
+ ipv6InterfaceIfIndex InterfaceIndex,
+ ipv6InterfaceReasmMaxSize Unsigned32,
+ ipv6InterfaceIdentifier Ipv6AddressIfIdentifierTC,
+ ipv6InterfaceEnableStatus INTEGER,
+ ipv6InterfaceReachableTime Unsigned32,
+ ipv6InterfaceRetransmitTime Unsigned32,
+ ipv6InterfaceForwarding INTEGER
+ }
+
+ipv6InterfaceIfIndex OBJECT-TYPE
+ SYNTAX InterfaceIndex
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The index value that uniquely identifies the interface to
+ which this entry is applicable. The interface identified by
+ a particular value of this index is the same interface as
+ identified by the same value of the IF-MIB's ifIndex."
+ ::= { ipv6InterfaceEntry 1 }
+
+ipv6InterfaceReasmMaxSize OBJECT-TYPE
+ SYNTAX Unsigned32 (1500..65535)
+ UNITS "octets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The size of the largest IPv6 datagram that this entity can
+ re-assemble from incoming IPv6 fragmented datagrams received
+ on this interface."
+ ::= { ipv6InterfaceEntry 2 }
+
+ipv6InterfaceIdentifier OBJECT-TYPE
+ SYNTAX Ipv6AddressIfIdentifierTC
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The Interface Identifier for this interface. The Interface
+ Identifier is combined with an address prefix to form an
+ interface address.
+
+ By default, the Interface Identifier is auto-configured
+ according to the rules of the link type to which this
+ interface is attached.
+
+
+
+
+ A zero length identifier may be used where appropriate. One
+ possible example is a loopback interface."
+ ::= { ipv6InterfaceEntry 3 }
+
+-- This object ID is reserved as it was used in earlier versions of
+-- the MIB module. In theory, OIDs are not assigned until the
+-- specification is released as an RFC; however, as some companies
+-- may have shipped code based on earlier versions of the MIB, it
+-- seems best to reserve this OID. This OID had been
+-- ipv6InterfacePhysicalAddress.
+-- ::= { ipv6InterfaceEntry 4}
+
+ipv6InterfaceEnableStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ up(1),
+ down(2)
+ }
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The indication of whether IPv6 is enabled (up) or disabled
+ (down) on this interface. This object does not affect the
+ state of the interface itself, only its connection to an
+ IPv6 stack. The IF-MIB should be used to control the state
+ of the interface.
+
+ When this object is written, the entity SHOULD save the
+ change to non-volatile storage and restore the object from
+ non-volatile storage upon re-initialization of the system."
+ ::= { ipv6InterfaceEntry 5 }
+
+ipv6InterfaceReachableTime OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "milliseconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The time a neighbor is considered reachable after receiving
+ a reachability confirmation."
+ REFERENCE "RFC 2461, Section 6.3.2"
+ ::= { ipv6InterfaceEntry 6 }
+
+ipv6InterfaceRetransmitTime OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "milliseconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+
+
+
+ "The time between retransmissions of Neighbor Solicitation
+ messages to a neighbor when resolving the address or when
+ probing the reachability of a neighbor."
+ REFERENCE "RFC 2461, Section 6.3.2"
+ ::= { ipv6InterfaceEntry 7 }
+
+ipv6InterfaceForwarding OBJECT-TYPE
+ SYNTAX INTEGER {
+ forwarding(1), -- acting as a router
+ notForwarding(2) -- NOT acting as a router
+ }
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The indication of whether this entity is acting as an IPv6
+ router on this interface with respect to the forwarding of
+ datagrams received by, but not addressed to, this entity.
+ IPv6 routers forward datagrams. IPv6 hosts do not (except
+ those source-routed via the host).
+
+ This object is constrained by ipv6IpForwarding and is
+ ignored if ipv6IpForwarding is set to notForwarding. Those
+ systems that do not provide per-interface control of the
+ forwarding function should set this object to forwarding for
+ all interfaces and allow the ipv6IpForwarding object to
+ control the forwarding capability.
+
+ When this object is written, the entity SHOULD save the
+ change to non-volatile storage and restore the object from
+ non-volatile storage upon re-initialization of the system."
+ ::= { ipv6InterfaceEntry 8 }
+
+--
+-- Per-Interface or System-Wide IP statistics.
+--
+-- The following two tables, ipSystemStatsTable and ipIfStatsTable,
+-- are intended to provide the same counters at different granularities.
+-- The ipSystemStatsTable provides system wide counters aggregating
+-- the traffic counters for all interfaces for a given address type.
+-- The ipIfStatsTable provides the same counters but for specific
+-- interfaces rather than as an aggregate.
+--
+-- Note well: If a system provides both system-wide and interface-
+-- specific values, the system-wide value may not be equal to the sum
+-- of the interface-specific values across all interfaces due to e.g.,
+-- dynamic interface creation/deletion.
+--
+-- Note well: Both of these tables contain some items that are
+
+
+
+-- represented by two objects, representing the value in either 32
+-- or 64 bits. For those objects, the 32-bit value MUST be the low
+-- order 32 bits of the 64-bit value. Also note that the 32-bit
+-- counters must be included when the 64-bit counters are included.
+
+ipTrafficStats OBJECT IDENTIFIER ::= { ip 31 }
+
+ipSystemStatsTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IpSystemStatsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The table containing system wide, IP version specific
+ traffic statistics. This table and the ipIfStatsTable
+ contain similar objects whose difference is in their
+ granularity. Where this table contains system wide traffic
+ statistics, the ipIfStatsTable contains the same statistics
+ but counted on a per-interface basis."
+ ::= { ipTrafficStats 1 }
+
+ipSystemStatsEntry OBJECT-TYPE
+ SYNTAX IpSystemStatsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A statistics entry containing system-wide objects for a
+ particular IP version."
+ INDEX { ipSystemStatsIPVersion }
+ ::= { ipSystemStatsTable 1 }
+
+IpSystemStatsEntry ::= SEQUENCE {
+ ipSystemStatsIPVersion InetVersion,
+ ipSystemStatsInReceives Counter32,
+ ipSystemStatsHCInReceives Counter64,
+ ipSystemStatsInOctets Counter32,
+ ipSystemStatsHCInOctets Counter64,
+ ipSystemStatsInHdrErrors Counter32,
+ ipSystemStatsInNoRoutes Counter32,
+ ipSystemStatsInAddrErrors Counter32,
+ ipSystemStatsInUnknownProtos Counter32,
+ ipSystemStatsInTruncatedPkts Counter32,
+ ipSystemStatsInForwDatagrams Counter32,
+ ipSystemStatsHCInForwDatagrams Counter64,
+ ipSystemStatsReasmReqds Counter32,
+ ipSystemStatsReasmOKs Counter32,
+ ipSystemStatsReasmFails Counter32,
+ ipSystemStatsInDiscards Counter32,
+ ipSystemStatsInDelivers Counter32,
+
+
+
+ ipSystemStatsHCInDelivers Counter64,
+ ipSystemStatsOutRequests Counter32,
+ ipSystemStatsHCOutRequests Counter64,
+ ipSystemStatsOutNoRoutes Counter32,
+ ipSystemStatsOutForwDatagrams Counter32,
+ ipSystemStatsHCOutForwDatagrams Counter64,
+ ipSystemStatsOutDiscards Counter32,
+ ipSystemStatsOutFragReqds Counter32,
+ ipSystemStatsOutFragOKs Counter32,
+ ipSystemStatsOutFragFails Counter32,
+ ipSystemStatsOutFragCreates Counter32,
+ ipSystemStatsOutTransmits Counter32,
+ ipSystemStatsHCOutTransmits Counter64,
+ ipSystemStatsOutOctets Counter32,
+ ipSystemStatsHCOutOctets Counter64,
+ ipSystemStatsInMcastPkts Counter32,
+ ipSystemStatsHCInMcastPkts Counter64,
+ ipSystemStatsInMcastOctets Counter32,
+ ipSystemStatsHCInMcastOctets Counter64,
+ ipSystemStatsOutMcastPkts Counter32,
+ ipSystemStatsHCOutMcastPkts Counter64,
+ ipSystemStatsOutMcastOctets Counter32,
+ ipSystemStatsHCOutMcastOctets Counter64,
+ ipSystemStatsInBcastPkts Counter32,
+ ipSystemStatsHCInBcastPkts Counter64,
+ ipSystemStatsOutBcastPkts Counter32,
+ ipSystemStatsHCOutBcastPkts Counter64,
+ ipSystemStatsDiscontinuityTime TimeStamp,
+ ipSystemStatsRefreshRate Unsigned32
+ }
+
+ipSystemStatsIPVersion OBJECT-TYPE
+ SYNTAX InetVersion
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The IP version of this row."
+ ::= { ipSystemStatsEntry 1 }
+
+-- This object ID is reserved to allow the IDs for this table's objects
+-- to align with the objects in the ipIfStatsTable.
+-- ::= { ipSystemStatsEntry 2 }
+
+ipSystemStatsInReceives OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+
+
+
+ "The total number of input IP datagrams received, including
+ those received in error.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 3 }
+
+ipSystemStatsHCInReceives OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of input IP datagrams received, including
+ those received in error. This object counts the same
+ datagrams as ipSystemStatsInReceives, but allows for larger
+ values.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 4 }
+
+ipSystemStatsInOctets OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of octets received in input IP datagrams,
+ including those received in error. Octets from datagrams
+ counted in ipSystemStatsInReceives MUST be counted here.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 5 }
+
+ipSystemStatsHCInOctets OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of octets received in input IP datagrams,
+ including those received in error. This object counts the
+ same octets as ipSystemStatsInOctets, but allows for larger
+
+
+
+ values.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 6 }
+
+ipSystemStatsInHdrErrors OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of input IP datagrams discarded due to errors in
+ their IP headers, including version number mismatch, other
+ format errors, hop count exceeded, errors discovered in
+ processing their IP options, etc.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 7 }
+
+ipSystemStatsInNoRoutes OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of input IP datagrams discarded because no route
+ could be found to transmit them to their destination.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 8 }
+
+ipSystemStatsInAddrErrors OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of input IP datagrams discarded because the IP
+ address in their IP header's destination field was not a
+ valid address to be received at this entity. This count
+ includes invalid addresses (e.g., ::0). For entities
+ that are not IP routers and therefore do not forward
+
+
+
+ datagrams, this counter includes datagrams discarded
+ because the destination address was not a local address.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 9 }
+
+ipSystemStatsInUnknownProtos OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of locally-addressed IP datagrams received
+ successfully but discarded because of an unknown or
+ unsupported protocol.
+
+ When tracking interface statistics, the counter of the
+ interface to which these datagrams were addressed is
+ incremented. This interface might not be the same as the
+ input interface for some of the datagrams.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 10 }
+
+ipSystemStatsInTruncatedPkts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of input IP datagrams discarded because the
+ datagram frame didn't carry enough data.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 11 }
+
+ipSystemStatsInForwDatagrams OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+
+
+
+ "The number of input datagrams for which this entity was not
+ their final IP destination and for which this entity
+ attempted to find a route to forward them to that final
+ destination. In entities that do not act as IP routers,
+ this counter will include only those datagrams that were
+ Source-Routed via this entity, and the Source-Route
+ processing was successful.
+
+ When tracking interface statistics, the counter of the
+ incoming interface is incremented for each datagram.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 12 }
+
+ipSystemStatsHCInForwDatagrams OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of input datagrams for which this entity was not
+ their final IP destination and for which this entity
+ attempted to find a route to forward them to that final
+ destination. This object counts the same packets as
+ ipSystemStatsInForwDatagrams, but allows for larger values.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 13 }
+
+ipSystemStatsReasmReqds OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of IP fragments received that needed to be
+ reassembled at this interface.
+
+ When tracking interface statistics, the counter of the
+ interface to which these fragments were addressed is
+ incremented. This interface might not be the same as the
+ input interface for some of the fragments.
+
+ Discontinuities in the value of this counter can occur at
+
+
+
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 14 }
+
+ipSystemStatsReasmOKs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of IP datagrams successfully reassembled.
+
+ When tracking interface statistics, the counter of the
+ interface to which these datagrams were addressed is
+ incremented. This interface might not be the same as the
+ input interface for some of the datagrams.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 15 }
+
+ipSystemStatsReasmFails OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of failures detected by the IP re-assembly
+ algorithm (for whatever reason: timed out, errors, etc.).
+ Note that this is not necessarily a count of discarded IP
+ fragments since some algorithms (notably the algorithm in
+ RFC 815) can lose track of the number of fragments by
+ combining them as they are received.
+
+ When tracking interface statistics, the counter of the
+ interface to which these fragments were addressed is
+ incremented. This interface might not be the same as the
+ input interface for some of the fragments.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 16 }
+
+ipSystemStatsInDiscards OBJECT-TYPE
+ SYNTAX Counter32
+
+
+
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of input IP datagrams for which no problems were
+ encountered to prevent their continued processing, but
+ were discarded (e.g., for lack of buffer space). Note that
+ this counter does not include any datagrams discarded while
+ awaiting re-assembly.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 17 }
+
+ipSystemStatsInDelivers OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of datagrams successfully delivered to IP
+ user-protocols (including ICMP).
+
+ When tracking interface statistics, the counter of the
+ interface to which these datagrams were addressed is
+ incremented. This interface might not be the same as the
+ input interface for some of the datagrams.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 18 }
+
+ipSystemStatsHCInDelivers OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of datagrams successfully delivered to IP
+ user-protocols (including ICMP). This object counts the
+ same packets as ipSystemStatsInDelivers, but allows for
+ larger values.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+
+
+
+ ::= { ipSystemStatsEntry 19 }
+
+ipSystemStatsOutRequests OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of IP datagrams that local IP user-
+ protocols (including ICMP) supplied to IP in requests for
+ transmission. Note that this counter does not include any
+ datagrams counted in ipSystemStatsOutForwDatagrams.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 20 }
+
+ipSystemStatsHCOutRequests OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of IP datagrams that local IP user-
+ protocols (including ICMP) supplied to IP in requests for
+ transmission. This object counts the same packets as
+ ipSystemStatsOutRequests, but allows for larger values.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 21 }
+
+ipSystemStatsOutNoRoutes OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of locally generated IP datagrams discarded
+ because no route could be found to transmit them to their
+ destination.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 22 }
+
+
+
+ipSystemStatsOutForwDatagrams OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of datagrams for which this entity was not their
+ final IP destination and for which it was successful in
+ finding a path to their final destination. In entities
+ that do not act as IP routers, this counter will include
+ only those datagrams that were Source-Routed via this
+ entity, and the Source-Route processing was successful.
+
+ When tracking interface statistics, the counter of the
+ outgoing interface is incremented for a successfully
+ forwarded datagram.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 23 }
+
+ipSystemStatsHCOutForwDatagrams OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of datagrams for which this entity was not their
+ final IP destination and for which it was successful in
+ finding a path to their final destination. This object
+ counts the same packets as ipSystemStatsOutForwDatagrams,
+ but allows for larger values.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 24 }
+
+ipSystemStatsOutDiscards OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of output IP datagrams for which no problem was
+ encountered to prevent their transmission to their
+ destination, but were discarded (e.g., for lack of
+ buffer space). Note that this counter would include
+
+
+
+ datagrams counted in ipSystemStatsOutForwDatagrams if any
+ such datagrams met this (discretionary) discard criterion.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 25 }
+
+ipSystemStatsOutFragReqds OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of IP datagrams that would require fragmentation
+ in order to be transmitted.
+
+ When tracking interface statistics, the counter of the
+ outgoing interface is incremented for a successfully
+ fragmented datagram.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 26 }
+
+ipSystemStatsOutFragOKs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of IP datagrams that have been successfully
+ fragmented.
+
+ When tracking interface statistics, the counter of the
+ outgoing interface is incremented for a successfully
+ fragmented datagram.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 27 }
+
+ipSystemStatsOutFragFails OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+
+
+
+ STATUS current
+ DESCRIPTION
+ "The number of IP datagrams that have been discarded because
+ they needed to be fragmented but could not be. This
+ includes IPv4 packets that have the DF bit set and IPv6
+ packets that are being forwarded and exceed the outgoing
+ link MTU.
+
+ When tracking interface statistics, the counter of the
+ outgoing interface is incremented for an unsuccessfully
+ fragmented datagram.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 28 }
+
+ipSystemStatsOutFragCreates OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of output datagram fragments that have been
+ generated as a result of IP fragmentation.
+
+ When tracking interface statistics, the counter of the
+ outgoing interface is incremented for a successfully
+ fragmented datagram.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 29 }
+
+ipSystemStatsOutTransmits OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of IP datagrams that this entity supplied
+ to the lower layers for transmission. This includes
+ datagrams generated locally and those forwarded by this
+ entity.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+
+
+
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 30 }
+
+ipSystemStatsHCOutTransmits OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of IP datagrams that this entity supplied
+ to the lower layers for transmission. This object counts
+ the same datagrams as ipSystemStatsOutTransmits, but allows
+ for larger values.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 31 }
+
+ipSystemStatsOutOctets OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of octets in IP datagrams delivered to the
+ lower layers for transmission. Octets from datagrams
+ counted in ipSystemStatsOutTransmits MUST be counted here.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 32 }
+
+ipSystemStatsHCOutOctets OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of octets in IP datagrams delivered to the
+ lower layers for transmission. This objects counts the same
+ octets as ipSystemStatsOutOctets, but allows for larger
+ values.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+
+
+
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 33 }
+
+ipSystemStatsInMcastPkts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of IP multicast datagrams received.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 34 }
+
+ipSystemStatsHCInMcastPkts OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of IP multicast datagrams received. This object
+ counts the same datagrams as ipSystemStatsInMcastPkts but
+ allows for larger values.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 35 }
+
+ipSystemStatsInMcastOctets OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of octets received in IP multicast
+ datagrams. Octets from datagrams counted in
+ ipSystemStatsInMcastPkts MUST be counted here.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 36 }
+
+ipSystemStatsHCInMcastOctets OBJECT-TYPE
+ SYNTAX Counter64
+
+
+
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of octets received in IP multicast
+ datagrams. This object counts the same octets as
+ ipSystemStatsInMcastOctets, but allows for larger values.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 37 }
+
+ipSystemStatsOutMcastPkts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of IP multicast datagrams transmitted.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 38 }
+
+ipSystemStatsHCOutMcastPkts OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of IP multicast datagrams transmitted. This
+ object counts the same datagrams as
+ ipSystemStatsOutMcastPkts, but allows for larger values.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 39 }
+
+ipSystemStatsOutMcastOctets OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of octets transmitted in IP multicast
+ datagrams. Octets from datagrams counted in
+
+
+
+ ipSystemStatsOutMcastPkts MUST be counted here.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 40 }
+
+ipSystemStatsHCOutMcastOctets OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of octets transmitted in IP multicast
+ datagrams. This object counts the same octets as
+ ipSystemStatsOutMcastOctets, but allows for larger values.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 41 }
+
+ipSystemStatsInBcastPkts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of IP broadcast datagrams received.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 42 }
+
+ipSystemStatsHCInBcastPkts OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of IP broadcast datagrams received. This object
+ counts the same datagrams as ipSystemStatsInBcastPkts but
+ allows for larger values.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+
+
+
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 43 }
+
+ipSystemStatsOutBcastPkts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of IP broadcast datagrams transmitted.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 44 }
+
+ipSystemStatsHCOutBcastPkts OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of IP broadcast datagrams transmitted. This
+ object counts the same datagrams as
+ ipSystemStatsOutBcastPkts, but allows for larger values.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipSystemStatsDiscontinuityTime."
+ ::= { ipSystemStatsEntry 45 }
+
+ipSystemStatsDiscontinuityTime OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime on the most recent occasion at which
+ any one or more of this entry's counters suffered a
+ discontinuity.
+
+ If no such discontinuities have occurred since the last re-
+ initialization of the local management subsystem, then this
+ object contains a zero value."
+ ::= { ipSystemStatsEntry 46 }
+
+ipSystemStatsRefreshRate OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "milli-seconds"
+
+
+
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The minimum reasonable polling interval for this entry.
+ This object provides an indication of the minimum amount of
+ time required to update the counters in this entry."
+ ::= { ipSystemStatsEntry 47 }
+
+ipIfStatsTableLastChange OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime on the most recent occasion at which
+ a row in the ipIfStatsTable was added or deleted.
+
+ If new objects are added to the ipIfStatsTable that require
+ the ipIfStatsTableLastChange to be updated when they are
+ modified, they must specify that requirement in their
+ description clause."
+ ::= { ipTrafficStats 2 }
+
+ipIfStatsTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IpIfStatsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The table containing per-interface traffic statistics. This
+ table and the ipSystemStatsTable contain similar objects
+ whose difference is in their granularity. Where this table
+ contains per-interface statistics, the ipSystemStatsTable
+ contains the same statistics, but counted on a system wide
+ basis."
+ ::= { ipTrafficStats 3 }
+
+ipIfStatsEntry OBJECT-TYPE
+ SYNTAX IpIfStatsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An interface statistics entry containing objects for a
+ particular interface and version of IP."
+ INDEX { ipIfStatsIPVersion, ipIfStatsIfIndex }
+ ::= { ipIfStatsTable 1 }
+
+IpIfStatsEntry ::= SEQUENCE {
+ ipIfStatsIPVersion InetVersion,
+ ipIfStatsIfIndex InterfaceIndex,
+
+
+
+ ipIfStatsInReceives Counter32,
+ ipIfStatsHCInReceives Counter64,
+ ipIfStatsInOctets Counter32,
+ ipIfStatsHCInOctets Counter64,
+ ipIfStatsInHdrErrors Counter32,
+ ipIfStatsInNoRoutes Counter32,
+ ipIfStatsInAddrErrors Counter32,
+ ipIfStatsInUnknownProtos Counter32,
+ ipIfStatsInTruncatedPkts Counter32,
+ ipIfStatsInForwDatagrams Counter32,
+ ipIfStatsHCInForwDatagrams Counter64,
+ ipIfStatsReasmReqds Counter32,
+ ipIfStatsReasmOKs Counter32,
+ ipIfStatsReasmFails Counter32,
+ ipIfStatsInDiscards Counter32,
+ ipIfStatsInDelivers Counter32,
+ ipIfStatsHCInDelivers Counter64,
+ ipIfStatsOutRequests Counter32,
+ ipIfStatsHCOutRequests Counter64,
+ ipIfStatsOutForwDatagrams Counter32,
+ ipIfStatsHCOutForwDatagrams Counter64,
+ ipIfStatsOutDiscards Counter32,
+ ipIfStatsOutFragReqds Counter32,
+ ipIfStatsOutFragOKs Counter32,
+ ipIfStatsOutFragFails Counter32,
+ ipIfStatsOutFragCreates Counter32,
+ ipIfStatsOutTransmits Counter32,
+ ipIfStatsHCOutTransmits Counter64,
+ ipIfStatsOutOctets Counter32,
+ ipIfStatsHCOutOctets Counter64,
+ ipIfStatsInMcastPkts Counter32,
+ ipIfStatsHCInMcastPkts Counter64,
+ ipIfStatsInMcastOctets Counter32,
+ ipIfStatsHCInMcastOctets Counter64,
+ ipIfStatsOutMcastPkts Counter32,
+ ipIfStatsHCOutMcastPkts Counter64,
+ ipIfStatsOutMcastOctets Counter32,
+ ipIfStatsHCOutMcastOctets Counter64,
+ ipIfStatsInBcastPkts Counter32,
+ ipIfStatsHCInBcastPkts Counter64,
+ ipIfStatsOutBcastPkts Counter32,
+ ipIfStatsHCOutBcastPkts Counter64,
+ ipIfStatsDiscontinuityTime TimeStamp,
+ ipIfStatsRefreshRate Unsigned32
+ }
+
+ipIfStatsIPVersion OBJECT-TYPE
+ SYNTAX InetVersion
+
+
+
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The IP version of this row."
+ ::= { ipIfStatsEntry 1 }
+
+ipIfStatsIfIndex OBJECT-TYPE
+ SYNTAX InterfaceIndex
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The index value that uniquely identifies the interface to
+ which this entry is applicable. The interface identified by
+ a particular value of this index is the same interface as
+ identified by the same value of the IF-MIB's ifIndex."
+ ::= { ipIfStatsEntry 2 }
+
+ipIfStatsInReceives OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of input IP datagrams received, including
+ those received in error.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 3 }
+
+ipIfStatsHCInReceives OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of input IP datagrams received, including
+ those received in error. This object counts the same
+ datagrams as ipIfStatsInReceives, but allows for larger
+ values.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 4 }
+
+ipIfStatsInOctets OBJECT-TYPE
+
+
+
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of octets received in input IP datagrams,
+ including those received in error. Octets from datagrams
+ counted in ipIfStatsInReceives MUST be counted here.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 5 }
+
+ipIfStatsHCInOctets OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of octets received in input IP datagrams,
+ including those received in error. This object counts the
+ same octets as ipIfStatsInOctets, but allows for larger
+ values.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 6 }
+
+ipIfStatsInHdrErrors OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of input IP datagrams discarded due to errors in
+ their IP headers, including version number mismatch, other
+ format errors, hop count exceeded, errors discovered in
+ processing their IP options, etc.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 7 }
+
+ipIfStatsInNoRoutes OBJECT-TYPE
+ SYNTAX Counter32
+
+
+
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of input IP datagrams discarded because no route
+ could be found to transmit them to their destination.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 8 }
+
+ipIfStatsInAddrErrors OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of input IP datagrams discarded because the IP
+ address in their IP header's destination field was not a
+ valid address to be received at this entity. This count
+ includes invalid addresses (e.g., ::0). For entities that
+ are not IP routers and therefore do not forward datagrams,
+ this counter includes datagrams discarded because the
+ destination address was not a local address.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 9 }
+
+ipIfStatsInUnknownProtos OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of locally-addressed IP datagrams received
+ successfully but discarded because of an unknown or
+ unsupported protocol.
+
+ When tracking interface statistics, the counter of the
+ interface to which these datagrams were addressed is
+ incremented. This interface might not be the same as the
+ input interface for some of the datagrams.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+
+
+
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 10 }
+
+ipIfStatsInTruncatedPkts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of input IP datagrams discarded because the
+ datagram frame didn't carry enough data.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 11 }
+
+ipIfStatsInForwDatagrams OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of input datagrams for which this entity was not
+ their final IP destination and for which this entity
+ attempted to find a route to forward them to that final
+ destination. In entities that do not act as IP routers,
+ this counter will include only those datagrams that were
+ Source-Routed via this entity, and the Source-Route
+ processing was successful.
+
+ When tracking interface statistics, the counter of the
+ incoming interface is incremented for each datagram.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 12 }
+
+ipIfStatsHCInForwDatagrams OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of input datagrams for which this entity was not
+ their final IP destination and for which this entity
+ attempted to find a route to forward them to that final
+ destination. This object counts the same packets as
+
+
+
+ ipIfStatsInForwDatagrams, but allows for larger values.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 13 }
+
+ipIfStatsReasmReqds OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of IP fragments received that needed to be
+ reassembled at this interface.
+
+ When tracking interface statistics, the counter of the
+ interface to which these fragments were addressed is
+ incremented. This interface might not be the same as the
+ input interface for some of the fragments.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 14 }
+
+ipIfStatsReasmOKs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of IP datagrams successfully reassembled.
+
+ When tracking interface statistics, the counter of the
+ interface to which these datagrams were addressed is
+ incremented. This interface might not be the same as the
+ input interface for some of the datagrams.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 15 }
+
+ipIfStatsReasmFails OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+
+
+
+ STATUS current
+ DESCRIPTION
+ "The number of failures detected by the IP re-assembly
+ algorithm (for whatever reason: timed out, errors, etc.).
+ Note that this is not necessarily a count of discarded IP
+ fragments since some algorithms (notably the algorithm in
+ RFC 815) can lose track of the number of fragments by
+ combining them as they are received.
+
+ When tracking interface statistics, the counter of the
+ interface to which these fragments were addressed is
+ incremented. This interface might not be the same as the
+ input interface for some of the fragments.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 16 }
+
+ipIfStatsInDiscards OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of input IP datagrams for which no problems were
+ encountered to prevent their continued processing, but
+ were discarded (e.g., for lack of buffer space). Note that
+ this counter does not include any datagrams discarded while
+ awaiting re-assembly.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 17 }
+
+ipIfStatsInDelivers OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of datagrams successfully delivered to IP
+ user-protocols (including ICMP).
+
+ When tracking interface statistics, the counter of the
+ interface to which these datagrams were addressed is
+ incremented. This interface might not be the same as the
+
+
+
+ input interface for some of the datagrams.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 18 }
+
+ipIfStatsHCInDelivers OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of datagrams successfully delivered to IP
+ user-protocols (including ICMP). This object counts the
+ same packets as ipIfStatsInDelivers, but allows for larger
+ values.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 19 }
+
+ipIfStatsOutRequests OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of IP datagrams that local IP user-
+ protocols (including ICMP) supplied to IP in requests for
+ transmission. Note that this counter does not include any
+ datagrams counted in ipIfStatsOutForwDatagrams.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 20 }
+
+ipIfStatsHCOutRequests OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of IP datagrams that local IP user-
+ protocols (including ICMP) supplied to IP in requests for
+ transmission. This object counts the same packets as
+
+
+
+ ipIfStatsOutRequests, but allows for larger values.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 21 }
+
+-- This object ID is reserved to allow the IDs for this table's objects
+-- to align with the objects in the ipSystemStatsTable.
+-- ::= {ipIfStatsEntry 22}
+
+ipIfStatsOutForwDatagrams OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of datagrams for which this entity was not their
+ final IP destination and for which it was successful in
+ finding a path to their final destination. In entities
+ that do not act as IP routers, this counter will include
+ only those datagrams that were Source-Routed via this
+ entity, and the Source-Route processing was successful.
+
+ When tracking interface statistics, the counter of the
+ outgoing interface is incremented for a successfully
+ forwarded datagram.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 23 }
+
+ipIfStatsHCOutForwDatagrams OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of datagrams for which this entity was not their
+ final IP destination and for which it was successful in
+ finding a path to their final destination. This object
+ counts the same packets as ipIfStatsOutForwDatagrams, but
+ allows for larger values.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+
+
+
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 24 }
+
+ipIfStatsOutDiscards OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of output IP datagrams for which no problem was
+ encountered to prevent their transmission to their
+ destination, but were discarded (e.g., for lack of
+ buffer space). Note that this counter would include
+ datagrams counted in ipIfStatsOutForwDatagrams if any such
+ datagrams met this (discretionary) discard criterion.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 25 }
+
+ipIfStatsOutFragReqds OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of IP datagrams that would require fragmentation
+ in order to be transmitted.
+
+ When tracking interface statistics, the counter of the
+ outgoing interface is incremented for a successfully
+ fragmented datagram.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 26 }
+
+ipIfStatsOutFragOKs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of IP datagrams that have been successfully
+ fragmented.
+
+ When tracking interface statistics, the counter of the
+
+
+
+ outgoing interface is incremented for a successfully
+ fragmented datagram.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 27 }
+
+ipIfStatsOutFragFails OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of IP datagrams that have been discarded because
+ they needed to be fragmented but could not be. This
+ includes IPv4 packets that have the DF bit set and IPv6
+ packets that are being forwarded and exceed the outgoing
+ link MTU.
+
+ When tracking interface statistics, the counter of the
+ outgoing interface is incremented for an unsuccessfully
+ fragmented datagram.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 28 }
+
+ipIfStatsOutFragCreates OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of output datagram fragments that have been
+ generated as a result of IP fragmentation.
+
+ When tracking interface statistics, the counter of the
+ outgoing interface is incremented for a successfully
+ fragmented datagram.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 29 }
+
+
+
+
+ipIfStatsOutTransmits OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of IP datagrams that this entity supplied
+ to the lower layers for transmission. This includes
+ datagrams generated locally and those forwarded by this
+ entity.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 30 }
+
+ipIfStatsHCOutTransmits OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of IP datagrams that this entity supplied
+ to the lower layers for transmission. This object counts
+ the same datagrams as ipIfStatsOutTransmits, but allows for
+ larger values.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 31 }
+
+ipIfStatsOutOctets OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of octets in IP datagrams delivered to the
+ lower layers for transmission. Octets from datagrams
+ counted in ipIfStatsOutTransmits MUST be counted here.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 32 }
+
+ipIfStatsHCOutOctets OBJECT-TYPE
+
+
+
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of octets in IP datagrams delivered to the
+ lower layers for transmission. This objects counts the same
+ octets as ipIfStatsOutOctets, but allows for larger values.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 33 }
+
+ipIfStatsInMcastPkts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of IP multicast datagrams received.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 34 }
+
+ipIfStatsHCInMcastPkts OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of IP multicast datagrams received. This object
+ counts the same datagrams as ipIfStatsInMcastPkts, but
+ allows for larger values.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 35 }
+
+ipIfStatsInMcastOctets OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of octets received in IP multicast
+
+
+
+ datagrams. Octets from datagrams counted in
+ ipIfStatsInMcastPkts MUST be counted here.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 36 }
+
+ipIfStatsHCInMcastOctets OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of octets received in IP multicast
+ datagrams. This object counts the same octets as
+ ipIfStatsInMcastOctets, but allows for larger values.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 37 }
+
+ipIfStatsOutMcastPkts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of IP multicast datagrams transmitted.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 38 }
+
+ipIfStatsHCOutMcastPkts OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of IP multicast datagrams transmitted. This
+ object counts the same datagrams as ipIfStatsOutMcastPkts,
+ but allows for larger values.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+
+
+
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 39 }
+
+ipIfStatsOutMcastOctets OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of octets transmitted in IP multicast
+ datagrams. Octets from datagrams counted in
+ ipIfStatsOutMcastPkts MUST be counted here.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 40 }
+
+ipIfStatsHCOutMcastOctets OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of octets transmitted in IP multicast
+ datagrams. This object counts the same octets as
+ ipIfStatsOutMcastOctets, but allows for larger values.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 41 }
+
+ipIfStatsInBcastPkts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of IP broadcast datagrams received.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 42 }
+
+ipIfStatsHCInBcastPkts OBJECT-TYPE
+
+
+
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of IP broadcast datagrams received. This object
+ counts the same datagrams as ipIfStatsInBcastPkts, but
+ allows for larger values.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 43 }
+
+ipIfStatsOutBcastPkts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of IP broadcast datagrams transmitted.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 44 }
+
+ipIfStatsHCOutBcastPkts OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of IP broadcast datagrams transmitted. This
+ object counts the same datagrams as ipIfStatsOutBcastPkts,
+ but allows for larger values.
+
+ Discontinuities in the value of this counter can occur at
+ re-initialization of the management system, and at other
+ times as indicated by the value of
+ ipIfStatsDiscontinuityTime."
+ ::= { ipIfStatsEntry 45 }
+
+ipIfStatsDiscontinuityTime OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime on the most recent occasion at which
+
+
+
+ any one or more of this entry's counters suffered a
+ discontinuity.
+
+ If no such discontinuities have occurred since the last re-
+ initialization of the local management subsystem, then this
+ object contains a zero value."
+ ::= { ipIfStatsEntry 46 }
+
+ipIfStatsRefreshRate OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "milli-seconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The minimum reasonable polling interval for this entry.
+ This object provides an indication of the minimum amount of
+ time required to update the counters in this entry."
+ ::= { ipIfStatsEntry 47 }
+
+--
+-- Internet Address Prefix table
+--
+
+ipAddressPrefixTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IpAddressPrefixEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This table allows the user to determine the source of an IP
+ address or set of IP addresses, and allows other tables to
+ share the information via pointer rather than by copying.
+
+ For example, when the node configures both a unicast and
+ anycast address for a prefix, the ipAddressPrefix objects
+ for those addresses will point to a single row in this
+ table.
+
+ This table primarily provides support for IPv6 prefixes, and
+ several of the objects are less meaningful for IPv4. The
+ table continues to allow IPv4 addresses to allow future
+ flexibility. In order to promote a common configuration,
+ this document includes suggestions for default values for
+ IPv4 prefixes. Each of these values may be overridden if an
+ object is meaningful to the node.
+
+ All prefixes used by this entity should be included in this
+ table independent of how the entity learned the prefix.
+ (This table isn't limited to prefixes learned from router
+
+
+
+ advertisements.)"
+ ::= { ip 32 }
+
+ipAddressPrefixEntry OBJECT-TYPE
+ SYNTAX IpAddressPrefixEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry in the ipAddressPrefixTable."
+ INDEX { ipAddressPrefixIfIndex, ipAddressPrefixType,
+ ipAddressPrefixPrefix, ipAddressPrefixLength }
+ ::= { ipAddressPrefixTable 1 }
+
+IpAddressPrefixEntry ::= SEQUENCE {
+ ipAddressPrefixIfIndex InterfaceIndex,
+ ipAddressPrefixType InetAddressType,
+ ipAddressPrefixPrefix InetAddress,
+ ipAddressPrefixLength InetAddressPrefixLength,
+ ipAddressPrefixOrigin IpAddressPrefixOriginTC,
+ ipAddressPrefixOnLinkFlag TruthValue,
+ ipAddressPrefixAutonomousFlag TruthValue,
+ ipAddressPrefixAdvPreferredLifetime Unsigned32,
+ ipAddressPrefixAdvValidLifetime Unsigned32
+ }
+
+ipAddressPrefixIfIndex OBJECT-TYPE
+ SYNTAX InterfaceIndex
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The index value that uniquely identifies the interface on
+ which this prefix is configured. The interface identified
+ by a particular value of this index is the same interface as
+ identified by the same value of the IF-MIB's ifIndex."
+ ::= { ipAddressPrefixEntry 1 }
+
+ipAddressPrefixType OBJECT-TYPE
+ SYNTAX InetAddressType
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The address type of ipAddressPrefix."
+ ::= { ipAddressPrefixEntry 2 }
+
+ipAddressPrefixPrefix OBJECT-TYPE
+ SYNTAX InetAddress
+ MAX-ACCESS not-accessible
+ STATUS current
+
+
+
+ DESCRIPTION
+ "The address prefix. The address type of this object is
+ specified in ipAddressPrefixType. The length of this object
+ is the standard length for objects of that type (4 or 16
+ bytes). Any bits after ipAddressPrefixLength must be zero.
+
+ Implementors need to be aware that, if the size of
+ ipAddressPrefixPrefix exceeds 114 octets, then OIDS of
+ instances of columns in this row will have more than 128
+ sub-identifiers and cannot be accessed using SNMPv1,
+ SNMPv2c, or SNMPv3."
+ ::= { ipAddressPrefixEntry 3 }
+
+ipAddressPrefixLength OBJECT-TYPE
+ SYNTAX InetAddressPrefixLength
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The prefix length associated with this prefix.
+
+ The value 0 has no special meaning for this object. It
+ simply refers to address '::/0'."
+ ::= { ipAddressPrefixEntry 4 }
+
+ipAddressPrefixOrigin OBJECT-TYPE
+ SYNTAX IpAddressPrefixOriginTC
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The origin of this prefix."
+ ::= { ipAddressPrefixEntry 5 }
+
+ipAddressPrefixOnLinkFlag OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "This object has the value 'true(1)', if this prefix can be
+ used for on-link determination; otherwise, the value is
+ 'false(2)'.
+
+ The default for IPv4 prefixes is 'true(1)'."
+ REFERENCE "For IPv6 RFC 2461, especially sections 2 and 4.6.2 and
+ RFC 2462"
+ ::= { ipAddressPrefixEntry 6 }
+
+ipAddressPrefixAutonomousFlag OBJECT-TYPE
+ SYNTAX TruthValue
+
+
+
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Autonomous address configuration flag. When true(1),
+ indicates that this prefix can be used for autonomous
+ address configuration (i.e., can be used to form a local
+ interface address). If false(2), it is not used to auto-
+ configure a local interface address.
+
+ The default for IPv4 prefixes is 'false(2)'."
+ REFERENCE "For IPv6 RFC 2461, especially sections 2 and 4.6.2 and
+ RFC 2462"
+ ::= { ipAddressPrefixEntry 7 }
+
+ipAddressPrefixAdvPreferredLifetime OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "seconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The remaining length of time, in seconds, that this prefix
+ will continue to be preferred, i.e., time until deprecation.
+
+ A value of 4,294,967,295 represents infinity.
+
+ The address generated from a deprecated prefix should no
+ longer be used as a source address in new communications,
+ but packets received on such an interface are processed as
+ expected.
+
+ The default for IPv4 prefixes is 4,294,967,295 (infinity)."
+ REFERENCE "For IPv6 RFC 2461, especially sections 2 and 4.6.2 and
+ RFC 2462"
+ ::= { ipAddressPrefixEntry 8 }
+
+ipAddressPrefixAdvValidLifetime OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "seconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The remaining length of time, in seconds, that this prefix
+ will continue to be valid, i.e., time until invalidation. A
+ value of 4,294,967,295 represents infinity.
+
+ The address generated from an invalidated prefix should not
+ appear as the destination or source address of a packet.
+
+
+
+
+ The default for IPv4 prefixes is 4,294,967,295 (infinity)."
+ REFERENCE "For IPv6 RFC 2461, especially sections 2 and 4.6.2 and
+ RFC 2462"
+ ::= { ipAddressPrefixEntry 9 }
+
+--
+-- Internet Address Table
+--
+
+ipAddressSpinLock OBJECT-TYPE
+ SYNTAX TestAndIncr
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "An advisory lock used to allow cooperating SNMP managers to
+ coordinate their use of the set operation in creating or
+ modifying rows within this table.
+
+ In order to use this lock to coordinate the use of set
+ operations, managers should first retrieve
+ ipAddressTableSpinLock. They should then determine the
+ appropriate row to create or modify. Finally, they should
+ issue the appropriate set command, including the retrieved
+ value of ipAddressSpinLock. If another manager has altered
+ the table in the meantime, then the value of
+ ipAddressSpinLock will have changed, and the creation will
+ fail as it will be specifying an incorrect value for
+ ipAddressSpinLock. It is suggested, but not required, that
+ the ipAddressSpinLock be the first var bind for each set of
+ objects representing a 'row' in a PDU."
+ ::= { ip 33 }
+
+ipAddressTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IpAddressEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This table contains addressing information relevant to the
+ entity's interfaces.
+
+ This table does not contain multicast address information.
+ Tables for such information should be contained in multicast
+ specific MIBs, such as RFC 3019.
+
+ While this table is writable, the user will note that
+ several objects, such as ipAddressOrigin, are not. The
+ intention in allowing a user to write to this table is to
+ allow them to add or remove any entry that isn't
+
+
+
+ permanent. The user should be allowed to modify objects
+ and entries when that would not cause inconsistencies
+ within the table. Allowing write access to objects, such
+ as ipAddressOrigin, could allow a user to insert an entry
+ and then label it incorrectly.
+
+ Note well: When including IPv6 link-local addresses in this
+ table, the entry must use an InetAddressType of 'ipv6z' in
+ order to differentiate between the possible interfaces."
+ ::= { ip 34 }
+
+ipAddressEntry OBJECT-TYPE
+ SYNTAX IpAddressEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An address mapping for a particular interface."
+ INDEX { ipAddressAddrType, ipAddressAddr }
+ ::= { ipAddressTable 1 }
+
+IpAddressEntry ::= SEQUENCE {
+ ipAddressAddrType InetAddressType,
+ ipAddressAddr InetAddress,
+ ipAddressIfIndex InterfaceIndex,
+ ipAddressType INTEGER,
+ ipAddressPrefix RowPointer,
+ ipAddressOrigin IpAddressOriginTC,
+ ipAddressStatus IpAddressStatusTC,
+ ipAddressCreated TimeStamp,
+ ipAddressLastChanged TimeStamp,
+ ipAddressRowStatus RowStatus,
+ ipAddressStorageType StorageType
+ }
+
+ipAddressAddrType OBJECT-TYPE
+ SYNTAX InetAddressType
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The address type of ipAddressAddr."
+ ::= { ipAddressEntry 1 }
+
+ipAddressAddr OBJECT-TYPE
+ SYNTAX InetAddress
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The IP address to which this entry's addressing information
+
+
+
+ pertains. The address type of this object is specified in
+ ipAddressAddrType.
+
+ Implementors need to be aware that if the size of
+ ipAddressAddr exceeds 116 octets, then OIDS of instances of
+ columns in this row will have more than 128 sub-identifiers
+ and cannot be accessed using SNMPv1, SNMPv2c, or SNMPv3."
+ ::= { ipAddressEntry 2 }
+
+ipAddressIfIndex OBJECT-TYPE
+ SYNTAX InterfaceIndex
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The index value that uniquely identifies the interface to
+ which this entry is applicable. The interface identified by
+ a particular value of this index is the same interface as
+ identified by the same value of the IF-MIB's ifIndex."
+ ::= { ipAddressEntry 3 }
+
+ipAddressType OBJECT-TYPE
+ SYNTAX INTEGER {
+ unicast(1),
+ anycast(2),
+ broadcast(3)
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The type of address. broadcast(3) is not a valid value for
+ IPv6 addresses (RFC 3513)."
+ DEFVAL { unicast }
+ ::= { ipAddressEntry 4 }
+
+ipAddressPrefix OBJECT-TYPE
+ SYNTAX RowPointer
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A pointer to the row in the prefix table to which this
+ address belongs. May be { 0 0 } if there is no such row."
+ DEFVAL { zeroDotZero }
+ ::= { ipAddressEntry 5 }
+
+ipAddressOrigin OBJECT-TYPE
+ SYNTAX IpAddressOriginTC
+ MAX-ACCESS read-only
+ STATUS current
+
+
+
+ DESCRIPTION
+ "The origin of the address."
+ ::= { ipAddressEntry 6 }
+
+ipAddressStatus OBJECT-TYPE
+ SYNTAX IpAddressStatusTC
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status of the address, describing if the address can be
+ used for communication.
+
+ In the absence of other information, an IPv4 address is
+ always preferred(1)."
+ DEFVAL { preferred }
+ ::= { ipAddressEntry 7 }
+
+ipAddressCreated OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime at the time this entry was created.
+ If this entry was created prior to the last re-
+ initialization of the local network management subsystem,
+ then this object contains a zero value."
+ ::= { ipAddressEntry 8 }
+
+ipAddressLastChanged OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime at the time this entry was last
+ updated. If this entry was updated prior to the last re-
+ initialization of the local network management subsystem,
+ then this object contains a zero value."
+ ::= { ipAddressEntry 9 }
+
+ipAddressRowStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status of this conceptual row.
+
+ The RowStatus TC requires that this DESCRIPTION clause
+ states under which circumstances other objects in this row
+
+
+
+ can be modified. The value of this object has no effect on
+ whether other objects in this conceptual row can be
+ modified.
+
+ A conceptual row can not be made active until the
+ ipAddressIfIndex has been set to a valid index."
+ ::= { ipAddressEntry 10 }
+
+ipAddressStorageType OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The storage type for this conceptual row. If this object
+ has a value of 'permanent', then no other objects are
+ required to be able to be modified."
+ DEFVAL { volatile }
+ ::= { ipAddressEntry 11 }
+
+--
+-- the Internet Address Translation table
+--
+
+ipNetToPhysicalTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IpNetToPhysicalEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The IP Address Translation table used for mapping from IP
+ addresses to physical addresses.
+
+ The Address Translation tables contain the IP address to
+ 'physical' address equivalences. Some interfaces do not use
+ translation tables for determining address equivalences
+ (e.g., DDN-X.25 has an algorithmic method); if all
+ interfaces are of this type, then the Address Translation
+ table is empty, i.e., has zero entries.
+
+ While many protocols may be used to populate this table, ARP
+ and Neighbor Discovery are the most likely
+ options."
+ REFERENCE "RFC 826 and RFC 2461"
+ ::= { ip 35 }
+
+ipNetToPhysicalEntry OBJECT-TYPE
+ SYNTAX IpNetToPhysicalEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+
+
+
+ DESCRIPTION
+ "Each entry contains one IP address to `physical' address
+ equivalence."
+ INDEX { ipNetToPhysicalIfIndex,
+ ipNetToPhysicalNetAddressType,
+ ipNetToPhysicalNetAddress }
+ ::= { ipNetToPhysicalTable 1 }
+
+IpNetToPhysicalEntry ::= SEQUENCE {
+ ipNetToPhysicalIfIndex InterfaceIndex,
+ ipNetToPhysicalNetAddressType InetAddressType,
+ ipNetToPhysicalNetAddress InetAddress,
+ ipNetToPhysicalPhysAddress PhysAddress,
+ ipNetToPhysicalLastUpdated TimeStamp,
+ ipNetToPhysicalType INTEGER,
+ ipNetToPhysicalState INTEGER,
+ ipNetToPhysicalRowStatus RowStatus
+ }
+
+ipNetToPhysicalIfIndex OBJECT-TYPE
+ SYNTAX InterfaceIndex
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The index value that uniquely identifies the interface to
+ which this entry is applicable. The interface identified by
+ a particular value of this index is the same interface as
+ identified by the same value of the IF-MIB's ifIndex."
+ ::= { ipNetToPhysicalEntry 1 }
+
+ipNetToPhysicalNetAddressType OBJECT-TYPE
+ SYNTAX InetAddressType
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The type of ipNetToPhysicalNetAddress."
+ ::= { ipNetToPhysicalEntry 2 }
+
+ipNetToPhysicalNetAddress OBJECT-TYPE
+ SYNTAX InetAddress
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The IP Address corresponding to the media-dependent
+ `physical' address. The address type of this object is
+ specified in ipNetToPhysicalAddressType.
+
+ Implementors need to be aware that if the size of
+
+
+
+ ipNetToPhysicalNetAddress exceeds 115 octets, then OIDS of
+ instances of columns in this row will have more than 128
+ sub-identifiers and cannot be accessed using SNMPv1,
+ SNMPv2c, or SNMPv3."
+ ::= { ipNetToPhysicalEntry 3 }
+
+ipNetToPhysicalPhysAddress OBJECT-TYPE
+ SYNTAX PhysAddress (SIZE(0..65535))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The media-dependent `physical' address.
+
+ As the entries in this table are typically not persistent
+ when this object is written the entity SHOULD NOT save the
+ change to non-volatile storage."
+ ::= { ipNetToPhysicalEntry 4 }
+
+ipNetToPhysicalLastUpdated OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime at the time this entry was last
+ updated. If this entry was updated prior to the last re-
+ initialization of the local network management subsystem,
+ then this object contains a zero value."
+ ::= { ipNetToPhysicalEntry 5 }
+
+ipNetToPhysicalType OBJECT-TYPE
+ SYNTAX INTEGER {
+ other(1), -- none of the following
+ invalid(2), -- an invalidated mapping
+ dynamic(3),
+ static(4),
+ local(5) -- local interface
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The type of mapping.
+
+ Setting this object to the value invalid(2) has the effect
+ of invalidating the corresponding entry in the
+ ipNetToPhysicalTable. That is, it effectively dis-
+ associates the interface identified with said entry from the
+ mapping identified with said entry. It is an
+ implementation-specific matter as to whether the agent
+
+
+
+ removes an invalidated entry from the table. Accordingly,
+ management stations must be prepared to receive tabular
+ information from agents that corresponds to entries not
+ currently in use. Proper interpretation of such entries
+ requires examination of the relevant ipNetToPhysicalType
+ object.
+
+ The 'dynamic(3)' type indicates that the IP address to
+ physical addresses mapping has been dynamically resolved
+ using e.g., IPv4 ARP or the IPv6 Neighbor Discovery
+ protocol.
+
+ The 'static(4)' type indicates that the mapping has been
+ statically configured. Both of these refer to entries that
+ provide mappings for other entities addresses.
+
+ The 'local(5)' type indicates that the mapping is provided
+ for an entity's own interface address.
+
+ As the entries in this table are typically not persistent
+ when this object is written the entity SHOULD NOT save the
+ change to non-volatile storage."
+ DEFVAL { static }
+ ::= { ipNetToPhysicalEntry 6 }
+
+ipNetToPhysicalState OBJECT-TYPE
+ SYNTAX INTEGER {
+ reachable(1), -- confirmed reachability
+
+ stale(2), -- unconfirmed reachability
+
+ delay(3), -- waiting for reachability
+ -- confirmation before entering
+ -- the probe state
+
+ probe(4), -- actively probing
+
+ invalid(5), -- an invalidated mapping
+
+ unknown(6), -- state can not be determined
+ -- for some reason.
+
+ incomplete(7) -- address resolution is being
+ -- performed.
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+
+
+
+ "The Neighbor Unreachability Detection state for the
+ interface when the address mapping in this entry is used.
+ If Neighbor Unreachability Detection is not in use (e.g. for
+ IPv4), this object is always unknown(6)."
+ REFERENCE "RFC 2461"
+ ::= { ipNetToPhysicalEntry 7 }
+
+ipNetToPhysicalRowStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status of this conceptual row.
+
+ The RowStatus TC requires that this DESCRIPTION clause
+ states under which circumstances other objects in this row
+ can be modified. The value of this object has no effect on
+ whether other objects in this conceptual row can be
+ modified.
+
+ A conceptual row can not be made active until the
+ ipNetToPhysicalPhysAddress object has been set.
+
+ Note that if the ipNetToPhysicalType is set to 'invalid',
+ the managed node may delete the entry independent of the
+ state of this object."
+ ::= { ipNetToPhysicalEntry 8 }
+
+--
+-- The IPv6 Scope Zone Index Table.
+--
+
+ipv6ScopeZoneIndexTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF Ipv6ScopeZoneIndexEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The table used to describe IPv6 unicast and multicast scope
+ zones.
+
+ For those objects that have names rather than numbers, the
+ names were chosen to coincide with the names used in the
+ IPv6 address architecture document. "
+ REFERENCE "Section 2.7 of RFC 4291"
+ ::= { ip 36 }
+
+ipv6ScopeZoneIndexEntry OBJECT-TYPE
+ SYNTAX Ipv6ScopeZoneIndexEntry
+
+
+
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Each entry contains the list of scope identifiers on a given
+ interface."
+ INDEX { ipv6ScopeZoneIndexIfIndex }
+ ::= { ipv6ScopeZoneIndexTable 1 }
+
+Ipv6ScopeZoneIndexEntry ::= SEQUENCE {
+ ipv6ScopeZoneIndexIfIndex InterfaceIndex,
+ ipv6ScopeZoneIndexLinkLocal InetZoneIndex,
+ ipv6ScopeZoneIndex3 InetZoneIndex,
+ ipv6ScopeZoneIndexAdminLocal InetZoneIndex,
+ ipv6ScopeZoneIndexSiteLocal InetZoneIndex,
+ ipv6ScopeZoneIndex6 InetZoneIndex,
+ ipv6ScopeZoneIndex7 InetZoneIndex,
+ ipv6ScopeZoneIndexOrganizationLocal InetZoneIndex,
+ ipv6ScopeZoneIndex9 InetZoneIndex,
+ ipv6ScopeZoneIndexA InetZoneIndex,
+ ipv6ScopeZoneIndexB InetZoneIndex,
+ ipv6ScopeZoneIndexC InetZoneIndex,
+ ipv6ScopeZoneIndexD InetZoneIndex
+ }
+
+ipv6ScopeZoneIndexIfIndex OBJECT-TYPE
+ SYNTAX InterfaceIndex
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The index value that uniquely identifies the interface to
+ which these scopes belong. The interface identified by a
+ particular value of this index is the same interface as
+ identified by the same value of the IF-MIB's ifIndex."
+ ::= { ipv6ScopeZoneIndexEntry 1 }
+
+ipv6ScopeZoneIndexLinkLocal OBJECT-TYPE
+ SYNTAX InetZoneIndex
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The zone index for the link-local scope on this interface."
+ ::= { ipv6ScopeZoneIndexEntry 2 }
+
+ipv6ScopeZoneIndex3 OBJECT-TYPE
+ SYNTAX InetZoneIndex
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+
+
+
+ "The zone index for scope 3 on this interface."
+ ::= { ipv6ScopeZoneIndexEntry 3 }
+
+ipv6ScopeZoneIndexAdminLocal OBJECT-TYPE
+ SYNTAX InetZoneIndex
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The zone index for the admin-local scope on this interface."
+ ::= { ipv6ScopeZoneIndexEntry 4 }
+
+ipv6ScopeZoneIndexSiteLocal OBJECT-TYPE
+ SYNTAX InetZoneIndex
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The zone index for the site-local scope on this interface."
+ ::= { ipv6ScopeZoneIndexEntry 5 }
+
+ipv6ScopeZoneIndex6 OBJECT-TYPE
+ SYNTAX InetZoneIndex
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The zone index for scope 6 on this interface."
+ ::= { ipv6ScopeZoneIndexEntry 6 }
+
+ipv6ScopeZoneIndex7 OBJECT-TYPE
+ SYNTAX InetZoneIndex
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The zone index for scope 7 on this interface."
+ ::= { ipv6ScopeZoneIndexEntry 7 }
+
+ipv6ScopeZoneIndexOrganizationLocal OBJECT-TYPE
+ SYNTAX InetZoneIndex
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The zone index for the organization-local scope on this
+ interface."
+ ::= { ipv6ScopeZoneIndexEntry 8 }
+
+ipv6ScopeZoneIndex9 OBJECT-TYPE
+ SYNTAX InetZoneIndex
+ MAX-ACCESS read-only
+ STATUS current
+
+
+
+ DESCRIPTION
+ "The zone index for scope 9 on this interface."
+ ::= { ipv6ScopeZoneIndexEntry 9 }
+
+ipv6ScopeZoneIndexA OBJECT-TYPE
+ SYNTAX InetZoneIndex
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The zone index for scope A on this interface."
+ ::= { ipv6ScopeZoneIndexEntry 10 }
+
+ipv6ScopeZoneIndexB OBJECT-TYPE
+ SYNTAX InetZoneIndex
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The zone index for scope B on this interface."
+ ::= { ipv6ScopeZoneIndexEntry 11 }
+
+ipv6ScopeZoneIndexC OBJECT-TYPE
+ SYNTAX InetZoneIndex
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The zone index for scope C on this interface."
+ ::= { ipv6ScopeZoneIndexEntry 12 }
+
+ipv6ScopeZoneIndexD OBJECT-TYPE
+ SYNTAX InetZoneIndex
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The zone index for scope D on this interface."
+ ::= { ipv6ScopeZoneIndexEntry 13 }
+
+--
+-- The Default Router Table
+-- This table simply lists the default routers; for more information
+-- about routing tables, see the routing MIBs
+--
+
+ipDefaultRouterTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IpDefaultRouterEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The table used to describe the default routers known to this
+
+
+
+ entity."
+ ::= { ip 37 }
+
+ipDefaultRouterEntry OBJECT-TYPE
+ SYNTAX IpDefaultRouterEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Each entry contains information about a default router known
+ to this entity."
+ INDEX {ipDefaultRouterAddressType, ipDefaultRouterAddress,
+ ipDefaultRouterIfIndex}
+ ::= { ipDefaultRouterTable 1 }
+
+IpDefaultRouterEntry ::= SEQUENCE {
+ ipDefaultRouterAddressType InetAddressType,
+ ipDefaultRouterAddress InetAddress,
+ ipDefaultRouterIfIndex InterfaceIndex,
+ ipDefaultRouterLifetime Unsigned32,
+ ipDefaultRouterPreference INTEGER
+ }
+
+ipDefaultRouterAddressType OBJECT-TYPE
+ SYNTAX InetAddressType
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The address type for this row."
+ ::= { ipDefaultRouterEntry 1 }
+
+ipDefaultRouterAddress OBJECT-TYPE
+ SYNTAX InetAddress
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The IP address of the default router represented by this
+ row. The address type of this object is specified in
+ ipDefaultRouterAddressType.
+
+ Implementers need to be aware that if the size of
+ ipDefaultRouterAddress exceeds 115 octets, then OIDS of
+ instances of columns in this row will have more than 128
+ sub-identifiers and cannot be accessed using SNMPv1,
+ SNMPv2c, or SNMPv3."
+ ::= { ipDefaultRouterEntry 2 }
+
+ipDefaultRouterIfIndex OBJECT-TYPE
+ SYNTAX InterfaceIndex
+
+
+
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The index value that uniquely identifies the interface by
+ which the router can be reached. The interface identified
+ by a particular value of this index is the same interface as
+ identified by the same value of the IF-MIB's ifIndex."
+ ::= { ipDefaultRouterEntry 3 }
+
+ipDefaultRouterLifetime OBJECT-TYPE
+ SYNTAX Unsigned32 (0..65535)
+ UNITS "seconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The remaining length of time, in seconds, that this router
+ will continue to be useful as a default router. A value of
+ zero indicates that it is no longer useful as a default
+ router. It is left to the implementer of the MIB as to
+ whether a router with a lifetime of zero is removed from the
+ list.
+
+ For IPv6, this value should be extracted from the router
+ advertisement messages."
+ REFERENCE "For IPv6 RFC 2462 sections 4.2 and 6.3.4"
+ ::= { ipDefaultRouterEntry 4 }
+
+ipDefaultRouterPreference OBJECT-TYPE
+ SYNTAX INTEGER {
+ reserved (-2),
+ low (-1),
+ medium (0),
+ high (1)
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An indication of preference given to this router as a
+ default router as described in he Default Router
+ Preferences document. Treating the value as a
+ 2 bit signed integer allows for simple arithmetic
+ comparisons.
+
+ For IPv4 routers or IPv6 routers that are not using the
+ updated router advertisement format, this object is set to
+ medium (0)."
+ REFERENCE "RFC 4291, section 2.1"
+ ::= { ipDefaultRouterEntry 5 }
+
+
+
+--
+-- Configuration information for constructing router advertisements
+--
+
+ipv6RouterAdvertSpinLock OBJECT-TYPE
+ SYNTAX TestAndIncr
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "An advisory lock used to allow cooperating SNMP managers to
+ coordinate their use of the set operation in creating or
+ modifying rows within this table.
+
+ In order to use this lock to coordinate the use of set
+ operations, managers should first retrieve
+ ipv6RouterAdvertSpinLock. They should then determine the
+ appropriate row to create or modify. Finally, they should
+ issue the appropriate set command including the retrieved
+ value of ipv6RouterAdvertSpinLock. If another manager has
+ altered the table in the meantime, then the value of
+ ipv6RouterAdvertSpinLock will have changed and the creation
+ will fail as it will be specifying an incorrect value for
+ ipv6RouterAdvertSpinLock. It is suggested, but not
+ required, that the ipv6RouterAdvertSpinLock be the first var
+ bind for each set of objects representing a 'row' in a PDU."
+ ::= { ip 38 }
+
+ipv6RouterAdvertTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF Ipv6RouterAdvertEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The table containing information used to construct router
+ advertisements."
+ ::= { ip 39 }
+
+ipv6RouterAdvertEntry OBJECT-TYPE
+ SYNTAX Ipv6RouterAdvertEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry containing information used to construct router
+ advertisements.
+
+ Information in this table is persistent, and when this
+ object is written, the entity SHOULD save the change to
+ non-volatile storage."
+ INDEX { ipv6RouterAdvertIfIndex }
+
+
+
+ ::= { ipv6RouterAdvertTable 1 }
+
+Ipv6RouterAdvertEntry ::= SEQUENCE {
+ ipv6RouterAdvertIfIndex InterfaceIndex,
+ ipv6RouterAdvertSendAdverts TruthValue,
+ ipv6RouterAdvertMaxInterval Unsigned32,
+ ipv6RouterAdvertMinInterval Unsigned32,
+ ipv6RouterAdvertManagedFlag TruthValue,
+ ipv6RouterAdvertOtherConfigFlag TruthValue,
+ ipv6RouterAdvertLinkMTU Unsigned32,
+ ipv6RouterAdvertReachableTime Unsigned32,
+ ipv6RouterAdvertRetransmitTime Unsigned32,
+ ipv6RouterAdvertCurHopLimit Unsigned32,
+ ipv6RouterAdvertDefaultLifetime Unsigned32,
+ ipv6RouterAdvertRowStatus RowStatus
+ }
+
+ipv6RouterAdvertIfIndex OBJECT-TYPE
+ SYNTAX InterfaceIndex
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The index value that uniquely identifies the interface on
+ which router advertisements constructed with this
+ information will be transmitted. The interface identified
+ by a particular value of this index is the same interface as
+ identified by the same value of the IF-MIB's ifIndex."
+ ::= { ipv6RouterAdvertEntry 1 }
+
+ipv6RouterAdvertSendAdverts OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "A flag indicating whether the router sends periodic
+ router advertisements and responds to router solicitations
+ on this interface."
+ REFERENCE "RFC 2461 Section 6.2.1"
+ DEFVAL { false }
+ ::= { ipv6RouterAdvertEntry 2 }
+
+ipv6RouterAdvertMaxInterval OBJECT-TYPE
+ SYNTAX Unsigned32 (4..1800)
+ UNITS "seconds"
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The maximum time allowed between sending unsolicited router
+
+
+
+ advertisements from this interface."
+ REFERENCE "RFC 2461 Section 6.2.1"
+ DEFVAL { 600 }
+ ::= { ipv6RouterAdvertEntry 3 }
+
+ipv6RouterAdvertMinInterval OBJECT-TYPE
+ SYNTAX Unsigned32 (3..1350)
+ UNITS "seconds"
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The minimum time allowed between sending unsolicited router
+ advertisements from this interface.
+
+ The default is 0.33 * ipv6RouterAdvertMaxInterval, however,
+ in the case of a low value for ipv6RouterAdvertMaxInterval,
+ the minimum value for this object is restricted to 3."
+ REFERENCE "RFC 2461 Section 6.2.1"
+ ::= { ipv6RouterAdvertEntry 4 }
+
+ipv6RouterAdvertManagedFlag OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The true/false value to be placed into the 'managed address
+ configuration' flag field in router advertisements sent from
+ this interface."
+ REFERENCE "RFC 2461 Section 6.2.1"
+ DEFVAL { false }
+ ::= { ipv6RouterAdvertEntry 5 }
+
+ipv6RouterAdvertOtherConfigFlag OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The true/false value to be placed into the 'other stateful
+ configuration' flag field in router advertisements sent from
+ this interface."
+ REFERENCE "RFC 2461 Section 6.2.1"
+ DEFVAL { false }
+ ::= { ipv6RouterAdvertEntry 6 }
+
+ipv6RouterAdvertLinkMTU OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-create
+ STATUS current
+
+
+
+ DESCRIPTION
+ "The value to be placed in MTU options sent by the router on
+ this interface.
+
+ A value of zero indicates that no MTU options are sent."
+ REFERENCE "RFC 2461 Section 6.2.1"
+ DEFVAL { 0 }
+ ::= { ipv6RouterAdvertEntry 7 }
+
+ipv6RouterAdvertReachableTime OBJECT-TYPE
+ SYNTAX Unsigned32 (0..3600000)
+ UNITS "milliseconds"
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The value to be placed in the reachable time field in router
+ advertisement messages sent from this interface.
+
+ A value of zero in the router advertisement indicates that
+ the advertisement isn't specifying a value for reachable
+ time."
+ REFERENCE "RFC 2461 Section 6.2.1"
+ DEFVAL { 0 }
+ ::= { ipv6RouterAdvertEntry 8 }
+
+ipv6RouterAdvertRetransmitTime OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "milliseconds"
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The value to be placed in the retransmit timer field in
+ router advertisements sent from this interface.
+
+ A value of zero in the router advertisement indicates that
+ the advertisement isn't specifying a value for retrans
+ time."
+ REFERENCE "RFC 2461 Section 6.2.1"
+ DEFVAL { 0 }
+ ::= { ipv6RouterAdvertEntry 9 }
+
+ipv6RouterAdvertCurHopLimit OBJECT-TYPE
+ SYNTAX Unsigned32 (0..255)
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The default value to be placed in the current hop limit
+ field in router advertisements sent from this interface.
+
+
+
+ The value should be set to the current diameter of the
+ Internet.
+
+ A value of zero in the router advertisement indicates that
+ the advertisement isn't specifying a value for curHopLimit.
+
+ The default should be set to the value specified in the IANA
+ web pages (www.iana.org) at the time of implementation."
+ REFERENCE "RFC 2461 Section 6.2.1"
+ ::= { ipv6RouterAdvertEntry 10 }
+
+ipv6RouterAdvertDefaultLifetime OBJECT-TYPE
+ SYNTAX Unsigned32 (0|4..9000)
+ UNITS "seconds"
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The value to be placed in the router lifetime field of
+ router advertisements sent from this interface. This value
+ MUST be either 0 or between ipv6RouterAdvertMaxInterval and
+ 9000 seconds.
+
+ A value of zero indicates that the router is not to be used
+ as a default router.
+
+ The default is 3 * ipv6RouterAdvertMaxInterval."
+ REFERENCE "RFC 2461 Section 6.2.1"
+ ::= { ipv6RouterAdvertEntry 11 }
+
+ipv6RouterAdvertRowStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status of this conceptual row.
+
+ As all objects in this conceptual row have default values, a
+ row can be created and made active by setting this object
+ appropriately.
+
+ The RowStatus TC requires that this DESCRIPTION clause
+ states under which circumstances other objects in this row
+ can be modified. The value of this object has no effect on
+ whether other objects in this conceptual row can be
+ modified."
+ ::= { ipv6RouterAdvertEntry 12 }
+
+--
+
+
+
+-- ICMP section
+--
+
+icmp OBJECT IDENTIFIER ::= { mib-2 5 }
+
+--
+-- ICMP non-message-specific counters
+--
+
+-- These object IDs are reserved, as they were used in earlier
+-- versions of the MIB module. In theory, OIDs are not assigned
+-- until the specification is released as an RFC; however, as some
+-- companies may have shipped code based on earlier versions of
+-- the MIB, it seems best to reserve these OIDs.
+-- ::= { icmp 27 }
+-- ::= { icmp 28 }
+
+icmpStatsTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IcmpStatsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The table of generic system-wide ICMP counters."
+ ::= { icmp 29 }
+
+icmpStatsEntry OBJECT-TYPE
+ SYNTAX IcmpStatsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A conceptual row in the icmpStatsTable."
+ INDEX { icmpStatsIPVersion }
+ ::= { icmpStatsTable 1 }
+
+IcmpStatsEntry ::= SEQUENCE {
+ icmpStatsIPVersion InetVersion,
+ icmpStatsInMsgs Counter32,
+ icmpStatsInErrors Counter32,
+ icmpStatsOutMsgs Counter32,
+ icmpStatsOutErrors Counter32
+ }
+
+icmpStatsIPVersion OBJECT-TYPE
+ SYNTAX InetVersion
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The IP version of the statistics."
+
+
+
+ ::= { icmpStatsEntry 1 }
+
+icmpStatsInMsgs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of ICMP messages that the entity received.
+ Note that this counter includes all those counted by
+ icmpStatsInErrors."
+ ::= { icmpStatsEntry 2 }
+
+icmpStatsInErrors OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of ICMP messages that the entity received but
+ determined as having ICMP-specific errors (bad ICMP
+ checksums, bad length, etc.)."
+ ::= { icmpStatsEntry 3 }
+
+icmpStatsOutMsgs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of ICMP messages that the entity attempted
+ to send. Note that this counter includes all those counted
+ by icmpStatsOutErrors."
+ ::= { icmpStatsEntry 4 }
+
+icmpStatsOutErrors OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of ICMP messages that this entity did not send
+ due to problems discovered within ICMP, such as a lack of
+ buffers. This value should not include errors discovered
+ outside the ICMP layer, such as the inability of IP to route
+ the resultant datagram. In some implementations, there may
+ be no types of error that contribute to this counter's
+ value."
+ ::= { icmpStatsEntry 5 }
+
+--
+-- per-version, per-message type ICMP counters
+
+
+
+--
+
+icmpMsgStatsTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IcmpMsgStatsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The table of system-wide per-version, per-message type ICMP
+ counters."
+ ::= { icmp 30 }
+
+icmpMsgStatsEntry OBJECT-TYPE
+ SYNTAX IcmpMsgStatsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A conceptual row in the icmpMsgStatsTable.
+
+ The system should track each ICMP type value, even if that
+ ICMP type is not supported by the system. However, a
+ given row need not be instantiated unless a message of that
+ type has been processed, i.e., the row for
+ icmpMsgStatsType=X MAY be instantiated before but MUST be
+ instantiated after the first message with Type=X is
+ received or transmitted. After receiving or transmitting
+ any succeeding messages with Type=X, the relevant counter
+ must be incremented."
+ INDEX { icmpMsgStatsIPVersion, icmpMsgStatsType }
+ ::= { icmpMsgStatsTable 1 }
+
+IcmpMsgStatsEntry ::= SEQUENCE {
+ icmpMsgStatsIPVersion InetVersion,
+ icmpMsgStatsType Integer32,
+ icmpMsgStatsInPkts Counter32,
+ icmpMsgStatsOutPkts Counter32
+ }
+
+icmpMsgStatsIPVersion OBJECT-TYPE
+ SYNTAX InetVersion
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The IP version of the statistics."
+ ::= { icmpMsgStatsEntry 1 }
+
+icmpMsgStatsType OBJECT-TYPE
+ SYNTAX Integer32 (0..255)
+ MAX-ACCESS not-accessible
+
+
+
+ STATUS current
+ DESCRIPTION
+ "The ICMP type field of the message type being counted by
+ this row.
+
+ Note that ICMP message types are scoped by the address type
+ in use."
+ REFERENCE "http://www.iana.org/assignments/icmp-parameters and
+ http://www.iana.org/assignments/icmpv6-parameters"
+ ::= { icmpMsgStatsEntry 2 }
+
+icmpMsgStatsInPkts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of input packets for this AF and type."
+ ::= { icmpMsgStatsEntry 3 }
+
+icmpMsgStatsOutPkts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of output packets for this AF and type."
+ ::= { icmpMsgStatsEntry 4 }
+--
+-- conformance information
+--
+
+ipMIBConformance OBJECT IDENTIFIER ::= { ipMIB 2 }
+
+ipMIBCompliances OBJECT IDENTIFIER ::= { ipMIBConformance 1 }
+ipMIBGroups OBJECT IDENTIFIER ::= { ipMIBConformance 2 }
+
+-- compliance statements
+ipMIBCompliance2 MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for systems that implement IP -
+ either IPv4 or IPv6.
+
+ There are a number of INDEX objects that cannot be
+ represented in the form of OBJECT clauses in SMIv2, but
+ for which we have the following compliance requirements,
+ expressed in OBJECT clause form in this description
+ clause:
+
+
+
+
+ -- OBJECT ipSystemStatsIPVersion
+ -- SYNTAX InetVersion {ipv4(1), ipv6(2)}
+ -- DESCRIPTION
+ -- This MIB requires support for only IPv4 and IPv6
+ -- versions.
+ --
+ -- OBJECT ipIfStatsIPVersion
+ -- SYNTAX InetVersion {ipv4(1), ipv6(2)}
+ -- DESCRIPTION
+ -- This MIB requires support for only IPv4 and IPv6
+ -- versions.
+ --
+ -- OBJECT icmpStatsIPVersion
+ -- SYNTAX InetVersion {ipv4(1), ipv6(2)}
+ -- DESCRIPTION
+ -- This MIB requires support for only IPv4 and IPv6
+ -- versions.
+ --
+ -- OBJECT icmpMsgStatsIPVersion
+ -- SYNTAX InetVersion {ipv4(1), ipv6(2)}
+ -- DESCRIPTION
+ -- This MIB requires support for only IPv4 and IPv6
+ -- versions.
+ --
+ -- OBJECT ipAddressPrefixType
+ -- SYNTAX InetAddressType {ipv4(1), ipv6(2)}
+ -- DESCRIPTION
+ -- This MIB requires support for only global IPv4 and
+ -- IPv6 address types.
+ --
+ -- OBJECT ipAddressPrefixPrefix
+ -- SYNTAX InetAddress (Size(4 | 16))
+ -- DESCRIPTION
+ -- This MIB requires support for only global IPv4 and
+ -- IPv6 addresses and so the size can be either 4 or
+ -- 16 bytes.
+ --
+ -- OBJECT ipAddressAddrType
+ -- SYNTAX InetAddressType {ipv4(1), ipv6(2),
+ -- ipv4z(3), ipv6z(4)}
+ -- DESCRIPTION
+ -- This MIB requires support for only global and
+ -- non-global IPv4 and IPv6 address types.
+ --
+ -- OBJECT ipAddressAddr
+ -- SYNTAX InetAddress (Size(4 | 8 | 16 | 20))
+ -- DESCRIPTION
+ -- This MIB requires support for only global and
+
+
+
+ -- non-global IPv4 and IPv6 addresses and so the size
+ -- can be 4, 8, 16, or 20 bytes.
+ --
+ -- OBJECT ipNetToPhysicalNetAddressType
+ -- SYNTAX InetAddressType {ipv4(1), ipv6(2),
+ -- ipv4z(3), ipv6z(4)}
+ -- DESCRIPTION
+ -- This MIB requires support for only global and
+ -- non-global IPv4 and IPv6 address types.
+ --
+ -- OBJECT ipNetToPhysicalNetAddress
+ -- SYNTAX InetAddress (Size(4 | 8 | 16 | 20))
+ -- DESCRIPTION
+ -- This MIB requires support for only global and
+ -- non-global IPv4 and IPv6 addresses and so the size
+ -- can be 4, 8, 16, or 20 bytes.
+ --
+ -- OBJECT ipDefaultRouterAddressType
+ -- SYNTAX InetAddressType {ipv4(1), ipv6(2),
+ -- ipv4z(3), ipv6z(4)}
+ -- DESCRIPTION
+ -- This MIB requires support for only global and
+ -- non-global IPv4 and IPv6 address types.
+ --
+ -- OBJECT ipDefaultRouterAddress
+ -- SYNTAX InetAddress (Size(4 | 8 | 16 | 20))
+ -- DESCRIPTION
+ -- This MIB requires support for only global and
+ -- non-global IPv4 and IPv6 addresses and so the size
+ -- can be 4, 8, 16, or 20 bytes."
+
+ MODULE -- this module
+
+ MANDATORY-GROUPS { ipSystemStatsGroup, ipAddressGroup,
+ ipNetToPhysicalGroup, ipDefaultRouterGroup,
+ icmpStatsGroup }
+
+ GROUP ipSystemStatsHCOctetGroup
+ DESCRIPTION
+ "This group is mandatory for systems that have an aggregate
+ bandwidth of greater than 20MB. Including this group does
+ not allow an entity to neglect the 32 bit versions of these
+ objects."
+
+ GROUP ipSystemStatsHCPacketGroup
+ DESCRIPTION
+ "This group is mandatory for systems that have an aggregate
+ bandwidth of greater than 650MB. Including this group
+
+
+
+ does not allow an entity to neglect the 32 bit versions of
+ these objects."
+
+ GROUP ipIfStatsGroup
+ DESCRIPTION
+ "This group is optional for all systems."
+
+ GROUP ipIfStatsHCOctetGroup
+ DESCRIPTION
+ "This group is mandatory for systems that include the
+ ipIfStatsGroup and include links with bandwidths of greater
+ than 20MB. Including this group does not allow an entity to
+ neglect the 32 bit versions of these objects."
+
+ GROUP ipIfStatsHCPacketGroup
+ DESCRIPTION
+ "This group is mandatory for systems that include the
+ ipIfStatsGroup and include links with bandwidths of greater
+ than 650MB. Including this group does not allow an entity
+ to neglect the 32 bit versions of these objects."
+
+ GROUP ipv4GeneralGroup
+ DESCRIPTION
+ "This group is mandatory for all systems supporting IPv4."
+
+ GROUP ipv4IfGroup
+ DESCRIPTION
+ "This group is mandatory for all systems supporting IPv4."
+
+ GROUP ipv4SystemStatsGroup
+ DESCRIPTION
+ "This group is mandatory for all systems supporting IPv4."
+
+ GROUP ipv4SystemStatsHCPacketGroup
+ DESCRIPTION
+ "This group is mandatory for all systems supporting IPv4 and
+ that have an aggregate bandwidth of greater than 650MB.
+ Including this group does not allow an entity to neglect the
+ 32 bit versions of these objects."
+
+ GROUP ipv4IfStatsGroup
+ DESCRIPTION
+ "This group is mandatory for all systems supporting IPv4 and
+ including the ipIfStatsGroup."
+
+ GROUP ipv4IfStatsHCPacketGroup
+ DESCRIPTION
+ "This group is mandatory for all systems supporting IPv4 and
+
+
+
+ including the ipIfStatsHCPacketGroup. Including this group
+ does not allow an entity to neglect the 32 bit versions of
+ these objects."
+
+ GROUP ipv6GeneralGroup2
+ DESCRIPTION
+ "This group is mandatory for all systems supporting IPv6."
+
+ GROUP ipv6IfGroup
+ DESCRIPTION
+ "This group is mandatory for all systems supporting IPv6."
+
+ GROUP ipAddressPrefixGroup
+ DESCRIPTION
+ "This group is mandatory for all systems supporting IPv6."
+
+ GROUP ipv6ScopeGroup
+ DESCRIPTION
+ "This group is mandatory for all systems supporting IPv6."
+
+ GROUP ipv6RouterAdvertGroup
+ DESCRIPTION
+ "This group is mandatory for all IPv6 routers."
+
+ GROUP ipLastChangeGroup
+ DESCRIPTION
+ "This group is optional for all agents."
+
+ OBJECT ipv6IpForwarding
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "An agent is not required to provide write access to this
+ object."
+
+ OBJECT ipv6IpDefaultHopLimit
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "An agent is not required to provide write access to this
+ object."
+
+ OBJECT ipv4InterfaceEnableStatus
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "An agent is not required to provide write access to this
+ object."
+
+ OBJECT ipv6InterfaceEnableStatus
+ MIN-ACCESS read-only
+
+
+
+ DESCRIPTION
+ "An agent is not required to provide write access to this
+ object."
+
+ OBJECT ipv6InterfaceForwarding
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "An agent is not required to provide write access to this
+ object."
+
+ OBJECT ipAddressSpinLock
+ MIN-ACCESS not-accessible
+ DESCRIPTION
+ "An agent is not required to provide write access to this
+ object. However, if an agent provides write access to any
+ of the other objects in the ipAddressGroup, it SHOULD
+ provide write access to this object as well."
+
+ OBJECT ipAddressIfIndex
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "An agent is not required to provide write or create access
+ to this object."
+
+ OBJECT ipAddressType
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "An agent is not required to provide write or create access
+ to this object."
+
+ OBJECT ipAddressStatus
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "An agent is not required to provide write or create access
+ to this object."
+
+ OBJECT ipAddressRowStatus
+ SYNTAX RowStatus { active(1) }
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "An agent is not required to provide write or create access
+ to this object."
+
+ OBJECT ipAddressStorageType
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "An agent is not required to provide write or create access
+ to this object.
+
+
+
+ If an agent allows this object to be written or created, it
+ is not required to allow this object to be set to readOnly,
+ permanent, or nonVolatile."
+
+ OBJECT ipNetToPhysicalPhysAddress
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "An agent is not required to provide write or create access
+ to this object."
+
+ OBJECT ipNetToPhysicalType
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "An agent is not required to provide write or create access
+ to this object."
+
+ OBJECT ipv6RouterAdvertSpinLock
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "An agent is not required to provide write access to this
+ object. However, if an agent provides write access to
+ any of the other objects in the ipv6RouterAdvertGroup, it
+ SHOULD provide write access to this object as well."
+
+ OBJECT ipv6RouterAdvertSendAdverts
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "An agent is not required to provide write access to this
+ object."
+
+ OBJECT ipv6RouterAdvertMaxInterval
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "An agent is not required to provide write access to this
+ object."
+
+ OBJECT ipv6RouterAdvertMinInterval
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "An agent is not required to provide write access to this
+ object."
+
+ OBJECT ipv6RouterAdvertManagedFlag
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "An agent is not required to provide write access to this
+ object."
+
+
+
+
+ OBJECT ipv6RouterAdvertOtherConfigFlag
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "An agent is not required to provide write access to this
+ object."
+
+ OBJECT ipv6RouterAdvertLinkMTU
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "An agent is not required to provide write access to this
+ object."
+
+ OBJECT ipv6RouterAdvertReachableTime
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "An agent is not required to provide write access to this
+ object."
+
+ OBJECT ipv6RouterAdvertRetransmitTime
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "An agent is not required to provide write access to this
+ object."
+
+ OBJECT ipv6RouterAdvertCurHopLimit
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "An agent is not required to provide write access to this
+ object."
+
+ OBJECT ipv6RouterAdvertDefaultLifetime
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "An agent is not required to provide write access to this
+ object."
+
+ OBJECT ipv6RouterAdvertRowStatus
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "An agent is not required to provide write or create access
+ to this object."
+
+ ::= { ipMIBCompliances 2 }
+
+-- units of conformance
+
+ipv4GeneralGroup OBJECT-GROUP
+ OBJECTS { ipForwarding, ipDefaultTTL, ipReasmTimeout }
+
+
+
+ STATUS current
+ DESCRIPTION
+ "The group of IPv4-specific objects for basic management of
+ IPv4 entities."
+ ::= { ipMIBGroups 3 }
+
+ipv4IfGroup OBJECT-GROUP
+ OBJECTS { ipv4InterfaceReasmMaxSize, ipv4InterfaceEnableStatus,
+ ipv4InterfaceRetransmitTime }
+ STATUS current
+ DESCRIPTION
+ "The group of IPv4-specific objects for basic management of
+ IPv4 interfaces."
+ ::= { ipMIBGroups 4 }
+
+ipv6GeneralGroup2 OBJECT-GROUP
+ OBJECTS { ipv6IpForwarding, ipv6IpDefaultHopLimit }
+ STATUS current
+ DESCRIPTION
+ "The IPv6 group of objects providing for basic management of
+ IPv6 entities."
+ ::= { ipMIBGroups 5 }
+
+ipv6IfGroup OBJECT-GROUP
+ OBJECTS { ipv6InterfaceReasmMaxSize, ipv6InterfaceIdentifier,
+ ipv6InterfaceEnableStatus, ipv6InterfaceReachableTime,
+ ipv6InterfaceRetransmitTime, ipv6InterfaceForwarding }
+ STATUS current
+ DESCRIPTION
+ "The group of IPv6-specific objects for basic management of
+ IPv6 interfaces."
+ ::= { ipMIBGroups 6 }
+
+ipLastChangeGroup OBJECT-GROUP
+ OBJECTS { ipv4InterfaceTableLastChange,
+ ipv6InterfaceTableLastChange,
+ ipIfStatsTableLastChange }
+ STATUS current
+ DESCRIPTION
+ "The last change objects associated with this MIB. These
+ objects are optional for all agents. They SHOULD be
+ implemented on agents where it is possible to determine the
+ proper values. Where it is not possible to determine the
+ proper values, for example when the tables are split amongst
+ several sub-agents using AgentX, the agent MUST NOT
+ implement these objects to return an incorrect or static
+ value."
+ ::= { ipMIBGroups 7 }
+
+
+
+ipSystemStatsGroup OBJECT-GROUP
+ OBJECTS { ipSystemStatsInReceives,
+ ipSystemStatsInOctets,
+ ipSystemStatsInHdrErrors,
+ ipSystemStatsInNoRoutes,
+ ipSystemStatsInAddrErrors,
+ ipSystemStatsInUnknownProtos,
+ ipSystemStatsInTruncatedPkts,
+ ipSystemStatsInForwDatagrams,
+ ipSystemStatsReasmReqds,
+ ipSystemStatsReasmOKs,
+ ipSystemStatsReasmFails,
+ ipSystemStatsInDiscards,
+ ipSystemStatsInDelivers,
+ ipSystemStatsOutRequests,
+ ipSystemStatsOutNoRoutes,
+ ipSystemStatsOutForwDatagrams,
+ ipSystemStatsOutDiscards,
+ ipSystemStatsOutFragReqds,
+ ipSystemStatsOutFragOKs,
+ ipSystemStatsOutFragFails,
+ ipSystemStatsOutFragCreates,
+ ipSystemStatsOutTransmits,
+ ipSystemStatsOutOctets,
+ ipSystemStatsInMcastPkts,
+ ipSystemStatsInMcastOctets,
+ ipSystemStatsOutMcastPkts,
+ ipSystemStatsOutMcastOctets,
+ ipSystemStatsDiscontinuityTime,
+ ipSystemStatsRefreshRate }
+ STATUS current
+ DESCRIPTION
+ "IP system wide statistics."
+ ::= { ipMIBGroups 8 }
+
+ipv4SystemStatsGroup OBJECT-GROUP
+ OBJECTS { ipSystemStatsInBcastPkts, ipSystemStatsOutBcastPkts }
+ STATUS current
+ DESCRIPTION
+ "IPv4 only system wide statistics."
+ ::= { ipMIBGroups 9 }
+
+ipSystemStatsHCOctetGroup OBJECT-GROUP
+ OBJECTS { ipSystemStatsHCInOctets,
+ ipSystemStatsHCOutOctets,
+ ipSystemStatsHCInMcastOctets,
+ ipSystemStatsHCOutMcastOctets
+}
+
+
+
+ STATUS current
+ DESCRIPTION
+ "IP system wide statistics for systems that may overflow the
+ standard octet counters within 1 hour."
+ ::= { ipMIBGroups 10 }
+
+ipSystemStatsHCPacketGroup OBJECT-GROUP
+ OBJECTS { ipSystemStatsHCInReceives,
+ ipSystemStatsHCInForwDatagrams,
+ ipSystemStatsHCInDelivers,
+ ipSystemStatsHCOutRequests,
+ ipSystemStatsHCOutForwDatagrams,
+ ipSystemStatsHCOutTransmits,
+ ipSystemStatsHCInMcastPkts,
+ ipSystemStatsHCOutMcastPkts
+}
+ STATUS current
+ DESCRIPTION
+ "IP system wide statistics for systems that may overflow the
+ standard packet counters within 1 hour."
+ ::= { ipMIBGroups 11 }
+
+ipv4SystemStatsHCPacketGroup OBJECT-GROUP
+ OBJECTS { ipSystemStatsHCInBcastPkts,
+ ipSystemStatsHCOutBcastPkts }
+ STATUS current
+ DESCRIPTION
+ "IPv4 only system wide statistics for systems that may
+ overflow the standard packet counters within 1 hour."
+ ::= { ipMIBGroups 12 }
+
+ipIfStatsGroup OBJECT-GROUP
+ OBJECTS { ipIfStatsInReceives, ipIfStatsInOctets,
+ ipIfStatsInHdrErrors, ipIfStatsInNoRoutes,
+ ipIfStatsInAddrErrors, ipIfStatsInUnknownProtos,
+ ipIfStatsInTruncatedPkts, ipIfStatsInForwDatagrams,
+ ipIfStatsReasmReqds, ipIfStatsReasmOKs,
+ ipIfStatsReasmFails, ipIfStatsInDiscards,
+ ipIfStatsInDelivers, ipIfStatsOutRequests,
+ ipIfStatsOutForwDatagrams, ipIfStatsOutDiscards,
+ ipIfStatsOutFragReqds, ipIfStatsOutFragOKs,
+ ipIfStatsOutFragFails, ipIfStatsOutFragCreates,
+ ipIfStatsOutTransmits, ipIfStatsOutOctets,
+ ipIfStatsInMcastPkts, ipIfStatsInMcastOctets,
+ ipIfStatsOutMcastPkts, ipIfStatsOutMcastOctets,
+ ipIfStatsDiscontinuityTime, ipIfStatsRefreshRate }
+ STATUS current
+ DESCRIPTION
+
+
+
+ "IP per-interface statistics."
+ ::= { ipMIBGroups 13 }
+
+ipv4IfStatsGroup OBJECT-GROUP
+ OBJECTS { ipIfStatsInBcastPkts, ipIfStatsOutBcastPkts }
+ STATUS current
+ DESCRIPTION
+ "IPv4 only per-interface statistics."
+ ::= { ipMIBGroups 14 }
+
+ipIfStatsHCOctetGroup OBJECT-GROUP
+ OBJECTS { ipIfStatsHCInOctets, ipIfStatsHCOutOctets,
+ ipIfStatsHCInMcastOctets, ipIfStatsHCOutMcastOctets }
+ STATUS current
+ DESCRIPTION
+ "IP per-interfaces statistics for systems that include
+ interfaces that may overflow the standard octet
+ counters within 1 hour."
+ ::= { ipMIBGroups 15 }
+
+ipIfStatsHCPacketGroup OBJECT-GROUP
+ OBJECTS { ipIfStatsHCInReceives, ipIfStatsHCInForwDatagrams,
+ ipIfStatsHCInDelivers, ipIfStatsHCOutRequests,
+ ipIfStatsHCOutForwDatagrams, ipIfStatsHCOutTransmits,
+ ipIfStatsHCInMcastPkts, ipIfStatsHCOutMcastPkts }
+ STATUS current
+ DESCRIPTION
+ "IP per-interfaces statistics for systems that include
+ interfaces that may overflow the standard packet counters
+ within 1 hour."
+ ::= { ipMIBGroups 16 }
+
+ipv4IfStatsHCPacketGroup OBJECT-GROUP
+ OBJECTS { ipIfStatsHCInBcastPkts, ipIfStatsHCOutBcastPkts }
+ STATUS current
+ DESCRIPTION
+ "IPv4 only per-interface statistics for systems that include
+ interfaces that may overflow the standard packet counters
+ within 1 hour."
+ ::= { ipMIBGroups 17 }
+
+ipAddressPrefixGroup OBJECT-GROUP
+ OBJECTS { ipAddressPrefixOrigin,
+ ipAddressPrefixOnLinkFlag,
+ ipAddressPrefixAutonomousFlag,
+ ipAddressPrefixAdvPreferredLifetime,
+ ipAddressPrefixAdvValidLifetime }
+ STATUS current
+
+
+
+ DESCRIPTION
+ "The group of objects for providing information about address
+ prefixes used by this node."
+ ::= { ipMIBGroups 18 }
+
+ipAddressGroup OBJECT-GROUP
+ OBJECTS { ipAddressSpinLock, ipAddressIfIndex,
+ ipAddressType, ipAddressPrefix,
+ ipAddressOrigin, ipAddressStatus,
+ ipAddressCreated, ipAddressLastChanged,
+ ipAddressRowStatus, ipAddressStorageType }
+ STATUS current
+ DESCRIPTION
+ "The group of objects for providing information about the
+ addresses relevant to this entity's interfaces."
+ ::= { ipMIBGroups 19 }
+
+ipNetToPhysicalGroup OBJECT-GROUP
+ OBJECTS { ipNetToPhysicalPhysAddress, ipNetToPhysicalLastUpdated,
+ ipNetToPhysicalType, ipNetToPhysicalState,
+ ipNetToPhysicalRowStatus }
+ STATUS current
+ DESCRIPTION
+ "The group of objects for providing information about the
+ mappings of network address to physical address known to
+ this node."
+ ::= { ipMIBGroups 20 }
+
+ipv6ScopeGroup OBJECT-GROUP
+ OBJECTS { ipv6ScopeZoneIndexLinkLocal,
+ ipv6ScopeZoneIndex3,
+ ipv6ScopeZoneIndexAdminLocal,
+ ipv6ScopeZoneIndexSiteLocal,
+ ipv6ScopeZoneIndex6,
+ ipv6ScopeZoneIndex7,
+ ipv6ScopeZoneIndexOrganizationLocal,
+ ipv6ScopeZoneIndex9,
+ ipv6ScopeZoneIndexA,
+ ipv6ScopeZoneIndexB,
+ ipv6ScopeZoneIndexC,
+ ipv6ScopeZoneIndexD }
+ STATUS current
+ DESCRIPTION
+ "The group of objects for managing IPv6 scope zones."
+ ::= { ipMIBGroups 21 }
+
+ipDefaultRouterGroup OBJECT-GROUP
+ OBJECTS { ipDefaultRouterLifetime, ipDefaultRouterPreference }
+
+
+
+ STATUS current
+ DESCRIPTION
+ "The group of objects for providing information about default
+ routers known to this node."
+ ::= { ipMIBGroups 22 }
+
+ipv6RouterAdvertGroup OBJECT-GROUP
+ OBJECTS { ipv6RouterAdvertSpinLock,
+ ipv6RouterAdvertSendAdverts,
+ ipv6RouterAdvertMaxInterval,
+ ipv6RouterAdvertMinInterval,
+ ipv6RouterAdvertManagedFlag,
+ ipv6RouterAdvertOtherConfigFlag,
+ ipv6RouterAdvertLinkMTU,
+ ipv6RouterAdvertReachableTime,
+ ipv6RouterAdvertRetransmitTime,
+ ipv6RouterAdvertCurHopLimit,
+ ipv6RouterAdvertDefaultLifetime,
+ ipv6RouterAdvertRowStatus
+}
+ STATUS current
+ DESCRIPTION
+ "The group of objects for controlling information advertised
+ by IPv6 routers."
+ ::= { ipMIBGroups 23 }
+
+icmpStatsGroup OBJECT-GROUP
+ OBJECTS {icmpStatsInMsgs, icmpStatsInErrors,
+ icmpStatsOutMsgs, icmpStatsOutErrors,
+ icmpMsgStatsInPkts, icmpMsgStatsOutPkts }
+ STATUS current
+ DESCRIPTION
+ "The group of objects providing ICMP statistics."
+ ::= { ipMIBGroups 24 }
+
+--
+-- Deprecated objects
+--
+
+ipInReceives OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The total number of input datagrams received from
+ interfaces, including those received in error.
+
+ This object has been deprecated, as a new IP version-neutral
+
+
+
+ table has been added. It is loosely replaced by
+ ipSystemStatsInRecieves."
+ ::= { ip 3 }
+
+ipInHdrErrors OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of input datagrams discarded due to errors in
+ their IPv4 headers, including bad checksums, version number
+ mismatch, other format errors, time-to-live exceeded, errors
+ discovered in processing their IPv4 options, etc.
+
+ This object has been deprecated as a new IP version-neutral
+ table has been added. It is loosely replaced by
+ ipSystemStatsInHdrErrors."
+ ::= { ip 4 }
+
+ipInAddrErrors OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of input datagrams discarded because the IPv4
+ address in their IPv4 header's destination field was not a
+ valid address to be received at this entity. This count
+ includes invalid addresses (e.g., 0.0.0.0) and addresses of
+ unsupported Classes (e.g., Class E). For entities which are
+ not IPv4 routers, and therefore do not forward datagrams,
+ this counter includes datagrams discarded because the
+ destination address was not a local address.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by
+ ipSystemStatsInAddrErrors."
+ ::= { ip 5 }
+
+ipForwDatagrams OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of input datagrams for which this entity was not
+ their final IPv4 destination, as a result of which an
+ attempt was made to find a route to forward them to that
+ final destination. In entities which do not act as IPv4
+ routers, this counter will include only those packets which
+
+
+
+ were Source-Routed via this entity, and the Source-Route
+ option processing was successful.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by
+ ipSystemStatsInForwDatagrams."
+ ::= { ip 6 }
+
+ipInUnknownProtos OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of locally-addressed datagrams received
+ successfully but discarded because of an unknown or
+ unsupported protocol.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by
+ ipSystemStatsInUnknownProtos."
+ ::= { ip 7 }
+
+ipInDiscards OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of input IPv4 datagrams for which no problems
+ were encountered to prevent their continued processing, but
+ which were discarded (e.g., for lack of buffer space). Note
+ that this counter does not include any datagrams discarded
+ while awaiting re-assembly.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by
+ ipSystemStatsInDiscards."
+ ::= { ip 8 }
+
+ipInDelivers OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The total number of input datagrams successfully delivered
+ to IPv4 user-protocols (including ICMP).
+
+ This object has been deprecated as a new IP version neutral
+ table has been added. It is loosely replaced by
+
+
+
+ ipSystemStatsIndelivers."
+ ::= { ip 9 }
+
+ipOutRequests OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The total number of IPv4 datagrams which local IPv4 user
+ protocols (including ICMP) supplied to IPv4 in requests for
+ transmission. Note that this counter does not include any
+ datagrams counted in ipForwDatagrams.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by
+ ipSystemStatsOutRequests."
+ ::= { ip 10 }
+
+ipOutDiscards OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of output IPv4 datagrams for which no problem was
+ encountered to prevent their transmission to their
+ destination, but which were discarded (e.g., for lack of
+ buffer space). Note that this counter would include
+ datagrams counted in ipForwDatagrams if any such packets met
+ this (discretionary) discard criterion.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by
+ ipSystemStatsOutDiscards."
+ ::= { ip 11 }
+
+ipOutNoRoutes OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of IPv4 datagrams discarded because no route
+ could be found to transmit them to their destination. Note
+ that this counter includes any packets counted in
+ ipForwDatagrams which meet this `no-route' criterion. Note
+ that this includes any datagrams which a host cannot route
+ because all of its default routers are down.
+
+ This object has been deprecated, as a new IP version-neutral
+
+
+
+ table has been added. It is loosely replaced by
+ ipSystemStatsOutNoRoutes."
+ ::= { ip 12 }
+
+ipReasmReqds OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of IPv4 fragments received which needed to be
+ reassembled at this entity.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by
+ ipSystemStatsReasmReqds."
+ ::= { ip 14 }
+
+ipReasmOKs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of IPv4 datagrams successfully re-assembled.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by
+ ipSystemStatsReasmOKs."
+ ::= { ip 15 }
+
+ipReasmFails OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of failures detected by the IPv4 re-assembly
+ algorithm (for whatever reason: timed out, errors, etc).
+ Note that this is not necessarily a count of discarded IPv4
+ fragments since some algorithms (notably the algorithm in
+ RFC 815) can lose track of the number of fragments by
+ combining them as they are received.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by
+ ipSystemStatsReasmFails."
+ ::= { ip 16 }
+
+ipFragOKs OBJECT-TYPE
+ SYNTAX Counter32
+
+
+
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of IPv4 datagrams that have been successfully
+ fragmented at this entity.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by
+ ipSystemStatsOutFragOKs."
+ ::= { ip 17 }
+
+ipFragFails OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of IPv4 datagrams that have been discarded
+ because they needed to be fragmented at this entity but
+ could not be, e.g., because their Don't Fragment flag was
+ set.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by
+ ipSystemStatsOutFragFails."
+ ::= { ip 18 }
+
+ipFragCreates OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of IPv4 datagram fragments that have been
+ generated as a result of fragmentation at this entity.
+
+ This object has been deprecated as a new IP version neutral
+ table has been added. It is loosely replaced by
+ ipSystemStatsOutFragCreates."
+ ::= { ip 19 }
+
+ipRoutingDiscards OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of routing entries which were chosen to be
+ discarded even though they are valid. One possible reason
+ for discarding such an entry could be to free-up buffer
+ space for other routing entries.
+
+
+
+ This object was defined in pre-IPv6 versions of the IP MIB.
+ It was implicitly IPv4 only, but the original specifications
+ did not indicate this protocol restriction. In order to
+ clarify the specifications, this object has been deprecated
+ and a similar, but more thoroughly clarified, object has
+ been added to the IP-FORWARD-MIB."
+ ::= { ip 23 }
+
+-- the deprecated IPv4 address table
+
+ipAddrTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IpAddrEntry
+ MAX-ACCESS not-accessible
+ STATUS deprecated
+ DESCRIPTION
+ "The table of addressing information relevant to this
+ entity's IPv4 addresses.
+
+ This table has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by the
+ ipAddressTable although several objects that weren't deemed
+ useful weren't carried forward while another
+ (ipAdEntReasmMaxSize) was moved to the ipv4InterfaceTable."
+ ::= { ip 20 }
+
+ipAddrEntry OBJECT-TYPE
+ SYNTAX IpAddrEntry
+ MAX-ACCESS not-accessible
+ STATUS deprecated
+ DESCRIPTION
+ "The addressing information for one of this entity's IPv4
+ addresses."
+ INDEX { ipAdEntAddr }
+ ::= { ipAddrTable 1 }
+
+IpAddrEntry ::= SEQUENCE {
+ ipAdEntAddr IpAddress,
+ ipAdEntIfIndex INTEGER,
+ ipAdEntNetMask IpAddress,
+ ipAdEntBcastAddr INTEGER,
+ ipAdEntReasmMaxSize INTEGER
+ }
+
+ipAdEntAddr OBJECT-TYPE
+ SYNTAX IpAddress
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+
+
+
+ "The IPv4 address to which this entry's addressing
+ information pertains."
+ ::= { ipAddrEntry 1 }
+
+ipAdEntIfIndex OBJECT-TYPE
+ SYNTAX INTEGER (1..2147483647)
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The index value which uniquely identifies the interface to
+ which this entry is applicable. The interface identified by
+ a particular value of this index is the same interface as
+ identified by the same value of the IF-MIB's ifIndex."
+ ::= { ipAddrEntry 2 }
+
+ipAdEntNetMask OBJECT-TYPE
+ SYNTAX IpAddress
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The subnet mask associated with the IPv4 address of this
+ entry. The value of the mask is an IPv4 address with all
+ the network bits set to 1 and all the hosts bits set to 0."
+ ::= { ipAddrEntry 3 }
+
+ipAdEntBcastAddr OBJECT-TYPE
+ SYNTAX INTEGER (0..1)
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The value of the least-significant bit in the IPv4 broadcast
+ address used for sending datagrams on the (logical)
+ interface associated with the IPv4 address of this entry.
+ For example, when the Internet standard all-ones broadcast
+ address is used, the value will be 1. This value applies to
+ both the subnet and network broadcast addresses used by the
+ entity on this (logical) interface."
+ ::= { ipAddrEntry 4 }
+
+ipAdEntReasmMaxSize OBJECT-TYPE
+ SYNTAX INTEGER (0..65535)
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The size of the largest IPv4 datagram which this entity can
+ re-assemble from incoming IPv4 fragmented datagrams received
+ on this interface."
+ ::= { ipAddrEntry 5 }
+
+
+
+-- the deprecated IPv4 Address Translation table
+
+-- The Address Translation tables contain the IpAddress to
+-- "physical" address equivalences. Some interfaces do not
+-- use translation tables for determining address
+-- equivalences (e.g., DDN-X.25 has an algorithmic method);
+-- if all interfaces are of this type, then the Address
+-- Translation table is empty, i.e., has zero entries.
+
+ipNetToMediaTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IpNetToMediaEntry
+ MAX-ACCESS not-accessible
+ STATUS deprecated
+ DESCRIPTION
+ "The IPv4 Address Translation table used for mapping from
+ IPv4 addresses to physical addresses.
+
+ This table has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by the
+ ipNetToPhysicalTable."
+ ::= { ip 22 }
+
+ipNetToMediaEntry OBJECT-TYPE
+ SYNTAX IpNetToMediaEntry
+ MAX-ACCESS not-accessible
+ STATUS deprecated
+ DESCRIPTION
+ "Each entry contains one IpAddress to `physical' address
+ equivalence."
+ INDEX { ipNetToMediaIfIndex,
+ ipNetToMediaNetAddress }
+ ::= { ipNetToMediaTable 1 }
+
+IpNetToMediaEntry ::= SEQUENCE {
+ ipNetToMediaIfIndex INTEGER,
+ ipNetToMediaPhysAddress PhysAddress,
+ ipNetToMediaNetAddress IpAddress,
+ ipNetToMediaType INTEGER
+ }
+
+ipNetToMediaIfIndex OBJECT-TYPE
+ SYNTAX INTEGER (1..2147483647)
+ MAX-ACCESS read-create
+ STATUS deprecated
+ DESCRIPTION
+ "The interface on which this entry's equivalence is
+ effective. The interface identified by a particular value
+ of this index is the same interface as identified by the
+
+
+
+ same value of the IF-MIB's ifIndex.
+
+ This object predates the rule limiting index objects to a
+ max access value of 'not-accessible' and so continues to use
+ a value of 'read-create'."
+ ::= { ipNetToMediaEntry 1 }
+
+ipNetToMediaPhysAddress OBJECT-TYPE
+ SYNTAX PhysAddress (SIZE(0..65535))
+ MAX-ACCESS read-create
+ STATUS deprecated
+ DESCRIPTION
+ "The media-dependent `physical' address. This object should
+ return 0 when this entry is in the 'incomplete' state.
+
+ As the entries in this table are typically not persistent
+ when this object is written the entity should not save the
+ change to non-volatile storage. Note: a stronger
+ requirement is not used because this object was previously
+ defined."
+ ::= { ipNetToMediaEntry 2 }
+
+ipNetToMediaNetAddress OBJECT-TYPE
+ SYNTAX IpAddress
+ MAX-ACCESS read-create
+ STATUS deprecated
+ DESCRIPTION
+ "The IpAddress corresponding to the media-dependent
+ `physical' address.
+
+ This object predates the rule limiting index objects to a
+ max access value of 'not-accessible' and so continues to use
+ a value of 'read-create'."
+ ::= { ipNetToMediaEntry 3 }
+
+ipNetToMediaType OBJECT-TYPE
+ SYNTAX INTEGER {
+ other(1), -- none of the following
+ invalid(2), -- an invalidated mapping
+ dynamic(3),
+ static(4)
+ }
+ MAX-ACCESS read-create
+ STATUS deprecated
+ DESCRIPTION
+ "The type of mapping.
+
+ Setting this object to the value invalid(2) has the effect
+
+
+
+ of invalidating the corresponding entry in the
+ ipNetToMediaTable. That is, it effectively dis-associates
+ the interface identified with said entry from the mapping
+ identified with said entry. It is an implementation-
+ specific matter as to whether the agent removes an
+ invalidated entry from the table. Accordingly, management
+ stations must be prepared to receive tabular information
+ from agents that corresponds to entries not currently in
+ use. Proper interpretation of such entries requires
+ examination of the relevant ipNetToMediaType object.
+
+ As the entries in this table are typically not persistent
+ when this object is written the entity should not save the
+ change to non-volatile storage. Note: a stronger
+ requirement is not used because this object was previously
+ defined."
+ ::= { ipNetToMediaEntry 4 }
+
+-- the deprecated ICMP group
+
+icmpInMsgs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The total number of ICMP messages which the entity received.
+ Note that this counter includes all those counted by
+ icmpInErrors.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by
+ icmpStatsInMsgs."
+ ::= { icmp 1 }
+
+icmpInErrors OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of ICMP messages which the entity received but
+ determined as having ICMP-specific errors (bad ICMP
+ checksums, bad length, etc.).
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by
+ icmpStatsInErrors."
+ ::= { icmp 2 }
+
+
+
+
+icmpInDestUnreachs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of ICMP Destination Unreachable messages
+ received.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by a column in
+ the icmpMsgStatsTable."
+ ::= { icmp 3 }
+
+icmpInTimeExcds OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of ICMP Time Exceeded messages received.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by a column in
+ the icmpMsgStatsTable."
+ ::= { icmp 4 }
+
+icmpInParmProbs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of ICMP Parameter Problem messages received.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by a column in
+ the icmpMsgStatsTable."
+ ::= { icmp 5 }
+
+icmpInSrcQuenchs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of ICMP Source Quench messages received.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by a column in
+ the icmpMsgStatsTable."
+ ::= { icmp 6 }
+
+
+
+icmpInRedirects OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of ICMP Redirect messages received.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by a column in
+ the icmpMsgStatsTable."
+ ::= { icmp 7 }
+
+icmpInEchos OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of ICMP Echo (request) messages received.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by a column in
+ the icmpMsgStatsTable."
+ ::= { icmp 8 }
+
+icmpInEchoReps OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of ICMP Echo Reply messages received.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by a column in
+ the icmpMsgStatsTable."
+ ::= { icmp 9 }
+
+icmpInTimestamps OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of ICMP Timestamp (request) messages received.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by a column in
+ the icmpMsgStatsTable."
+ ::= { icmp 10 }
+
+
+
+
+icmpInTimestampReps OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of ICMP Timestamp Reply messages received.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by a column in
+ the icmpMsgStatsTable."
+ ::= { icmp 11 }
+
+icmpInAddrMasks OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of ICMP Address Mask Request messages received.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by a column in
+ the icmpMsgStatsTable."
+ ::= { icmp 12 }
+
+icmpInAddrMaskReps OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of ICMP Address Mask Reply messages received.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by a column in
+ the icmpMsgStatsTable."
+ ::= { icmp 13 }
+
+icmpOutMsgs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The total number of ICMP messages which this entity
+ attempted to send. Note that this counter includes all
+ those counted by icmpOutErrors.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by
+ icmpStatsOutMsgs."
+
+
+
+ ::= { icmp 14 }
+
+icmpOutErrors OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of ICMP messages which this entity did not send
+ due to problems discovered within ICMP, such as a lack of
+ buffers. This value should not include errors discovered
+ outside the ICMP layer, such as the inability of IP to route
+ the resultant datagram. In some implementations, there may
+ be no types of error which contribute to this counter's
+ value.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by
+ icmpStatsOutErrors."
+ ::= { icmp 15 }
+
+icmpOutDestUnreachs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of ICMP Destination Unreachable messages sent.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by a column in
+ the icmpMsgStatsTable."
+ ::= { icmp 16 }
+
+icmpOutTimeExcds OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of ICMP Time Exceeded messages sent.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by a column in
+ the icmpMsgStatsTable."
+ ::= { icmp 17 }
+
+icmpOutParmProbs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+
+
+
+ DESCRIPTION
+ "The number of ICMP Parameter Problem messages sent.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by a column in
+ the icmpMsgStatsTable."
+ ::= { icmp 18 }
+
+icmpOutSrcQuenchs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of ICMP Source Quench messages sent.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by a column in
+ the icmpMsgStatsTable."
+ ::= { icmp 19 }
+
+icmpOutRedirects OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of ICMP Redirect messages sent. For a host, this
+ object will always be zero, since hosts do not send
+ redirects.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by a column in
+ the icmpMsgStatsTable."
+ ::= { icmp 20 }
+
+icmpOutEchos OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of ICMP Echo (request) messages sent.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by a column in
+ the icmpMsgStatsTable."
+ ::= { icmp 21 }
+
+icmpOutEchoReps OBJECT-TYPE
+ SYNTAX Counter32
+
+
+
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of ICMP Echo Reply messages sent.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by a column in
+ the icmpMsgStatsTable."
+ ::= { icmp 22 }
+
+icmpOutTimestamps OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of ICMP Timestamp (request) messages sent.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by a column in
+ the icmpMsgStatsTable."
+ ::= { icmp 23 }
+
+icmpOutTimestampReps OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of ICMP Timestamp Reply messages sent.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by a column in
+ the icmpMsgStatsTable."
+ ::= { icmp 24 }
+
+icmpOutAddrMasks OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of ICMP Address Mask Request messages sent.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by a column in
+ the icmpMsgStatsTable."
+ ::= { icmp 25 }
+
+icmpOutAddrMaskReps OBJECT-TYPE
+ SYNTAX Counter32
+
+
+
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The number of ICMP Address Mask Reply messages sent.
+
+ This object has been deprecated, as a new IP version-neutral
+ table has been added. It is loosely replaced by a column in
+ the icmpMsgStatsTable."
+ ::= { icmp 26 }
+
+-- deprecated conformance information
+-- deprecated compliance statements
+
+ipMIBCompliance MODULE-COMPLIANCE
+ STATUS deprecated
+ DESCRIPTION
+ "The compliance statement for systems that implement only
+ IPv4. For version-independence, this compliance statement
+ is deprecated in favor of ipMIBCompliance2."
+ MODULE -- this module
+ MANDATORY-GROUPS { ipGroup,
+ icmpGroup }
+ ::= { ipMIBCompliances 1 }
+
+-- deprecated units of conformance
+
+ipGroup OBJECT-GROUP
+ OBJECTS { ipForwarding, ipDefaultTTL,
+ ipInReceives, ipInHdrErrors,
+ ipInAddrErrors, ipForwDatagrams,
+ ipInUnknownProtos, ipInDiscards,
+ ipInDelivers, ipOutRequests,
+ ipOutDiscards, ipOutNoRoutes,
+ ipReasmTimeout, ipReasmReqds,
+ ipReasmOKs, ipReasmFails,
+ ipFragOKs, ipFragFails,
+ ipFragCreates, ipAdEntAddr,
+ ipAdEntIfIndex, ipAdEntNetMask,
+ ipAdEntBcastAddr, ipAdEntReasmMaxSize,
+ ipNetToMediaIfIndex, ipNetToMediaPhysAddress,
+ ipNetToMediaNetAddress, ipNetToMediaType,
+ ipRoutingDiscards
+}
+ STATUS deprecated
+ DESCRIPTION
+ "The ip group of objects providing for basic management of IP
+ entities, exclusive of the management of IP routes.
+
+
+
+
+ As part of the version independence, this group has been
+ deprecated. "
+ ::= { ipMIBGroups 1 }
+
+icmpGroup OBJECT-GROUP
+ OBJECTS { icmpInMsgs, icmpInErrors,
+ icmpInDestUnreachs, icmpInTimeExcds,
+ icmpInParmProbs, icmpInSrcQuenchs,
+ icmpInRedirects, icmpInEchos,
+ icmpInEchoReps, icmpInTimestamps,
+ icmpInTimestampReps, icmpInAddrMasks,
+ icmpInAddrMaskReps, icmpOutMsgs,
+ icmpOutErrors, icmpOutDestUnreachs,
+ icmpOutTimeExcds, icmpOutParmProbs,
+ icmpOutSrcQuenchs, icmpOutRedirects,
+ icmpOutEchos, icmpOutEchoReps,
+ icmpOutTimestamps, icmpOutTimestampReps,
+ icmpOutAddrMasks, icmpOutAddrMaskReps }
+ STATUS deprecated
+ DESCRIPTION
+ "The icmp group of objects providing ICMP statistics.
+
+ As part of the version independence, this group has been
+ deprecated. "
+ ::= { ipMIBGroups 2 }
+
+END
diff --git a/php/extras/mibs/IPV6-FLOW-LABEL-MIB.txt b/php/extras/mibs/IPV6-FLOW-LABEL-MIB.txt
new file mode 100644
index 000000000..f30f4ca63
--- /dev/null
+++ b/php/extras/mibs/IPV6-FLOW-LABEL-MIB.txt
@@ -0,0 +1,63 @@
+IPV6-FLOW-LABEL-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+
+ MODULE-IDENTITY, mib-2, Integer32 FROM SNMPv2-SMI
+ TEXTUAL-CONVENTION FROM SNMPv2-TC;
+
+ipv6FlowLabelMIB MODULE-IDENTITY
+
+ LAST-UPDATED "200308280000Z" -- 28 August 2003
+ ORGANIZATION "IETF Operations and Management Area"
+ CONTACT-INFO "Bert Wijnen (Editor)
+ Lucent Technologies
+ Schagen 33
+ 3461 GL Linschoten
+ Netherlands
+
+
+
+
+
+ Phone: +31 348-407-775
+ EMail: bwijnen@lucent.com
+
+ Send comments to .
+ "
+ DESCRIPTION "This MIB module provides commonly used textual
+ conventions for IPv6 Flow Labels.
+
+ Copyright (C) The Internet Society (2003). This
+ version of this MIB module is part of RFC 3595,
+ see the RFC itself for full legal notices.
+ "
+ -- Revision History
+
+ REVISION "200308280000Z" -- 28 August 2003
+ DESCRIPTION "Initial version, published as RFC 3595."
+
+ ::= { mib-2 103 }
+
+IPv6FlowLabel ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "d"
+ STATUS current
+ DESCRIPTION "The flow identifier or Flow Label in an IPv6
+ packet header that may be used to discriminate
+ traffic flows.
+ "
+ REFERENCE "Internet Protocol, Version 6 (IPv6) specification,
+ section 6. RFC 2460.
+ "
+ SYNTAX Integer32 (0..1048575)
+
+IPv6FlowLabelOrAny ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "d"
+ STATUS current
+ DESCRIPTION "The flow identifier or Flow Label in an IPv6
+ packet header that may be used to discriminate
+ traffic flows. The value of -1 is used to
+ indicate a wildcard, i.e. any value.
+ "
+ SYNTAX Integer32 (-1 | 0..1048575)
+
+END
diff --git a/php/extras/mibs/IPV6-ICMP-MIB.txt b/php/extras/mibs/IPV6-ICMP-MIB.txt
new file mode 100644
index 000000000..bb66da576
--- /dev/null
+++ b/php/extras/mibs/IPV6-ICMP-MIB.txt
@@ -0,0 +1,529 @@
+ IPV6-ICMP-MIB DEFINITIONS ::= BEGIN
+
+ IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE,
+ Counter32, mib-2 FROM SNMPv2-SMI
+ MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
+ ipv6IfEntry FROM IPV6-MIB;
+
+ ipv6IcmpMIB MODULE-IDENTITY
+ LAST-UPDATED "9801082155Z"
+ ORGANIZATION "IETF IPv6 Working Group"
+ CONTACT-INFO
+ " Dimitry Haskin
+
+ Postal: Bay Networks, Inc.
+ 660 Techology Park Drive.
+ Billerica, MA 01821
+ US
+
+ Tel: +1-978-916-8124
+ E-mail: dhaskin@baynetworks.com
+
+ Steve Onishi
+
+ Postal: Bay Networks, Inc.
+ 3 Federal Street
+ Billerica, MA 01821
+ US
+
+ Tel: +1-978-916-3816
+ E-mail: sonishi@baynetworks.com"
+ DESCRIPTION
+ "The MIB module for entities implementing
+ the ICMPv6."
+ ::= { mib-2 56 }
+
+ -- the ICMPv6 group
+
+ ipv6IcmpMIBObjects OBJECT IDENTIFIER ::= { ipv6IcmpMIB 1 }
+
+ -- Per-interface ICMPv6 statistics table
+
+ ipv6IfIcmpTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF Ipv6IfIcmpEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "IPv6 ICMP statistics. This table contains statistics
+ of ICMPv6 messages that are received and sourced by
+ the entity."
+ ::= { ipv6IcmpMIBObjects 1 }
+
+ ipv6IfIcmpEntry OBJECT-TYPE
+ SYNTAX Ipv6IfIcmpEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An ICMPv6 statistics entry containing
+ objects at a particular IPv6 interface.
+
+ Note that a receiving interface is
+ the interface to which a given ICMPv6 message
+ is addressed which may not be necessarily
+ the input interface for the message.
+
+ Similarly, the sending interface is
+ the interface that sources a given
+ ICMP message which is usually but not
+ necessarily the output interface for the message."
+ AUGMENTS { ipv6IfEntry }
+ ::= { ipv6IfIcmpTable 1 }
+
+ Ipv6IfIcmpEntry ::= SEQUENCE {
+ ipv6IfIcmpInMsgs
+ Counter32 ,
+ ipv6IfIcmpInErrors
+ Counter32 ,
+ ipv6IfIcmpInDestUnreachs
+ Counter32 ,
+ ipv6IfIcmpInAdminProhibs
+ Counter32 ,
+ ipv6IfIcmpInTimeExcds
+ Counter32 ,
+ ipv6IfIcmpInParmProblems
+ Counter32 ,
+ ipv6IfIcmpInPktTooBigs
+ Counter32 ,
+ ipv6IfIcmpInEchos
+ Counter32 ,
+ ipv6IfIcmpInEchoReplies
+ Counter32 ,
+ ipv6IfIcmpInRouterSolicits
+ Counter32 ,
+ ipv6IfIcmpInRouterAdvertisements
+ Counter32 ,
+ ipv6IfIcmpInNeighborSolicits
+ Counter32 ,
+ ipv6IfIcmpInNeighborAdvertisements
+ Counter32 ,
+ ipv6IfIcmpInRedirects
+ Counter32 ,
+ ipv6IfIcmpInGroupMembQueries
+ Counter32 ,
+ ipv6IfIcmpInGroupMembResponses
+ Counter32 ,
+ ipv6IfIcmpInGroupMembReductions
+ Counter32 ,
+ ipv6IfIcmpOutMsgs
+ Counter32 ,
+ ipv6IfIcmpOutErrors
+ Counter32 ,
+ ipv6IfIcmpOutDestUnreachs
+ Counter32 ,
+ ipv6IfIcmpOutAdminProhibs
+ Counter32 ,
+ ipv6IfIcmpOutTimeExcds
+ Counter32 ,
+ ipv6IfIcmpOutParmProblems
+ Counter32 ,
+ ipv6IfIcmpOutPktTooBigs
+ Counter32 ,
+ ipv6IfIcmpOutEchos
+ Counter32 ,
+ ipv6IfIcmpOutEchoReplies
+ Counter32 ,
+ ipv6IfIcmpOutRouterSolicits
+ Counter32 ,
+ ipv6IfIcmpOutRouterAdvertisements
+ Counter32 ,
+ ipv6IfIcmpOutNeighborSolicits
+ Counter32 ,
+ ipv6IfIcmpOutNeighborAdvertisements
+ Counter32 ,
+ ipv6IfIcmpOutRedirects
+ Counter32 ,
+ ipv6IfIcmpOutGroupMembQueries
+ Counter32 ,
+ ipv6IfIcmpOutGroupMembResponses
+ Counter32 ,
+ ipv6IfIcmpOutGroupMembReductions
+ Counter32
+
+ }
+
+ ipv6IfIcmpInMsgs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of ICMP messages received
+ by the interface which includes all those
+ counted by ipv6IfIcmpInErrors. Note that this
+ interface is the interface to which the
+ ICMP messages were addressed which may not be
+ necessarily the input interface for the messages."
+ ::= { ipv6IfIcmpEntry 1 }
+
+ ipv6IfIcmpInErrors OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of ICMP messages which the interface
+ received but determined as having ICMP-specific
+ errors (bad ICMP checksums, bad length, etc.)."
+ ::= { ipv6IfIcmpEntry 2 }
+
+ ipv6IfIcmpInDestUnreachs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of ICMP Destination Unreachable
+ messages received by the interface."
+ ::= { ipv6IfIcmpEntry 3 }
+
+ ipv6IfIcmpInAdminProhibs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of ICMP destination
+ unreachable/communication administratively
+ prohibited messages received by the interface."
+ ::= { ipv6IfIcmpEntry 4 }
+
+ ipv6IfIcmpInTimeExcds OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of ICMP Time Exceeded messages
+ received by the interface."
+ ::= { ipv6IfIcmpEntry 5 }
+
+ ipv6IfIcmpInParmProblems OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of ICMP Parameter Problem messages
+ received by the interface."
+ ::= { ipv6IfIcmpEntry 6 }
+
+ ipv6IfIcmpInPktTooBigs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of ICMP Packet Too Big messages
+ received by the interface."
+ ::= { ipv6IfIcmpEntry 7 }
+
+ ipv6IfIcmpInEchos OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of ICMP Echo (request) messages
+ received by the interface."
+ ::= { ipv6IfIcmpEntry 8 }
+
+ ipv6IfIcmpInEchoReplies OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of ICMP Echo Reply messages received
+ by the interface."
+ ::= { ipv6IfIcmpEntry 9 }
+
+ ipv6IfIcmpInRouterSolicits OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of ICMP Router Solicit messages
+ received by the interface."
+ ::= { ipv6IfIcmpEntry 10 }
+
+ ipv6IfIcmpInRouterAdvertisements OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of ICMP Router Advertisement messages
+ received by the interface."
+ ::= { ipv6IfIcmpEntry 11 }
+
+ ipv6IfIcmpInNeighborSolicits OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of ICMP Neighbor Solicit messages
+ received by the interface."
+ ::= { ipv6IfIcmpEntry 12 }
+
+ ipv6IfIcmpInNeighborAdvertisements OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of ICMP Neighbor Advertisement
+ messages received by the interface."
+ ::= { ipv6IfIcmpEntry 13 }
+
+ ipv6IfIcmpInRedirects OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of Redirect messages received
+ by the interface."
+ ::= { ipv6IfIcmpEntry 14 }
+
+ ipv6IfIcmpInGroupMembQueries OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of ICMPv6 Group Membership Query
+ messages received by the interface."
+ ::= { ipv6IfIcmpEntry 15}
+
+ ipv6IfIcmpInGroupMembResponses OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of ICMPv6 Group Membership Response messages
+ received by the interface."
+ ::= { ipv6IfIcmpEntry 16}
+
+ ipv6IfIcmpInGroupMembReductions OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of ICMPv6 Group Membership Reduction messages
+ received by the interface."
+ ::= { ipv6IfIcmpEntry 17}
+
+ ipv6IfIcmpOutMsgs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of ICMP messages which this
+ interface attempted to send. Note that this counter
+ includes all those counted by icmpOutErrors."
+ ::= { ipv6IfIcmpEntry 18 }
+
+ ipv6IfIcmpOutErrors OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of ICMP messages which this interface did
+ not send due to problems discovered within ICMP
+ such as a lack of buffers. This value should not
+ include errors discovered outside the ICMP layer
+ such as the inability of IPv6 to route the resultant
+ datagram. In some implementations there may be no
+ types of error which contribute to this counter's
+ value."
+ ::= { ipv6IfIcmpEntry 19 }
+
+ ipv6IfIcmpOutDestUnreachs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of ICMP Destination Unreachable
+
+ messages sent by the interface."
+ ::= { ipv6IfIcmpEntry 20 }
+
+ ipv6IfIcmpOutAdminProhibs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Number of ICMP dest unreachable/communication
+ administratively prohibited messages sent."
+ ::= { ipv6IfIcmpEntry 21 }
+
+ ipv6IfIcmpOutTimeExcds OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of ICMP Time Exceeded messages sent
+ by the interface."
+ ::= { ipv6IfIcmpEntry 22 }
+
+ ipv6IfIcmpOutParmProblems OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of ICMP Parameter Problem messages
+ sent by the interface."
+ ::= { ipv6IfIcmpEntry 23 }
+
+ ipv6IfIcmpOutPktTooBigs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of ICMP Packet Too Big messages sent
+ by the interface."
+ ::= { ipv6IfIcmpEntry 24 }
+
+ ipv6IfIcmpOutEchos OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of ICMP Echo (request) messages sent
+ by the interface."
+ ::= { ipv6IfIcmpEntry 25 }
+
+ ipv6IfIcmpOutEchoReplies OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of ICMP Echo Reply messages sent
+ by the interface."
+ ::= { ipv6IfIcmpEntry 26 }
+
+ ipv6IfIcmpOutRouterSolicits OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of ICMP Router Solicitation messages
+ sent by the interface."
+ ::= { ipv6IfIcmpEntry 27 }
+
+ ipv6IfIcmpOutRouterAdvertisements OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of ICMP Router Advertisement messages
+ sent by the interface."
+ ::= { ipv6IfIcmpEntry 28 }
+
+ ipv6IfIcmpOutNeighborSolicits OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of ICMP Neighbor Solicitation
+ messages sent by the interface."
+ ::= { ipv6IfIcmpEntry 29 }
+
+ ipv6IfIcmpOutNeighborAdvertisements OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of ICMP Neighbor Advertisement
+ messages sent by the interface."
+ ::= { ipv6IfIcmpEntry 30 }
+
+ ipv6IfIcmpOutRedirects OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of Redirect messages sent. For
+ a host, this object will always be zero,
+ since hosts do not send redirects."
+ ::= { ipv6IfIcmpEntry 31 }
+
+ ipv6IfIcmpOutGroupMembQueries OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of ICMPv6 Group Membership Query
+ messages sent."
+ ::= { ipv6IfIcmpEntry 32}
+
+ ipv6IfIcmpOutGroupMembResponses OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of ICMPv6 Group Membership Response
+ messages sent."
+ ::= { ipv6IfIcmpEntry 33}
+
+ ipv6IfIcmpOutGroupMembReductions OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of ICMPv6 Group Membership Reduction
+ messages sent."
+ ::= { ipv6IfIcmpEntry 34}
+
+-- conformance information
+
+ipv6IcmpConformance OBJECT IDENTIFIER ::= { ipv6IcmpMIB 2 }
+
+ipv6IcmpCompliances
+ OBJECT IDENTIFIER ::= { ipv6IcmpConformance 1 }
+ipv6IcmpGroups
+ OBJECT IDENTIFIER ::= { ipv6IcmpConformance 2 }
+
+-- compliance statements
+
+ipv6IcmpCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for SNMPv2 entities which
+ implement ICMPv6."
+ MODULE -- this module
+ MANDATORY-GROUPS { ipv6IcmpGroup }
+ ::= { ipv6IcmpCompliances 1 }
+
+ipv6IcmpGroup OBJECT-GROUP
+ OBJECTS {
+ ipv6IfIcmpInMsgs,
+ ipv6IfIcmpInErrors,
+ ipv6IfIcmpInDestUnreachs,
+ ipv6IfIcmpInAdminProhibs,
+ ipv6IfIcmpInTimeExcds,
+ ipv6IfIcmpInParmProblems,
+ ipv6IfIcmpInPktTooBigs,
+ ipv6IfIcmpInEchos,
+ ipv6IfIcmpInEchoReplies,
+ ipv6IfIcmpInRouterSolicits,
+ ipv6IfIcmpInRouterAdvertisements,
+ ipv6IfIcmpInNeighborSolicits,
+ ipv6IfIcmpInNeighborAdvertisements,
+ ipv6IfIcmpInRedirects,
+ ipv6IfIcmpInGroupMembQueries,
+ ipv6IfIcmpInGroupMembResponses,
+ ipv6IfIcmpInGroupMembReductions,
+ ipv6IfIcmpOutMsgs,
+ ipv6IfIcmpOutErrors,
+ ipv6IfIcmpOutDestUnreachs,
+ ipv6IfIcmpOutAdminProhibs,
+ ipv6IfIcmpOutTimeExcds,
+ ipv6IfIcmpOutParmProblems,
+ ipv6IfIcmpOutPktTooBigs,
+ ipv6IfIcmpOutEchos,
+ ipv6IfIcmpOutEchoReplies,
+ ipv6IfIcmpOutRouterSolicits,
+ ipv6IfIcmpOutRouterAdvertisements,
+ ipv6IfIcmpOutNeighborSolicits,
+ ipv6IfIcmpOutNeighborAdvertisements,
+ ipv6IfIcmpOutRedirects,
+ ipv6IfIcmpOutGroupMembQueries,
+ ipv6IfIcmpOutGroupMembResponses,
+ ipv6IfIcmpOutGroupMembReductions
+ }
+ STATUS current
+ DESCRIPTION
+ "The ICMPv6 group of objects providing information
+ specific to ICMPv6."
+ ::= { ipv6IcmpGroups 1 }
+
+ END
diff --git a/php/extras/mibs/IPV6-MIB.txt b/php/extras/mibs/IPV6-MIB.txt
new file mode 100644
index 000000000..6957af27f
--- /dev/null
+++ b/php/extras/mibs/IPV6-MIB.txt
@@ -0,0 +1,1443 @@
+ IPV6-MIB DEFINITIONS ::= BEGIN
+
+ IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
+ mib-2, Counter32, Unsigned32, Integer32,
+ Gauge32 FROM SNMPv2-SMI
+ DisplayString, PhysAddress, TruthValue, TimeStamp,
+ VariablePointer, RowPointer FROM SNMPv2-TC
+ MODULE-COMPLIANCE, OBJECT-GROUP,
+ NOTIFICATION-GROUP FROM SNMPv2-CONF
+ Ipv6IfIndex, Ipv6Address, Ipv6AddressPrefix,
+ Ipv6AddressIfIdentifier,
+ Ipv6IfIndexOrZero FROM IPV6-TC;
+
+ ipv6MIB MODULE-IDENTITY
+ LAST-UPDATED "9802052155Z"
+ ORGANIZATION "IETF IPv6 Working Group"
+ CONTACT-INFO
+ " Dimitry Haskin
+
+ Postal: Bay Networks, Inc.
+ 660 Techology Park Drive.
+ Billerica, MA 01821
+
+ US
+
+ Tel: +1-978-916-8124
+ E-mail: dhaskin@baynetworks.com
+
+ Steve Onishi
+
+ Postal: Bay Networks, Inc.
+ 3 Federal Street
+ Billerica, MA 01821
+ US
+
+ Tel: +1-978-916-3816
+ E-mail: sonishi@baynetworks.com"
+ DESCRIPTION
+ "The MIB module for entities implementing the IPv6
+ protocol."
+ ::= { mib-2 55 }
+
+ -- the IPv6 general group
+
+ ipv6MIBObjects OBJECT IDENTIFIER ::= { ipv6MIB 1 }
+
+ ipv6Forwarding OBJECT-TYPE
+ SYNTAX INTEGER {
+ forwarding(1), -- acting as a router
+
+ -- NOT acting as
+ notForwarding(2) -- a router
+ }
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The indication of whether this entity is acting
+ as an IPv6 router in respect to the forwarding of
+ datagrams received by, but not addressed to, this
+ entity. IPv6 routers forward datagrams. IPv6
+ hosts do not (except those source-routed via the
+ host).
+
+ Note that for some managed nodes, this object may
+ take on only a subset of the values possible.
+ Accordingly, it is appropriate for an agent to
+ return a `wrongValue' response if a management
+ station attempts to change this object to an
+ inappropriate value."
+ ::= { ipv6MIBObjects 1 }
+
+ ipv6DefaultHopLimit OBJECT-TYPE
+ SYNTAX INTEGER(0..255)
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The default value inserted into the Hop Limit
+ field of the IPv6 header of datagrams originated
+ at this entity, whenever a Hop Limit value is not
+ supplied by the transport layer protocol."
+ DEFVAL { 64 }
+ ::= { ipv6MIBObjects 2 }
+
+ipv6Interfaces OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of IPv6 interfaces (regardless of
+ their current state) present on this system."
+ ::= { ipv6MIBObjects 3 }
+
+ipv6IfTableLastChange OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime at the time of the last
+ insertion or removal of an entry in the
+ ipv6IfTable. If the number of entries has been
+ unchanged since the last re-initialization of
+ the local network management subsystem, then this
+ object contains a zero value."
+ ::= { ipv6MIBObjects 4 }
+
+-- the IPv6 Interfaces table
+
+ipv6IfTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF Ipv6IfEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The IPv6 Interfaces table contains information
+ on the entity's internetwork-layer interfaces.
+ An IPv6 interface constitutes a logical network
+ layer attachment to the layer immediately below
+
+ IPv6 including internet layer 'tunnels', such as
+ tunnels over IPv4 or IPv6 itself."
+ ::= { ipv6MIBObjects 5 }
+
+ ipv6IfEntry OBJECT-TYPE
+ SYNTAX Ipv6IfEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An interface entry containing objects
+ about a particular IPv6 interface."
+ INDEX { ipv6IfIndex }
+ ::= { ipv6IfTable 1 }
+
+ Ipv6IfEntry ::= SEQUENCE {
+ ipv6IfIndex Ipv6IfIndex,
+ ipv6IfDescr DisplayString,
+ ipv6IfLowerLayer VariablePointer,
+ ipv6IfEffectiveMtu Unsigned32,
+ ipv6IfReasmMaxSize Unsigned32,
+ ipv6IfIdentifier Ipv6AddressIfIdentifier,
+ ipv6IfIdentifierLength INTEGER,
+ ipv6IfPhysicalAddress PhysAddress,
+ ipv6IfAdminStatus INTEGER,
+ ipv6IfOperStatus INTEGER,
+ ipv6IfLastChange TimeStamp
+ }
+
+ ipv6IfIndex OBJECT-TYPE
+ SYNTAX Ipv6IfIndex
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A unique non-zero value identifying
+ the particular IPv6 interface."
+ ::= { ipv6IfEntry 1 }
+
+ ipv6IfDescr OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "A textual string containing information about the
+ interface. This string may be set by the network
+ management system."
+ ::= { ipv6IfEntry 2 }
+
+ ipv6IfLowerLayer OBJECT-TYPE
+ SYNTAX VariablePointer
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "This object identifies the protocol layer over
+ which this network interface operates. If this
+ network interface operates over the data-link
+ layer, then the value of this object refers to an
+ instance of ifIndex [6]. If this network interface
+ operates over an IPv4 interface, the value of this
+ object refers to an instance of ipAdEntAddr [3].
+
+ If this network interface operates over another
+ IPv6 interface, the value of this object refers to
+ an instance of ipv6IfIndex. If this network
+ interface is not currently operating over an active
+ protocol layer, then the value of this object
+ should be set to the OBJECT ID { 0 0 }."
+ ::= { ipv6IfEntry 3 }
+
+ ipv6IfEffectiveMtu OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "octets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The size of the largest IPv6 packet which can be
+ sent/received on the interface, specified in
+ octets."
+ ::= { ipv6IfEntry 4 }
+
+ ipv6IfReasmMaxSize OBJECT-TYPE
+ SYNTAX Unsigned32 (0..65535)
+ UNITS "octets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The size of the largest IPv6 datagram which this
+ entity can re-assemble from incoming IPv6 fragmented
+ datagrams received on this interface."
+ ::= { ipv6IfEntry 5 }
+
+ ipv6IfIdentifier OBJECT-TYPE
+ SYNTAX Ipv6AddressIfIdentifier
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The Interface Identifier for this interface that
+
+ is (at least) unique on the link this interface is
+ attached to. The Interface Identifier is combined
+ with an address prefix to form an interface address.
+
+ By default, the Interface Identifier is autoconfigured
+ according to the rules of the link type this
+ interface is attached to."
+ ::= { ipv6IfEntry 6 }
+
+ ipv6IfIdentifierLength OBJECT-TYPE
+ SYNTAX INTEGER (0..64)
+ UNITS "bits"
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The length of the Interface Identifier in bits."
+ ::= { ipv6IfEntry 7 }
+
+ ipv6IfPhysicalAddress OBJECT-TYPE
+ SYNTAX PhysAddress
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The interface's physical address. For example, for
+ an IPv6 interface attached to an 802.x link, this
+ object normally contains a MAC address. Note that
+ in some cases this address may differ from the
+ address of the interface's protocol sub-layer. The
+ interface's media-specific MIB must define the bit
+ and byte ordering and the format of the value of
+ this object. For interfaces which do not have such
+ an address (e.g., a serial line), this object should
+ contain an octet string of zero length."
+ ::= { ipv6IfEntry 8 }
+
+ipv6IfAdminStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ up(1), -- ready to pass packets
+ down(2)
+ }
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The desired state of the interface. When a managed
+ system initializes, all IPv6 interfaces start with
+ ipv6IfAdminStatus in the down(2) state. As a result
+ of either explicit management action or per
+ configuration information retained by the managed
+
+ system, ipv6IfAdminStatus is then changed to
+ the up(1) state (or remains in the down(2) state)."
+ ::= { ipv6IfEntry 9 }
+
+ipv6IfOperStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ up(1), -- ready to pass packets
+
+ down(2),
+ noIfIdentifier(3), -- no interface identifier
+
+ -- status can not be
+ -- determined for some
+ unknown(4), -- reason
+
+ -- some component is
+ notPresent(5) -- missing
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The current operational state of the interface.
+ The noIfIdentifier(3) state indicates that no valid
+ Interface Identifier is assigned to the interface.
+ This state usually indicates that the link-local
+ interface address failed Duplicate Address Detection.
+ If ipv6IfAdminStatus is down(2) then ipv6IfOperStatus
+ should be down(2). If ipv6IfAdminStatus is changed
+ to up(1) then ipv6IfOperStatus should change to up(1)
+ if the interface is ready to transmit and receive
+ network traffic; it should remain in the down(2) or
+ noIfIdentifier(3) state if and only if there is a
+ fault that prevents it from going to the up(1) state;
+ it should remain in the notPresent(5) state if
+ the interface has missing (typically, lower layer)
+ components."
+ ::= { ipv6IfEntry 10 }
+
+ipv6IfLastChange OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime at the time the interface
+ entered its current operational state. If the
+ current state was entered prior to the last
+ re-initialization of the local network management
+
+ subsystem, then this object contains a zero
+ value."
+ ::= { ipv6IfEntry 11 }
+
+ -- IPv6 Interface Statistics table
+
+ ipv6IfStatsTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF Ipv6IfStatsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "IPv6 interface traffic statistics."
+ ::= { ipv6MIBObjects 6 }
+
+ ipv6IfStatsEntry OBJECT-TYPE
+ SYNTAX Ipv6IfStatsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An interface statistics entry containing objects
+ at a particular IPv6 interface."
+ AUGMENTS { ipv6IfEntry }
+ ::= { ipv6IfStatsTable 1 }
+
+ Ipv6IfStatsEntry ::= SEQUENCE {
+ ipv6IfStatsInReceives
+ Counter32,
+ ipv6IfStatsInHdrErrors
+ Counter32,
+ ipv6IfStatsInTooBigErrors
+ Counter32,
+ ipv6IfStatsInNoRoutes
+ Counter32,
+ ipv6IfStatsInAddrErrors
+ Counter32,
+ ipv6IfStatsInUnknownProtos
+ Counter32,
+ ipv6IfStatsInTruncatedPkts
+ Counter32,
+ ipv6IfStatsInDiscards
+ Counter32,
+ ipv6IfStatsInDelivers
+ Counter32,
+ ipv6IfStatsOutForwDatagrams
+ Counter32,
+ ipv6IfStatsOutRequests
+ Counter32,
+ ipv6IfStatsOutDiscards
+
+ Counter32,
+ ipv6IfStatsOutFragOKs
+ Counter32,
+ ipv6IfStatsOutFragFails
+ Counter32,
+ ipv6IfStatsOutFragCreates
+ Counter32,
+ ipv6IfStatsReasmReqds
+ Counter32,
+ ipv6IfStatsReasmOKs
+ Counter32,
+ ipv6IfStatsReasmFails
+ Counter32,
+ ipv6IfStatsInMcastPkts
+ Counter32,
+ ipv6IfStatsOutMcastPkts
+ Counter32
+ }
+
+ ipv6IfStatsInReceives OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of input datagrams received by
+ the interface, including those received in error."
+ ::= { ipv6IfStatsEntry 1 }
+
+ ipv6IfStatsInHdrErrors OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of input datagrams discarded due to
+ errors in their IPv6 headers, including version
+ number mismatch, other format errors, hop count
+ exceeded, errors discovered in processing their
+ IPv6 options, etc."
+ ::= { ipv6IfStatsEntry 2 }
+
+ ipv6IfStatsInTooBigErrors OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of input datagrams that could not be
+ forwarded because their size exceeded the link MTU
+ of outgoing interface."
+ ::= { ipv6IfStatsEntry 3 }
+
+ ipv6IfStatsInNoRoutes OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of input datagrams discarded because no
+ route could be found to transmit them to their
+ destination."
+ ::= { ipv6IfStatsEntry 4 }
+
+ ipv6IfStatsInAddrErrors OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of input datagrams discarded because
+ the IPv6 address in their IPv6 header's destination
+ field was not a valid address to be received at
+ this entity. This count includes invalid
+ addresses (e.g., ::0) and unsupported addresses
+ (e.g., addresses with unallocated prefixes). For
+ entities which are not IPv6 routers and therefore
+ do not forward datagrams, this counter includes
+ datagrams discarded because the destination address
+ was not a local address."
+ ::= { ipv6IfStatsEntry 5 }
+
+ ipv6IfStatsInUnknownProtos OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of locally-addressed datagrams
+ received successfully but discarded because of an
+ unknown or unsupported protocol. This counter is
+ incremented at the interface to which these
+ datagrams were addressed which might not be
+ necessarily the input interface for some of
+ the datagrams."
+ ::= { ipv6IfStatsEntry 6 }
+
+ ipv6IfStatsInTruncatedPkts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of input datagrams discarded because
+ datagram frame didn't carry enough data."
+ ::= { ipv6IfStatsEntry 7 }
+
+ ipv6IfStatsInDiscards OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of input IPv6 datagrams for which no
+ problems were encountered to prevent their
+ continued processing, but which were discarded
+ (e.g., for lack of buffer space). Note that this
+ counter does not include any datagrams discarded
+ while awaiting re-assembly."
+ ::= { ipv6IfStatsEntry 8 }
+
+ ipv6IfStatsInDelivers OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of datagrams successfully
+ delivered to IPv6 user-protocols (including ICMP).
+ This counter is incremented at the interface to
+ which these datagrams were addressed which might
+ not be necessarily the input interface for some of
+ the datagrams."
+ ::= { ipv6IfStatsEntry 9 }
+
+ ipv6IfStatsOutForwDatagrams OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of output datagrams which this
+ entity received and forwarded to their final
+ destinations. In entities which do not act
+ as IPv6 routers, this counter will include
+ only those packets which were Source-Routed
+ via this entity, and the Source-Route
+ processing was successful. Note that for
+ a successfully forwarded datagram the counter
+ of the outgoing interface is incremented."
+ ::= { ipv6IfStatsEntry 10 }
+
+ ipv6IfStatsOutRequests OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of IPv6 datagrams which local IPv6
+ user-protocols (including ICMP) supplied to IPv6 in
+ requests for transmission. Note that this counter
+ does not include any datagrams counted in
+ ipv6IfStatsOutForwDatagrams."
+ ::= { ipv6IfStatsEntry 11 }
+
+ ipv6IfStatsOutDiscards OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of output IPv6 datagrams for which no
+ problem was encountered to prevent their
+ transmission to their destination, but which were
+ discarded (e.g., for lack of buffer space). Note
+ that this counter would include datagrams counted
+ in ipv6IfStatsOutForwDatagrams if any such packets
+ met this (discretionary) discard criterion."
+ ::= { ipv6IfStatsEntry 12 }
+
+ ipv6IfStatsOutFragOKs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of IPv6 datagrams that have been
+ successfully fragmented at this output interface."
+ ::= { ipv6IfStatsEntry 13 }
+
+ ipv6IfStatsOutFragFails OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of IPv6 datagrams that have been
+ discarded because they needed to be fragmented
+ at this output interface but could not be."
+ ::= { ipv6IfStatsEntry 14 }
+
+ ipv6IfStatsOutFragCreates OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of output datagram fragments that have
+ been generated as a result of fragmentation at
+ this output interface."
+ ::= { ipv6IfStatsEntry 15 }
+
+ ipv6IfStatsReasmReqds OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of IPv6 fragments received which needed
+ to be reassembled at this interface. Note that this
+ counter is incremented at the interface to which
+ these fragments were addressed which might not
+ be necessarily the input interface for some of
+ the fragments."
+ ::= { ipv6IfStatsEntry 16 }
+
+ ipv6IfStatsReasmOKs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of IPv6 datagrams successfully
+ reassembled. Note that this counter is incremented
+ at the interface to which these datagrams were
+ addressed which might not be necessarily the input
+ interface for some of the fragments."
+ ::= { ipv6IfStatsEntry 17 }
+
+ ipv6IfStatsReasmFails OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of failures detected by the IPv6 re-
+ assembly algorithm (for whatever reason: timed
+ out, errors, etc.). Note that this is not
+ necessarily a count of discarded IPv6 fragments
+ since some algorithms (notably the algorithm in
+ RFC 815) can lose track of the number of fragments
+ by combining them as they are received.
+ This counter is incremented at the interface to which
+ these fragments were addressed which might not be
+ necessarily the input interface for some of the
+ fragments."
+ ::= { ipv6IfStatsEntry 18 }
+
+ ipv6IfStatsInMcastPkts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of multicast packets received
+ by the interface"
+ ::= { ipv6IfStatsEntry 19 }
+
+ ipv6IfStatsOutMcastPkts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of multicast packets transmitted
+ by the interface"
+ ::= { ipv6IfStatsEntry 20 }
+
+ -- Address Prefix table
+
+ -- The IPv6 Address Prefix table contains information on
+ -- the entity's IPv6 Address Prefixes that are associated
+ -- with IPv6 interfaces.
+
+ ipv6AddrPrefixTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF Ipv6AddrPrefixEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The list of IPv6 address prefixes of
+ IPv6 interfaces."
+ ::= { ipv6MIBObjects 7 }
+
+ ipv6AddrPrefixEntry OBJECT-TYPE
+ SYNTAX Ipv6AddrPrefixEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An interface entry containing objects of
+ a particular IPv6 address prefix."
+ INDEX { ipv6IfIndex,
+ ipv6AddrPrefix,
+ ipv6AddrPrefixLength }
+ ::= { ipv6AddrPrefixTable 1 }
+
+ Ipv6AddrPrefixEntry ::= SEQUENCE {
+
+ ipv6AddrPrefix Ipv6AddressPrefix,
+ ipv6AddrPrefixLength INTEGER (0..128),
+ ipv6AddrPrefixOnLinkFlag TruthValue,
+ ipv6AddrPrefixAutonomousFlag TruthValue,
+ ipv6AddrPrefixAdvPreferredLifetime Unsigned32,
+ ipv6AddrPrefixAdvValidLifetime Unsigned32
+ }
+
+ ipv6AddrPrefix OBJECT-TYPE
+ SYNTAX Ipv6AddressPrefix
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The prefix associated with the this interface."
+ ::= { ipv6AddrPrefixEntry 1 }
+
+ ipv6AddrPrefixLength OBJECT-TYPE
+ SYNTAX INTEGER (0..128)
+ UNITS "bits"
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The length of the prefix (in bits)."
+ ::= { ipv6AddrPrefixEntry 2 }
+
+ ipv6AddrPrefixOnLinkFlag OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "This object has the value 'true(1)', if this
+ prefix can be used for on-link determination
+ and the value 'false(2)' otherwise."
+ ::= { ipv6AddrPrefixEntry 3 }
+
+ ipv6AddrPrefixAutonomousFlag OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Autonomous address configuration flag. When
+ true(1), indicates that this prefix can be used
+ for autonomous address configuration (i.e. can
+ be used to form a local interface address).
+ If false(2), it is not used to autoconfigure
+ a local interface address."
+ ::= { ipv6AddrPrefixEntry 4 }
+
+ ipv6AddrPrefixAdvPreferredLifetime OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "seconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "It is the length of time in seconds that this
+ prefix will remain preferred, i.e. time until
+ deprecation. A value of 4,294,967,295 represents
+ infinity.
+
+ The address generated from a deprecated prefix
+ should no longer be used as a source address in
+ new communications, but packets received on such
+ an interface are processed as expected."
+ ::= { ipv6AddrPrefixEntry 5 }
+
+ ipv6AddrPrefixAdvValidLifetime OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "seconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "It is the length of time in seconds that this
+ prefix will remain valid, i.e. time until
+ invalidation. A value of 4,294,967,295 represents
+ infinity.
+
+ The address generated from an invalidated prefix
+ should not appear as the destination or source
+ address of a packet."
+ ::= { ipv6AddrPrefixEntry 6 }
+
+ -- the IPv6 Address table
+
+ -- The IPv6 address table contains this node's IPv6
+ -- addressing information.
+
+ ipv6AddrTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF Ipv6AddrEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The table of addressing information relevant to
+ this node's interface addresses."
+ ::= { ipv6MIBObjects 8 }
+
+ ipv6AddrEntry OBJECT-TYPE
+ SYNTAX Ipv6AddrEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The addressing information for one of this
+ node's interface addresses."
+ INDEX { ipv6IfIndex, ipv6AddrAddress }
+ ::= { ipv6AddrTable 1 }
+
+ Ipv6AddrEntry ::=
+ SEQUENCE {
+ ipv6AddrAddress Ipv6Address,
+ ipv6AddrPfxLength INTEGER,
+ ipv6AddrType INTEGER,
+ ipv6AddrAnycastFlag TruthValue,
+ ipv6AddrStatus INTEGER
+ }
+
+ ipv6AddrAddress OBJECT-TYPE
+ SYNTAX Ipv6Address
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The IPv6 address to which this entry's addressing
+ information pertains."
+ ::= { ipv6AddrEntry 1 }
+
+ ipv6AddrPfxLength OBJECT-TYPE
+ SYNTAX INTEGER(0..128)
+ UNITS "bits"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The length of the prefix (in bits) associated with
+ the IPv6 address of this entry."
+ ::= { ipv6AddrEntry 2 }
+
+ ipv6AddrType OBJECT-TYPE
+ SYNTAX INTEGER {
+ -- address has been formed
+ -- using stateless
+ stateless(1), -- autoconfiguration
+
+ -- address has been acquired
+ -- by stateful means
+ -- (e.g. DHCPv6, manual
+ stateful(2), -- configuration)
+
+ -- type can not be determined
+ unknown(3) -- for some reason.
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The type of address. Note that 'stateless(1)'
+ refers to an address that was statelessly
+ autoconfigured; 'stateful(2)' refers to a address
+ which was acquired by via a stateful protocol
+ (e.g. DHCPv6, manual configuration)."
+ ::= { ipv6AddrEntry 3 }
+
+ ipv6AddrAnycastFlag OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "This object has the value 'true(1)', if this
+ address is an anycast address and the value
+ 'false(2)' otherwise."
+ ::= { ipv6AddrEntry 4 }
+
+ ipv6AddrStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ preferred(1),
+ deprecated(2),
+ invalid(3),
+ inaccessible(4),
+ unknown(5) -- status can not be determined
+ -- for some reason.
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Address status. The preferred(1) state indicates
+ that this is a valid address that can appear as
+ the destination or source address of a packet.
+ The deprecated(2) state indicates that this is
+ a valid but deprecated address that should no longer
+ be used as a source address in new communications,
+ but packets addressed to such an address are
+ processed as expected. The invalid(3) state indicates
+ that this is not valid address which should not
+
+ appear as the destination or source address of
+ a packet. The inaccessible(4) state indicates that
+ the address is not accessible because the interface
+ to which this address is assigned is not operational."
+ ::= { ipv6AddrEntry 5 }
+
+ -- IPv6 Routing objects
+
+ ipv6RouteNumber OBJECT-TYPE
+ SYNTAX Gauge32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of current ipv6RouteTable entries.
+ This is primarily to avoid having to read
+ the table in order to determine this number."
+ ::= { ipv6MIBObjects 9 }
+
+ ipv6DiscardedRoutes OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of routing entries which were chosen
+ to be discarded even though they are valid. One
+ possible reason for discarding such an entry could
+ be to free-up buffer space for other routing
+ entries."
+ ::= { ipv6MIBObjects 10 }
+
+ -- IPv6 Routing table
+
+ ipv6RouteTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF Ipv6RouteEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "IPv6 Routing table. This table contains
+ an entry for each valid IPv6 unicast route
+ that can be used for packet forwarding
+ determination."
+ ::= { ipv6MIBObjects 11 }
+
+ ipv6RouteEntry OBJECT-TYPE
+ SYNTAX Ipv6RouteEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A routing entry."
+ INDEX { ipv6RouteDest,
+ ipv6RoutePfxLength,
+ ipv6RouteIndex }
+ ::= { ipv6RouteTable 1 }
+
+ Ipv6RouteEntry ::= SEQUENCE {
+ ipv6RouteDest Ipv6Address,
+ ipv6RoutePfxLength INTEGER,
+ ipv6RouteIndex Unsigned32,
+ ipv6RouteIfIndex Ipv6IfIndexOrZero,
+ ipv6RouteNextHop Ipv6Address,
+ ipv6RouteType INTEGER,
+ ipv6RouteProtocol INTEGER,
+ ipv6RoutePolicy Integer32,
+ ipv6RouteAge Unsigned32,
+ ipv6RouteNextHopRDI Unsigned32,
+ ipv6RouteMetric Unsigned32,
+ ipv6RouteWeight Unsigned32,
+ ipv6RouteInfo RowPointer,
+ ipv6RouteValid TruthValue
+ }
+
+ ipv6RouteDest OBJECT-TYPE
+ SYNTAX Ipv6Address
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The destination IPv6 address of this route.
+ This object may not take a Multicast address
+ value."
+ ::= { ipv6RouteEntry 1 }
+
+ ipv6RoutePfxLength OBJECT-TYPE
+ SYNTAX INTEGER(0..128)
+ UNITS "bits"
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Indicates the prefix length of the destination
+ address."
+ ::= { ipv6RouteEntry 2 }
+
+ ipv6RouteIndex OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The value which uniquely identifies the route
+ among the routes to the same network layer
+ destination. The way this value is chosen is
+ implementation specific but it must be unique for
+ ipv6RouteDest/ipv6RoutePfxLength pair and remain
+ constant for the life of the route."
+ ::= { ipv6RouteEntry 3 }
+
+ ipv6RouteIfIndex OBJECT-TYPE
+ SYNTAX Ipv6IfIndexOrZero
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The index value which uniquely identifies the local
+ interface through which the next hop of this
+ route should be reached. The interface identified
+ by a particular value of this index is the same
+ interface as identified by the same value of
+ ipv6IfIndex. For routes of the discard type this
+ value can be zero."
+ ::= { ipv6RouteEntry 4 }
+
+ ipv6RouteNextHop OBJECT-TYPE
+ SYNTAX Ipv6Address
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "On remote routes, the address of the next
+ system en route; otherwise, ::0
+ ('00000000000000000000000000000000'H in ASN.1
+ string representation)."
+ ::= { ipv6RouteEntry 5 }
+
+ ipv6RouteType OBJECT-TYPE
+ SYNTAX INTEGER {
+ other(1), -- none of the following
+
+ -- an route indicating that
+ -- packets to destinations
+ -- matching this route are
+ discard(2), -- to be discarded
+
+ -- route to directly
+ local(3), -- connected (sub-)network
+
+ -- route to a remote
+
+ remote(4) -- destination
+
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The type of route. Note that 'local(3)' refers
+ to a route for which the next hop is the final
+ destination; 'remote(4)' refers to a route for
+ which the next hop is not the final
+ destination; 'discard(2)' refers to a route
+ indicating that packets to destinations matching
+ this route are to be discarded (sometimes called
+ black-hole route)."
+ ::= { ipv6RouteEntry 6 }
+
+ ipv6RouteProtocol OBJECT-TYPE
+ SYNTAX INTEGER {
+ other(1), -- none of the following
+
+ -- non-protocol information,
+ -- e.g., manually configured
+ local(2), -- entries
+
+ netmgmt(3), -- static route
+
+ -- obtained via Neighbor
+ -- Discovery protocol,
+ ndisc(4), -- e.g., result of Redirect
+
+ -- the following are all
+ -- dynamic routing protocols
+ rip(5), -- RIPng
+ ospf(6), -- Open Shortest Path First
+ bgp(7), -- Border Gateway Protocol
+ idrp(8), -- InterDomain Routing Protocol
+ igrp(9) -- InterGateway Routing Protocol
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The routing mechanism via which this route was
+ learned."
+ ::= { ipv6RouteEntry 7 }
+
+ ipv6RoutePolicy OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The general set of conditions that would cause the
+ selection of one multipath route (set of next hops
+ for a given destination) is referred to as 'policy'.
+ Unless the mechanism indicated by ipv6RouteProtocol
+ specified otherwise, the policy specifier is the
+ 8-bit Traffic Class field of the IPv6 packet header
+ that is zero extended at the left to a 32-bit value.
+
+ Protocols defining 'policy' otherwise must either
+ define a set of values which are valid for
+ this object or must implement an integer-
+ instanced policy table for which this object's
+ value acts as an index."
+ ::= { ipv6RouteEntry 8 }
+
+ ipv6RouteAge OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "seconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of seconds since this route was last
+ updated or otherwise determined to be correct.
+ Note that no semantics of `too old' can be implied
+ except through knowledge of the routing protocol
+ by which the route was learned."
+ ::= { ipv6RouteEntry 9 }
+
+ ipv6RouteNextHopRDI OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The Routing Domain ID of the Next Hop.
+ The semantics of this object are determined by
+ the routing-protocol specified in the route's
+ ipv6RouteProtocol value. When this object is
+ unknown or not relevant its value should be set
+ to zero."
+ ::= { ipv6RouteEntry 10 }
+
+ ipv6RouteMetric OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The routing metric for this route. The
+ semantics of this metric are determined by the
+ routing protocol specified in the route's
+ ipv6RouteProtocol value. When this is unknown
+ or not relevant to the protocol indicated by
+ ipv6RouteProtocol, the object value should be
+ set to its maximum value (4,294,967,295)."
+ ::= { ipv6RouteEntry 11 }
+
+ ipv6RouteWeight OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The system internal weight value for this route.
+ The semantics of this value are determined by
+ the implementation specific rules. Generally,
+ within routes with the same ipv6RoutePolicy value,
+ the lower the weight value the more preferred is
+ the route."
+ ::= { ipv6RouteEntry 12 }
+
+ ipv6RouteInfo OBJECT-TYPE
+ SYNTAX RowPointer
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A reference to MIB definitions specific to the
+ particular routing protocol which is responsible
+ for this route, as determined by the value
+ specified in the route's ipv6RouteProto value.
+ If this information is not present, its value
+ should be set to the OBJECT ID { 0 0 },
+ which is a syntactically valid object identifier,
+ and any implementation conforming to ASN.1
+ and the Basic Encoding Rules must be able to
+ generate and recognize this value."
+ ::= { ipv6RouteEntry 13 }
+
+ ipv6RouteValid OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "Setting this object to the value 'false(2)' has
+ the effect of invalidating the corresponding entry
+ in the ipv6RouteTable object. That is, it
+ effectively disassociates the destination
+
+ identified with said entry from the route
+ identified with said entry. It is an
+ implementation-specific matter as to whether the
+ agent removes an invalidated entry from the table.
+ Accordingly, management stations must be prepared
+ to receive tabular information from agents that
+ corresponds to entries not currently in use.
+ Proper interpretation of such entries requires
+ examination of the relevant ipv6RouteValid
+ object."
+ DEFVAL { true }
+ ::= { ipv6RouteEntry 14 }
+
+ -- IPv6 Address Translation table
+
+ ipv6NetToMediaTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF Ipv6NetToMediaEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The IPv6 Address Translation table used for
+ mapping from IPv6 addresses to physical addresses.
+
+ The IPv6 address translation table contain the
+ Ipv6Address to `physical' address equivalencies.
+ Some interfaces do not use translation tables
+ for determining address equivalencies; if all
+ interfaces are of this type, then the Address
+ Translation table is empty, i.e., has zero
+ entries."
+ ::= { ipv6MIBObjects 12 }
+
+ ipv6NetToMediaEntry OBJECT-TYPE
+ SYNTAX Ipv6NetToMediaEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Each entry contains one IPv6 address to `physical'
+ address equivalence."
+ INDEX { ipv6IfIndex,
+ ipv6NetToMediaNetAddress }
+ ::= { ipv6NetToMediaTable 1 }
+
+ Ipv6NetToMediaEntry ::= SEQUENCE {
+ ipv6NetToMediaNetAddress
+ Ipv6Address,
+ ipv6NetToMediaPhysAddress
+
+ PhysAddress,
+ ipv6NetToMediaType
+ INTEGER,
+ ipv6IfNetToMediaState
+ INTEGER,
+ ipv6IfNetToMediaLastUpdated
+ TimeStamp,
+ ipv6NetToMediaValid
+ TruthValue
+ }
+
+ ipv6NetToMediaNetAddress OBJECT-TYPE
+ SYNTAX Ipv6Address
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The IPv6 Address corresponding to
+ the media-dependent `physical' address."
+ ::= { ipv6NetToMediaEntry 1 }
+
+ ipv6NetToMediaPhysAddress OBJECT-TYPE
+ SYNTAX PhysAddress
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The media-dependent `physical' address."
+ ::= { ipv6NetToMediaEntry 2 }
+
+ ipv6NetToMediaType OBJECT-TYPE
+ SYNTAX INTEGER {
+ other(1), -- none of the following
+ dynamic(2), -- dynamically resolved
+ static(3), -- statically configured
+ local(4) -- local interface
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The type of the mapping. The 'dynamic(2)' type
+ indicates that the IPv6 address to physical
+ addresses mapping has been dynamically
+ resolved using the IPv6 Neighbor Discovery
+ protocol. The static(3)' types indicates that
+ the mapping has been statically configured.
+ The local(4) indicates that the mapping is
+ provided for an entity's own interface address."
+ ::= { ipv6NetToMediaEntry 3 }
+
+ipv6IfNetToMediaState OBJECT-TYPE
+ SYNTAX INTEGER {
+ reachable(1), -- confirmed reachability
+
+ stale(2), -- unconfirmed reachability
+
+ delay(3), -- waiting for reachability
+ -- confirmation before entering
+ -- the probe state
+
+ probe(4), -- actively probing
+
+ invalid(5), -- an invalidated mapping
+
+ unknown(6) -- state can not be determined
+ -- for some reason.
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The Neighbor Unreachability Detection [8] state
+ for the interface when the address mapping in
+ this entry is used."
+ ::= { ipv6NetToMediaEntry 4 }
+
+ipv6IfNetToMediaLastUpdated OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime at the time this entry
+ was last updated. If this entry was updated prior
+ to the last re-initialization of the local network
+ management subsystem, then this object contains
+ a zero value."
+ ::= { ipv6NetToMediaEntry 5 }
+
+ ipv6NetToMediaValid OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "Setting this object to the value 'false(2)' has
+ the effect of invalidating the corresponding entry
+ in the ipv6NetToMediaTable. That is, it effectively
+ disassociates the interface identified with said
+ entry from the mapping identified with said entry.
+ It is an implementation-specific matter as to
+
+ whether the agent removes an invalidated entry
+ from the table. Accordingly, management stations
+ must be prepared to receive tabular information
+ from agents that corresponds to entries not
+ currently in use. Proper interpretation of such
+ entries requires examination of the relevant
+ ipv6NetToMediaValid object."
+ DEFVAL { true }
+ ::= { ipv6NetToMediaEntry 6 }
+
+-- definition of IPv6-related notifications.
+-- Note that we need ipv6NotificationPrefix with the 0
+-- sub-identifier to make this MIB to translate to
+-- an SNMPv1 format in a reversible way. For example
+-- it is needed for proxies that convert SNMPv1 traps
+-- to SNMPv2 notifications without MIB knowledge.
+
+ipv6Notifications OBJECT IDENTIFIER
+ ::= { ipv6MIB 2 }
+ipv6NotificationPrefix OBJECT IDENTIFIER
+ ::= { ipv6Notifications 0 }
+
+ipv6IfStateChange NOTIFICATION-TYPE
+ OBJECTS {
+ ipv6IfDescr,
+ ipv6IfOperStatus -- the new state of the If.
+ }
+ STATUS current
+ DESCRIPTION
+ "An ipv6IfStateChange notification signifies
+ that there has been a change in the state of
+ an ipv6 interface. This notification should
+ be generated when the interface's operational
+ status transitions to or from the up(1) state."
+ ::= { ipv6NotificationPrefix 1 }
+
+-- conformance information
+
+ipv6Conformance OBJECT IDENTIFIER ::= { ipv6MIB 3 }
+
+ipv6Compliances OBJECT IDENTIFIER ::= { ipv6Conformance 1 }
+ipv6Groups OBJECT IDENTIFIER ::= { ipv6Conformance 2 }
+
+-- compliance statements
+
+ipv6Compliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for SNMPv2 entities which
+ implement ipv6 MIB."
+ MODULE -- this module
+ MANDATORY-GROUPS { ipv6GeneralGroup,
+ ipv6NotificationGroup }
+ OBJECT ipv6Forwarding
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "An agent is not required to provide write
+ access to this object"
+ OBJECT ipv6DefaultHopLimit
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "An agent is not required to provide write
+ access to this object"
+ OBJECT ipv6IfDescr
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "An agent is not required to provide write
+ access to this object"
+ OBJECT ipv6IfIdentifier
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "An agent is not required to provide write
+ access to this object"
+ OBJECT ipv6IfIdentifierLength
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "An agent is not required to provide write
+ access to this object"
+
+ OBJECT ipv6IfAdminStatus
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "An agent is not required to provide write
+ access to this object"
+ OBJECT ipv6RouteValid
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "An agent is not required to provide write
+ access to this object"
+ OBJECT ipv6NetToMediaValid
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "An agent is not required to provide write
+
+ access to this object"
+ ::= { ipv6Compliances 1 }
+
+ipv6GeneralGroup OBJECT-GROUP
+ OBJECTS { ipv6Forwarding,
+ ipv6DefaultHopLimit,
+ ipv6Interfaces,
+ ipv6IfTableLastChange,
+ ipv6IfDescr,
+ ipv6IfLowerLayer,
+ ipv6IfEffectiveMtu,
+ ipv6IfReasmMaxSize,
+ ipv6IfIdentifier,
+ ipv6IfIdentifierLength,
+ ipv6IfPhysicalAddress,
+ ipv6IfAdminStatus,
+ ipv6IfOperStatus,
+ ipv6IfLastChange,
+ ipv6IfStatsInReceives,
+ ipv6IfStatsInHdrErrors,
+ ipv6IfStatsInTooBigErrors,
+ ipv6IfStatsInNoRoutes,
+ ipv6IfStatsInAddrErrors,
+ ipv6IfStatsInUnknownProtos,
+ ipv6IfStatsInTruncatedPkts,
+ ipv6IfStatsInDiscards,
+ ipv6IfStatsInDelivers,
+ ipv6IfStatsOutForwDatagrams,
+ ipv6IfStatsOutRequests,
+ ipv6IfStatsOutDiscards,
+ ipv6IfStatsOutFragOKs,
+ ipv6IfStatsOutFragFails,
+ ipv6IfStatsOutFragCreates,
+ ipv6IfStatsReasmReqds,
+ ipv6IfStatsReasmOKs,
+ ipv6IfStatsReasmFails,
+ ipv6IfStatsInMcastPkts,
+ ipv6IfStatsOutMcastPkts,
+ ipv6AddrPrefixOnLinkFlag,
+ ipv6AddrPrefixAutonomousFlag,
+ ipv6AddrPrefixAdvPreferredLifetime,
+ ipv6AddrPrefixAdvValidLifetime,
+ ipv6AddrPfxLength,
+ ipv6AddrType,
+ ipv6AddrAnycastFlag,
+ ipv6AddrStatus,
+ ipv6RouteNumber,
+ ipv6DiscardedRoutes,
+ ipv6RouteIfIndex,
+ ipv6RouteNextHop,
+ ipv6RouteType,
+ ipv6RouteProtocol,
+ ipv6RoutePolicy,
+ ipv6RouteAge,
+ ipv6RouteNextHopRDI,
+ ipv6RouteMetric,
+ ipv6RouteWeight,
+ ipv6RouteInfo,
+ ipv6RouteValid,
+ ipv6NetToMediaPhysAddress,
+ ipv6NetToMediaType,
+ ipv6IfNetToMediaState,
+ ipv6IfNetToMediaLastUpdated,
+ ipv6NetToMediaValid }
+ STATUS current
+ DESCRIPTION
+ "The IPv6 group of objects providing for basic
+ management of IPv6 entities."
+ ::= { ipv6Groups 1 }
+
+ipv6NotificationGroup NOTIFICATION-GROUP
+ NOTIFICATIONS { ipv6IfStateChange }
+ STATUS current
+ DESCRIPTION
+ "The notification that an IPv6 entity is required
+ to implement."
+ ::= { ipv6Groups 2 }
+
+ END
diff --git a/php/extras/mibs/IPV6-TC.txt b/php/extras/mibs/IPV6-TC.txt
new file mode 100644
index 000000000..05e1e7d98
--- /dev/null
+++ b/php/extras/mibs/IPV6-TC.txt
@@ -0,0 +1,67 @@
+IPV6-TC DEFINITIONS ::= BEGIN
+
+IMPORTS
+ Integer32 FROM SNMPv2-SMI
+ TEXTUAL-CONVENTION FROM SNMPv2-TC;
+
+-- definition of textual conventions
+Ipv6Address ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "2x:"
+ STATUS current
+ DESCRIPTION
+ "This data type is used to model IPv6 addresses.
+ This is a binary string of 16 octets in network
+ byte-order."
+ SYNTAX OCTET STRING (SIZE (16))
+
+Ipv6AddressPrefix ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "2x:"
+ STATUS current
+ DESCRIPTION
+ "This data type is used to model IPv6 address
+ prefixes. This is a binary string of up to 16
+ octets in network byte-order."
+ SYNTAX OCTET STRING (SIZE (0..16))
+
+Ipv6AddressIfIdentifier ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "2x:"
+ STATUS current
+ DESCRIPTION
+ "This data type is used to model IPv6 address
+ interface identifiers. This is a binary string
+ of up to 8 octets in network byte-order."
+ SYNTAX OCTET STRING (SIZE (0..8))
+
+Ipv6IfIndex ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "d"
+ STATUS current
+ DESCRIPTION
+ "A unique value, greater than zero for each
+ internetwork-layer interface in the managed
+ system. It is recommended that values are assigned
+ contiguously starting from 1. The value for each
+ internetwork-layer interface must remain constant
+ at least from one re-initialization of the entity's
+ network management system to the next
+
+ re-initialization."
+ SYNTAX Integer32 (1..2147483647)
+
+Ipv6IfIndexOrZero ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "d"
+ STATUS current
+ DESCRIPTION
+ "This textual convention is an extension of the
+ Ipv6IfIndex convention. The latter defines
+ a greater than zero value used to identify an IPv6
+ interface in the managed system. This extension
+ permits the additional value of zero. The value
+ zero is object-specific and must therefore be
+ defined as part of the description of any object
+ which uses this syntax. Examples of the usage of
+ zero might include situations where interface was
+ unknown, or when none or all interfaces need to be
+ referenced."
+ SYNTAX Integer32 (0..2147483647)
+
+END
diff --git a/php/extras/mibs/IPV6-TCP-MIB.txt b/php/extras/mibs/IPV6-TCP-MIB.txt
new file mode 100644
index 000000000..a2fb857c0
--- /dev/null
+++ b/php/extras/mibs/IPV6-TCP-MIB.txt
@@ -0,0 +1,211 @@
+IPV6-TCP-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
+ MODULE-IDENTITY, OBJECT-TYPE,
+ mib-2, experimental FROM SNMPv2-SMI
+ Ipv6Address, Ipv6IfIndexOrZero FROM IPV6-TC;
+
+ipv6TcpMIB MODULE-IDENTITY
+ LAST-UPDATED "9801290000Z"
+ ORGANIZATION "IETF IPv6 MIB Working Group"
+ CONTACT-INFO
+ " Mike Daniele
+
+ Postal: Compaq Computer Corporation
+ 110 Spitbrook Rd
+ Nashua, NH 03062.
+ US
+
+ Phone: +1 603 884 1423
+ Email: daniele@zk3.dec.com"
+ DESCRIPTION
+ "The MIB module for entities implementing TCP over IPv6."
+ ::= { experimental 86 }
+
+-- objects specific to TCP for IPv6
+
+tcp OBJECT IDENTIFIER ::= { mib-2 6 }
+
+-- the TCP over IPv6 Connection table
+
+-- This connection table contains information about this
+-- entity's existing TCP connections between IPv6 endpoints.
+-- Only connections between IPv6 addresses are contained in
+-- this table. This entity's connections between IPv4
+-- endpoints are contained in tcpConnTable.
+
+ipv6TcpConnTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF Ipv6TcpConnEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table containing TCP connection-specific information,
+ for only those connections whose endpoints are IPv6 addresses."
+ ::= { tcp 16 }
+
+ipv6TcpConnEntry OBJECT-TYPE
+ SYNTAX Ipv6TcpConnEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A conceptual row of the ipv6TcpConnTable containing
+ information about a particular current TCP connection.
+ Each row of this table is transient, in that it ceases to
+ exist when (or soon after) the connection makes the transition
+ to the CLOSED state.
+
+ Note that conceptual rows in this table require an additional
+ index object compared to tcpConnTable, since IPv6 addresses
+ are not guaranteed to be unique on the managed node."
+ INDEX { ipv6TcpConnLocalAddress,
+ ipv6TcpConnLocalPort,
+ ipv6TcpConnRemAddress,
+ ipv6TcpConnRemPort,
+ ipv6TcpConnIfIndex }
+ ::= { ipv6TcpConnTable 1 }
+
+Ipv6TcpConnEntry ::=
+ SEQUENCE { ipv6TcpConnLocalAddress Ipv6Address,
+ ipv6TcpConnLocalPort INTEGER (0..65535),
+ ipv6TcpConnRemAddress Ipv6Address,
+ ipv6TcpConnRemPort INTEGER (0..65535),
+ ipv6TcpConnIfIndex Ipv6IfIndexOrZero,
+ ipv6TcpConnState INTEGER }
+
+ipv6TcpConnLocalAddress OBJECT-TYPE
+ SYNTAX Ipv6Address
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The local IPv6 address for this TCP connection. In
+ the case of a connection in the listen state which
+ is willing to accept connections for any IPv6
+ address associated with the managed node, the value
+ ::0 is used."
+ ::= { ipv6TcpConnEntry 1 }
+
+ipv6TcpConnLocalPort OBJECT-TYPE
+ SYNTAX INTEGER (0..65535)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The local port number for this TCP connection."
+ ::= { ipv6TcpConnEntry 2 }
+
+ipv6TcpConnRemAddress OBJECT-TYPE
+ SYNTAX Ipv6Address
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The remote IPv6 address for this TCP connection."
+ ::= { ipv6TcpConnEntry 3 }
+
+ipv6TcpConnRemPort OBJECT-TYPE
+ SYNTAX INTEGER (0..65535)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The remote port number for this TCP connection."
+ ::= { ipv6TcpConnEntry 4 }
+
+ipv6TcpConnIfIndex OBJECT-TYPE
+ SYNTAX Ipv6IfIndexOrZero
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An index object used to disambiguate conceptual rows in
+ the table, since the connection 4-tuple may not be unique.
+
+ If the connection's remote address (ipv6TcpConnRemAddress)
+ is a link-local address and the connection's local address
+
+ (ipv6TcpConnLocalAddress) is not a link-local address, this
+ object identifies a local interface on the same link as
+ the connection's remote link-local address.
+
+ Otherwise, this object identifies the local interface that
+ is associated with the ipv6TcpConnLocalAddress for this
+ TCP connection. If such a local interface cannot be determined,
+ this object should take on the value 0. (A possible example
+ of this would be if the value of ipv6TcpConnLocalAddress is ::0.)
+
+ The interface identified by a particular non-0 value of this
+ index is the same interface as identified by the same value
+ of ipv6IfIndex.
+
+ The value of this object must remain constant during the life
+ of the TCP connection."
+ ::= { ipv6TcpConnEntry 5 }
+
+ipv6TcpConnState OBJECT-TYPE
+ SYNTAX INTEGER {
+ closed(1),
+ listen(2),
+ synSent(3),
+ synReceived(4),
+ established(5),
+ finWait1(6),
+ finWait2(7),
+ closeWait(8),
+ lastAck(9),
+ closing(10),
+ timeWait(11),
+ deleteTCB(12) }
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The state of this TCP connection.
+
+ The only value which may be set by a management station is
+ deleteTCB(12). Accordingly, it is appropriate for an agent
+ to return an error response (`badValue' for SNMPv1, 'wrongValue'
+ for SNMPv2) if a management station attempts to set this
+ object to any other value.
+
+ If a management station sets this object to the value
+ deleteTCB(12), then this has the effect of deleting the TCB
+ (as defined in RFC 793) of the corresponding connection on
+ the managed node, resulting in immediate termination of the
+ connection.
+
+ As an implementation-specific option, a RST segment may be
+ sent from the managed node to the other TCP endpoint (note
+ however that RST segments are not sent reliably)."
+ ::= { ipv6TcpConnEntry 6 }
+
+--
+-- conformance information
+--
+
+ipv6TcpConformance OBJECT IDENTIFIER ::= { ipv6TcpMIB 2 }
+
+ipv6TcpCompliances OBJECT IDENTIFIER ::= { ipv6TcpConformance 1 }
+ipv6TcpGroups OBJECT IDENTIFIER ::= { ipv6TcpConformance 2 }
+
+-- compliance statements
+
+ipv6TcpCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for SNMPv2 entities which
+ implement TCP over IPv6."
+ MODULE -- this module
+ MANDATORY-GROUPS { ipv6TcpGroup }
+ ::= { ipv6TcpCompliances 1 }
+
+ipv6TcpGroup OBJECT-GROUP
+ OBJECTS { -- these are defined in this module
+ -- ipv6TcpConnLocalAddress (not-accessible)
+ -- ipv6TcpConnLocalPort (not-accessible)
+ -- ipv6TcpConnRemAddress (not-accessible)
+ -- ipv6TcpConnRemPort (not-accessible)
+ -- ipv6TcpConnIfIndex (not-accessible)
+ ipv6TcpConnState }
+ STATUS current
+ DESCRIPTION
+ "The group of objects providing management of
+ TCP over IPv6."
+ ::= { ipv6TcpGroups 1 }
+
+END
diff --git a/php/extras/mibs/IPV6-UDP-MIB.txt b/php/extras/mibs/IPV6-UDP-MIB.txt
new file mode 100644
index 000000000..6c929eb7f
--- /dev/null
+++ b/php/extras/mibs/IPV6-UDP-MIB.txt
@@ -0,0 +1,141 @@
+IPV6-UDP-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
+ MODULE-IDENTITY, OBJECT-TYPE,
+ mib-2, experimental FROM SNMPv2-SMI
+ Ipv6Address, Ipv6IfIndexOrZero FROM IPV6-TC;
+
+ipv6UdpMIB MODULE-IDENTITY
+ LAST-UPDATED "9801290000Z"
+ ORGANIZATION "IETF IPv6 MIB Working Group"
+ CONTACT-INFO
+ " Mike Daniele
+
+ Postal: Compaq Computer Corporation
+ 110 Spitbrook Rd
+ Nashua, NH 03062.
+ US
+
+ Phone: +1 603 884 1423
+ Email: daniele@zk3.dec.com"
+ DESCRIPTION
+ "The MIB module for entities implementing UDP over IPv6."
+ ::= { experimental 87 }
+
+-- objects specific to UDP for IPv6
+
+udp OBJECT IDENTIFIER ::= { mib-2 7 }
+
+-- the UDP over IPv6 Listener table
+
+-- This table contains information about this entity's
+-- UDP/IPv6 endpoints. Only endpoints utilizing IPv6 addresses
+-- are contained in this table. This entity's UDP/IPv4 endpoints
+-- are contained in udpTable.
+
+ipv6UdpTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF Ipv6UdpEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table containing UDP listener information for
+ UDP/IPv6 endpoints."
+ ::= { udp 6 }
+
+ipv6UdpEntry OBJECT-TYPE
+ SYNTAX Ipv6UdpEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Information about a particular current UDP listener.
+
+ Note that conceptual rows in this table require an
+ additional index object compared to udpTable, since
+ IPv6 addresses are not guaranteed to be unique on the
+ managed node."
+ INDEX { ipv6UdpLocalAddress,
+ ipv6UdpLocalPort,
+ ipv6UdpIfIndex }
+ ::= { ipv6UdpTable 1 }
+
+Ipv6UdpEntry ::= SEQUENCE {
+ ipv6UdpLocalAddress Ipv6Address,
+ ipv6UdpLocalPort INTEGER (0..65535),
+ ipv6UdpIfIndex Ipv6IfIndexOrZero }
+
+ipv6UdpLocalAddress OBJECT-TYPE
+ SYNTAX Ipv6Address
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The local IPv6 address for this UDP listener.
+ In the case of a UDP listener which is willing
+ to accept datagrams for any IPv6 address
+ associated with the managed node, the value ::0
+ is used."
+ ::= { ipv6UdpEntry 1 }
+
+ipv6UdpLocalPort OBJECT-TYPE
+ SYNTAX INTEGER (0..65535)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The local port number for this UDP listener."
+ ::= { ipv6UdpEntry 2 }
+
+ipv6UdpIfIndex OBJECT-TYPE
+ SYNTAX Ipv6IfIndexOrZero
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An index object used to disambiguate conceptual rows in
+ the table, since the ipv6UdpLocalAddress/ipv6UdpLocalPort
+ pair may not be unique.
+
+ This object identifies the local interface that is
+ associated with ipv6UdpLocalAddress for this UDP listener.
+ If such a local interface cannot be determined, this object
+ should take on the value 0. (A possible example of this
+ would be if the value of ipv6UdpLocalAddress is ::0.)
+
+ The interface identified by a particular non-0 value of
+ this index is the same interface as identified by the same
+ value of ipv6IfIndex.
+
+ The value of this object must remain constant during
+ the life of this UDP endpoint."
+ ::= { ipv6UdpEntry 3 }
+
+--
+-- conformance information
+--
+
+ipv6UdpConformance OBJECT IDENTIFIER ::= { ipv6UdpMIB 2 }
+
+ipv6UdpCompliances OBJECT IDENTIFIER ::= { ipv6UdpConformance 1 }
+ipv6UdpGroups OBJECT IDENTIFIER ::= { ipv6UdpConformance 2 }
+
+-- compliance statements
+
+ipv6UdpCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for SNMPv2 entities which
+ implement UDP over IPv6."
+ MODULE -- this module
+ MANDATORY-GROUPS { ipv6UdpGroup }
+ ::= { ipv6UdpCompliances 1 }
+
+ipv6UdpGroup OBJECT-GROUP
+ OBJECTS { -- these are defined in this module
+ -- ipv6UdpLocalAddress (not-accessible)
+ -- ipv6UdpLocalPort (not-accessible)
+ ipv6UdpIfIndex }
+ STATUS current
+ DESCRIPTION
+ "The group of objects providing management of
+ UDP over IPv6."
+ ::= { ipv6UdpGroups 1 }
+
+END
diff --git a/php/extras/mibs/LM-SENSORS-MIB.txt b/php/extras/mibs/LM-SENSORS-MIB.txt
new file mode 100644
index 000000000..d0734b33f
--- /dev/null
+++ b/php/extras/mibs/LM-SENSORS-MIB.txt
@@ -0,0 +1,230 @@
+LM-SENSORS-MIB DEFINITIONS ::= BEGIN
+
+--
+-- Derived from the original VEST-INTERNETT-MIB. Open issues:
+--
+-- (a) where to register this MIB?
+-- (b) use not-accessible for diskIOIndex?
+--
+
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE, Integer32, Gauge32
+ FROM SNMPv2-SMI
+ DisplayString
+ FROM SNMPv2-TC
+ ucdExperimental
+ FROM UCD-SNMP-MIB;
+
+lmSensorsMIB MODULE-IDENTITY
+ LAST-UPDATED "200011050000Z"
+ ORGANIZATION "AdamsNames Ltd"
+ CONTACT-INFO
+ "Primary Contact: M J Oldfield
+ email: m@mail.tc"
+ DESCRIPTION
+ "This MIB module defines objects for lm_sensor derived data."
+ REVISION "200011050000Z"
+ DESCRIPTION
+ "Derived from DISKIO-MIB ex UCD."
+ ::= { lmSensors 1 }
+
+lmSensors OBJECT IDENTIFIER ::= { ucdExperimental 16 }
+
+--
+
+lmTempSensorsTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF LMTempSensorsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Table of temperature sensors and their values."
+ ::= { lmSensors 2 }
+
+lmTempSensorsEntry OBJECT-TYPE
+ SYNTAX LMTempSensorsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry containing a device and its statistics."
+ INDEX { lmTempSensorsIndex }
+ ::= { lmTempSensorsTable 1 }
+
+LMTempSensorsEntry ::= SEQUENCE {
+ lmTempSensorsIndex Integer32,
+ lmTempSensorsDevice DisplayString,
+ lmTempSensorsValue Gauge32
+}
+
+lmTempSensorsIndex OBJECT-TYPE
+ SYNTAX Integer32 (0..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Reference index for each observed device."
+ ::= { lmTempSensorsEntry 1 }
+
+lmTempSensorsDevice OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The name of the temperature sensor we are reading."
+ ::= { lmTempSensorsEntry 2 }
+
+lmTempSensorsValue OBJECT-TYPE
+ SYNTAX Gauge32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The temperature of this sensor in mC."
+ ::= { lmTempSensorsEntry 3 }
+--
+
+lmFanSensorsTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF LMFanSensorsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Table of fan sensors and their values."
+ ::= { lmSensors 3 }
+
+lmFanSensorsEntry OBJECT-TYPE
+ SYNTAX LMFanSensorsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry containing a device and its statistics."
+ INDEX { lmFanSensorsIndex }
+ ::= { lmFanSensorsTable 1 }
+
+LMFanSensorsEntry ::= SEQUENCE {
+ lmFanSensorsIndex Integer32,
+ lmFanSensorsDevice DisplayString,
+ lmFanSensorsValue Gauge32
+}
+
+lmFanSensorsIndex OBJECT-TYPE
+ SYNTAX Integer32 (0..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Reference index for each observed device."
+ ::= { lmFanSensorsEntry 1 }
+
+lmFanSensorsDevice OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The name of the fan sensor we are reading."
+ ::= { lmFanSensorsEntry 2 }
+
+lmFanSensorsValue OBJECT-TYPE
+ SYNTAX Gauge32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The rotation speed of the fan in RPM."
+ ::= { lmFanSensorsEntry 3 }
+
+--
+
+lmVoltSensorsTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF LMVoltSensorsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Table of voltage sensors and their values."
+ ::= { lmSensors 4 }
+
+lmVoltSensorsEntry OBJECT-TYPE
+ SYNTAX LMVoltSensorsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry containing a device and its statistics."
+ INDEX { lmVoltSensorsIndex }
+ ::= { lmVoltSensorsTable 1 }
+
+LMVoltSensorsEntry ::= SEQUENCE {
+ lmVoltSensorsIndex Integer32,
+ lmVoltSensorsDevice DisplayString,
+ lmVoltSensorsValue Gauge32
+}
+
+lmVoltSensorsIndex OBJECT-TYPE
+ SYNTAX Integer32 (0..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Reference index for each observed device."
+ ::= { lmVoltSensorsEntry 1 }
+
+lmVoltSensorsDevice OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The name of the device we are reading."
+ ::= { lmVoltSensorsEntry 2 }
+
+lmVoltSensorsValue OBJECT-TYPE
+ SYNTAX Gauge32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The voltage in mV."
+ ::= { lmVoltSensorsEntry 3 }
+
+--
+
+lmMiscSensorsTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF LMMiscSensorsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Table of miscellaneous sensor devices and their values."
+ ::= { lmSensors 5 }
+
+lmMiscSensorsEntry OBJECT-TYPE
+ SYNTAX LMMiscSensorsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry containing a device and its statistics."
+ INDEX { lmMiscSensorsIndex }
+ ::= { lmMiscSensorsTable 1 }
+
+LMMiscSensorsEntry ::= SEQUENCE {
+ lmMiscSensorsIndex Integer32,
+ lmMiscSensorsDevice DisplayString,
+ lmMiscSensorsValue Gauge32
+}
+
+lmMiscSensorsIndex OBJECT-TYPE
+ SYNTAX Integer32 (0..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Reference index for each observed device."
+ ::= { lmMiscSensorsEntry 1 }
+
+lmMiscSensorsDevice OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The name of the device we are reading."
+ ::= { lmMiscSensorsEntry 2 }
+
+lmMiscSensorsValue OBJECT-TYPE
+ SYNTAX Gauge32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of this sensor."
+ ::= { lmMiscSensorsEntry 3 }
+
+
+END
diff --git a/php/extras/mibs/MTA-MIB.txt b/php/extras/mibs/MTA-MIB.txt
new file mode 100644
index 000000000..29618adc8
--- /dev/null
+++ b/php/extras/mibs/MTA-MIB.txt
@@ -0,0 +1,1226 @@
+MTA-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ OBJECT-TYPE, Counter32, Gauge32, MODULE-IDENTITY, mib-2
+ FROM SNMPv2-SMI
+ TimeInterval
+ FROM SNMPv2-TC
+ MODULE-COMPLIANCE, OBJECT-GROUP
+ FROM SNMPv2-CONF
+ SnmpAdminString
+ FROM SNMP-FRAMEWORK-MIB
+ applIndex, URLString
+ FROM NETWORK-SERVICES-MIB;
+
+mta MODULE-IDENTITY
+ LAST-UPDATED "200003030000Z"
+ ORGANIZATION "IETF Mail and Directory Management Working Group"
+ CONTACT-INFO
+ " Ned Freed
+
+ Postal: Innosoft International, Inc.
+ 1050 Lakes Drive
+ West Covina, CA 91790
+ US
+
+ Tel: +1 626 919 3600
+ Fax: +1 626 919 3614
+
+ E-Mail: ned.freed@innosoft.com"
+ DESCRIPTION
+ "The MIB module describing Message Transfer Agents (MTAs)"
+ REVISION "200003030000Z"
+ DESCRIPTION
+ "This revision, published in RFC 2789, changes a number of
+ DisplayStrings to SnmpAdminStrings. Note that this change
+
+ is not strictly supported by SMIv2. However, the alternative
+ of deprecating the old objects and defining new objects
+ would have a more adverse impact on backward compatibility
+ and interoperability, given the particular semantics of
+ these objects. The defining reference for distinguished
+ names has also been updated from RFC 1779 to RFC 2253."
+ REVISION "199905120000Z"
+ DESCRIPTION
+ "This revision fixes a number of technical problems found in
+ previous versions: The conformance groups for different
+ versions of this MIB have been corrected, the recommendation
+ that an empty string be returned if the last operation was
+ successful has been removed from
+ mtaGroupInboundRejectionReason and
+ mtaGroupOutboundConnectFailureReason as it conflicts
+ with the stated purpose of these variables, and the
+ required mtaStatusCode entry has been added to
+ MtaGroupErrorEntry. It should be noted that this last
+ change in no way affects the bits on the wire."
+ REVISION "199708170000Z"
+ DESCRIPTION
+ "This revision, published in RFC 2249, adds the
+ mtaGroupDescription and mtaGroupURL fields, conversion
+ operation counters, a group hierarchy description mechanism,
+ counters for specific errors, oldest message IDs, per-MTA
+ and per-group loop counters, and a new table for tracking
+ any errors an MTA encounters."
+ REVISION "199311280000Z"
+ DESCRIPTION
+ "The original version of this MIB was published in RFC 1566"
+ ::= {mib-2 28}
+
+mtaTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF MtaEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The table holding information specific to an MTA."
+ ::= {mta 1}
+
+mtaEntry OBJECT-TYPE
+ SYNTAX MtaEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The entry associated with each MTA."
+ INDEX {applIndex}
+ ::= {mtaTable 1}
+
+MtaEntry ::= SEQUENCE {
+ mtaReceivedMessages
+ Counter32,
+ mtaStoredMessages
+ Gauge32,
+ mtaTransmittedMessages
+ Counter32,
+ mtaReceivedVolume
+ Counter32,
+ mtaStoredVolume
+ Gauge32,
+ mtaTransmittedVolume
+ Counter32,
+ mtaReceivedRecipients
+ Counter32,
+ mtaStoredRecipients
+ Gauge32,
+ mtaTransmittedRecipients
+ Counter32,
+ mtaSuccessfulConvertedMessages
+ Counter32,
+ mtaFailedConvertedMessages
+ Counter32,
+ mtaLoopsDetected
+ Counter32
+}
+
+mtaReceivedMessages OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of messages received since MTA initialization.
+ This includes messages transmitted to this MTA from other
+ MTAs as well as messages that have been submitted to the
+ MTA directly by end-users or applications."
+ ::= {mtaEntry 1}
+
+mtaStoredMessages OBJECT-TYPE
+ SYNTAX Gauge32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of messages currently stored in the MTA.
+ This includes messages that are awaiting transmission to
+ some other MTA or are waiting for delivery to an end-user
+ or application."
+ ::= {mtaEntry 2}
+
+mtaTransmittedMessages OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of messages transmitted since MTA initialization.
+ This includes messages that were transmitted to some other
+ MTA or are waiting for delivery to an end-user or
+ application."
+ ::= {mtaEntry 3}
+
+mtaReceivedVolume OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "K-octets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total volume of messages received since MTA
+ initialization, measured in kilo-octets. This volume should
+ include all transferred data that is logically above the mail
+ transport protocol level. For example, an SMTP-based MTA
+ should use the number of kilo-octets in the message header
+ and body, while an X.400-based MTA should use the number of
+ kilo-octets of P2 data. This includes messages transmitted
+ to this MTA from other MTAs as well as messages that have
+ been submitted to the MTA directly by end-users or
+ applications."
+ ::= {mtaEntry 4}
+
+mtaStoredVolume OBJECT-TYPE
+ SYNTAX Gauge32
+ UNITS "K-octets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total volume of messages currently stored in the MTA,
+ measured in kilo-octets. This volume should include all
+ stored data that is logically above the mail transport
+ protocol level. For example, an SMTP-based MTA should
+ use the number of kilo-octets in the message header and
+ body, while an X.400-based MTA would use the number of
+ kilo-octets of P2 data. This includes messages that are
+ awaiting transmission to some other MTA or are waiting
+ for delivery to an end-user or application."
+ ::= {mtaEntry 5}
+
+mtaTransmittedVolume OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "K-octets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total volume of messages transmitted since MTA
+ initialization, measured in kilo-octets. This volume should
+ include all transferred data that is logically above the mail
+ transport protocol level. For example, an SMTP-based MTA
+ should use the number of kilo-octets in the message header
+ and body, while an X.400-based MTA should use the number of
+ kilo-octets of P2 data. This includes messages that were
+ transmitted to some other MTA or are waiting for delivery
+ to an end-user or application."
+ ::= {mtaEntry 6}
+
+mtaReceivedRecipients OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of recipients specified in all messages
+ received since MTA initialization. Recipients this MTA
+ has no responsibility for, i.e. inactive envelope
+ recipients or ones referred to in message headers,
+ should not be counted even if information about such
+ recipients is available. This includes messages
+ transmitted to this MTA from other MTAs as well as
+ messages that have been submitted to the MTA directly
+ by end-users or applications."
+ ::= {mtaEntry 7}
+
+mtaStoredRecipients OBJECT-TYPE
+ SYNTAX Gauge32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of recipients specified in all messages
+ currently stored in the MTA. Recipients this MTA has no
+ responsibility for, i.e. inactive envelope recipients or
+ ones referred to in message headers, should not be
+ counted. This includes messages that are awaiting
+ transmission to some other MTA or are waiting for
+ delivery to an end-user or application."
+ ::= {mtaEntry 8}
+
+mtaTransmittedRecipients OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of recipients specified in all messages
+ transmitted since MTA initialization. Recipients this
+ MTA had no responsibility for, i.e. inactive envelope
+ recipients or ones referred to in message headers,
+ should not be counted. This includes messages that were
+ transmitted to some other MTA or are waiting for
+ delivery to an end-user or application."
+ ::= {mtaEntry 9}
+
+mtaSuccessfulConvertedMessages OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of messages that have been successfully
+ converted from one form to another since MTA
+ initialization."
+ ::= {mtaEntry 10}
+
+mtaFailedConvertedMessages OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of messages for which an unsuccessful
+ attempt was made to convert them from one form to
+ another since MTA initialization."
+ ::= {mtaEntry 11}
+
+mtaLoopsDetected OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A message loop is defined as a situation where the MTA
+ decides that a given message will never be delivered to
+ one or more recipients and instead will continue to
+ loop endlessly through one or more MTAs. This variable
+ counts the number of times the MTA has detected such a
+ situation since MTA initialization. Note that the
+ mechanism MTAs use to detect loops (e.g., trace field
+ counting, count of references to this MTA in a trace
+ field, examination of DNS or other directory information,
+ etc.), the level at which loops are detected (e.g., per
+ message, per recipient, per directory entry, etc.), and
+ the handling of a loop once it is detected (e.g., looping
+
+ messages are held, looping messages are bounced or sent
+ to the postmaster, messages that the MTA knows will loop
+ won't be accepted, etc.) vary widely from one MTA to the
+ next and cannot be inferred from this variable."
+ ::= {mtaEntry 12}
+
+-- MTAs typically group inbound reception, queue storage, and
+-- outbound transmission in some way, rather than accounting for
+-- such operations only across the MTA as a whole. In the most
+-- extreme case separate information will be maintained for each
+-- different entity that receives messages and for each entity
+-- the MTA stores messages for and delivers messages to. Other
+-- MTAs may elect to treat all reception equally, all queue
+-- storage equally, all deliveries equally, or some combination
+-- of this. Overlapped groupings are also possible, where an MTA
+-- decomposes its traffic in different ways for different
+-- purposes.
+
+-- In any case, a grouping abstraction is an extremely useful for
+-- breaking down the activities of an MTA. For purposes of
+-- labelling this will be called a "group" in this MIB.
+
+-- Each group contains all the variables needed to monitor all
+-- aspects of an MTA's operation. However, the fact that all
+-- groups contain all possible variables does not imply that all
+-- groups must use all possible variables. For example, a single
+-- group might be used to monitor only one kind of event (inbound
+-- processing, outbound processing, or storage). In this sort of
+-- configuration any counters that are unused as a result of a
+-- given MTA's use of the group construct must be inaccessible;
+-- e.g., returning either a noSuchName error (for an SNMPv1 get),
+-- or a noSuchInstance exception (for an SNMPv2 get).
+
+-- Groups can be created at any time after MTA initialization. Once
+-- a group is created it should not be deleted or its mtaGroupIndex
+-- changed unless the MTA is reinitialized.
+
+-- Groups are not necessarily mutually exclusive. A given event may
+-- be recorded by more than one group, a message may be seen as
+-- stored by more than one group, and so on. Groups should be all
+-- inclusive, however: if groups are implemented all aspects of an
+-- MTA's operation should be registered in at least one group.
+-- This freedom lets implementors use different sets of groups to
+-- provide different "views" of an MTA.
+
+-- The possibility of overlap between groups means that summing
+-- variables across groups may not produce values equal to those in
+-- the mtaTable. mtaTable should always provide accurate information
+
+-- about the MTA as a whole.
+
+-- The term "channel" is often used in MTA implementations; channels
+-- are usually, but not always, equivalent to a group. However,
+-- this MIB does not use the term "channel" because there is no
+-- requirement that an MTA supporting this MIB has to map its
+-- "channel" abstraction one-to-one onto the MIB's group abstraction.
+
+-- An MTA may create a group or group of groups at any time. Once
+-- created, however, an MTA cannot delete an entry for a group from
+-- the group table. Deletion is only allowed when the MTA is
+-- reinitialized, and is not required even then. This restriction
+-- is imposed so that monitoring agents can rely on group
+-- assignments being consistent across multiple query operations.
+
+-- Groups may be laid out so as to form a hierarchical arrangement,
+-- with some groups acting as subgroups for other groups.
+-- Alternately, disjoint groups of groups may be used to provide
+-- different sorts of "snapshots" of MTA operation. The
+-- mtaGroupHierarchy variable provides an indication of how each
+-- group fits into the overall arrangement being used.
+
+-- Note that SNMP also defines and uses term "group". MTA groups are
+-- NOT the same as SNMP groups.
+
+mtaGroupTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF MtaGroupEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The table holding information specific to each MTA group."
+ ::= {mta 2}
+
+mtaGroupEntry OBJECT-TYPE
+ SYNTAX MtaGroupEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The entry associated with each MTA group."
+ INDEX {applIndex, mtaGroupIndex}
+ ::= {mtaGroupTable 1}
+
+MtaGroupEntry ::= SEQUENCE {
+ mtaGroupIndex
+ INTEGER,
+ mtaGroupReceivedMessages
+ Counter32,
+ mtaGroupRejectedMessages
+
+ Counter32,
+ mtaGroupStoredMessages
+ Gauge32,
+ mtaGroupTransmittedMessages
+ Counter32,
+ mtaGroupReceivedVolume
+ Counter32,
+ mtaGroupStoredVolume
+ Gauge32,
+ mtaGroupTransmittedVolume
+ Counter32,
+ mtaGroupReceivedRecipients
+ Counter32,
+ mtaGroupStoredRecipients
+ Gauge32,
+ mtaGroupTransmittedRecipients
+ Counter32,
+ mtaGroupOldestMessageStored
+ TimeInterval,
+ mtaGroupInboundAssociations
+ Gauge32,
+ mtaGroupOutboundAssociations
+ Gauge32,
+ mtaGroupAccumulatedInboundAssociations
+ Counter32,
+ mtaGroupAccumulatedOutboundAssociations
+ Counter32,
+ mtaGroupLastInboundActivity
+ TimeInterval,
+ mtaGroupLastOutboundActivity
+ TimeInterval,
+ mtaGroupLastOutboundAssociationAttempt
+ TimeInterval,
+ mtaGroupRejectedInboundAssociations
+ Counter32,
+ mtaGroupFailedOutboundAssociations
+ Counter32,
+ mtaGroupInboundRejectionReason
+ SnmpAdminString,
+ mtaGroupOutboundConnectFailureReason
+ SnmpAdminString,
+ mtaGroupScheduledRetry
+ TimeInterval,
+ mtaGroupMailProtocol
+ OBJECT IDENTIFIER,
+ mtaGroupName
+ SnmpAdminString,
+ mtaGroupSuccessfulConvertedMessages
+
+ Counter32,
+ mtaGroupFailedConvertedMessages
+ Counter32,
+ mtaGroupDescription
+ SnmpAdminString,
+ mtaGroupURL
+ URLString,
+ mtaGroupCreationTime
+ TimeInterval,
+ mtaGroupHierarchy
+ INTEGER,
+ mtaGroupOldestMessageId
+ SnmpAdminString,
+ mtaGroupLoopsDetected
+ Counter32
+}
+
+mtaGroupIndex OBJECT-TYPE
+ SYNTAX INTEGER (1..2147483647)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The index associated with a group for a given MTA."
+ ::= {mtaGroupEntry 1}
+
+mtaGroupReceivedMessages OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of messages received to this group since
+ group creation."
+ ::= {mtaGroupEntry 2}
+
+mtaGroupRejectedMessages OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of messages rejected by this group since
+ group creation."
+ ::= {mtaGroupEntry 3}
+
+mtaGroupStoredMessages OBJECT-TYPE
+ SYNTAX Gauge32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of messages currently stored in this
+ group's queue."
+ ::= {mtaGroupEntry 4}
+
+mtaGroupTransmittedMessages OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of messages transmitted by this group since
+ group creation."
+ ::= {mtaGroupEntry 5}
+
+mtaGroupReceivedVolume OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "K-octets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total volume of messages received to this group since
+ group creation, measured in kilo-octets. This volume
+ should include all transferred data that is logically above
+ the mail transport protocol level. For example, an
+ SMTP-based MTA should use the number of kilo-octets in the
+ message header and body, while an X.400-based MTA should use
+ the number of kilo-octets of P2 data."
+ ::= {mtaGroupEntry 6}
+
+mtaGroupStoredVolume OBJECT-TYPE
+ SYNTAX Gauge32
+ UNITS "K-octets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total volume of messages currently stored in this
+ group's queue, measured in kilo-octets. This volume should
+ include all stored data that is logically above the mail
+ transport protocol level. For example, an SMTP-based
+ MTA should use the number of kilo-octets in the message
+ header and body, while an X.400-based MTA would use the
+ number of kilo-octets of P2 data."
+ ::= {mtaGroupEntry 7}
+
+mtaGroupTransmittedVolume OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "K-octets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total volume of messages transmitted by this group
+ since group creation, measured in kilo-octets. This
+ volume should include all transferred data that is logically
+ above the mail transport protocol level. For example, an
+ SMTP-based MTA should use the number of kilo-octets in the
+ message header and body, while an X.400-based MTA should use
+ the number of kilo-octets of P2 data."
+ ::= {mtaGroupEntry 8}
+
+mtaGroupReceivedRecipients OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of recipients specified in all messages
+ received to this group since group creation.
+ Recipients this MTA has no responsibility for should not
+ be counted."
+ ::= {mtaGroupEntry 9}
+
+mtaGroupStoredRecipients OBJECT-TYPE
+ SYNTAX Gauge32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of recipients specified in all messages
+ currently stored in this group's queue. Recipients this
+ MTA has no responsibility for should not be counted."
+ ::= {mtaGroupEntry 10}
+
+mtaGroupTransmittedRecipients OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of recipients specified in all messages
+ transmitted by this group since group creation.
+ Recipients this MTA had no responsibility for should not
+ be counted."
+ ::= {mtaGroupEntry 11}
+
+mtaGroupOldestMessageStored OBJECT-TYPE
+ SYNTAX TimeInterval
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Time since the oldest message in this group's queue was
+
+ placed in the queue."
+ ::= {mtaGroupEntry 12}
+
+mtaGroupInboundAssociations OBJECT-TYPE
+ SYNTAX Gauge32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of current associations to the group, where the
+ group is the responder."
+ ::= {mtaGroupEntry 13}
+
+mtaGroupOutboundAssociations OBJECT-TYPE
+ SYNTAX Gauge32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of current associations to the group, where the
+ group is the initiator."
+ ::= {mtaGroupEntry 14}
+
+mtaGroupAccumulatedInboundAssociations OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of associations to the group since
+ group creation, where the MTA was the responder."
+ ::= {mtaGroupEntry 15}
+
+mtaGroupAccumulatedOutboundAssociations OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of associations from the group since
+ group creation, where the MTA was the initiator."
+ ::= {mtaGroupEntry 16}
+
+mtaGroupLastInboundActivity OBJECT-TYPE
+ SYNTAX TimeInterval
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Time since the last time that this group had an active
+ inbound association for purposes of message reception."
+ ::= {mtaGroupEntry 17}
+
+mtaGroupLastOutboundActivity OBJECT-TYPE
+ SYNTAX TimeInterval
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Time since the last time that this group had a
+ successful outbound association for purposes of
+ message delivery."
+ ::= {mtaGroupEntry 18}
+
+mtaGroupLastOutboundAssociationAttempt OBJECT-TYPE
+ SYNTAX TimeInterval
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Time since the last time that this group attempted
+ to make an outbound association for purposes of
+ message delivery."
+ ::= {mtaGroupEntry 34}
+
+mtaGroupRejectedInboundAssociations OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of inbound associations the group has
+ rejected, since group creation. Rejected associations
+ are not counted in the accumulated association totals."
+ ::= {mtaGroupEntry 19}
+
+mtaGroupFailedOutboundAssociations OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number associations where the group was the
+ initiator and association establishment has failed,
+ since group creation. Failed associations are
+ not counted in the accumulated association totals."
+ ::= {mtaGroupEntry 20}
+
+mtaGroupInboundRejectionReason OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The failure reason, if any, for the last association this
+ group refused to respond to. If no association attempt
+
+ has been made since the MTA was initialized the value
+ should be 'never'."
+ ::= {mtaGroupEntry 21}
+
+mtaGroupOutboundConnectFailureReason OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The failure reason, if any, for the last association attempt
+ this group initiated. If no association attempt has been
+ made since the MTA was initialized the value should be
+ 'never'."
+ ::= {mtaGroupEntry 22}
+
+mtaGroupScheduledRetry OBJECT-TYPE
+ SYNTAX TimeInterval
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The amount of time until this group is next scheduled to
+ attempt to make an association."
+ ::= {mtaGroupEntry 23}
+
+mtaGroupMailProtocol OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An identification of the protocol being used by this group.
+ For an group employing OSI protocols, this will be the
+ Application Context. For Internet applications, OID
+ values of the form {applTCPProtoID port} or {applUDPProtoID
+ port} are used for TCP-based and UDP-based protocols,
+ respectively. In either case 'port' corresponds to the
+ primary port number being used by the protocol. The
+ usual IANA procedures may be used to register ports for
+ new protocols. applTCPProtoID and applUDPProtoID are
+ defined in the NETWORK-SERVICES-MIB, RFC 2788."
+ ::= {mtaGroupEntry 24}
+
+mtaGroupName OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A descriptive name for the group. If this group connects to
+ a single remote MTA this should be the name of that MTA. If
+
+ this in turn is an Internet MTA this should be the domain
+ name. For an OSI MTA it should be the string encoded
+ distinguished name of the managed object using the format
+ defined in RFC 2253. For X.400(1984) MTAs which do not
+ have a Distinguished Name, the RFC 2156 syntax
+ 'mta in globalid' used in X400-Received: fields can be
+ used."
+ ::= {mtaGroupEntry 25}
+
+mtaGroupSuccessfulConvertedMessages OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of messages that have been successfully
+ converted from one form to another in this group
+ since group creation."
+ ::= {mtaGroupEntry 26}
+
+mtaGroupFailedConvertedMessages OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of messages for which an unsuccessful
+ attempt was made to convert them from one form to
+ another in this group since group creation."
+ ::= {mtaGroupEntry 27}
+
+mtaGroupDescription OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A description of the group's purpose. This information is
+ intended to identify the group in a status display."
+ ::= {mtaGroupEntry 28}
+
+mtaGroupURL OBJECT-TYPE
+ SYNTAX URLString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A URL pointing to a description of the group. This
+ information is intended to identify and briefly describe
+ the group in a status display."
+ ::= {mtaGroupEntry 29}
+
+mtaGroupCreationTime OBJECT-TYPE
+ SYNTAX TimeInterval
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Time since this group was first created."
+ ::= {mtaGroupEntry 30}
+
+mtaGroupHierarchy OBJECT-TYPE
+ SYNTAX INTEGER (-2147483648..2147483647)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Describes how this group fits into the hierarchy. A
+ positive value is interpreted as an mtaGroupIndex
+ value for some other group whose variables include
+ those of this group (and usually others). A negative
+ value is interpreted as a group collection code: Groups
+ with common negative hierarchy values comprise one
+ particular breakdown of MTA activity as a whole. A
+ zero value means that this MIB implementation doesn't
+ implement hierarchy indicators and thus the overall
+ group hierarchy cannot be determined."
+ ::= {mtaGroupEntry 31}
+
+mtaGroupOldestMessageId OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Message ID of the oldest message in the group's queue.
+ Whenever possible this should be in the form of an
+ RFC 822 msg-id; X.400 may convert X.400 message
+ identifiers to this form by following the rules laid
+ out in RFC2156."
+ ::= {mtaGroupEntry 32}
+
+mtaGroupLoopsDetected OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A message loop is defined as a situation where the MTA
+ decides that a given message will never be delivered to
+ one or more recipients and instead will continue to
+ loop endlessly through one or more MTAs. This variable
+ counts the number of times the MTA has detected such a
+ situation in conjunction with something associated with
+
+ this group since group creation. Note that the
+ mechanism MTAs use to detect loops (e.g., trace field
+ counting, count of references to this MTA in a trace
+ field, examination of DNS or other directory information,
+ etc.), the level at which loops are detected (e.g., per
+ message, per recipient, per directory entry, etc.), and
+ the handling of a loop once it is detected (e.g., looping
+ messages are held, looping messages are bounced or sent
+ to the postmaster, messages that the MTA knows will loop
+ won't be accepted, etc.) vary widely from one MTA to the
+ next and cannot be inferred from this variable."
+ ::= {mtaGroupEntry 33}
+
+-- The mtaGroupAssociationTable provides a means of correlating
+-- entries in the network services association table with the
+-- MTA group responsible for the association.
+
+mtaGroupAssociationTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF MtaGroupAssociationEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The table holding information regarding the associations
+ for each MTA group."
+ ::= {mta 3}
+
+mtaGroupAssociationEntry OBJECT-TYPE
+ SYNTAX MtaGroupAssociationEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The entry holding information regarding the associations
+ for each MTA group."
+ INDEX {applIndex, mtaGroupIndex, mtaGroupAssociationIndex}
+ ::= {mtaGroupAssociationTable 1}
+
+MtaGroupAssociationEntry ::= SEQUENCE {
+ mtaGroupAssociationIndex
+ INTEGER
+}
+
+mtaGroupAssociationIndex OBJECT-TYPE
+ SYNTAX INTEGER (1..2147483647)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Reference into association table to allow correlation of
+ this group's active associations with the association table."
+ ::= {mtaGroupAssociationEntry 1}
+
+-- The mtaGroupErrorTable gives each group a way of tallying
+-- the specific errors it has encountered. The mechanism
+-- defined here uses RFC 1893 status codes to identify
+-- various specific errors. There are also classes for generic
+-- errors of various sorts, and the entire mechanism is also
+-- extensible, in that new error codes can be defined at any
+-- time.
+
+mtaGroupErrorTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF MtaGroupErrorEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The table holding information regarding accumulated errors
+ for each MTA group."
+ ::= {mta 5}
+
+mtaGroupErrorEntry OBJECT-TYPE
+ SYNTAX MtaGroupErrorEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The entry holding information regarding accumulated
+ errors for each MTA group."
+ INDEX {applIndex, mtaGroupIndex, mtaStatusCode}
+ ::= {mtaGroupErrorTable 1}
+
+MtaGroupErrorEntry ::= SEQUENCE {
+ mtaStatusCode
+ INTEGER (4000000..5999999),
+ mtaGroupInboundErrorCount
+ Counter32,
+ mtaGroupInternalErrorCount
+ Counter32,
+ mtaGroupOutboundErrorCount
+ Counter32
+}
+
+mtaGroupInboundErrorCount OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Count of the number of errors of a given type that have
+ been accumulated in association with a particular group
+ while processing incoming messages. In the case of SMTP
+
+ these will typically be errors reporting by an SMTP
+ server to the remote client; in the case of X.400
+ these will typically be errors encountered while
+ processing an incoming message."
+ ::= {mtaGroupErrorEntry 1}
+
+mtaGroupInternalErrorCount OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Count of the number of errors of a given type that have
+ been accumulated in association with a particular group
+ during internal MTA processing."
+ ::= {mtaGroupErrorEntry 2}
+
+mtaGroupOutboundErrorCount OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Count of the number of errors of a given type that have
+ been accumulated in association with a particular group's
+ outbound connection activities. In the case of an SMTP
+ client these will typically be errors reported while
+ attempting to contact or while communicating with the
+ remote SMTP server. In the case of X.400 these will
+ typically be errors encountered while constructing
+ or attempting to deliver an outgoing message."
+ ::= {mtaGroupErrorEntry 3}
+
+mtaStatusCode OBJECT-TYPE
+ SYNTAX INTEGER (4000000..5999999)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An index capable of representing an Enhanced Mail System
+ Status Code. Enhanced Mail System Status Codes are
+ defined in RFC 1893. These codes have the form
+
+ class.subject.detail
+
+ Here 'class' is either 2, 4, or 5 and both 'subject' and
+ 'detail' are integers in the range 0..999. Given a status
+ code the corresponding index value is defined to be
+ ((class * 1000) + subject) * 1000 + detail. Both SMTP
+ error response codes and X.400 reason and diagnostic codes
+ can be mapped into these codes, resulting in a namespace
+
+ capable of describing most error conditions a mail system
+ encounters in a generic yet detailed way."
+ ::= {mtaGroupErrorEntry 4}
+
+-- Conformance information
+
+mtaConformance OBJECT IDENTIFIER ::= {mta 4}
+
+mtaGroups OBJECT IDENTIFIER ::= {mtaConformance 1}
+mtaCompliances OBJECT IDENTIFIER ::= {mtaConformance 2}
+
+-- Compliance statements
+
+mtaCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for RFC 1566 implementations
+ which support the Mail Monitoring MIB for basic
+ monitoring of MTAs."
+ MODULE -- this module
+ MANDATORY-GROUPS {mtaRFC1566Group}
+ ::= {mtaCompliances 1}
+
+mtaAssocCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for RFC 1566 implementations
+ which support the Mail Monitoring MIB for monitoring
+ of MTAs and their associations."
+ MODULE -- this module
+ MANDATORY-GROUPS {mtaRFC1566Group, mtaRFC1566AssocGroup}
+ ::= {mtaCompliances 2}
+
+mtaRFC2249Compliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for RFC 2249 implementations
+ which support the Mail Monitoring MIB for basic
+ monitoring of MTAs."
+ MODULE -- this module
+ MANDATORY-GROUPS {mtaRFC2249Group}
+ ::= {mtaCompliances 5}
+
+mtaRFC2249AssocCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for RFC 2249 implementations
+
+ which support the Mail Monitoring MIB for monitoring of
+ MTAs and their associations."
+ MODULE -- this module
+ MANDATORY-GROUPS {mtaRFC2249Group, mtaRFC2249AssocGroup}
+ ::= {mtaCompliances 6}
+
+mtaRFC2249ErrorCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for RFC 2249 implementations
+ which support the Mail Monitoring MIB for monitoring of
+ MTAs and detailed errors."
+ MODULE -- this module
+ MANDATORY-GROUPS {mtaRFC2249Group, mtaRFC2249ErrorGroup}
+ ::= {mtaCompliances 7}
+
+mtaRFC2249FullCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for RFC 2249 implementations
+ which support the full Mail Monitoring MIB for
+ monitoring of MTAs, associations, and detailed errors."
+ MODULE -- this module
+ MANDATORY-GROUPS {mtaRFC2249Group, mtaRFC2249AssocGroup,
+ mtaRFC2249ErrorGroup}
+ ::= {mtaCompliances 8}
+
+mtaRFC2789Compliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for RFC 2789 implementations
+ which support the Mail Monitoring MIB for basic
+ monitoring of MTAs."
+ MODULE -- this module
+ MANDATORY-GROUPS {mtaRFC2789Group}
+ ::= {mtaCompliances 9}
+
+mtaRFC2789AssocCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for RFC 2789 implementations
+ which support the Mail Monitoring MIB for monitoring of
+ MTAs and their associations."
+ MODULE -- this module
+ MANDATORY-GROUPS {mtaRFC2789Group, mtaRFC2789AssocGroup}
+ ::= {mtaCompliances 10}
+
+mtaRFC2789ErrorCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for RFC 2789 implementations
+ which support the Mail Monitoring MIB for monitoring of
+ MTAs and detailed errors."
+ MODULE -- this module
+ MANDATORY-GROUPS {mtaRFC2789Group, mtaRFC2789ErrorGroup}
+ ::= {mtaCompliances 11}
+
+mtaRFC2789FullCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for RFC 2789 implementations
+ which support the full Mail Monitoring MIB for
+ monitoring of MTAs, associations, and detailed errors."
+ MODULE -- this module
+ MANDATORY-GROUPS {mtaRFC2789Group, mtaRFC2789AssocGroup,
+ mtaRFC2789ErrorGroup}
+ ::= {mtaCompliances 12}
+
+-- Units of conformance
+
+mtaRFC1566Group OBJECT-GROUP
+ OBJECTS {
+ mtaReceivedMessages, mtaStoredMessages,
+ mtaTransmittedMessages, mtaReceivedVolume, mtaStoredVolume,
+ mtaTransmittedVolume, mtaReceivedRecipients,
+ mtaStoredRecipients, mtaTransmittedRecipients,
+ mtaGroupReceivedMessages, mtaGroupRejectedMessages,
+ mtaGroupStoredMessages, mtaGroupTransmittedMessages,
+ mtaGroupReceivedVolume, mtaGroupStoredVolume,
+ mtaGroupTransmittedVolume, mtaGroupReceivedRecipients,
+ mtaGroupStoredRecipients, mtaGroupTransmittedRecipients,
+ mtaGroupOldestMessageStored, mtaGroupInboundAssociations,
+ mtaGroupOutboundAssociations,
+ mtaGroupAccumulatedInboundAssociations,
+ mtaGroupAccumulatedOutboundAssociations,
+ mtaGroupLastInboundActivity, mtaGroupLastOutboundActivity,
+ mtaGroupRejectedInboundAssociations,
+ mtaGroupFailedOutboundAssociations,
+ mtaGroupInboundRejectionReason,
+ mtaGroupOutboundConnectFailureReason,
+ mtaGroupScheduledRetry, mtaGroupMailProtocol, mtaGroupName}
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing basic monitoring of MTAs.
+ This is the original set of such objects defined in RFC
+ 1566."
+ ::= {mtaGroups 10}
+
+mtaRFC1566AssocGroup OBJECT-GROUP
+ OBJECTS {
+ mtaGroupAssociationIndex}
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing monitoring of MTA
+ associations. This is the original set of such objects
+ defined in RFC 1566."
+ ::= {mtaGroups 11}
+
+mtaRFC2249Group OBJECT-GROUP
+ OBJECTS {
+ mtaReceivedMessages, mtaStoredMessages,
+ mtaTransmittedMessages, mtaReceivedVolume, mtaStoredVolume,
+ mtaTransmittedVolume, mtaReceivedRecipients,
+ mtaStoredRecipients, mtaTransmittedRecipients,
+ mtaSuccessfulConvertedMessages, mtaFailedConvertedMessages,
+ mtaGroupReceivedMessages, mtaGroupRejectedMessages,
+ mtaGroupStoredMessages, mtaGroupTransmittedMessages,
+ mtaGroupReceivedVolume, mtaGroupStoredVolume,
+ mtaGroupTransmittedVolume, mtaGroupReceivedRecipients,
+ mtaGroupStoredRecipients, mtaGroupTransmittedRecipients,
+ mtaGroupOldestMessageStored, mtaGroupInboundAssociations,
+ mtaGroupOutboundAssociations, mtaLoopsDetected,
+ mtaGroupAccumulatedInboundAssociations,
+ mtaGroupAccumulatedOutboundAssociations,
+ mtaGroupLastInboundActivity, mtaGroupLastOutboundActivity,
+ mtaGroupLastOutboundAssociationAttempt,
+ mtaGroupRejectedInboundAssociations,
+ mtaGroupFailedOutboundAssociations,
+ mtaGroupInboundRejectionReason,
+ mtaGroupOutboundConnectFailureReason,
+ mtaGroupScheduledRetry, mtaGroupMailProtocol, mtaGroupName,
+ mtaGroupSuccessfulConvertedMessages,
+ mtaGroupFailedConvertedMessages, mtaGroupDescription,
+ mtaGroupURL, mtaGroupCreationTime, mtaGroupHierarchy,
+ mtaGroupOldestMessageId, mtaGroupLoopsDetected}
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing basic monitoring of MTAs.
+ This group was originally defined in RFC 2249."
+ ::= {mtaGroups 4}
+
+mtaRFC2249AssocGroup OBJECT-GROUP
+ OBJECTS {
+ mtaGroupAssociationIndex}
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing monitoring of MTA
+ associations. This group was originally defined in RFC
+ 2249."
+ ::= {mtaGroups 5}
+
+mtaRFC2249ErrorGroup OBJECT-GROUP
+ OBJECTS {
+ mtaGroupInboundErrorCount, mtaGroupInternalErrorCount,
+ mtaGroupOutboundErrorCount}
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing monitoring of
+ detailed MTA errors. This group was originally defined
+ in RFC 2249."
+ ::= {mtaGroups 6}
+
+mtaRFC2789Group OBJECT-GROUP
+ OBJECTS {
+ mtaReceivedMessages, mtaStoredMessages,
+ mtaTransmittedMessages, mtaReceivedVolume, mtaStoredVolume,
+ mtaTransmittedVolume, mtaReceivedRecipients,
+ mtaStoredRecipients, mtaTransmittedRecipients,
+ mtaSuccessfulConvertedMessages, mtaFailedConvertedMessages,
+ mtaGroupReceivedMessages, mtaGroupRejectedMessages,
+ mtaGroupStoredMessages, mtaGroupTransmittedMessages,
+ mtaGroupReceivedVolume, mtaGroupStoredVolume,
+ mtaGroupTransmittedVolume, mtaGroupReceivedRecipients,
+ mtaGroupStoredRecipients, mtaGroupTransmittedRecipients,
+ mtaGroupOldestMessageStored, mtaGroupInboundAssociations,
+ mtaGroupOutboundAssociations, mtaLoopsDetected,
+ mtaGroupAccumulatedInboundAssociations,
+ mtaGroupAccumulatedOutboundAssociations,
+ mtaGroupLastInboundActivity, mtaGroupLastOutboundActivity,
+ mtaGroupLastOutboundAssociationAttempt,
+ mtaGroupRejectedInboundAssociations,
+ mtaGroupFailedOutboundAssociations,
+ mtaGroupInboundRejectionReason,
+ mtaGroupOutboundConnectFailureReason,
+ mtaGroupScheduledRetry, mtaGroupMailProtocol, mtaGroupName,
+ mtaGroupSuccessfulConvertedMessages,
+ mtaGroupFailedConvertedMessages, mtaGroupDescription,
+ mtaGroupURL, mtaGroupCreationTime, mtaGroupHierarchy,
+ mtaGroupOldestMessageId, mtaGroupLoopsDetected}
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing basic monitoring of MTAs.
+
+ This is the appropriate group for RFC 2789."
+ ::= {mtaGroups 7}
+
+mtaRFC2789AssocGroup OBJECT-GROUP
+ OBJECTS {
+ mtaGroupAssociationIndex}
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing monitoring of MTA
+ associations. This is the appropriate group for RFC
+ 2789 association monitoring."
+ ::= {mtaGroups 8}
+
+mtaRFC2789ErrorGroup OBJECT-GROUP
+ OBJECTS {
+ mtaGroupInboundErrorCount, mtaGroupInternalErrorCount,
+ mtaGroupOutboundErrorCount}
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing monitoring of
+ detailed MTA errors. This is the appropriate group
+ for RFC 2789 error monitoring."
+ ::= {mtaGroups 9}
+
+END
diff --git a/php/extras/mibs/Makefile.in b/php/extras/mibs/Makefile.in
new file mode 100644
index 000000000..3fec0979d
--- /dev/null
+++ b/php/extras/mibs/Makefile.in
@@ -0,0 +1,79 @@
+#
+# Makefile to install mib files.
+#
+
+top_builddir=..
+
+VPATH = @srcdir@
+
+#
+# Stuff here
+#
+OTHERINSTALL=mibsinstall
+OTHERUNINSTALL=mibsuninstall
+
+
+V1MIBS = RFC1155-SMI.txt RFC1213-MIB.txt RFC-1215.txt
+
+V2MIBS = SNMPv2-CONF.txt SNMPv2-SMI.txt SNMPv2-TC.txt SNMPv2-TM.txt \
+ SNMPv2-MIB.txt
+
+V3MIBS = SNMP-FRAMEWORK-MIB.txt SNMP-MPD-MIB.txt SNMP-TARGET-MIB.txt \
+ SNMP-NOTIFICATION-MIB.txt SNMP-PROXY-MIB.txt \
+ SNMP-USER-BASED-SM-MIB.txt SNMP-VIEW-BASED-ACM-MIB.txt \
+ SNMP-COMMUNITY-MIB.txt TRANSPORT-ADDRESS-MIB.txt
+
+AGENTMIBS = AGENTX-MIB.txt SMUX-MIB.txt
+
+IANAMIBS = IANAifType-MIB.txt IANA-LANGUAGE-MIB.txt \
+ IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt
+
+RFCMIBS = IF-MIB.txt IF-INVERTED-STACK-MIB.txt \
+ EtherLike-MIB.txt \
+ IP-MIB.txt IP-FORWARD-MIB.txt IANA-RTPROTO-MIB.txt \
+ TCP-MIB.txt UDP-MIB.txt \
+ INET-ADDRESS-MIB.txt HCNUM-TC.txt \
+ HOST-RESOURCES-MIB.txt HOST-RESOURCES-TYPES.txt \
+ RMON-MIB.txt \
+ IPV6-TC.txt IPV6-MIB.txt IPV6-ICMP-MIB.txt IPV6-TCP-MIB.txt \
+ IPV6-UDP-MIB.txt \
+ DISMAN-EVENT-MIB.txt DISMAN-SCRIPT-MIB.txt DISMAN-SCHEDULE-MIB.txt \
+ NOTIFICATION-LOG-MIB.txt SNMP-USM-AES-MIB.txt \
+ SNMP-USM-DH-OBJECTS-MIB.txt
+
+NETSNMPMIBS = NET-SNMP-TC.txt NET-SNMP-MIB.txt NET-SNMP-AGENT-MIB.txt \
+ NET-SNMP-EXAMPLES-MIB.txt NET-SNMP-EXTEND-MIB.txt
+
+UCDMIBS = UCD-SNMP-MIB.txt UCD-DEMO-MIB.txt UCD-IPFWACC-MIB.txt \
+ UCD-DLMOD-MIB.txt UCD-DISKIO-MIB.txt
+
+DEFAULTMIBS = @default_mibs_install@
+
+MIBS = $(V1MIBS) $(V2MIBS) $(V3MIBS) $(RFCMIBS) \
+ $(AGENTMIBS) $(IANAMIBS) \
+ $(NETSNMPMIBS) $(UCDMIBS) $(DEFAULTMIBS)
+
+all: standardall
+
+mibsinstall: installdirs
+ @for i in $(MIBS) ; do \
+ $(INSTALL_DATA) $(srcdir)/$$i $(INSTALL_PREFIX)$(mibdir) ; \
+ echo "install: installed $$i in $(INSTALL_PREFIX)$(mibdir)" ; \
+ done
+
+mibsuninstall: installdirs
+ @for i in $(MIBS) ; do \
+ rm -f $(INSTALL_PREFIX)$(mibdir)/$$i ; \
+ echo "removed $$i from $(INSTALL_PREFIX)$(mibdir)" ; \
+ done
+
+installdirs:
+ @$(SHELL) $(srcdir)/../mkinstalldirs $(INSTALL_PREFIX)$(mibdir)
+
+htmldir:
+ @if test ! -d html ; then \
+ mkdir html ; \
+ fi
+ rm -f html/index.html ; \
+ $(PERL) makehtml.pl -W -M `pwd` -D html $(MIBS) > html/index.html
+
diff --git a/php/extras/mibs/Makefile.mib b/php/extras/mibs/Makefile.mib
new file mode 100644
index 000000000..4c9989564
--- /dev/null
+++ b/php/extras/mibs/Makefile.mib
@@ -0,0 +1,178 @@
+# RFCHOST = ftp://ftp.nordu.net
+RFCHOST = ftp://ftp.ietf.org
+RFCDIR = rfc
+
+IANAHOST = http://www.iana.org
+IANADIR = assignments
+
+PREFIX = /usr/local
+ALLDIR = $(PREFIX)/share/snmp/rfc.orig
+INSTDIR = $(PREFIX)/share/snmp/rfc
+
+MIBS = SNMPv2-TC.txt SNMPv2-TM.txt SNMPv2-SMI.txt SNMPv2-MIB.txt \
+ SNMPv2-CONF.txt HCNUM-TC.txt INET-ADDRESS-MIB.txt \
+ SNMP-FRAMEWORK-MIB.txt SNMP-MPD-MIB.txt SNMP-USER-BASED-SM-MIB.txt \
+ SNMP-VIEW-BASED-ACM-MIB.txt SNMP-COMMUNITY-MIB.txt \
+ SNMP-TARGET-MIB.txt SNMP-NOTIFICATION-MIB.txt SNMP-PROXY-MIB.txt \
+ AGENTX-MIB.txt SMUX-MIB.txt \
+ DISMAN-SCRIPT-MIB.txt DISMAN-SCHEDULE-MIB.txt \
+ IANA-LANGUAGE-MIB.txt IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt \
+ IF-MIB.txt IF-INVERTED-STACK-MIB.txt \
+ IP-MIB.txt IP-FORWARD-MIB.txt TCP-MIB.txt UDP-MIB.txt \
+ IANAifType-MIB.txt EtherLike-MIB.txt \
+ IPV6-TC.txt IPV6-MIB.txt IPV6-ICMP-MIB.txt \
+ IPV6-TCP-MIB.txt IPV6-UDP-MIB.txt \
+ HOST-RESOURCES-MIB.txt HOST-RESOURCES-TYPES.txt \
+ NETWORK-SERVICES-MIB.txt MTA-MIB.txt \
+ RMON-MIB.txt \
+ RFC1155-SMI.txt RFC1213-MIB.txt
+
+MIBDEPS = Makefile.mib mibfetch smistrip
+
+all: $(MIBS)
+
+allmibs: ianamibs rfcmibs
+
+rfc: allmibs
+ rm -fr $(INSTDIR)
+ mkdir $(INSTDIR)
+ cp $(ALLDIR)/* $(INSTDIR)
+ if test `uname` = SunOS ; \
+ then gpatch -d $(INSTDIR) < rfcmibs.diff; \
+ else patch -d $(INSTDIR) < rfcmibs.diff; \
+ fi
+ rm -f $(INSTDIR)/*orig
+
+clean:
+ rm $(MIBS)
+
+SNMP-FRAMEWORK-MIB.txt: $(MIBDEPS)
+ ./mibfetch $(RFCHOST) $(RFCDIR) 3411
+
+SNMP-MPD-MIB.txt: $(MIBDEPS)
+ ./mibfetch $(RFCHOST) $(RFCDIR) 3412 SNMP-MPD-MIB
+
+SNMP-TARGET-MIB.txt SNMP-NOTIFICATION-MIB.txt SNMP-PROXY-MIB.txt: $(MIBDEPS)
+ ./mibfetch $(RFCHOST) $(RFCDIR) 3413
+
+SNMP-USER-BASED-SM-MIB.txt: $(MIBDEPS)
+ ./mibfetch $(RFCHOST) $(RFCDIR) 3414 SNMP-USER-BASED-SM-MIB
+
+SNMP-VIEW-BASED-ACM-MIB.txt: $(MIBDEPS)
+ ./mibfetch $(RFCHOST) $(RFCDIR) 3415
+
+SNMP-COMMUNITY-MIB.txt: $(MIBDEPS)
+ ./mibfetch $(RFCHOST) $(RFCDIR) 2576
+
+SNMPv2-SMI.txt: $(MIBDEPS)
+ ./mibfetch $(RFCHOST) $(RFCDIR) 2578 SNMPv2-SMI
+
+SNMPv2-TC.txt: $(MIBDEPS)
+ ./mibfetch $(RFCHOST) $(RFCDIR) 2579
+
+SNMPv2-CONF.txt: $(MIBDEPS)
+ ./mibfetch $(RFCHOST) $(RFCDIR) 2580
+
+SNMPv2-TM.txt: $(MIBDEPS)
+ ./mibfetch $(RFCHOST) $(RFCDIR) 3417
+
+SNMPv2-MIB.txt: $(MIBDEPS)
+ ./mibfetch $(RFCHOST) $(RFCDIR) 3418
+
+AGENTX-MIB.txt: $(MIBDEPS)
+ ./mibfetch $(RFCHOST) $(RFCDIR) 2742
+
+SMUX-MIB.txt: $(MIBDEPS)
+ ./mibfetch $(RFCHOST) $(RFCDIR) 1227 SMUX-MIB
+
+DISMAN-SCHEDULE-MIB.txt: $(MIBDEPS)
+ ./mibfetch $(RFCHOST) $(RFCDIR) 3231
+
+DISMAN-SCRIPT-MIB.txt: $(MIBDEPS)
+ ./mibfetch $(RFCHOST) $(RFCDIR) 3165
+
+IF-MIB.txt: $(MIBDEPS)
+ ./mibfetch $(RFCHOST) $(RFCDIR) 2863
+
+IF-INVERTED-STACK-MIB.txt: $(MIBDEPS)
+ ./mibfetch $(RFCHOST) $(RFCDIR) 2864
+
+HCNUM-TC.txt: $(MIBDEPS)
+ ./mibfetch $(RFCHOST) $(RFCDIR) 2856
+
+INET-ADDRESS-MIB.txt: $(MIBDEPS)
+ ./mibfetch $(RFCHOST) $(RFCDIR) 4001
+
+EtherLike-MIB.txt: $(MIBDEPS)
+ ./mibfetch $(RFCHOST) $(RFCDIR) 3635
+
+IANAifType-MIB.txt: $(MIBDEPS)
+ ./mibfetch -x $(IANAHOST) $(IANADIR) ianaiftype-mib
+
+IANA-LANGUAGE-MIB.txt: $(MIBDEPS)
+ ./mibfetch -x $(IANAHOST) $(IANADIR) ianalanguage-mib
+
+IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt: $(MIBDEPS)
+ ./mibfetch -x $(IANAHOST) $(IANADIR) ianaaddressfamilynumbers-mib
+
+IP-MIB.txt: $(MIBDEPS)
+ ./mibfetch $(RFCHOST) $(RFCDIR) 2011
+
+IP-FORWARD-MIB.txt: $(MIBDEPS)
+ ./mibfetch $(RFCHOST) $(RFCDIR) 2096
+
+TCP-MIB.txt: $(MIBDEPS)
+ ./mibfetch $(RFCHOST) $(RFCDIR) 4022
+
+UDP-MIB.txt: $(MIBDEPS)
+ ./mibfetch $(RFCHOST) $(RFCDIR) 2013
+
+IPV6-TC.txt IPV6-MIB.txt: $(MIBDEPS)
+ ./mibfetch $(RFCHOST) $(RFCDIR) 2465
+
+IPV6-ICMP-MIB.txt: $(MIBDEPS)
+ ./mibfetch $(RFCHOST) $(RFCDIR) 2466
+
+IPV6-TCP-MIB.txt: $(MIBDEPS)
+ ./mibfetch $(RFCHOST) $(RFCDIR) 2452
+
+IPV6-UDP-MIB.txt: $(MIBDEPS)
+ ./mibfetch $(RFCHOST) $(RFCDIR) 2454
+
+HOST-RESOURCES-MIB.txt HOST-RESOURCES-TYPES.txt: $(MIBDEPS)
+ ./mibfetch $(RFCHOST) $(RFCDIR) 2790
+
+RMON-MIB.txt: $(MIBDEPS)
+ ./mibfetch $(RFCHOST) $(RFCDIR) 2819
+
+NETWORK-SERVICES-MIB.txt: $(MIBDEPS)
+ ./mibfetch $(RFCHOST) $(RFCDIR) 2788
+
+MTA-MIB.txt: $(MIBDEPS)
+ ./mibfetch $(RFCHOST) $(RFCDIR) 2789
+
+RFC1155-SMI.txt: $(MIBDEPS)
+ ./mibfetch $(RFCHOST) $(RFCDIR) 1155
+
+RFC1213-MIB.txt: $(MIBDEPS)
+ ./mibfetch $(RFCHOST) $(RFCDIR) 1213
+
+ianamibs: ianalist
+ [ -d $(ALLDIR) ] || mkdir $(ALLDIR)
+ cat ianalist | while read file mibs; \
+ do \
+ if [ "$$file" != "#" ]; \
+ then \
+ ./mibfetch -d $(ALLDIR) -x $(IANAHOST) $(IANADIR) $$file $$mibs; \
+ fi; \
+ done
+
+rfcmibs: rfclist
+ [ -d $(ALLDIR) ] || mkdir $(ALLDIR)
+ cat rfclist | while read rfc mibs; \
+ do \
+ if [ "$$rfc" != "#" ]; \
+ then \
+ ./mibfetch -d $(ALLDIR) $(RFCHOST) $(RFCDIR) $$rfc $$mibs; \
+ fi; \
+ done
diff --git a/php/extras/mibs/NET-SNMP-AGENT-MIB.txt b/php/extras/mibs/NET-SNMP-AGENT-MIB.txt
new file mode 100644
index 000000000..54d28593b
--- /dev/null
+++ b/php/extras/mibs/NET-SNMP-AGENT-MIB.txt
@@ -0,0 +1,550 @@
+NET-SNMP-AGENT-MIB DEFINITIONS ::= BEGIN
+
+--
+-- Defines control and monitoring structures for the Net-SNMP agent.
+--
+
+IMPORTS
+ SnmpAdminString
+ FROM SNMP-FRAMEWORK-MIB
+
+ netSnmpObjects, netSnmpModuleIDs, netSnmpNotifications, netSnmpGroups
+ FROM NET-SNMP-MIB
+
+ OBJECT-TYPE, NOTIFICATION-TYPE, MODULE-IDENTITY, Integer32, Unsigned32
+ FROM SNMPv2-SMI
+
+ OBJECT-GROUP, NOTIFICATION-GROUP
+ FROM SNMPv2-CONF
+
+ TEXTUAL-CONVENTION, DisplayString, RowStatus, TruthValue
+ FROM SNMPv2-TC;
+
+
+netSnmpAgentMIB MODULE-IDENTITY
+ LAST-UPDATED "200502070000Z"
+ ORGANIZATION "www.net-snmp.org"
+ CONTACT-INFO
+ "postal: Wes Hardaker
+ P.O. Box 382
+ Davis CA 95617
+
+ email: net-snmp-coders@lists.sourceforge.net"
+ DESCRIPTION
+ "Defines control and monitoring structures for the Net-SNMP agent."
+ REVISION "200502070000Z"
+ DESCRIPTION
+ "Fixing syntax errors"
+ REVISION "200202090000Z"
+ DESCRIPTION
+ "First revision."
+ ::= { netSnmpModuleIDs 2 }
+
+
+nsVersion OBJECT IDENTIFIER ::= {netSnmpObjects 1}
+nsMibRegistry OBJECT IDENTIFIER ::= {netSnmpObjects 2}
+nsExtensions OBJECT IDENTIFIER ::= {netSnmpObjects 3}
+nsDLMod OBJECT IDENTIFIER ::= {netSnmpObjects 4}
+nsCache OBJECT IDENTIFIER ::= {netSnmpObjects 5}
+nsErrorHistory OBJECT IDENTIFIER ::= {netSnmpObjects 6}
+nsConfiguration OBJECT IDENTIFIER ::= {netSnmpObjects 7}
+nsTransactions OBJECT IDENTIFIER ::= {netSnmpObjects 8}
+
+--
+-- MIB Module data caching management
+--
+
+NetsnmpCacheStatus ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION "an indication of the status of data caching entries"
+ SYNTAX INTEGER {
+ enabled(1),
+ disabled(2),
+ empty (3),
+ cached (4),
+ expired(5)
+ }
+
+nsCacheDefaultTimeout OBJECT-TYPE
+ SYNTAX INTEGER -- ???
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "Default cache timeout value (unless overridden
+ for a particular cache entry)."
+ DEFVAL { 5 --seconds-- }
+ ::= { nsCache 1 }
+
+nsCacheEnabled OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "Whether data caching is active overall."
+ DEFVAL { true }
+ ::= { nsCache 2 }
+
+nsCacheTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF NsCacheEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table of individual MIB module data caches."
+ ::= { nsCache 3 }
+
+nsCacheEntry OBJECT-TYPE
+ SYNTAX NsCacheEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A conceptual row within the cache table."
+ INDEX { IMPLIED nsCachedOID }
+ ::= { nsCacheTable 1 }
+
+NsCacheEntry ::= SEQUENCE {
+ nsCachedOID OBJECT IDENTIFIER,
+ nsCacheTimeout INTEGER, -- ?? TimeTicks ??
+ nsCacheStatus NetsnmpCacheStatus -- ?? INTEGER ??
+}
+
+nsCachedOID OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The root OID of the data being cached."
+ ::= { nsCacheEntry 1 }
+
+nsCacheTimeout OBJECT-TYPE
+ SYNTAX INTEGER
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The length of time (?in seconds) for which the data in
+ this particular cache entry will remain valid."
+ ::= { nsCacheEntry 2 }
+
+nsCacheStatus OBJECT-TYPE
+ SYNTAX NetsnmpCacheStatus
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The current status of this particular cache entry.
+ Acceptable values for Set requests are 'enabled(1)',
+ 'disabled(2)' or 'empty(3)' (to clear all cached data).
+ Requests to read the value of such an object will
+ return 'disabled(2)' through to 'expired(5)'."
+ ::= { nsCacheEntry 3 }
+
+--
+-- Agent configuration
+-- Debug and logging output
+--
+
+nsConfigDebug OBJECT IDENTIFIER ::= {nsConfiguration 1}
+nsConfigLogging OBJECT IDENTIFIER ::= {nsConfiguration 2}
+
+nsDebugEnabled OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "Whether the agent is configured to generate debugging output"
+ DEFVAL { false }
+ ::= { nsConfigDebug 1 }
+
+nsDebugOutputAll OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "Whether the agent is configured to display all debugging output
+ rather than filtering on individual debug tokens. Nothing will
+ be generated unless nsDebugEnabled is also true(1)"
+ DEFVAL { false }
+ ::= { nsConfigDebug 2 }
+
+nsDebugDumpPdu OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "Whether the agent is configured to display raw packet dumps.
+ This is unrelated to the nsDebugEnabled setting."
+ DEFVAL { false }
+ ::= { nsConfigDebug 3 }
+
+nsDebugTokenTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF NsDebugTokenEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table of individual debug tokens, used to control the selection
+ of what debugging output should be produced. This table is only
+ effective if nsDebugOutputAll is false(2), and nothing will
+ be generated unless nsDebugEnabled is also true(1)"
+ ::= { nsConfigDebug 4 }
+
+nsDebugTokenEntry OBJECT-TYPE
+ SYNTAX NsDebugTokenEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A conceptual row within the debug token table."
+ INDEX { IMPLIED nsDebugTokenPrefix }
+ ::= { nsDebugTokenTable 1 }
+
+NsDebugTokenEntry ::= SEQUENCE {
+ nsDebugTokenPrefix DisplayString,
+ nsDebugTokenStatus RowStatus
+}
+
+nsDebugTokenPrefix OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A token prefix for which to generate the corresponding
+ debugging output. Note that debug output will be generated
+ for all registered debug statements sharing this prefix
+ (rather than an exact match). Nothing will be generated
+ unless both nsDebuggingEnabled is set true(1) and the
+ corresponding nsDebugTokenStatus value is active(1)."
+ ::= { nsDebugTokenEntry 2 }
+
+nsDebugTokenStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Whether to generate debug output for the corresponding debug
+ token prefix. Nothing will be generated unless both
+ nsDebuggingEnabled is true(1) and this instance is active(1).
+ Note that is valid for an instance to be left with the value
+ notInService(2) indefinitely - i.e. the meaning of 'abnormally
+ long' (see RFC 2579, RowStatus) for this table is infinite."
+ ::= { nsDebugTokenEntry 4 }
+
+--
+-- Logging configuration
+--
+
+nsLoggingTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF NsLoggingEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table of individual logging output destinations, used to control
+ where various levels of output from the agent should be directed."
+ ::= { nsConfigLogging 1 }
+
+nsLoggingEntry OBJECT-TYPE
+ SYNTAX NsLoggingEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A conceptual row within the logging table."
+ INDEX { nsLogLevel, IMPLIED nsLogToken }
+ ::= { nsLoggingTable 1 }
+
+NsLoggingEntry ::= SEQUENCE {
+ nsLogLevel INTEGER,
+ nsLogToken DisplayString,
+ nsLogType INTEGER,
+ nsLogMaxLevel INTEGER,
+ nsLogStatus RowStatus
+}
+
+nsLogLevel OBJECT-TYPE
+ SYNTAX INTEGER {
+ emergency(0),
+ alert (1),
+ critical (2),
+ error (3),
+ warning (4),
+ notice (5),
+ info (6),
+ debug (7)
+ }
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The (minimum) priority level for which this logging entry
+ should be applied."
+ ::= { nsLoggingEntry 1 }
+
+nsLogToken OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A token for which to generate logging entries.
+ Depending on the style of logging, this may either
+ be simply an arbitrary token, or may have some
+ particular meaning (such as the filename to log to)."
+ ::= { nsLoggingEntry 2 }
+
+nsLogType OBJECT-TYPE
+ SYNTAX INTEGER {
+ stdout (1),
+ stderr (2),
+ file (3),
+ syslog (4),
+ callback (5)
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The type of logging for this entry."
+ ::= { nsLoggingEntry 3 }
+
+nsLogMaxLevel OBJECT-TYPE
+ SYNTAX INTEGER {
+ emergency(0),
+ alert (1),
+ critical (2),
+ error (3),
+ warning (4),
+ notice (5),
+ info (6),
+ debug (7)
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The maximum priority level for which this logging entry
+ should be applied."
+ DEFVAL { emergency }
+ ::= { nsLoggingEntry 4 }
+
+nsLogStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Whether to generate logging output for this entry.
+ Note that is valid for an instance to be left with the value
+ notInService(2) indefinitely - i.e. the meaning of 'abnormally
+ long' (see RFC 2579, RowStatus) for this table is infinite."
+ ::= { nsLoggingEntry 5 }
+
+--
+-- Monitoring outstanding "transactions"
+-- (i.e. requests sent to AgentX subagents, or proxied agents)
+--
+
+nsTransactionTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF NsTransactionEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Lists currently outstanding transactions in the net-snmp agent.
+ This includes requests to AgentX subagents, or proxied SNMP agents."
+ ::= { nsTransactions 1 }
+
+nsTransactionEntry OBJECT-TYPE
+ SYNTAX NsTransactionEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A row describing a given transaction."
+ INDEX { nsTransactionID }
+ ::= {nsTransactionTable 1 }
+
+NsTransactionEntry ::= SEQUENCE {
+ nsTransactionID Unsigned32,
+ nsTransactionMode Integer32
+}
+
+nsTransactionID OBJECT-TYPE
+ SYNTAX Unsigned32 (0..4294967295)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The internal identifier for a given transaction."
+ ::= { nsTransactionEntry 1 }
+
+nsTransactionMode OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The mode number for the current operation being performed."
+ ::= { nsTransactionEntry 2 }
+
+
+--
+-- Monitoring the MIB modules currently registered in the agent
+-- (an updated version of UCD-SNMP-MIB::mrTable)
+--
+
+nsModuleTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF NsModuleEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table displaying all the oid's registered by mib modules in
+ the agent. Since the agent is modular in nature, this lists
+ each module's OID it is responsible for and the name of the module"
+ ::= { nsMibRegistry 1 }
+
+nsModuleEntry OBJECT-TYPE
+ SYNTAX NsModuleEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry containing a registered mib oid."
+ INDEX { nsmContextName, nsmRegistrationPoint,
+ nsmRegistrationPriority }
+ ::= { nsModuleTable 1 }
+
+NsModuleEntry ::= SEQUENCE {
+ nsmContextName SnmpAdminString,
+ nsmRegistrationPoint OBJECT IDENTIFIER,
+ nsmRegistrationPriority INTEGER,
+ nsModuleName DisplayString,
+ nsModuleModes BITS,
+ nsModuleTimeout Integer32
+}
+
+nsmContextName OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The context name the module is registered under."
+ ::= { nsModuleEntry 1 }
+
+nsmRegistrationPoint OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The registry OID of a mib module."
+ ::= { nsModuleEntry 2 }
+
+nsmRegistrationPriority OBJECT-TYPE
+ SYNTAX INTEGER (-2147483648..2147483647)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The priority of the registered mib module."
+ ::= { nsModuleEntry 3 }
+
+nsModuleName OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The module name that registered this OID."
+ ::= { nsModuleEntry 4 }
+
+nsModuleModes OBJECT-TYPE
+ SYNTAX BITS { getAndGetNext(0), set(1), getBulk(2) }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The modes that the particular lower level handler can cope
+ with directly."
+ ::= { nsModuleEntry 5 }
+
+nsModuleTimeout OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The registered timeout. This is only meaningful for handlers
+ that expect to return results at a later date (subagents,
+ etc)"
+ ::= { nsModuleEntry 6 }
+
+
+--
+-- Notifications relating to the basic operation of the agent
+--
+
+nsNotifyStart NOTIFICATION-TYPE
+ STATUS current
+ DESCRIPTION
+ "An indication that the agent has started running."
+ ::= { netSnmpNotifications 1 }
+
+nsNotifyShutdown NOTIFICATION-TYPE
+ STATUS current
+ DESCRIPTION
+ "An indication that the agent is in the process of being shut down."
+ ::= { netSnmpNotifications 2 }
+
+nsNotifyRestart NOTIFICATION-TYPE
+ STATUS current
+ DESCRIPTION
+ "An indication that the agent has been restarted.
+ This does not imply anything about whether the configuration has
+ changed or not (unlike the standard coldStart or warmStart traps)"
+ ::= { netSnmpNotifications 3 }
+
+
+--
+-- Conformance-related definitions
+--
+
+nsModuleGroup OBJECT-GROUP
+ OBJECTS {
+ nsModuleName, nsModuleModes, nsModuleTimeout
+ }
+ STATUS current
+ DESCRIPTION
+ "The objects relating to the list of MIB modules registered
+ with the Net-SNMP agent."
+ ::= { netSnmpGroups 2 }
+
+nsCacheGroup OBJECT-GROUP
+ OBJECTS {
+ nsCacheDefaultTimeout, nsCacheEnabled,
+ nsCacheTimeout, nsCacheStatus
+ }
+ STATUS current
+ DESCRIPTION
+ "The objects relating to data caching in the Net-SNMP agent."
+ ::= { netSnmpGroups 4 }
+
+nsConfigGroups OBJECT IDENTIFIER ::= {netSnmpGroups 7}
+
+nsDebugGroup OBJECT-GROUP
+ OBJECTS {
+ nsDebugEnabled, nsDebugOutputAll, nsDebugDumpPdu,
+ nsDebugTokenStatus
+ }
+ STATUS current
+ DESCRIPTION
+ "The objects relating to debug configuration in the Net-SNMP agent."
+ ::= { nsConfigGroups 1 }
+
+nsLoggingGroup OBJECT-GROUP
+ OBJECTS {
+ nsLogType, nsLogMaxLevel, nsLogStatus
+ }
+ STATUS current
+ DESCRIPTION
+ "The objects relating to logging configuration in the Net-SNMP agent."
+ ::= { nsConfigGroups 2 }
+
+nsTransactionGroup OBJECT-GROUP
+ OBJECTS {
+ nsTransactionMode
+ }
+ STATUS current
+ DESCRIPTION
+ "The objects relating to transaction monitoring in the Net-SNMP agent."
+ ::= { netSnmpGroups 8 }
+
+nsAgentNotifyGroup NOTIFICATION-GROUP
+ NOTIFICATIONS { nsNotifyStart, nsNotifyShutdown, nsNotifyRestart }
+ STATUS current
+ DESCRIPTION
+ "The notifications relating to the basic operation of the Net-SNMP agent."
+ ::= { netSnmpGroups 9 }
+
+
+
+END
diff --git a/php/extras/mibs/NET-SNMP-EXAMPLES-MIB.txt b/php/extras/mibs/NET-SNMP-EXAMPLES-MIB.txt
new file mode 100644
index 000000000..be49ebf58
--- /dev/null
+++ b/php/extras/mibs/NET-SNMP-EXAMPLES-MIB.txt
@@ -0,0 +1,285 @@
+NET-SNMP-EXAMPLES-MIB DEFINITIONS ::= BEGIN
+
+--
+-- Example MIB objects for agent module example implementations
+--
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE, Integer32,
+ NOTIFICATION-TYPE FROM SNMPv2-SMI
+ SnmpAdminString FROM SNMP-FRAMEWORK-MIB
+ netSnmp FROM NET-SNMP-MIB
+ RowStatus, StorageType FROM SNMPv2-TC
+ InetAddressType, InetAddress FROM INET-ADDRESS-MIB
+;
+
+netSnmpExamples MODULE-IDENTITY
+ LAST-UPDATED "200406150000Z"
+ ORGANIZATION "www.net-snmp.org"
+ CONTACT-INFO
+ "postal: Wes Hardaker
+ P.O. Box 382
+ Davis CA 95617
+
+ email: net-snmp-coders@lists.sourceforge.net"
+ DESCRIPTION
+ "Example MIB objects for agent module example implementations"
+ REVISION "200406150000Z"
+ DESCRIPTION
+ "Corrected notification example definitions"
+ REVISION "200202060000Z"
+ DESCRIPTION
+ "First draft"
+ ::= { netSnmp 2 }
+
+--
+-- top level structure
+--
+netSnmpExampleScalars OBJECT IDENTIFIER ::= { netSnmpExamples 1 }
+netSnmpExampleTables OBJECT IDENTIFIER ::= { netSnmpExamples 2 }
+netSnmpExampleNotifications OBJECT IDENTIFIER ::= { netSnmpExamples 3 }
+netSnmpExampleNotificationPrefix OBJECT IDENTIFIER
+ ::= { netSnmpExampleNotifications 0 }
+netSnmpExampleNotificationObjects OBJECT IDENTIFIER
+ ::= { netSnmpExampleNotifications 2 }
+-- netSnmpTutorial OBJECT IDENTIFIER ::= { netSnmpExamples 4 }
+
+--
+-- Example scalars
+--
+
+netSnmpExampleInteger OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "This is a simple object which merely houses a writable
+ integer. It's only purposes is to hold the value of a single
+ integer. Writing to it will simply change the value for
+ subsequent GET/GETNEXT/GETBULK retrievals.
+
+ This example object is implemented in the
+ agent/mibgroup/examples/scalar_int.c file."
+ DEFVAL { 42 }
+ ::= { netSnmpExampleScalars 1 }
+
+netSnmpExampleSleeper OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "This is a simple object which is a basic integer. It's value
+ indicates the number of seconds that the agent will take in
+ responding to requests of this object. This is implemented
+ in a way which will allow the agent to keep responding to
+ other requests while access to this object is blocked. It is
+ writable, and changing it's value will change the amount of
+ time the agent will effectively wait for before returning a
+ response when this object is manipulated. Note that SET
+ requests through this object will take longer, since the
+ delay is applied to each internal transaction phase, which
+ could result in delays of up to 4 times the value of this
+ object.
+
+ This example object is implemented in the
+ agent/mibgroup/examples/delayed_instance.c file."
+ DEFVAL { 1 }
+ ::= { netSnmpExampleScalars 2 }
+
+netSnmpExampleString OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "This is a simple object which merely houses a writable
+ string. It's only purposes is to hold the value of a single
+ string. Writing to it will simply change the value for
+ subsequent GET/GETNEXT/GETBULK retrievals.
+
+ This example object is implemented in the
+ agent/mibgroup/examples/watched.c file."
+ DEFVAL { "So long, and thanks for all the fish!" }
+ ::= { netSnmpExampleScalars 3 }
+
+
+--
+-- Example Tables
+--
+
+netSnmpIETFWGTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF NetSnmpIETFWGEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This table merely contains a set of data which is otherwise
+ useless for true network management. It is a table which
+ describes properies about a IETF Working Group, such as the
+ names of the two working group chairs.
+
+ This example table is implemented in the
+ agent/mibgroup/examples/data_set.c file."
+ ::= { netSnmpExampleTables 1 }
+
+netSnmpIETFWGEntry OBJECT-TYPE
+ SYNTAX NetSnmpIETFWGEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A row describing a given working group"
+ INDEX { nsIETFWGName }
+ ::= {netSnmpIETFWGTable 1 }
+
+NetSnmpIETFWGEntry ::= SEQUENCE {
+ nsIETFWGName OCTET STRING,
+ nsIETFWGChair1 OCTET STRING,
+ nsIETFWGChair2 OCTET STRING
+}
+
+nsIETFWGName OBJECT-TYPE
+ SYNTAX OCTET STRING (SIZE(1..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The name of the IETF Working Group this table describes."
+ ::= { netSnmpIETFWGEntry 1 }
+
+nsIETFWGChair1 OBJECT-TYPE
+ SYNTAX OCTET STRING
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "One of the names of the chairs for the IETF working group."
+ ::= { netSnmpIETFWGEntry 2 }
+
+nsIETFWGChair2 OBJECT-TYPE
+ SYNTAX OCTET STRING
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The other name, if one exists, of the chairs for the IETF
+ working group."
+ ::= { netSnmpIETFWGEntry 3 }
+
+--
+-- A table used in a table_iterator example
+-- (agent/mibgroup/examples/netSnmpHostsTable*.[ch])
+--
+
+netSnmpHostsTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF NetSnmpHostsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An example table that implements a wrapper around the
+ /etc/hosts file on a machine using the iterator helper API."
+ ::= { netSnmpExampleTables 2 }
+
+netSnmpHostsEntry OBJECT-TYPE
+ SYNTAX NetSnmpHostsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A host name mapped to an ip address"
+ INDEX { netSnmpHostName }
+ ::= { netSnmpHostsTable 1 }
+
+NetSnmpHostsEntry ::= SEQUENCE {
+ netSnmpHostName OCTET STRING,
+ netSnmpHostAddressType InetAddressType,
+ netSnmpHostAddress InetAddress,
+ netSnmpHostStorage StorageType,
+ netSnmpHostRowStatus RowStatus
+}
+
+netSnmpHostName OBJECT-TYPE
+ SYNTAX OCTET STRING (SIZE(0..64))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A host name that exists in the /etc/hosts (unix) file."
+ ::= { netSnmpHostsEntry 1 }
+
+netSnmpHostAddressType OBJECT-TYPE
+ SYNTAX InetAddressType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The address type of then given host."
+ ::= { netSnmpHostsEntry 2 }
+
+netSnmpHostAddress OBJECT-TYPE
+ SYNTAX InetAddress
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The address of then given host."
+ ::= { netSnmpHostsEntry 3 }
+
+netSnmpHostStorage OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "The storage type for this conceptual row."
+ DEFVAL { nonVolatile }
+ ::= { netSnmpHostsEntry 4 }
+
+netSnmpHostRowStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "The status of this conceptual row."
+ ::= { netSnmpHostsEntry 5 }
+
+
+--
+-- Example Notifications
+--
+
+netSnmpExampleHeartbeatRate OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS accessible-for-notify
+ STATUS current
+ DESCRIPTION
+ "A simple integer object, to act as a payload for the
+ netSnmpExampleHeartbeatNotification. The value has
+ no real meaning, but is nominally the interval (in
+ seconds) between successive heartbeat notifications."
+::= { netSnmpExampleNotificationObjects 1 }
+
+netSnmpExampleHeartbeatName OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS accessible-for-notify
+ STATUS current
+ DESCRIPTION
+ "A simple string object, to act as an optional payload
+ for the netSnmpExampleHeartbeatNotification. This varbind
+ is not part of the notification definition, so is optional
+ and need not be included in the notification payload.
+ The value has no real meaning, but the romantically inclined
+ may take it to be the object of the sender's affection,
+ and hence the cause of the heart beating faster."
+::= { netSnmpExampleNotificationObjects 2 }
+
+netSnmpExampleHeartbeatNotification NOTIFICATION-TYPE
+ OBJECTS { netSnmpExampleHeartbeatRate }
+ STATUS current
+ DESCRIPTION
+ "An example notification, used to illustrate the
+ definition and generation of trap and inform PDUs
+ (including the use of both standard and additional
+ varbinds in the notification payload).
+ This notification will typically be sent every
+ 30 seconds, using the code found in the example module
+ agent/mibgroup/examples/notification.c"
+::= { netSnmpExampleNotificationPrefix 1 }
+
+netSnmpExampleNotification OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS accessible-for-notify
+ STATUS obsolete
+ DESCRIPTION
+ "This object was improperly defined for its original purpose,
+ and should no longer be used."
+::= { netSnmpExampleNotifications 1 }
+
+END
diff --git a/php/extras/mibs/NET-SNMP-EXTEND-MIB.txt b/php/extras/mibs/NET-SNMP-EXTEND-MIB.txt
new file mode 100644
index 000000000..7abdf2158
--- /dev/null
+++ b/php/extras/mibs/NET-SNMP-EXTEND-MIB.txt
@@ -0,0 +1,322 @@
+NET-SNMP-EXTEND-MIB DEFINITIONS ::= BEGIN
+
+--
+-- Defines a framework for scripted extensions
+--
+
+IMPORTS
+ nsExtensions FROM NET-SNMP-AGENT-MIB
+
+ OBJECT-TYPE, NOTIFICATION-TYPE, MODULE-IDENTITY, Integer32
+ FROM SNMPv2-SMI
+
+ OBJECT-GROUP, NOTIFICATION-GROUP
+ FROM SNMPv2-CONF
+
+ DisplayString, RowStatus, StorageType FROM SNMPv2-TC;
+
+
+netSnmpExtendMIB MODULE-IDENTITY
+ LAST-UPDATED "200405080000Z"
+ ORGANIZATION "www.net-snmp.org"
+ CONTACT-INFO
+ "postal: Wes Hardaker
+ P.O. Box 382
+ Davis CA 95617
+
+ email: net-snmp-coders@lists.sourceforge.net"
+ DESCRIPTION
+ "Defines a framework for scripted extensions for the Net-SNMP agent."
+ REVISION "200405080000Z"
+ DESCRIPTION
+ "First revision."
+ ::= { nsExtensions 1 }
+
+nsExtendObjects OBJECT IDENTIFIER ::= { nsExtensions 2}
+nsExtendGroups OBJECT IDENTIFIER ::= { nsExtensions 3}
+
+nsExtendNumEntries OBJECT-TYPE
+ SYNTAX INTEGER
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of rows in the nsExtendConfigTable"
+ ::= { nsExtendObjects 1 }
+
+nsExtendConfigTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF NsExtendConfigEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table of scripted extensions - configuration and (basic) output."
+ ::= { nsExtendObjects 2 }
+
+nsExtendConfigEntry OBJECT-TYPE
+ SYNTAX NsExtendConfigEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A conceptual row within the extension table."
+ INDEX { nsExtendToken }
+ ::= { nsExtendConfigTable 1 }
+
+NsExtendConfigEntry ::= SEQUENCE {
+ nsExtendToken DisplayString,
+ nsExtendCommand DisplayString,
+ nsExtendArgs DisplayString,
+ nsExtendInput DisplayString,
+ nsExtendCacheTime INTEGER,
+ nsExtendExecType INTEGER,
+ nsExtendRunType INTEGER,
+
+ nsExtendStorage StorageType,
+ nsExtendStatus RowStatus
+}
+
+ --
+ -- The configuration of an extension command
+ --
+
+nsExtendToken OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An arbitrary token to identify this extension entry"
+ ::= { nsExtendConfigEntry 1 }
+
+nsExtendCommand OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The full path of the command binary (or script) to run"
+ ::= { nsExtendConfigEntry 2 }
+
+nsExtendArgs OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Any command-line arguments for the command"
+ DEFVAL { ''H } -- the empty string
+ ::= { nsExtendConfigEntry 3 }
+
+nsExtendInput OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The standard input for the command"
+ DEFVAL { ''H } -- the empty string
+ ::= { nsExtendConfigEntry 4 }
+
+nsExtendCacheTime OBJECT-TYPE
+ SYNTAX INTEGER
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The length of time for which the output of
+ this command will be cached. During this time,
+ retrieving the output-related values will not
+ reinvoke the command.
+ A value of -1 indicates that the output results
+ should not be cached at all, and retrieving each
+ individual output-related value will invoke the
+ command afresh."
+ DEFVAL { 5 }
+ ::= { nsExtendConfigEntry 5 }
+
+nsExtendExecType OBJECT-TYPE
+ SYNTAX INTEGER
+ { exec (1), -- 'fork-and-exec'
+ shell (2) -- run via a sub-shell
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The mechanism used to invoke the command."
+ DEFVAL { exec }
+ ::= { nsExtendConfigEntry 6 }
+
+nsExtendRunType OBJECT-TYPE
+ SYNTAX INTEGER
+ { run-on-read (1),
+ run-on-set (2),
+ run-command (3)
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Used to implement 'push-button' command invocation.
+ The command for a 'run-on-read' entry will be invoked
+ whenever one of the corresponding output-related
+ instances is requested (and assuming the cached value
+ is not still current).
+ The command for a 'run-on-set' entry will only be invoked
+ on receipt of a SET assignment for this object with the
+ value 'run-command'.
+ Reading an instance of this object will always return either
+ 'run-on-read' or 'run-on-set'.
+ "
+ DEFVAL { run-on-read }
+ ::= { nsExtendConfigEntry 7 }
+
+ --
+ -- Standard table-manipulation objects
+ --
+
+nsExtendStorage OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The storage type for this conceptual row."
+ DEFVAL { volatile }
+ ::= { nsExtendConfigEntry 20 }
+
+nsExtendStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Used to create new rows in the table, in the standard manner.
+ Note that is valid for an instance to be left with the value
+ notInService(2) indefinitely - i.e. the meaning of 'abnormally
+ long' (see RFC 2579, RowStatus) for this table is infinite."
+ ::= { nsExtendConfigEntry 21 }
+
+
+ --
+ -- The results of running the extension command
+ --
+
+nsExtendOutput1Table OBJECT-TYPE
+ SYNTAX SEQUENCE OF NsExtendOutput1Entry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table of scripted extensions - configuration and (basic) output."
+ ::= { nsExtendObjects 3 }
+
+nsExtendOutput1Entry OBJECT-TYPE
+ SYNTAX NsExtendOutput1Entry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A conceptual row within the extension table."
+ AUGMENTS { nsExtendConfigEntry }
+ ::= { nsExtendOutput1Table 1 }
+
+NsExtendOutput1Entry ::= SEQUENCE {
+ nsExtendOutput1Line DisplayString,
+ nsExtendOutputFull DisplayString,
+ nsExtendOutNumLines INTEGER,
+ nsExtendResult INTEGER
+}
+
+nsExtendOutput1Line OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The first line of output from the command"
+ ::= { nsExtendOutput1Entry 1 }
+
+nsExtendOutputFull OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The full output from the command, as a single string"
+ ::= { nsExtendOutput1Entry 2 }
+
+nsExtendOutNumLines OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of lines of output (and hence
+ the number of rows in nsExtendOutputTable
+ relating to this particular entry)."
+ ::= { nsExtendOutput1Entry 3 }
+
+nsExtendResult OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The return value of the command."
+ ::= { nsExtendOutput1Entry 4 }
+
+
+ --
+ -- The line-based output table
+ --
+
+nsExtendOutput2Table OBJECT-TYPE
+ SYNTAX SEQUENCE OF NsExtendOutput2Entry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table of (line-based) output from scripted extensions."
+ ::= { nsExtendObjects 4 }
+
+nsExtendOutput2Entry OBJECT-TYPE
+ SYNTAX NsExtendOutput2Entry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A conceptual row within the line-based output table."
+ INDEX { nsExtendToken, nsExtendLineIndex }
+ ::= { nsExtendOutput2Table 1 }
+
+NsExtendOutput2Entry ::= SEQUENCE {
+ nsExtendLineIndex INTEGER,
+ nsExtendOutLine DisplayString
+}
+
+nsExtendLineIndex OBJECT-TYPE
+ SYNTAX INTEGER(1..1024)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The index of this line of output.
+ For a given nsExtendToken, this will run from
+ 1 to the corresponding value of nsExtendNumLines."
+ ::= { nsExtendOutput2Entry 1 }
+
+nsExtendOutLine OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A single line of output from the extension command."
+ ::= { nsExtendOutput2Entry 2 }
+
+--
+-- Conformance-related definitions
+--
+
+nsExtendConfigGroup OBJECT-GROUP
+ OBJECTS {
+ nsExtendCommand, nsExtendArgs, nsExtendInput,
+ nsExtendCacheTime, nsExtendExecType, nsExtendRunType,
+ nsExtendStorage, nsExtendStatus, nsExtendNumEntries
+ }
+ STATUS current
+ DESCRIPTION
+ "Objects relating to the configuration of extension commands."
+ ::= { nsExtendGroups 1 }
+
+nsExtendOutputGroup OBJECT-GROUP
+ OBJECTS {
+ nsExtendOutNumLines, nsExtendResult,
+ nsExtendOutLine, nsExtendOutput1Line, nsExtendOutputFull
+ }
+ STATUS current
+ DESCRIPTION
+ "Objects relating to the output of extension commands."
+ ::= { nsExtendGroups 2 }
+
+END
diff --git a/php/extras/mibs/NET-SNMP-MIB.txt b/php/extras/mibs/NET-SNMP-MIB.txt
new file mode 100644
index 000000000..f7b0fbae5
--- /dev/null
+++ b/php/extras/mibs/NET-SNMP-MIB.txt
@@ -0,0 +1,67 @@
+NET-SNMP-MIB DEFINITIONS ::= BEGIN
+
+--
+-- Top-level infrastructure of the Net-SNMP project enterprise MIB tree
+--
+
+IMPORTS
+ MODULE-IDENTITY, enterprises FROM SNMPv2-SMI;
+
+netSnmp MODULE-IDENTITY
+ LAST-UPDATED "200201300000Z"
+ ORGANIZATION "www.net-snmp.org"
+ CONTACT-INFO
+ "postal: Wes Hardaker
+ P.O. Box 382
+ Davis CA 95617
+
+ email: net-snmp-coders@lists.sourceforge.net"
+ DESCRIPTION
+ "Top-level infrastructure of the Net-SNMP project enterprise MIB tree"
+ REVISION "200201300000Z"
+ DESCRIPTION
+ "First draft"
+ ::= { enterprises 8072}
+
+
+--
+-- Net-SNMP enterprise-specific management objects
+--
+
+netSnmpObjects OBJECT IDENTIFIER ::= {netSnmp 1}
+-- netSnmpExamples OBJECT IDENTIFIER ::= {netSnmp 2}
+netSnmpEnumerations OBJECT IDENTIFIER ::= {netSnmp 3}
+netSnmpModuleIDs OBJECT IDENTIFIER ::= {netSnmpEnumerations 1}
+netSnmpAgentOIDs OBJECT IDENTIFIER ::= {netSnmpEnumerations 2}
+netSnmpDomains OBJECT IDENTIFIER ::= {netSnmpEnumerations 3}
+netSnmpExperimental OBJECT IDENTIFIER ::= {netSnmp 9999}
+
+--
+-- A subtree specifically designed for private testing purposes.
+-- No "public" management objects should ever be defined within this tree.
+--
+-- It is provided for private experimentation, prior to transferring a MIB
+-- structure to another part of the overall OID tree
+--
+netSnmpPlaypen OBJECT IDENTIFIER ::= {netSnmpExperimental 9999}
+
+
+--
+-- Notifications
+--
+
+netSnmpNotificationPrefix OBJECT IDENTIFIER ::= {netSnmp 4}
+netSnmpNotifications OBJECT IDENTIFIER ::= {netSnmpNotificationPrefix 0}
+netSnmpNotificationObjects OBJECT IDENTIFIER ::= {netSnmpNotificationPrefix 1}
+
+
+--
+-- Conformance
+-- (No laughing at the back!)
+--
+
+netSnmpConformance OBJECT IDENTIFIER ::= {netSnmp 5}
+netSnmpCompliances OBJECT IDENTIFIER ::= {netSnmpConformance 1}
+netSnmpGroups OBJECT IDENTIFIER ::= {netSnmpConformance 2}
+
+END
diff --git a/php/extras/mibs/NET-SNMP-MONITOR-MIB.txt b/php/extras/mibs/NET-SNMP-MONITOR-MIB.txt
new file mode 100644
index 000000000..ae7922193
--- /dev/null
+++ b/php/extras/mibs/NET-SNMP-MONITOR-MIB.txt
@@ -0,0 +1,59 @@
+NET-SNMP-MONITOR-MIB DEFINITIONS ::= BEGIN
+
+--
+-- Configured elements of the system to monitor (XXX - ugh! - need a better description!)
+--
+
+IMPORTS
+ netSnmpObjects, netSnmpModuleIDs FROM NET-SNMP-MIB
+
+ OBJECT-TYPE, NOTIFICATION-TYPE, MODULE-IDENTITY, Integer32
+ FROM SNMPv2-SMI
+
+ DisplayString FROM SNMPv2-TC;
+
+
+netSnmpMonitorMIB MODULE-IDENTITY
+ LAST-UPDATED "200202090000Z"
+ ORGANIZATION "www.net-snmp.org"
+ CONTACT-INFO
+ "postal: Wes Hardaker
+ P.O. Box 382
+ Davis CA 95617
+
+ email: net-snmp-coders@lists.sourceforge.net"
+ DESCRIPTION
+ "Configured elements of the system to monitor
+ (XXX - ugh! - need a better description!)"
+ REVISION "200202090000Z"
+ DESCRIPTION
+ "First revision."
+ ::= { netSnmpModuleIDs 3}
+
+
+nsProcess OBJECT IDENTIFIER ::= {netSnmpObjects 21}
+nsDisk OBJECT IDENTIFIER ::= {netSnmpObjects 22}
+nsFile OBJECT IDENTIFIER ::= {netSnmpObjects 23}
+nsLog OBJECT IDENTIFIER ::= {netSnmpObjects 24}
+
+--
+-- Process Monitoring
+--
+
+
+--
+-- Disk Monitoring
+--
+
+
+--
+-- File Monitoring
+--
+
+
+--
+-- Log Monitoring
+--
+
+
+END
diff --git a/php/extras/mibs/NET-SNMP-PASS-MIB.txt b/php/extras/mibs/NET-SNMP-PASS-MIB.txt
new file mode 100644
index 000000000..d92ac1bdd
--- /dev/null
+++ b/php/extras/mibs/NET-SNMP-PASS-MIB.txt
@@ -0,0 +1,124 @@
+NET-SNMP-PASS-MIB DEFINITIONS ::= BEGIN
+
+--
+-- Example MIB objects for "pass" and "pass-persist" extension script
+--
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE, TimeTicks, IpAddress,
+ Counter32, Gauge32, Integer32 FROM SNMPv2-SMI
+ SnmpAdminString FROM SNMP-FRAMEWORK-MIB
+ netSnmpExamples FROM NET-SNMP-EXAMPLES-MIB
+;
+
+netSnmpPassExamples MODULE-IDENTITY
+ LAST-UPDATED "200905280000Z"
+ ORGANIZATION "www.net-snmp.org"
+ CONTACT-INFO
+ "postal: Wes Hardaker
+ P.O. Box 382
+ Davis CA 95617
+
+ email: net-snmp-coders@lists.sourceforge.net"
+ DESCRIPTION
+ "Example MIB objects for pass/pass-persist extension script"
+ ::= { netSnmpExamples 255 }
+
+--
+-- Example scalars
+--
+
+netSnmpPassString OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION "Example string scalar object."
+ DEFVAL { "Life, the Universe, and Everything" }
+ ::= { netSnmpPassExamples 1 }
+
+netSnmpPassTimeTicks OBJECT-TYPE
+ SYNTAX TimeTicks
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION "Example timetick object."
+ DEFVAL { 363136200 } -- 42 days, 0:42:42.00
+ ::= { netSnmpPassExamples 3 }
+
+netSnmpPassIpAddress OBJECT-TYPE
+ SYNTAX IpAddress
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION "Example IP Address object."
+ DEFVAL { c'7f000001'H } -- 127.0.0.1
+ ::= { netSnmpPassExamples 4 }
+
+netSnmpPassCounter OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Example counter object.
+ Note that this object will always return the value '42'."
+ ::= { netSnmpPassExamples 5 }
+
+netSnmpPassGauge OBJECT-TYPE
+ SYNTAX Gauge32
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION "Example Gauge object."
+ DEFVAL { 42 }
+ ::= { netSnmpPassExamples 6 }
+
+
+netSnmpPassOIDValue OBJECT IDENTIFIER
+ ::= { netSnmpPassExamples 99 }
+
+--
+-- Example Table
+--
+
+netSnmpPassTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF NetSnmpPassEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "Example table"
+ ::= { netSnmpPassExamples 2 }
+
+netSnmpPassEntry OBJECT-TYPE
+ SYNTAX NetSnmpPassEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "Conceptual row in the example table."
+ INDEX { netSnmpPassIndex }
+ ::= {netSnmpPassTable 1 }
+
+NetSnmpPassEntry ::= SEQUENCE {
+ netSnmpPassIndex Integer32,
+ netSnmpPassInteger Integer32,
+ netSnmpPassOID OBJECT IDENTIFIER
+}
+
+netSnmpPassIndex OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "Arbitrary index into the netSnmpPassTable.
+ Note that there will always be one row, with index 1"
+ ::= { netSnmpPassEntry 1 }
+
+netSnmpPassInteger OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION "Example Integer (table) object."
+ DEFVAL { 42 }
+ ::= { netSnmpPassEntry 2 }
+
+netSnmpPassOID OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION "Example OID (table) object."
+ DEFVAL { netSnmpPassOIDValue }
+ ::= { netSnmpPassEntry 3 }
+
+END
diff --git a/php/extras/mibs/NET-SNMP-SYSTEM-MIB.txt b/php/extras/mibs/NET-SNMP-SYSTEM-MIB.txt
new file mode 100644
index 000000000..c5cf6f3d0
--- /dev/null
+++ b/php/extras/mibs/NET-SNMP-SYSTEM-MIB.txt
@@ -0,0 +1,63 @@
+NET-SNMP-SYSTEM-MIB DEFINITIONS ::= BEGIN
+
+--
+-- Characteristics of the current running system
+--
+
+IMPORTS
+ netSnmpObjects, netSnmpModuleIDs FROM NET-SNMP-MIB
+
+ Float FROM NET-SNMP-TC
+
+ OBJECT-TYPE, NOTIFICATION-TYPE, MODULE-IDENTITY, Integer32, Counter32
+ FROM SNMPv2-SMI
+
+ DisplayString FROM SNMPv2-TC;
+
+
+netSnmpSystemMIB MODULE-IDENTITY
+ LAST-UPDATED "200202090000Z"
+ ORGANIZATION "www.net-snmp.org"
+ CONTACT-INFO
+ "postal: Wes Hardaker
+ P.O. Box 382
+ Davis CA 95617
+
+ email: net-snmp-coders@lists.sourceforge.net"
+ DESCRIPTION
+ "Characteristics of the current running system"
+ REVISION "200202090000Z"
+ DESCRIPTION
+ "First draft."
+ ::= { netSnmpModuleIDs 4}
+
+
+nsMemory OBJECT IDENTIFIER ::= {netSnmpObjects 31}
+nsSwap OBJECT IDENTIFIER ::= {netSnmpObjects 32}
+nsCPU OBJECT IDENTIFIER ::= {netSnmpObjects 33}
+nsLoad OBJECT IDENTIFIER ::= {netSnmpObjects 34}
+nsDiskIO OBJECT IDENTIFIER ::= {netSnmpObjects 35}
+
+
+--
+-- Memory
+--
+
+--
+-- Swap
+--
+
+--
+-- CPU Statistics
+--
+
+--
+-- Load Average
+--
+
+--
+-- Disk IO
+--
+
+
+END
diff --git a/php/extras/mibs/NET-SNMP-TC.txt b/php/extras/mibs/NET-SNMP-TC.txt
new file mode 100644
index 000000000..a9dc0a12d
--- /dev/null
+++ b/php/extras/mibs/NET-SNMP-TC.txt
@@ -0,0 +1,123 @@
+NET-SNMP-TC DEFINITIONS ::= BEGIN
+
+--
+-- Textual conventions and enumerations for the Net-SNMP project
+--
+
+IMPORTS
+ netSnmpModuleIDs, netSnmpAgentOIDs, netSnmpDomains FROM NET-SNMP-MIB
+
+ MODULE-IDENTITY, Opaque FROM SNMPv2-SMI
+
+ TEXTUAL-CONVENTION FROM SNMPv2-TC;
+
+netSnmpTCs MODULE-IDENTITY
+ LAST-UPDATED "200510140000Z"
+ ORGANIZATION "www.net-snmp.org"
+ CONTACT-INFO
+ "postal: Wes Hardaker
+ P.O. Box 382
+ Davis CA 95617
+
+ email: net-snmp-coders@lists.sourceforge.net"
+ DESCRIPTION
+ "Textual conventions and enumerations for the Net-SNMP project"
+ REVISION "200202120000Z"
+ DESCRIPTION
+ "First draft"
+ ::= { netSnmpModuleIDs 1}
+
+
+-- =====================
+--
+-- Textual Conventions
+--
+-- =====================
+
+--
+-- Define the Float Textual Convention
+-- This definition was written by David Perkins.
+--
+
+Float ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "A single precision floating-point number. The semantics
+ and encoding are identical for type 'single' defined in
+ IEEE Standard for Binary Floating-Point,
+ ANSI/IEEE Std 754-1985.
+ The value is restricted to the BER serialization of
+ the following ASN.1 type:
+ FLOATTYPE ::= [120] IMPLICIT FloatType
+ (note: the value 120 is the sum of '30'h and '48'h)
+ The BER serialization of the length for values of
+ this type must use the definite length, short
+ encoding form.
+
+ For example, the BER serialization of value 123
+ of type FLOATTYPE is '9f780442f60000'h. (The tag
+ is '9f78'h; the length is '04'h; and the value is
+ '42f60000'h.) The BER serialization of value
+ '9f780442f60000'h of data type Opaque is
+ '44079f780442f60000'h. (The tag is '44'h; the length
+ is '07'h; and the value is '9f780442f60000'h.)"
+ SYNTAX Opaque (SIZE (7))
+
+
+-- =====================
+--
+-- Enumerations
+--
+-- =====================
+
+--
+-- System Object ID values
+--
+-- XXX - do we want to distinguish between O/S versions ?
+-- (as is currently done with HP-UX)
+--
+
+hpux9 OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 1 }
+sunos4 OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 2 }
+solaris OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 3 }
+osf OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 4 }
+ultrix OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 5 }
+hpux10 OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 6 }
+netbsd OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 7 }
+freebsd OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 8 }
+irix OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 9 }
+linux OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 10 }
+bsdi OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 11 }
+openbsd OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 12 }
+win32 OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 13 } -- unlucky
+hpux11 OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 14 }
+aix OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 15 }
+macosx OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 16 }
+unknown OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 255 }
+
+
+
+--
+-- Transport Domains
+--
+-- Object identifiers for the non-standard transports that UCD/Net-SNMP
+-- supports. Note that snmpTCPDomain is the subject of Internet Draft
+-- draft-irtf-nmrg-snmp-tcp-06.txt, which defines the OID
+-- .iso.org.dod.internet.experimental.nmrg.nmrgSnmpDomains.snmpTCPDomain
+-- (.1.3.6.1.3.91.1.1) for the SNMP over TCP over IPv4 transport domain.
+-- This draft (or its successor) is available from the Network Management
+-- Research Group web page at http://www.ibr.cs.tu-bs.de/projects/nmrg/
+--
+-- The NMRG OID for snmpTCPDomain is currently used by the code, but in case
+-- this is thought to be a Bad Idea, we define a private transport domain here
+-- that we could use instead. The Unix domain, AAL5 PVC domain and
+-- the IPv6 domains are also defined privately here (for now).
+
+netSnmpTCPDomain OBJECT IDENTIFIER ::= { netSnmpDomains 1 } -- obsolete
+netSnmpUnixDomain OBJECT IDENTIFIER ::= { netSnmpDomains 2 } -- obsolete
+netSnmpAAL5PVCDomain OBJECT IDENTIFIER ::= { netSnmpDomains 3 }
+netSnmpUDPIPv6Domain OBJECT IDENTIFIER ::= { netSnmpDomains 4 } -- obsolete
+netSnmpTCPIPv6Domain OBJECT IDENTIFIER ::= { netSnmpDomains 5 } -- obsolete
+netSnmpCallbackDomain OBJECT IDENTIFIER ::= { netSnmpDomains 6 }
+
+END
diff --git a/php/extras/mibs/NET-SNMP-VACM-MIB.txt b/php/extras/mibs/NET-SNMP-VACM-MIB.txt
new file mode 100644
index 000000000..7bdb49978
--- /dev/null
+++ b/php/extras/mibs/NET-SNMP-VACM-MIB.txt
@@ -0,0 +1,154 @@
+NET-SNMP-VACM-MIB DEFINITIONS ::= BEGIN
+
+--
+-- Defines Net-SNMP extensions to the standard VACM view table.
+--
+
+IMPORTS
+ SnmpAdminString
+ FROM SNMP-FRAMEWORK-MIB
+
+ netSnmpObjects, netSnmpGroups
+ FROM NET-SNMP-MIB
+
+ vacmGroupName, vacmAccessContextPrefix, vacmAccessSecurityModel,
+ vacmAccessSecurityLevel
+ FROM SNMP-VIEW-BASED-ACM-MIB
+
+ OBJECT-TYPE, MODULE-IDENTITY
+ FROM SNMPv2-SMI
+
+ OBJECT-GROUP, NOTIFICATION-GROUP
+ FROM SNMPv2-CONF
+
+ TEXTUAL-CONVENTION, DisplayString, RowStatus, StorageType
+ FROM SNMPv2-TC;
+
+
+netSnmpVacmMIB MODULE-IDENTITY
+ LAST-UPDATED "200608270000Z"
+ ORGANIZATION "www.net-snmp.org"
+ CONTACT-INFO
+ "postal: Wes Hardaker
+ P.O. Box 382
+ Davis CA 95617
+
+ email: net-snmp-coders@lists.sourceforge.net"
+ DESCRIPTION
+ "Defines Net-SNMP extensions to the standard VACM view table."
+ REVISION "200608270000Z"
+ DESCRIPTION
+ "First draft"
+ ::= { netSnmpObjects 9 }
+
+
+nsVacmAccessTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF NsVacmAccessEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "Net-SNMP extensions to vacmAccessTable."
+ ::= { netSnmpVacmMIB 1 }
+
+nsVacmAccessEntry OBJECT-TYPE
+ SYNTAX NsVacmAccessEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "Net-SNMP extensions to vacmAccessTable."
+ INDEX { vacmGroupName,
+ vacmAccessContextPrefix,
+ vacmAccessSecurityModel,
+ vacmAccessSecurityLevel,
+ nsVacmAuthType
+ }
+ ::= { nsVacmAccessTable 1 }
+
+NsVacmAccessEntry ::= SEQUENCE
+ {
+ nsVacmAuthType SnmpAdminString,
+ nsVacmContextMatch INTEGER,
+ nsVacmViewName SnmpAdminString,
+ nsVacmStorageType StorageType,
+ nsVacmStatus RowStatus
+ }
+
+nsVacmAuthType OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(0..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "The type of processing that the specified view
+ should be applied to. See 'snmpd.conf(5)' and
+ 'snmptrapd.conf(5)' for details."
+ ::= { nsVacmAccessEntry 1 }
+
+nsVacmContextMatch OBJECT-TYPE
+ SYNTAX INTEGER
+ { exact (1), -- exact match of prefix and contextName
+ prefix (2) -- Only match to the prefix
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "If the value of this object is exact(1), then all
+ rows where the contextName exactly matches
+ vacmAccessContextPrefix are selected.
+
+ If the value of this object is prefix(2), then all
+ rows where the contextName whose starting octets
+ exactly match vacmAccessContextPrefix are selected.
+ This allows for a simple form of wildcarding.
+
+ The value of this object should be consistent across
+ all nsVacmAccessEntries corresponding to a single
+ row of the vacmAccessTable.
+ "
+ DEFVAL { exact }
+ ::= { nsVacmAccessEntry 2 }
+
+nsVacmViewName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(0..32))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "The MIB view authorised for the appropriate style
+ of processing (as indicated by nsVacmToken).
+
+ The interpretation of this value is the same as for
+ the standard VACM ViewName objects."
+ DEFVAL { ''H } -- the empty string
+ ::= { nsVacmAccessEntry 3 }
+
+
+nsVacmStorageType OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "The storage type for this (group of) conceptual rows.
+
+ Conceptual rows having the value 'permanent' need not
+ allow write-access to any columnar objects in the row.
+
+ The value of this object should be consistent across
+ all nsVacmAccessEntries corresponding to a single
+ row of the vacmAccessTable.
+ "
+ DEFVAL { nonVolatile }
+ ::= { nsVacmAccessEntry 4 }
+
+nsVacmStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "The status of this (group of) conceptual rows.
+
+ The RowStatus TC [RFC2579] requires that this
+ DESCRIPTION clause states under which circumstances
+ other objects in this row can be modified:
+
+ The value of this object has no effect on whether
+ other objects in this conceptual row can be modified.
+
+ The value of this object should be consistent across
+ all nsVacmAccessEntries corresponding to a single
+ row of the vacmAccessTable.
+ "
+ ::= { nsVacmAccessEntry 5 }
+
+END
diff --git a/php/extras/mibs/NETWORK-SERVICES-MIB.txt b/php/extras/mibs/NETWORK-SERVICES-MIB.txt
new file mode 100644
index 000000000..0f2cabecb
--- /dev/null
+++ b/php/extras/mibs/NETWORK-SERVICES-MIB.txt
@@ -0,0 +1,626 @@
+NETWORK-SERVICES-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ OBJECT-TYPE, Counter32, Gauge32, MODULE-IDENTITY, mib-2
+ FROM SNMPv2-SMI
+ TimeStamp, TEXTUAL-CONVENTION
+ FROM SNMPv2-TC
+ MODULE-COMPLIANCE, OBJECT-GROUP
+ FROM SNMPv2-CONF
+ SnmpAdminString
+ FROM SNMP-FRAMEWORK-MIB;
+
+application MODULE-IDENTITY
+ LAST-UPDATED "200003030000Z"
+ ORGANIZATION "IETF Mail and Directory Management Working Group"
+
+ CONTACT-INFO
+ " Ned Freed
+
+ Postal: Innosoft International, Inc.
+ 1050 Lakes Drive
+ West Covina, CA 91790
+ US
+
+ Tel: +1 626 919 3600
+ Fax: +1 626 919 3614
+
+ E-Mail: ned.freed@innosoft.com"
+ DESCRIPTION
+ "The MIB module describing network service applications"
+ REVISION "200003030000Z"
+ DESCRIPTION
+ "This revision, published in RFC 2788, changes a number of
+ DisplayStrings to SnmpAdminStrings. Note that this change
+ is not strictly supported by SMIv2. However, the alternative
+ of deprecating the old objects and defining new objects
+ would have a more adverse impact on backward compatibility
+ and interoperability, given the particular semantics of
+ these objects. The defining reference for distinguished
+ names has also been updated from RFC 1779 to RFC 2253."
+ REVISION "199905120000Z"
+ DESCRIPTION
+ "This revision fixes a few small technical problems found
+ in previous versions, mostly in regards to the conformance
+ groups for different versions of this MIB. No changes have
+ been made to the objects this MIB defines since RFC 2248."
+ REVISION "199708170000Z"
+ DESCRIPTION
+ "This revision, published in RFC 2248, adds the
+ applDescription and applURL objects, adds the quiescing
+ state to the applOperStatus object and renames the MIB
+ from the APPLICATION-MIB to the NETWORK-SERVICE-MIB."
+ REVISION "199311280000Z"
+ DESCRIPTION
+ "The original version of this MIB was published in RFC 1565"
+ ::= {mib-2 27}
+
+-- Textual conventions
+
+-- DistinguishedName is used to refer to objects in the
+-- directory.
+
+DistinguishedName ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "255a"
+ STATUS current
+ DESCRIPTION
+ "A Distinguished Name represented in accordance with
+ RFC 2253, presented in the UTF-8 charset defined in
+ RFC 2279."
+ SYNTAX OCTET STRING (SIZE (0..255))
+
+-- Uniform Resource Locators are stored in URLStrings.
+
+URLString ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "255a"
+ STATUS current
+ DESCRIPTION
+ "A Uniform Resource Locator represented in accordance
+ with RFCs 1738 and 2368, presented in the NVT ASCII
+ charset defined in RFC 854."
+ SYNTAX OCTET STRING (SIZE (0..255))
+
+-- The basic applTable contains a list of the application
+-- entities.
+
+applTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF ApplEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The table holding objects which apply to all different
+ kinds of applications providing network services.
+ Each network service application capable of being
+ monitored should have a single entry in this table."
+ ::= {application 1}
+
+applEntry OBJECT-TYPE
+ SYNTAX ApplEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry associated with a single network service
+ application."
+ INDEX {applIndex}
+ ::= {applTable 1}
+
+ApplEntry ::= SEQUENCE {
+ applIndex
+ INTEGER,
+ applName
+ SnmpAdminString,
+ applDirectoryName
+
+ DistinguishedName,
+ applVersion
+ SnmpAdminString,
+ applUptime
+ TimeStamp,
+ applOperStatus
+ INTEGER,
+ applLastChange
+ TimeStamp,
+ applInboundAssociations
+ Gauge32,
+ applOutboundAssociations
+ Gauge32,
+ applAccumulatedInboundAssociations
+ Counter32,
+ applAccumulatedOutboundAssociations
+ Counter32,
+ applLastInboundActivity
+ TimeStamp,
+ applLastOutboundActivity
+ TimeStamp,
+ applRejectedInboundAssociations
+ Counter32,
+ applFailedOutboundAssociations
+ Counter32,
+ applDescription
+ SnmpAdminString,
+ applURL
+ URLString
+}
+
+applIndex OBJECT-TYPE
+ SYNTAX INTEGER (1..2147483647)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An index to uniquely identify the network service
+ application. This attribute is the index used for
+ lexicographic ordering of the table."
+ ::= {applEntry 1}
+
+applName OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The name the network service application chooses to be
+ known by."
+ ::= {applEntry 2}
+
+applDirectoryName OBJECT-TYPE
+ SYNTAX DistinguishedName
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The Distinguished Name of the directory entry where
+ static information about this application is stored.
+ An empty string indicates that no information about
+ the application is available in the directory."
+ ::= {applEntry 3}
+
+applVersion OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The version of network service application software.
+ This field is usually defined by the vendor of the
+ network service application software."
+ ::= {applEntry 4}
+applUptime OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime at the time the network service
+ application was last initialized. If the application was
+ last initialized prior to the last initialization of the
+ network management subsystem, then this object contains
+ a zero value."
+ ::= {applEntry 5}
+
+applOperStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ up(1),
+ down(2),
+ halted(3),
+ congested(4),
+ restarting(5),
+ quiescing(6)
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Indicates the operational status of the network service
+ application. 'down' indicates that the network service is
+
+ not available. 'up' indicates that the network service
+ is operational and available. 'halted' indicates that the
+ service is operational but not available. 'congested'
+ indicates that the service is operational but no additional
+ inbound associations can be accommodated. 'restarting'
+ indicates that the service is currently unavailable but is
+ in the process of restarting and will be available soon.
+ 'quiescing' indicates that service is currently operational
+ but is in the process of shutting down. Additional inbound
+ associations may be rejected by applications in the
+ 'quiescing' state."
+ ::= {applEntry 6}
+
+applLastChange OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime at the time the network service
+ application entered its current operational state. If
+ the current state was entered prior to the last
+ initialization of the local network management subsystem,
+ then this object contains a zero value."
+ ::= {applEntry 7}
+
+applInboundAssociations OBJECT-TYPE
+ SYNTAX Gauge32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of current associations to the network service
+ application, where it is the responder. An inbound
+ association occurs when another application successfully
+ connects to this one."
+ ::= {applEntry 8}
+
+applOutboundAssociations OBJECT-TYPE
+ SYNTAX Gauge32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of current associations to the network service
+ application, where it is the initiator. An outbound
+ association occurs when this application successfully
+ connects to another one."
+ ::= {applEntry 9}
+
+applAccumulatedInboundAssociations OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of associations to the application entity
+ since application initialization, where it was the responder."
+ ::= {applEntry 10}
+
+applAccumulatedOutboundAssociations OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of associations to the application entity
+ since application initialization, where it was the initiator."
+ ::= {applEntry 11}
+
+applLastInboundActivity OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime at the time this application last
+ had an inbound association. If the last association
+ occurred prior to the last initialization of the network
+ subsystem, then this object contains a zero value."
+ ::= {applEntry 12}
+
+applLastOutboundActivity OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime at the time this application last
+ had an outbound association. If the last association
+ occurred prior to the last initialization of the network
+ subsystem, then this object contains a zero value."
+ ::= {applEntry 13}
+
+applRejectedInboundAssociations OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of inbound associations the application
+ entity has rejected, since application initialization.
+ Rejected associations are not counted in the accumulated
+ association totals. Note that this only counts
+
+ associations the application entity has rejected itself;
+ it does not count rejections that occur at lower layers
+ of the network. Thus, this counter may not reflect the
+ true number of failed inbound associations."
+ ::= {applEntry 14}
+
+applFailedOutboundAssociations OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number associations where the application entity
+ is initiator and association establishment has failed,
+ since application initialization. Failed associations are
+ not counted in the accumulated association totals."
+ ::= {applEntry 15}
+
+applDescription OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A text description of the application. This information
+ is intended to identify and briefly describe the
+ application in a status display."
+ ::= {applEntry 16}
+
+applURL OBJECT-TYPE
+ SYNTAX URLString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A URL pointing to a description of the application.
+ This information is intended to identify and describe
+ the application in a status display."
+ ::= {applEntry 17}
+
+-- The assocTable augments the information in the applTable
+-- with information about associations. Note that two levels
+-- of compliance are specified below, depending on whether
+-- association monitoring is mandated.
+
+assocTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF AssocEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The table holding a set of all active application
+
+ associations."
+ ::= {application 2}
+
+assocEntry OBJECT-TYPE
+ SYNTAX AssocEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry associated with an association for a network
+ service application."
+ INDEX {applIndex, assocIndex}
+ ::= {assocTable 1}
+
+AssocEntry ::= SEQUENCE {
+ assocIndex
+ INTEGER,
+ assocRemoteApplication
+ SnmpAdminString,
+ assocApplicationProtocol
+ OBJECT IDENTIFIER,
+ assocApplicationType
+ INTEGER,
+ assocDuration
+ TimeStamp
+}
+
+assocIndex OBJECT-TYPE
+ SYNTAX INTEGER (1..2147483647)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An index to uniquely identify each association for a network
+ service application. This attribute is the index that is
+ used for lexicographic ordering of the table. Note that the
+ table is also indexed by the applIndex."
+ ::= {assocEntry 1}
+
+assocRemoteApplication OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The name of the system running remote network service
+ application. For an IP-based application this should be
+ either a domain name or IP address. For an OSI application
+ it should be the string encoded distinguished name of the
+ managed object. For X.400(1984) MTAs which do not have a
+ Distinguished Name, the RFC 2156 syntax 'mta in
+
+ globalid' used in X400-Received: fields can be used. Note,
+ however, that not all connections an MTA makes are
+ necessarily to another MTA."
+ ::= {assocEntry 2}
+
+assocApplicationProtocol OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An identification of the protocol being used for the
+ application. For an OSI Application, this will be the
+ Application Context. For Internet applications, OID
+ values of the form {applTCPProtoID port} or {applUDPProtoID
+ port} are used for TCP-based and UDP-based protocols,
+ respectively. In either case 'port' corresponds to the
+ primary port number being used by the protocol. The
+ usual IANA procedures may be used to register ports for
+ new protocols."
+ ::= {assocEntry 3}
+
+assocApplicationType OBJECT-TYPE
+ SYNTAX INTEGER {
+ uainitiator(1),
+ uaresponder(2),
+ peerinitiator(3),
+ peerresponder(4)}
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "This indicates whether the remote application is some type of
+ client making use of this network service (e.g., a Mail User
+ Agent) or a server acting as a peer. Also indicated is whether
+ the remote end initiated an incoming connection to the network
+ service or responded to an outgoing connection made by the
+ local application. MTAs and messaging gateways are
+ considered to be peers for the purposes of this variable."
+ ::= {assocEntry 4}
+
+assocDuration OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime at the time this association was
+ started. If this association started prior to the last
+ initialization of the network subsystem, then this
+ object contains a zero value."
+ ::= {assocEntry 5}
+
+-- Conformance information
+
+applConformance OBJECT IDENTIFIER ::= {application 3}
+
+applGroups OBJECT IDENTIFIER ::= {applConformance 1}
+applCompliances OBJECT IDENTIFIER ::= {applConformance 2}
+
+-- Compliance statements
+
+applCompliance MODULE-COMPLIANCE
+ STATUS obsolete
+ DESCRIPTION
+ "The compliance statement for RFC 1565 implementations
+ which support the Network Services Monitoring MIB
+ for basic monitoring of network service applications.
+ This is the basic compliance statement for RFC 1565."
+ MODULE
+ MANDATORY-GROUPS {applRFC1565Group}
+ ::= {applCompliances 1}
+
+assocCompliance MODULE-COMPLIANCE
+ STATUS obsolete
+ DESCRIPTION
+ "The compliance statement for RFC 1565 implementations
+ which support the Network Services Monitoring MIB
+ for basic monitoring of network service applications
+ and their associations."
+ MODULE
+ MANDATORY-GROUPS {applRFC1565Group, assocRFC1565Group}
+ ::= {applCompliances 2}
+
+applRFC2248Compliance MODULE-COMPLIANCE
+ STATUS deprecated
+ DESCRIPTION
+ "The compliance statement for RFC 2248 implementations
+ which support the Network Services Monitoring MIB
+ for basic monitoring of network service applications."
+ MODULE
+ MANDATORY-GROUPS {applRFC2248Group}
+ ::= {applCompliances 3}
+
+assocRFC2248Compliance MODULE-COMPLIANCE
+ STATUS deprecated
+ DESCRIPTION
+ "The compliance statement for RFC 2248 implementations
+
+ which support the Network Services Monitoring MIB for
+ basic monitoring of network service applications and
+ their associations."
+ MODULE
+ MANDATORY-GROUPS {applRFC2248Group, assocRFC2248Group}
+ ::= {applCompliances 4}
+
+applRFC2788Compliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for RFC 2788 implementations
+ which support the Network Services Monitoring MIB
+ for basic monitoring of network service applications."
+ MODULE
+ MANDATORY-GROUPS {applRFC2788Group}
+ ::= {applCompliances 5}
+
+assocRFC2788Compliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for RFC 2788 implementations
+ which support the Network Services Monitoring MIB for
+ basic monitoring of network service applications and
+ their associations."
+ MODULE
+ MANDATORY-GROUPS {applRFC2788Group, assocRFC2788Group}
+ ::= {applCompliances 6}
+
+-- Units of conformance
+
+applRFC1565Group OBJECT-GROUP
+ OBJECTS {
+ applName, applVersion, applUptime, applOperStatus,
+ applLastChange, applInboundAssociations,
+ applOutboundAssociations, applAccumulatedInboundAssociations,
+ applAccumulatedOutboundAssociations, applLastInboundActivity,
+ applLastOutboundActivity, applRejectedInboundAssociations,
+ applFailedOutboundAssociations}
+ STATUS obsolete
+ DESCRIPTION
+ "A collection of objects providing basic monitoring of
+ network service applications. This is the original set
+ of such objects defined in RFC 1565."
+ ::= {applGroups 7}
+
+assocRFC1565Group OBJECT-GROUP
+ OBJECTS {
+
+ assocRemoteApplication, assocApplicationProtocol,
+ assocApplicationType, assocDuration}
+ STATUS obsolete
+ DESCRIPTION
+ "A collection of objects providing basic monitoring of
+ network service applications' associations. This is the
+ original set of such objects defined in RFC 1565."
+ ::= {applGroups 2}
+
+applRFC2248Group OBJECT-GROUP
+ OBJECTS {
+ applName, applVersion, applUptime, applOperStatus,
+ applLastChange, applInboundAssociations,
+ applOutboundAssociations, applAccumulatedInboundAssociations,
+ applAccumulatedOutboundAssociations, applLastInboundActivity,
+ applLastOutboundActivity, applRejectedInboundAssociations,
+ applFailedOutboundAssociations, applDescription, applURL}
+ STATUS deprecated
+ DESCRIPTION
+ "A collection of objects providing basic monitoring of
+ network service applications. This group was originally
+ defined in RFC 2248; note that applDirectoryName is
+ missing."
+ ::= {applGroups 3}
+
+assocRFC2248Group OBJECT-GROUP
+ OBJECTS {
+ assocRemoteApplication, assocApplicationProtocol,
+ assocApplicationType, assocDuration}
+ STATUS deprecated
+ DESCRIPTION
+ "A collection of objects providing basic monitoring of
+ network service applications' associations. This group
+ was originally defined by RFC 2248."
+ ::= {applGroups 4}
+
+applRFC2788Group OBJECT-GROUP
+ OBJECTS {
+ applName, applDirectoryName, applVersion, applUptime,
+ applOperStatus, applLastChange, applInboundAssociations,
+ applOutboundAssociations, applAccumulatedInboundAssociations,
+ applAccumulatedOutboundAssociations, applLastInboundActivity,
+ applLastOutboundActivity, applRejectedInboundAssociations,
+ applFailedOutboundAssociations, applDescription, applURL}
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing basic monitoring of
+ network service applications. This is the appropriate
+
+ group for RFC 2788 -- it adds the applDirectoryName object
+ missing in RFC 2248."
+ ::= {applGroups 5}
+
+assocRFC2788Group OBJECT-GROUP
+ OBJECTS {
+ assocRemoteApplication, assocApplicationProtocol,
+ assocApplicationType, assocDuration}
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing basic monitoring of
+ network service applications' associations. This is
+ the appropriate group for RFC 2788."
+ ::= {applGroups 6}
+
+-- OIDs of the form {applTCPProtoID port} are intended to be used
+-- for TCP-based protocols that don't have OIDs assigned by other
+-- means. {applUDPProtoID port} serves the same purpose for
+-- UDP-based protocols. In either case 'port' corresponds to
+-- the primary port number being used by the protocol. For example,
+-- assuming no other OID is assigned for SMTP, an OID of
+-- {applTCPProtoID 25} could be used, since SMTP is a TCP-based
+-- protocol that uses port 25 as its primary port.
+
+applTCPProtoID OBJECT IDENTIFIER ::= {application 4}
+applUDPProtoID OBJECT IDENTIFIER ::= {application 5}
+
+END
diff --git a/php/extras/mibs/NOTIFICATION-LOG-MIB.txt b/php/extras/mibs/NOTIFICATION-LOG-MIB.txt
new file mode 100644
index 000000000..c60b7d219
--- /dev/null
+++ b/php/extras/mibs/NOTIFICATION-LOG-MIB.txt
@@ -0,0 +1,782 @@
+NOTIFICATION-LOG-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE,
+ Integer32, Unsigned32,
+ TimeTicks, Counter32, Counter64,
+ IpAddress, Opaque, mib-2 FROM SNMPv2-SMI
+ TimeStamp, DateAndTime,
+ StorageType, RowStatus,
+ TAddress, TDomain FROM SNMPv2-TC
+ SnmpAdminString, SnmpEngineID FROM SNMP-FRAMEWORK-MIB
+ MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF;
+
+notificationLogMIB MODULE-IDENTITY
+ LAST-UPDATED "200011270000Z" -- 27 November 2000
+ ORGANIZATION "IETF Distributed Management Working Group"
+ CONTACT-INFO "Ramanathan Kavasseri
+ Cisco Systems, Inc.
+ 170 West Tasman Drive,
+ San Jose CA 95134-1706.
+ Phone: +1 408 527 2446
+ Email: ramk@cisco.com"
+ DESCRIPTION
+ "The MIB module for logging SNMP Notifications, that is, Traps
+
+
+ and Informs."
+-- Revision History
+
+ REVISION "200011270000Z" -- 27 November 2000
+ DESCRIPTION "This is the initial version of this MIB.
+ Published as RFC 3014"
+ ::= { mib-2 92 }
+
+
+notificationLogMIBObjects OBJECT IDENTIFIER ::= { notificationLogMIB 1 }
+
+nlmConfig OBJECT IDENTIFIER ::= { notificationLogMIBObjects 1 }
+nlmStats OBJECT IDENTIFIER ::= { notificationLogMIBObjects 2 }
+nlmLog OBJECT IDENTIFIER ::= { notificationLogMIBObjects 3 }
+
+--
+-- Configuration Section
+--
+
+nlmConfigGlobalEntryLimit OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The maximum number of notification entries that may be held
+ in nlmLogTable for all nlmLogNames added together. A particular
+ setting does not guarantee that much data can be held.
+
+ If an application changes the limit while there are
+ Notifications in the log, the oldest Notifications MUST be
+ discarded to bring the log down to the new limit - thus the
+ value of nlmConfigGlobalEntryLimit MUST take precedence over
+ the values of nlmConfigGlobalAgeOut and nlmConfigLogEntryLimit,
+ even if the Notification being discarded has been present for
+ fewer minutes than the value of nlmConfigGlobalAgeOut, or if
+ the named log has fewer entries than that specified in
+ nlmConfigLogEntryLimit.
+
+ A value of 0 means no limit.
+
+ Please be aware that contention between multiple managers
+ trying to set this object to different values MAY affect the
+ reliability and completeness of data seen by each manager."
+ DEFVAL { 0 }
+ ::= { nlmConfig 1 }
+
+nlmConfigGlobalAgeOut OBJECT-TYPE
+ SYNTAX Unsigned32
+
+
+ UNITS "minutes"
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The number of minutes a Notification SHOULD be kept in a log
+ before it is automatically removed.
+
+ If an application changes the value of nlmConfigGlobalAgeOut,
+ Notifications older than the new time MAY be discarded to meet the
+ new time.
+
+ A value of 0 means no age out.
+
+ Please be aware that contention between multiple managers
+ trying to set this object to different values MAY affect the
+ reliability and completeness of data seen by each manager."
+ DEFVAL { 1440 } -- 24 hours
+ ::= { nlmConfig 2 }
+
+
+--
+-- Basic Log Configuration Table
+--
+
+nlmConfigLogTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF NlmConfigLogEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table of logging control entries."
+ ::= { nlmConfig 3 }
+
+nlmConfigLogEntry OBJECT-TYPE
+ SYNTAX NlmConfigLogEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A logging control entry. Depending on the entry's storage type
+ entries may be supplied by the system or created and deleted by
+ applications using nlmConfigLogEntryStatus."
+ INDEX { nlmLogName }
+ ::= { nlmConfigLogTable 1 }
+
+NlmConfigLogEntry ::= SEQUENCE {
+ nlmLogName SnmpAdminString,
+ nlmConfigLogFilterName SnmpAdminString,
+ nlmConfigLogEntryLimit Unsigned32,
+ nlmConfigLogAdminStatus INTEGER,
+
+
+ nlmConfigLogOperStatus INTEGER,
+ nlmConfigLogStorageType StorageType,
+ nlmConfigLogEntryStatus RowStatus
+ }
+
+nlmLogName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(0..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The name of the log.
+
+ An implementation may allow multiple named logs, up to some
+ implementation-specific limit (which may be none). A
+ zero-length log name is reserved for creation and deletion by
+ the managed system, and MUST be used as the default log name by
+ systems that do not support named logs."
+ ::= { nlmConfigLogEntry 1 }
+
+nlmConfigLogFilterName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(0..32))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "A value of snmpNotifyFilterProfileName as used as an index
+ into the snmpNotifyFilterTable in the SNMP Notification MIB,
+ specifying the locally or remotely originated Notifications
+ to be filtered out and not logged in this log.
+
+ A zero-length value or a name that does not identify an
+ existing entry in snmpNotifyFilterTable indicate no
+ Notifications are to be logged in this log."
+ DEFVAL { ''H }
+ ::= { nlmConfigLogEntry 2 }
+
+nlmConfigLogEntryLimit OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The maximum number of notification entries that can be held in
+ nlmLogTable for this named log. A particular setting does not
+ guarantee that that much data can be held.
+
+ If an application changes the limit while there are
+ Notifications in the log, the oldest Notifications are discarded
+ to bring the log down to the new limit.
+
+
+
+ A value of 0 indicates no limit.
+
+ Please be aware that contention between multiple managers
+ trying to set this object to different values MAY affect the
+ reliability and completeness of data seen by each manager."
+ DEFVAL { 0 }
+ ::= { nlmConfigLogEntry 3 }
+
+nlmConfigLogAdminStatus OBJECT-TYPE
+ SYNTAX INTEGER { enabled(1), disabled(2) }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Control to enable or disable the log without otherwise
+ disturbing the log's entry.
+
+ Please be aware that contention between multiple managers
+ trying to set this object to different values MAY affect the
+ reliability and completeness of data seen by each manager."
+ DEFVAL { enabled }
+ ::= { nlmConfigLogEntry 4 }
+
+nlmConfigLogOperStatus OBJECT-TYPE
+ SYNTAX INTEGER { disabled(1), operational(2), noFilter(3) }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The operational status of this log:
+
+ disabled administratively disabled
+
+ operational administratively enabled and working
+
+ noFilter administratively enabled but either
+ nlmConfigLogFilterName is zero length
+ or does not name an existing entry in
+ snmpNotifyFilterTable"
+ ::= { nlmConfigLogEntry 5 }
+
+nlmConfigLogStorageType OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The storage type of this conceptual row."
+ ::= { nlmConfigLogEntry 6 }
+
+nlmConfigLogEntryStatus OBJECT-TYPE
+
+
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Control for creating and deleting entries. Entries may be
+ modified while active.
+
+ For non-null-named logs, the managed system records the security
+ credentials from the request that sets nlmConfigLogStatus
+ to 'active' and uses that identity to apply access control to
+ the objects in the Notification to decide if that Notification
+ may be logged."
+ ::= { nlmConfigLogEntry 7 }
+
+--
+-- Statistics Section
+--
+
+nlmStatsGlobalNotificationsLogged OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "notifications"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of Notifications put into the nlmLogTable. This
+ counts a Notification once for each log entry, so a Notification
+ put into multiple logs is counted multiple times."
+ ::= { nlmStats 1 }
+
+nlmStatsGlobalNotificationsBumped OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "notifications"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of log entries discarded to make room for a new entry
+ due to lack of resources or the value of nlmConfigGlobalEntryLimit
+ or nlmConfigLogEntryLimit. This does not include entries discarded
+ due to the value of nlmConfigGlobalAgeOut."
+ ::= { nlmStats 2 }
+
+--
+-- Log Statistics Table
+--
+
+nlmStatsLogTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF NlmStatsLogEntry
+ MAX-ACCESS not-accessible
+
+
+ STATUS current
+ DESCRIPTION
+ "A table of Notification log statistics entries."
+ ::= { nlmStats 3 }
+
+nlmStatsLogEntry OBJECT-TYPE
+ SYNTAX NlmStatsLogEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A Notification log statistics entry."
+ AUGMENTS { nlmConfigLogEntry }
+ ::= { nlmStatsLogTable 1 }
+
+NlmStatsLogEntry ::= SEQUENCE {
+ nlmStatsLogNotificationsLogged Counter32,
+ nlmStatsLogNotificationsBumped Counter32
+}
+
+nlmStatsLogNotificationsLogged OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "notifications"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of Notifications put in this named log."
+ ::= { nlmStatsLogEntry 1 }
+
+nlmStatsLogNotificationsBumped OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "notifications"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of log entries discarded from this named log to make
+ room for a new entry due to lack of resources or the value of
+ nlmConfigGlobalEntryLimit or nlmConfigLogEntryLimit. This does not
+ include entries discarded due to the value of
+ nlmConfigGlobalAgeOut."
+ ::= { nlmStatsLogEntry 2 }
+
+
+--
+-- Log Section
+--
+
+--
+-- Log Table
+--
+
+nlmLogTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF NlmLogEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table of Notification log entries.
+
+ It is an implementation-specific matter whether entries in this
+ table are preserved across initializations of the management
+ system. In general one would expect that they are not.
+
+ Note that keeping entries across initializations of the
+ management system leads to some confusion with counters and
+ TimeStamps, since both of those are based on sysUpTime, which
+ resets on management initialization. In this situation,
+ counters apply only after the reset and nlmLogTime for entries
+ made before the reset MUST be set to 0."
+ ::= { nlmLog 1 }
+
+nlmLogEntry OBJECT-TYPE
+ SYNTAX NlmLogEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A Notification log entry.
+
+ Entries appear in this table when Notifications occur and pass
+ filtering by nlmConfigLogFilterName and access control. They are
+ removed to make way for new entries due to lack of resources or
+ the values of nlmConfigGlobalEntryLimit, nlmConfigGlobalAgeOut, or
+ nlmConfigLogEntryLimit.
+
+ If adding an entry would exceed nlmConfigGlobalEntryLimit or system
+ resources in general, the oldest entry in any log SHOULD be removed
+ to make room for the new one.
+
+ If adding an entry would exceed nlmConfigLogEntryLimit the oldest
+ entry in that log SHOULD be removed to make room for the new one.
+
+ Before the managed system puts a locally-generated Notification
+ into a non-null-named log it assures that the creator of the log
+ has access to the information in the Notification. If not it
+ does not log that Notification in that log."
+ INDEX { nlmLogName, nlmLogIndex }
+ ::= { nlmLogTable 1 }
+
+
+
+NlmLogEntry ::= SEQUENCE {
+ nlmLogIndex Unsigned32,
+ nlmLogTime TimeStamp,
+ nlmLogDateAndTime DateAndTime,
+ nlmLogEngineID SnmpEngineID,
+ nlmLogEngineTAddress TAddress,
+ nlmLogEngineTDomain TDomain,
+ nlmLogContextEngineID SnmpEngineID,
+ nlmLogContextName SnmpAdminString,
+ nlmLogNotificationID OBJECT IDENTIFIER
+}
+
+nlmLogIndex OBJECT-TYPE
+ SYNTAX Unsigned32 (1..4294967295)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A monotonically increasing integer for the sole purpose of
+ indexing entries within the named log. When it reaches the
+ maximum value, an extremely unlikely event, the agent wraps the
+ value back to 1."
+ ::= { nlmLogEntry 1 }
+
+nlmLogTime OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime when the entry was placed in the log. If
+ the entry occurred before the most recent management system
+ initialization this object value MUST be set to zero."
+ ::= { nlmLogEntry 2 }
+
+nlmLogDateAndTime OBJECT-TYPE
+ SYNTAX DateAndTime
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The local date and time when the entry was logged, instantiated
+ only by systems that have date and time capability."
+ ::= { nlmLogEntry 3 }
+
+nlmLogEngineID OBJECT-TYPE
+ SYNTAX SnmpEngineID
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The identification of the SNMP engine at which the Notification
+
+
+ originated.
+
+ If the log can contain Notifications from only one engine
+ or the Trap is in SNMPv1 format, this object is a zero-length
+ string."
+ ::= { nlmLogEntry 4 }
+
+nlmLogEngineTAddress OBJECT-TYPE
+ SYNTAX TAddress
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The transport service address of the SNMP engine from which the
+ Notification was received, formatted according to the corresponding
+ value of nlmLogEngineTDomain. This is used to identify the source
+ of an SNMPv1 trap, since an nlmLogEngineId cannot be extracted
+ from the SNMPv1 trap pdu.
+
+ This object MUST always be instantiated, even if the log
+ can contain Notifications from only one engine.
+
+ Please be aware that the nlmLogEngineTAddress may not uniquely
+ identify the SNMP engine from which the Notification was received.
+ For example, if an SNMP engine uses DHCP or NAT to obtain
+ ip addresses, the address it uses may be shared with other
+ network devices, and hence will not uniquely identify the
+ SNMP engine."
+ ::= { nlmLogEntry 5 }
+
+nlmLogEngineTDomain OBJECT-TYPE
+ SYNTAX TDomain
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Indicates the kind of transport service by which a Notification
+ was received from an SNMP engine. nlmLogEngineTAddress contains
+ the transport service address of the SNMP engine from which
+ this Notification was received.
+
+ Possible values for this object are presently found in the
+ Transport Mappings for SNMPv2 document (RFC 1906 [8])."
+ ::= { nlmLogEntry 6 }
+
+nlmLogContextEngineID OBJECT-TYPE
+ SYNTAX SnmpEngineID
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+
+
+ "If the Notification was received in a protocol which has a
+ contextEngineID element like SNMPv3, this object has that value.
+ Otherwise its value is a zero-length string."
+ ::= { nlmLogEntry 7 }
+
+nlmLogContextName OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The name of the SNMP MIB context from which the Notification came.
+ For SNMPv1 Traps this is the community string from the Trap."
+ ::= { nlmLogEntry 8 }
+
+nlmLogNotificationID OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The NOTIFICATION-TYPE object identifier of the Notification that
+ occurred."
+ ::= { nlmLogEntry 9 }
+
+--
+-- Log Variable Table
+--
+
+nlmLogVariableTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF NlmLogVariableEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table of variables to go with Notification log entries."
+ ::= { nlmLog 2 }
+
+nlmLogVariableEntry OBJECT-TYPE
+ SYNTAX NlmLogVariableEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A Notification log entry variable.
+
+ Entries appear in this table when there are variables in
+ the varbind list of a Notification in nlmLogTable."
+ INDEX { nlmLogName, nlmLogIndex, nlmLogVariableIndex }
+ ::= { nlmLogVariableTable 1 }
+
+NlmLogVariableEntry ::= SEQUENCE {
+
+
+ nlmLogVariableIndex Unsigned32,
+ nlmLogVariableID OBJECT IDENTIFIER,
+ nlmLogVariableValueType INTEGER,
+ nlmLogVariableCounter32Val Counter32,
+ nlmLogVariableUnsigned32Val Unsigned32,
+ nlmLogVariableTimeTicksVal TimeTicks,
+ nlmLogVariableInteger32Val Integer32,
+ nlmLogVariableOctetStringVal OCTET STRING,
+ nlmLogVariableIpAddressVal IpAddress,
+ nlmLogVariableOidVal OBJECT IDENTIFIER,
+ nlmLogVariableCounter64Val Counter64,
+ nlmLogVariableOpaqueVal Opaque
+}
+
+nlmLogVariableIndex OBJECT-TYPE
+ SYNTAX Unsigned32 (1..4294967295)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A monotonically increasing integer, starting at 1 for a given
+ nlmLogIndex, for indexing variables within the logged
+ Notification."
+ ::= { nlmLogVariableEntry 1 }
+
+nlmLogVariableID OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The variable's object identifier."
+ ::= { nlmLogVariableEntry 2 }
+
+nlmLogVariableValueType OBJECT-TYPE
+ SYNTAX INTEGER { counter32(1), unsigned32(2), timeTicks(3),
+ integer32(4), ipAddress(5), octetString(6),
+ objectId(7), counter64(8), opaque(9) }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The type of the value. One and only one of the value
+ objects that follow must be instantiated, based on this type."
+ ::= { nlmLogVariableEntry 3 }
+
+nlmLogVariableCounter32Val OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+
+
+ "The value when nlmLogVariableType is 'counter32'."
+ ::= { nlmLogVariableEntry 4 }
+
+nlmLogVariableUnsigned32Val OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value when nlmLogVariableType is 'unsigned32'."
+ ::= { nlmLogVariableEntry 5 }
+
+nlmLogVariableTimeTicksVal OBJECT-TYPE
+ SYNTAX TimeTicks
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value when nlmLogVariableType is 'timeTicks'."
+ ::= { nlmLogVariableEntry 6 }
+
+nlmLogVariableInteger32Val OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value when nlmLogVariableType is 'integer32'."
+ ::= { nlmLogVariableEntry 7 }
+
+nlmLogVariableOctetStringVal OBJECT-TYPE
+ SYNTAX OCTET STRING
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value when nlmLogVariableType is 'octetString'."
+ ::= { nlmLogVariableEntry 8 }
+
+nlmLogVariableIpAddressVal OBJECT-TYPE
+ SYNTAX IpAddress
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value when nlmLogVariableType is 'ipAddress'.
+ Although this seems to be unfriendly for IPv6, we
+ have to recognize that there are a number of older
+ MIBs that do contain an IPv4 format address, known
+ as IpAddress.
+
+ IPv6 addresses are represented using TAddress or
+ InetAddress, and so the underlying datatype is
+
+
+ OCTET STRING, and their value would be stored in
+ the nlmLogVariableOctetStringVal column."
+ ::= { nlmLogVariableEntry 9 }
+
+nlmLogVariableOidVal OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value when nlmLogVariableType is 'objectId'."
+ ::= { nlmLogVariableEntry 10 }
+
+nlmLogVariableCounter64Val OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value when nlmLogVariableType is 'counter64'."
+ ::= { nlmLogVariableEntry 11 }
+
+nlmLogVariableOpaqueVal OBJECT-TYPE
+ SYNTAX Opaque
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value when nlmLogVariableType is 'opaque'."
+ ::= { nlmLogVariableEntry 12 }
+
+
+--
+-- Conformance
+--
+
+notificationLogMIBConformance OBJECT IDENTIFIER ::=
+ { notificationLogMIB 3 }
+notificationLogMIBCompliances OBJECT IDENTIFIER ::=
+ { notificationLogMIBConformance 1 }
+notificationLogMIBGroups OBJECT IDENTIFIER ::=
+ { notificationLogMIBConformance 2 }
+
+-- Compliance
+
+notificationLogMIBCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for entities which implement
+ the Notification Log MIB."
+ MODULE -- this module
+
+
+ MANDATORY-GROUPS {
+ notificationLogConfigGroup,
+ notificationLogStatsGroup,
+ notificationLogLogGroup
+ }
+
+ OBJECT nlmConfigGlobalEntryLimit
+ SYNTAX Unsigned32 (0..4294967295)
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Implementations may choose a limit and not allow it to be
+ changed or may enforce an upper or lower bound on the
+ limit."
+
+ OBJECT nlmConfigLogEntryLimit
+ SYNTAX Unsigned32 (0..4294967295)
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Implementations may choose a limit and not allow it to be
+ changed or may enforce an upper or lower bound on the
+ limit."
+
+ OBJECT nlmConfigLogEntryStatus
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Implementations may disallow the creation of named logs."
+
+ GROUP notificationLogDateGroup
+ DESCRIPTION
+ "This group is mandatory on systems that keep wall clock
+ date and time and should not be implemented on systems that
+ do not have a wall clock date."
+
+ ::= { notificationLogMIBCompliances 1 }
+
+-- Units of Conformance
+
+notificationLogConfigGroup OBJECT-GROUP
+ OBJECTS {
+ nlmConfigGlobalEntryLimit,
+ nlmConfigGlobalAgeOut,
+ nlmConfigLogFilterName,
+ nlmConfigLogEntryLimit,
+ nlmConfigLogAdminStatus,
+ nlmConfigLogOperStatus,
+ nlmConfigLogStorageType,
+ nlmConfigLogEntryStatus
+ }
+
+
+ STATUS current
+ DESCRIPTION
+ "Notification log configuration management."
+ ::= { notificationLogMIBGroups 1 }
+
+notificationLogStatsGroup OBJECT-GROUP
+ OBJECTS {
+ nlmStatsGlobalNotificationsLogged,
+ nlmStatsGlobalNotificationsBumped,
+ nlmStatsLogNotificationsLogged,
+ nlmStatsLogNotificationsBumped
+ }
+ STATUS current
+ DESCRIPTION
+ "Notification log statistics."
+ ::= { notificationLogMIBGroups 2 }
+
+notificationLogLogGroup OBJECT-GROUP
+ OBJECTS {
+ nlmLogTime,
+ nlmLogEngineID,
+ nlmLogEngineTAddress,
+ nlmLogEngineTDomain,
+ nlmLogContextEngineID,
+ nlmLogContextName,
+ nlmLogNotificationID,
+ nlmLogVariableID,
+ nlmLogVariableValueType,
+ nlmLogVariableCounter32Val,
+ nlmLogVariableUnsigned32Val,
+ nlmLogVariableTimeTicksVal,
+ nlmLogVariableInteger32Val,
+ nlmLogVariableOctetStringVal,
+ nlmLogVariableIpAddressVal,
+ nlmLogVariableOidVal,
+ nlmLogVariableCounter64Val,
+ nlmLogVariableOpaqueVal
+ }
+ STATUS current
+ DESCRIPTION
+ "Notification log data."
+ ::= { notificationLogMIBGroups 3 }
+
+notificationLogDateGroup OBJECT-GROUP
+ OBJECTS {
+ nlmLogDateAndTime
+ }
+ STATUS current
+
+
+ DESCRIPTION
+ "Conditionally mandatory notification log data.
+ This group is mandatory on systems that keep wall
+ clock date and time and should not be implemented
+ on systems that do not have a wall clock date."
+ ::= { notificationLogMIBGroups 4 }
+
+END
diff --git a/php/extras/mibs/README.mibs b/php/extras/mibs/README.mibs
new file mode 100644
index 000000000..37fa54cb3
--- /dev/null
+++ b/php/extras/mibs/README.mibs
@@ -0,0 +1,47 @@
+About the MIBS distributed with Net-SNMP.
+
+This directory contains a very basic set of MIB files, ready for use.
+In addition, there are some scripts and table files to help you get a
+fuller collection of MIB files.
+
+smistrip - a script that can extract a MIB file from an RFC (or I-D)
+mibfetch - a script that will fetch an RFC file from a mirror, and extract
+ the hosted MIB from it. It assumes that you have wget installed.
+rfclist - a list of RFC numbers and corresponding MIB name(s)
+ianalist - a list of files at the IANA server that holds IANA maintained
+ MIBs
+Makefile.mib - rules for extracting current MIB files from RFC and IANA
+ files.
+rfcmibs.diff - a set of required patches for MIB files extracted from RFCs
+
+The file Makefile.mib holds rules that fetch and extract MIB files from
+their hosting RFCs. Make will use wget to retrieve the RFC files, and,
+as I am located in Denmark, use the RFC mirror at NORDUnet. You may change
+that at the top of Makefile.mib.
+
+Makefile.mib also holds rules that will collect all the current IETF MIB
+definitions, using the lists in rfclist and ianalist. To get them all,
+use
+ make -f Makefile.mib allmibs
+
+Note, that there are a few fatal syntactic errors in some of the RFC
+definitions. To make them all parse successfully with the Net-SNMP parser,
+you should apply the patches in the file rfcmibs.diff. These patches are
+typical for the problems that are commonly seen with MIB files from various
+sources:
+
+- forgetting to import enterprises/mib-2/transmission from SNMPv2-SMI
+- thinking that a -- comment ends at end-of-line, not at the next --
+- using _ in identifiers. A - may be used in its place
+- various misspellings
+
+There is a short-cut rule
+ make -f Makefile.mib rfc
+that will also apply the patches. Note that Makefile.mib and smistrip has
+configurable versions of awk and patch. If you are running Solaris you
+must set these to nawk and gpatch respectively.
+
+DISCLAIMER: The patches provided here for the IETF standard MIB files
+are not endorsed by anyone, and I don't guarantee that they bring them
+accordance with what the authors intended. All I will promise, is that
+the MIB files can be parsed.
diff --git a/php/extras/mibs/RFC-1215.txt b/php/extras/mibs/RFC-1215.txt
new file mode 100644
index 000000000..643272337
--- /dev/null
+++ b/php/extras/mibs/RFC-1215.txt
@@ -0,0 +1,38 @@
+
+RFC-1215 DEFINITIONS ::= BEGIN
+
+-- This module is a empty module. It has been created solely for the
+-- purpose of allowing other modules to correctly import the TRAP-TYPE
+-- clause from RFC-1215 where it should be imported from. It's a
+-- built in type in the UCD-SNMP code, and in fact RFC-1215 doesn't
+-- actually define a mib at all; it only defines macros. However,
+-- importing the TRAP-TYPE is conventionally done from an import
+-- clause pointing to RFC-1215.
+--
+-- Wes 7/17/98
+
+TRAP-TYPE MACRO ::=
+BEGIN
+ TYPE NOTATION ::= "ENTERPRISE" value
+ (enterprise OBJECT IDENTIFIER)
+ VarPart
+ DescrPart
+ ReferPart
+ VALUE NOTATION ::= value (VALUE INTEGER)
+ VarPart ::=
+ "VARIABLES" "{" VarTypes "}"
+ | empty
+ VarTypes ::=
+ VarType | VarTypes "," VarType
+ VarType ::=
+ value (vartype ObjectName)
+ DescrPart ::=
+ "DESCRIPTION" value (description DisplayString)
+ | empty
+ ReferPart ::=
+ "REFERENCE" value (reference DisplayString)
+ | empty
+END
+
+
+END
diff --git a/php/extras/mibs/RFC1155-SMI.txt b/php/extras/mibs/RFC1155-SMI.txt
new file mode 100644
index 000000000..3abc7ffb7
--- /dev/null
+++ b/php/extras/mibs/RFC1155-SMI.txt
@@ -0,0 +1,119 @@
+RFC1155-SMI DEFINITIONS ::= BEGIN
+
+EXPORTS -- EVERYTHING
+ internet, directory, mgmt,
+ experimental, private, enterprises,
+ OBJECT-TYPE, ObjectName, ObjectSyntax, SimpleSyntax,
+ ApplicationSyntax, NetworkAddress, IpAddress,
+ Counter, Gauge, TimeTicks, Opaque;
+
+ -- the path to the root
+
+ internet OBJECT IDENTIFIER ::= { iso org(3) dod(6) 1 }
+
+ directory OBJECT IDENTIFIER ::= { internet 1 }
+
+ mgmt OBJECT IDENTIFIER ::= { internet 2 }
+
+ experimental OBJECT IDENTIFIER ::= { internet 3 }
+
+ private OBJECT IDENTIFIER ::= { internet 4 }
+ enterprises OBJECT IDENTIFIER ::= { private 1 }
+
+ -- definition of object types
+
+ OBJECT-TYPE MACRO ::=
+ BEGIN
+ TYPE NOTATION ::= "SYNTAX" type (TYPE ObjectSyntax)
+ "ACCESS" Access
+ "STATUS" Status
+ VALUE NOTATION ::= value (VALUE ObjectName)
+
+ Access ::= "read-only"
+ | "read-write"
+ | "write-only"
+ | "not-accessible"
+ Status ::= "mandatory"
+ | "optional"
+ | "obsolete"
+ END
+
+ -- names of objects in the MIB
+
+ ObjectName ::=
+ OBJECT IDENTIFIER
+
+ -- syntax of objects in the MIB
+
+ ObjectSyntax ::=
+ CHOICE {
+ simple
+ SimpleSyntax,
+ -- note that simple SEQUENCEs are not directly
+ -- mentioned here to keep things simple (i.e.,
+ -- prevent mis-use). However, application-wide
+ -- types which are IMPLICITly encoded simple
+ -- SEQUENCEs may appear in the following CHOICE
+
+ application-wide
+ ApplicationSyntax
+ }
+
+ SimpleSyntax ::=
+ CHOICE {
+ number
+ INTEGER,
+ string
+ OCTET STRING,
+ object
+ OBJECT IDENTIFIER,
+ empty
+ NULL
+ }
+
+ ApplicationSyntax ::=
+ CHOICE {
+ address
+ NetworkAddress,
+ counter
+ Counter,
+ gauge
+ Gauge,
+ ticks
+ TimeTicks,
+ arbitrary
+ Opaque
+
+ -- other application-wide types, as they are
+ -- defined, will be added here
+ }
+
+ -- application-wide types
+
+ NetworkAddress ::=
+ CHOICE {
+ internet
+ IpAddress
+ }
+
+ IpAddress ::=
+ [APPLICATION 0] -- in network-byte order
+ IMPLICIT OCTET STRING (SIZE (4))
+
+ Counter ::=
+ [APPLICATION 1]
+ IMPLICIT INTEGER (0..4294967295)
+
+ Gauge ::=
+ [APPLICATION 2]
+ IMPLICIT INTEGER (0..4294967295)
+
+ TimeTicks ::=
+ [APPLICATION 3]
+ IMPLICIT INTEGER (0..4294967295)
+
+ Opaque ::=
+ [APPLICATION 4] -- arbitrary ASN.1 value,
+ IMPLICIT OCTET STRING -- "double-wrapped"
+
+ END
diff --git a/php/extras/mibs/RFC1213-MIB.txt b/php/extras/mibs/RFC1213-MIB.txt
new file mode 100644
index 000000000..408ccd796
--- /dev/null
+++ b/php/extras/mibs/RFC1213-MIB.txt
@@ -0,0 +1,2613 @@
+RFC1213-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ mgmt, NetworkAddress, IpAddress, Counter, Gauge,
+ TimeTicks
+ FROM RFC1155-SMI
+ OBJECT-TYPE
+ FROM RFC-1212;
+
+-- This MIB module uses the extended OBJECT-TYPE macro as
+-- defined in [14];
+
+-- MIB-II (same prefix as MIB-I)
+
+mib-2 OBJECT IDENTIFIER ::= { mgmt 1 }
+
+-- textual conventions
+
+DisplayString ::=
+ OCTET STRING
+-- This data type is used to model textual information taken
+-- from the NVT ASCII character set. By convention, objects
+-- with this syntax are declared as having
+
+--
+-- SIZE (0..255)
+
+PhysAddress ::=
+ OCTET STRING
+-- This data type is used to model media addresses. For many
+-- types of media, this will be in a binary representation.
+-- For example, an ethernet address would be represented as
+-- a string of 6 octets.
+
+-- groups in MIB-II
+
+system OBJECT IDENTIFIER ::= { mib-2 1 }
+
+interfaces OBJECT IDENTIFIER ::= { mib-2 2 }
+
+at OBJECT IDENTIFIER ::= { mib-2 3 }
+
+ip OBJECT IDENTIFIER ::= { mib-2 4 }
+
+icmp OBJECT IDENTIFIER ::= { mib-2 5 }
+
+tcp OBJECT IDENTIFIER ::= { mib-2 6 }
+
+udp OBJECT IDENTIFIER ::= { mib-2 7 }
+
+egp OBJECT IDENTIFIER ::= { mib-2 8 }
+
+-- historical (some say hysterical)
+-- cmot OBJECT IDENTIFIER ::= { mib-2 9 }
+
+transmission OBJECT IDENTIFIER ::= { mib-2 10 }
+
+snmp OBJECT IDENTIFIER ::= { mib-2 11 }
+
+-- the System group
+
+-- Implementation of the System group is mandatory for all
+-- systems. If an agent is not configured to have a value
+-- for any of these variables, a string of length 0 is
+-- returned.
+
+sysDescr OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..255))
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A textual description of the entity. This value
+ should include the full name and version
+ identification of the system's hardware type,
+ software operating-system, and networking
+ software. It is mandatory that this only contain
+ printable ASCII characters."
+ ::= { system 1 }
+
+sysObjectID OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The vendor's authoritative identification of the
+ network management subsystem contained in the
+ entity. This value is allocated within the SMI
+ enterprises subtree (1.3.6.1.4.1) and provides an
+ easy and unambiguous means for determining `what
+ kind of box' is being managed. For example, if
+ vendor `Flintstones, Inc.' was assigned the
+ subtree 1.3.6.1.4.1.4242, it could assign the
+ identifier 1.3.6.1.4.1.4242.1.1 to its `Fred
+ Router'."
+ ::= { system 2 }
+
+sysUpTime OBJECT-TYPE
+ SYNTAX TimeTicks
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The time (in hundredths of a second) since the
+ network management portion of the system was last
+ re-initialized."
+ ::= { system 3 }
+
+sysContact OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..255))
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The textual identification of the contact person
+ for this managed node, together with information
+ on how to contact this person."
+ ::= { system 4 }
+
+sysName OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..255))
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "An administratively-assigned name for this
+ managed node. By convention, this is the node's
+ fully-qualified domain name."
+ ::= { system 5 }
+
+sysLocation OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..255))
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The physical location of this node (e.g.,
+ `telephone closet, 3rd floor')."
+ ::= { system 6 }
+
+sysServices OBJECT-TYPE
+ SYNTAX INTEGER (0..127)
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A value which indicates the set of services that
+ this entity primarily offers.
+
+ The value is a sum. This sum initially takes the
+ value zero, Then, for each layer, L, in the range
+ 1 through 7, that this node performs transactions
+ for, 2 raised to (L - 1) is added to the sum. For
+ example, a node which performs primarily routing
+ functions would have a value of 4 (2^(3-1)). In
+ contrast, a node which is a host offering
+ application services would have a value of 72
+ (2^(4-1) + 2^(7-1)). Note that in the context of
+ the Internet suite of protocols, values should be
+ calculated accordingly:
+
+ layer functionality
+ 1 physical (e.g., repeaters)
+ 2 datalink/subnetwork (e.g., bridges)
+ 3 internet (e.g., IP gateways)
+ 4 end-to-end (e.g., IP hosts)
+ 7 applications (e.g., mail relays)
+
+ For systems including OSI protocols, layers 5 and
+ 6 may also be counted."
+ ::= { system 7 }
+
+-- the Interfaces group
+
+-- Implementation of the Interfaces group is mandatory for
+-- all systems.
+
+ifNumber OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of network interfaces (regardless of
+ their current state) present on this system."
+ ::= { interfaces 1 }
+
+-- the Interfaces table
+
+-- The Interfaces table contains information on the entity's
+-- interfaces. Each interface is thought of as being
+-- attached to a `subnetwork'. Note that this term should
+-- not be confused with `subnet' which refers to an
+-- addressing partitioning scheme used in the Internet suite
+-- of protocols.
+
+ifTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IfEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of interface entries. The number of
+ entries is given by the value of ifNumber."
+ ::= { interfaces 2 }
+
+ifEntry OBJECT-TYPE
+ SYNTAX IfEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "An interface entry containing objects at the
+ subnetwork layer and below for a particular
+ interface."
+ INDEX { ifIndex }
+ ::= { ifTable 1 }
+
+IfEntry ::=
+ SEQUENCE {
+ ifIndex
+ INTEGER,
+ ifDescr
+ DisplayString,
+ ifType
+ INTEGER,
+ ifMtu
+ INTEGER,
+ ifSpeed
+ Gauge,
+ ifPhysAddress
+ PhysAddress,
+ ifAdminStatus
+ INTEGER,
+ ifOperStatus
+ INTEGER,
+ ifLastChange
+ TimeTicks,
+ ifInOctets
+ Counter,
+ ifInUcastPkts
+ Counter,
+ ifInNUcastPkts
+ Counter,
+ ifInDiscards
+ Counter,
+ ifInErrors
+ Counter,
+ ifInUnknownProtos
+ Counter,
+ ifOutOctets
+ Counter,
+ ifOutUcastPkts
+ Counter,
+ ifOutNUcastPkts
+ Counter,
+ ifOutDiscards
+ Counter,
+ ifOutErrors
+ Counter,
+ ifOutQLen
+ Gauge,
+ ifSpecific
+ OBJECT IDENTIFIER
+ }
+
+ifIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A unique value for each interface. Its value
+ ranges between 1 and the value of ifNumber. The
+ value for each interface must remain constant at
+ least from one re-initialization of the entity's
+ network management system to the next re-
+ initialization."
+ ::= { ifEntry 1 }
+
+ifDescr OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..255))
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A textual string containing information about the
+ interface. This string should include the name of
+ the manufacturer, the product name and the version
+ of the hardware interface."
+ ::= { ifEntry 2 }
+
+ifType OBJECT-TYPE
+ SYNTAX INTEGER {
+ other(1), -- none of the following
+ regular1822(2),
+ hdh1822(3),
+ ddn-x25(4),
+ rfc877-x25(5),
+ ethernet-csmacd(6),
+ iso88023-csmacd(7),
+ iso88024-tokenBus(8),
+ iso88025-tokenRing(9),
+ iso88026-man(10),
+ starLan(11),
+ proteon-10Mbit(12),
+ proteon-80Mbit(13),
+ hyperchannel(14),
+ fddi(15),
+ lapb(16),
+ sdlc(17),
+ ds1(18), -- T-1
+ e1(19), -- european equiv. of T-1
+ basicISDN(20),
+ primaryISDN(21), -- proprietary serial
+ propPointToPointSerial(22),
+ ppp(23),
+ softwareLoopback(24),
+ eon(25), -- CLNP over IP [11]
+ ethernet-3Mbit(26),
+ nsip(27), -- XNS over IP
+ slip(28), -- generic SLIP
+ ultra(29), -- ULTRA technologies
+ ds3(30), -- T-3
+ sip(31), -- SMDS
+ frame-relay(32)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The type of interface, distinguished according to
+ the physical/link protocol(s) immediately `below'
+ the network layer in the protocol stack."
+ ::= { ifEntry 3 }
+
+ifMtu OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The size of the largest datagram which can be
+ sent/received on the interface, specified in
+ octets. For interfaces that are used for
+ transmitting network datagrams, this is the size
+ of the largest network datagram that can be sent
+ on the interface."
+ ::= { ifEntry 4 }
+
+ifSpeed OBJECT-TYPE
+ SYNTAX Gauge
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "An estimate of the interface's current bandwidth
+ in bits per second. For interfaces which do not
+ vary in bandwidth or for those where no accurate
+ estimation can be made, this object should contain
+ the nominal bandwidth."
+ ::= { ifEntry 5 }
+
+ifPhysAddress OBJECT-TYPE
+ SYNTAX PhysAddress
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The interface's address at the protocol layer
+ immediately `below' the network layer in the
+ protocol stack. For interfaces which do not have
+
+ such an address (e.g., a serial line), this object
+ should contain an octet string of zero length."
+ ::= { ifEntry 6 }
+
+ifAdminStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ up(1), -- ready to pass packets
+ down(2),
+ testing(3) -- in some test mode
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The desired state of the interface. The
+ testing(3) state indicates that no operational
+ packets can be passed."
+ ::= { ifEntry 7 }
+
+ifOperStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ up(1), -- ready to pass packets
+ down(2),
+ testing(3) -- in some test mode
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The current operational state of the interface.
+ The testing(3) state indicates that no operational
+ packets can be passed."
+ ::= { ifEntry 8 }
+
+ifLastChange OBJECT-TYPE
+ SYNTAX TimeTicks
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The value of sysUpTime at the time the interface
+ entered its current operational state. If the
+ current state was entered prior to the last re-
+ initialization of the local network management
+ subsystem, then this object contains a zero
+ value."
+ ::= { ifEntry 9 }
+
+ifInOctets OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of octets received on the
+ interface, including framing characters."
+ ::= { ifEntry 10 }
+
+ifInUcastPkts OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of subnetwork-unicast packets
+ delivered to a higher-layer protocol."
+ ::= { ifEntry 11 }
+
+ifInNUcastPkts OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of non-unicast (i.e., subnetwork-
+ broadcast or subnetwork-multicast) packets
+ delivered to a higher-layer protocol."
+ ::= { ifEntry 12 }
+
+ifInDiscards OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of inbound packets which were chosen
+ to be discarded even though no errors had been
+ detected to prevent their being deliverable to a
+ higher-layer protocol. One possible reason for
+ discarding such a packet could be to free up
+ buffer space."
+ ::= { ifEntry 13 }
+
+ifInErrors OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of inbound packets that contained
+ errors preventing them from being deliverable to a
+ higher-layer protocol."
+ ::= { ifEntry 14 }
+
+ifInUnknownProtos OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of packets received via the interface
+ which were discarded because of an unknown or
+ unsupported protocol."
+ ::= { ifEntry 15 }
+
+ifOutOctets OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of octets transmitted out of the
+ interface, including framing characters."
+ ::= { ifEntry 16 }
+
+ifOutUcastPkts OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of packets that higher-level
+ protocols requested be transmitted to a
+ subnetwork-unicast address, including those that
+ were discarded or not sent."
+ ::= { ifEntry 17 }
+
+ifOutNUcastPkts OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of packets that higher-level
+ protocols requested be transmitted to a non-
+ unicast (i.e., a subnetwork-broadcast or
+ subnetwork-multicast) address, including those
+ that were discarded or not sent."
+ ::= { ifEntry 18 }
+
+ifOutDiscards OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of outbound packets which were chosen
+
+ to be discarded even though no errors had been
+ detected to prevent their being transmitted. One
+ possible reason for discarding such a packet could
+ be to free up buffer space."
+ ::= { ifEntry 19 }
+
+ifOutErrors OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of outbound packets that could not be
+ transmitted because of errors."
+ ::= { ifEntry 20 }
+
+ifOutQLen OBJECT-TYPE
+ SYNTAX Gauge
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The length of the output packet queue (in
+ packets)."
+ ::= { ifEntry 21 }
+
+ifSpecific OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A reference to MIB definitions specific to the
+ particular media being used to realize the
+ interface. For example, if the interface is
+ realized by an ethernet, then the value of this
+ object refers to a document defining objects
+ specific to ethernet. If this information is not
+ present, its value should be set to the OBJECT
+ IDENTIFIER { 0 0 }, which is a syntatically valid
+ object identifier, and any conformant
+ implementation of ASN.1 and BER must be able to
+ generate and recognize this value."
+ ::= { ifEntry 22 }
+
+-- the Address Translation group
+
+-- Implementation of the Address Translation group is
+-- mandatory for all systems. Note however that this group
+-- is deprecated by MIB-II. That is, it is being included
+
+-- solely for compatibility with MIB-I nodes, and will most
+-- likely be excluded from MIB-III nodes. From MIB-II and
+-- onwards, each network protocol group contains its own
+-- address translation tables.
+
+-- The Address Translation group contains one table which is
+-- the union across all interfaces of the translation tables
+-- for converting a NetworkAddress (e.g., an IP address) into
+-- a subnetwork-specific address. For lack of a better term,
+-- this document refers to such a subnetwork-specific address
+-- as a `physical' address.
+
+-- Examples of such translation tables are: for broadcast
+-- media where ARP is in use, the translation table is
+-- equivalent to the ARP cache; or, on an X.25 network where
+-- non-algorithmic translation to X.121 addresses is
+-- required, the translation table contains the
+-- NetworkAddress to X.121 address equivalences.
+
+atTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF AtEntry
+ ACCESS not-accessible
+ STATUS deprecated
+ DESCRIPTION
+ "The Address Translation tables contain the
+ NetworkAddress to `physical' address equivalences.
+ Some interfaces do not use translation tables for
+ determining address equivalences (e.g., DDN-X.25
+ has an algorithmic method); if all interfaces are
+ of this type, then the Address Translation table
+ is empty, i.e., has zero entries."
+ ::= { at 1 }
+
+atEntry OBJECT-TYPE
+ SYNTAX AtEntry
+ ACCESS not-accessible
+ STATUS deprecated
+ DESCRIPTION
+ "Each entry contains one NetworkAddress to
+ `physical' address equivalence."
+ INDEX { atIfIndex,
+ atNetAddress }
+ ::= { atTable 1 }
+
+AtEntry ::=
+ SEQUENCE {
+ atIfIndex
+ INTEGER,
+ atPhysAddress
+ PhysAddress,
+ atNetAddress
+ NetworkAddress
+ }
+
+atIfIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS deprecated
+ DESCRIPTION
+ "The interface on which this entry's equivalence
+ is effective. The interface identified by a
+ particular value of this index is the same
+ interface as identified by the same value of
+ ifIndex."
+ ::= { atEntry 1 }
+
+atPhysAddress OBJECT-TYPE
+ SYNTAX PhysAddress
+ ACCESS read-write
+ STATUS deprecated
+ DESCRIPTION
+ "The media-dependent `physical' address.
+
+ Setting this object to a null string (one of zero
+ length) has the effect of invaliding the
+ corresponding entry in the atTable object. That
+ is, it effectively dissasociates the interface
+ identified with said entry from the mapping
+ identified with said entry. It is an
+ implementation-specific matter as to whether the
+ agent removes an invalidated entry from the table.
+ Accordingly, management stations must be prepared
+ to receive tabular information from agents that
+ corresponds to entries not currently in use.
+ Proper interpretation of such entries requires
+ examination of the relevant atPhysAddress object."
+ ::= { atEntry 2 }
+
+atNetAddress OBJECT-TYPE
+ SYNTAX NetworkAddress
+ ACCESS read-write
+ STATUS deprecated
+ DESCRIPTION
+ "The NetworkAddress (e.g., the IP address)
+ corresponding to the media-dependent `physical'
+ address."
+ ::= { atEntry 3 }
+
+-- the IP group
+
+-- Implementation of the IP group is mandatory for all
+-- systems.
+
+ipForwarding OBJECT-TYPE
+ SYNTAX INTEGER {
+ forwarding(1), -- acting as a gateway
+ not-forwarding(2) -- NOT acting as a gateway
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The indication of whether this entity is acting
+ as an IP gateway in respect to the forwarding of
+ datagrams received by, but not addressed to, this
+ entity. IP gateways forward datagrams. IP hosts
+ do not (except those source-routed via the host).
+
+ Note that for some managed nodes, this object may
+ take on only a subset of the values possible.
+ Accordingly, it is appropriate for an agent to
+ return a `badValue' response if a management
+ station attempts to change this object to an
+ inappropriate value."
+ ::= { ip 1 }
+
+ipDefaultTTL OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The default value inserted into the Time-To-Live
+ field of the IP header of datagrams originated at
+ this entity, whenever a TTL value is not supplied
+ by the transport layer protocol."
+ ::= { ip 2 }
+
+ipInReceives OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of input datagrams received from
+ interfaces, including those received in error."
+ ::= { ip 3 }
+
+ipInHdrErrors OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of input datagrams discarded due to
+ errors in their IP headers, including bad
+ checksums, version number mismatch, other format
+ errors, time-to-live exceeded, errors discovered
+ in processing their IP options, etc."
+ ::= { ip 4 }
+
+ipInAddrErrors OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of input datagrams discarded because
+ the IP address in their IP header's destination
+ field was not a valid address to be received at
+ this entity. This count includes invalid
+ addresses (e.g., 0.0.0.0) and addresses of
+ unsupported Classes (e.g., Class E). For entities
+ which are not IP Gateways and therefore do not
+ forward datagrams, this counter includes datagrams
+ discarded because the destination address was not
+ a local address."
+ ::= { ip 5 }
+
+ipForwDatagrams OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of input datagrams for which this
+ entity was not their final IP destination, as a
+ result of which an attempt was made to find a
+ route to forward them to that final destination.
+ In entities which do not act as IP Gateways, this
+ counter will include only those packets which were
+ Source-Routed via this entity, and the Source-
+ Route option processing was successful."
+ ::= { ip 6 }
+
+ipInUnknownProtos OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of locally-addressed datagrams
+ received successfully but discarded because of an
+ unknown or unsupported protocol."
+ ::= { ip 7 }
+
+ipInDiscards OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of input IP datagrams for which no
+ problems were encountered to prevent their
+ continued processing, but which were discarded
+ (e.g., for lack of buffer space). Note that this
+ counter does not include any datagrams discarded
+ while awaiting re-assembly."
+ ::= { ip 8 }
+
+ipInDelivers OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of input datagrams successfully
+ delivered to IP user-protocols (including ICMP)."
+ ::= { ip 9 }
+
+ipOutRequests OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of IP datagrams which local IP
+ user-protocols (including ICMP) supplied to IP in
+ requests for transmission. Note that this counter
+ does not include any datagrams counted in
+ ipForwDatagrams."
+ ::= { ip 10 }
+
+ipOutDiscards OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of output IP datagrams for which no
+
+ problem was encountered to prevent their
+ transmission to their destination, but which were
+ discarded (e.g., for lack of buffer space). Note
+ that this counter would include datagrams counted
+ in ipForwDatagrams if any such packets met this
+ (discretionary) discard criterion."
+ ::= { ip 11 }
+
+ipOutNoRoutes OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of IP datagrams discarded because no
+ route could be found to transmit them to their
+ destination. Note that this counter includes any
+ packets counted in ipForwDatagrams which meet this
+ `no-route' criterion. Note that this includes any
+ datagarms which a host cannot route because all of
+ its default gateways are down."
+ ::= { ip 12 }
+
+ipReasmTimeout OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The maximum number of seconds which received
+ fragments are held while they are awaiting
+ reassembly at this entity."
+ ::= { ip 13 }
+
+ipReasmReqds OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of IP fragments received which needed
+ to be reassembled at this entity."
+ ::= { ip 14 }
+
+ipReasmOKs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of IP datagrams successfully re-
+ assembled."
+ ::= { ip 15 }
+
+ipReasmFails OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of failures detected by the IP re-
+ assembly algorithm (for whatever reason: timed
+ out, errors, etc). Note that this is not
+ necessarily a count of discarded IP fragments
+ since some algorithms (notably the algorithm in
+ RFC 815) can lose track of the number of fragments
+ by combining them as they are received."
+ ::= { ip 16 }
+
+ipFragOKs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of IP datagrams that have been
+ successfully fragmented at this entity."
+ ::= { ip 17 }
+
+ipFragFails OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of IP datagrams that have been
+ discarded because they needed to be fragmented at
+ this entity but could not be, e.g., because their
+ Don't Fragment flag was set."
+ ::= { ip 18 }
+
+ipFragCreates OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of IP datagram fragments that have
+ been generated as a result of fragmentation at
+ this entity."
+ ::= { ip 19 }
+
+-- the IP address table
+
+-- The IP address table contains this entity's IP addressing
+-- information.
+
+ipAddrTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IpAddrEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The table of addressing information relevant to
+ this entity's IP addresses."
+ ::= { ip 20 }
+
+ipAddrEntry OBJECT-TYPE
+ SYNTAX IpAddrEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The addressing information for one of this
+ entity's IP addresses."
+ INDEX { ipAdEntAddr }
+ ::= { ipAddrTable 1 }
+
+IpAddrEntry ::=
+ SEQUENCE {
+ ipAdEntAddr
+ IpAddress,
+ ipAdEntIfIndex
+ INTEGER,
+ ipAdEntNetMask
+ IpAddress,
+ ipAdEntBcastAddr
+ INTEGER,
+ ipAdEntReasmMaxSize
+ INTEGER (0..65535)
+ }
+
+ipAdEntAddr OBJECT-TYPE
+ SYNTAX IpAddress
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The IP address to which this entry's addressing
+ information pertains."
+ ::= { ipAddrEntry 1 }
+
+ipAdEntIfIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index value which uniquely identifies the
+ interface to which this entry is applicable. The
+ interface identified by a particular value of this
+ index is the same interface as identified by the
+ same value of ifIndex."
+ ::= { ipAddrEntry 2 }
+
+ipAdEntNetMask OBJECT-TYPE
+ SYNTAX IpAddress
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The subnet mask associated with the IP address of
+ this entry. The value of the mask is an IP
+ address with all the network bits set to 1 and all
+ the hosts bits set to 0."
+ ::= { ipAddrEntry 3 }
+
+ipAdEntBcastAddr OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The value of the least-significant bit in the IP
+ broadcast address used for sending datagrams on
+ the (logical) interface associated with the IP
+ address of this entry. For example, when the
+ Internet standard all-ones broadcast address is
+ used, the value will be 1. This value applies to
+ both the subnet and network broadcasts addresses
+ used by the entity on this (logical) interface."
+ ::= { ipAddrEntry 4 }
+
+ipAdEntReasmMaxSize OBJECT-TYPE
+ SYNTAX INTEGER (0..65535)
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The size of the largest IP datagram which this
+ entity can re-assemble from incoming IP fragmented
+ datagrams received on this interface."
+ ::= { ipAddrEntry 5 }
+
+-- the IP routing table
+
+-- The IP routing table contains an entry for each route
+-- presently known to this entity.
+
+ipRouteTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IpRouteEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "This entity's IP Routing table."
+ ::= { ip 21 }
+
+ipRouteEntry OBJECT-TYPE
+ SYNTAX IpRouteEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A route to a particular destination."
+ INDEX { ipRouteDest }
+ ::= { ipRouteTable 1 }
+
+IpRouteEntry ::=
+ SEQUENCE {
+ ipRouteDest
+ IpAddress,
+ ipRouteIfIndex
+ INTEGER,
+ ipRouteMetric1
+ INTEGER,
+ ipRouteMetric2
+ INTEGER,
+ ipRouteMetric3
+ INTEGER,
+ ipRouteMetric4
+ INTEGER,
+ ipRouteNextHop
+ IpAddress,
+ ipRouteType
+ INTEGER,
+ ipRouteProto
+ INTEGER,
+ ipRouteAge
+ INTEGER,
+ ipRouteMask
+ IpAddress,
+ ipRouteMetric5
+ INTEGER,
+ ipRouteInfo
+ OBJECT IDENTIFIER
+ }
+
+ipRouteDest OBJECT-TYPE
+ SYNTAX IpAddress
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The destination IP address of this route. An
+ entry with a value of 0.0.0.0 is considered a
+ default route. Multiple routes to a single
+ destination can appear in the table, but access to
+ such multiple entries is dependent on the table-
+ access mechanisms defined by the network
+ management protocol in use."
+ ::= { ipRouteEntry 1 }
+
+ipRouteIfIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The index value which uniquely identifies the
+ local interface through which the next hop of this
+ route should be reached. The interface identified
+ by a particular value of this index is the same
+ interface as identified by the same value of
+ ifIndex."
+ ::= { ipRouteEntry 2 }
+
+ipRouteMetric1 OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The primary routing metric for this route. The
+ semantics of this metric are determined by the
+ routing-protocol specified in the route's
+ ipRouteProto value. If this metric is not used,
+ its value should be set to -1."
+ ::= { ipRouteEntry 3 }
+
+ipRouteMetric2 OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "An alternate routing metric for this route. The
+ semantics of this metric are determined by the
+ routing-protocol specified in the route's
+ ipRouteProto value. If this metric is not used,
+ its value should be set to -1."
+ ::= { ipRouteEntry 4 }
+
+ipRouteMetric3 OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "An alternate routing metric for this route. The
+ semantics of this metric are determined by the
+ routing-protocol specified in the route's
+ ipRouteProto value. If this metric is not used,
+ its value should be set to -1."
+ ::= { ipRouteEntry 5 }
+
+ipRouteMetric4 OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "An alternate routing metric for this route. The
+ semantics of this metric are determined by the
+ routing-protocol specified in the route's
+ ipRouteProto value. If this metric is not used,
+ its value should be set to -1."
+ ::= { ipRouteEntry 6 }
+
+ipRouteNextHop OBJECT-TYPE
+ SYNTAX IpAddress
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The IP address of the next hop of this route.
+ (In the case of a route bound to an interface
+ which is realized via a broadcast media, the value
+ of this field is the agent's IP address on that
+ interface.)"
+ ::= { ipRouteEntry 7 }
+
+ipRouteType OBJECT-TYPE
+ SYNTAX INTEGER {
+ other(1), -- none of the following
+
+ invalid(2), -- an invalidated route
+
+ -- route to directly
+ direct(3), -- connected (sub-)network
+
+ -- route to a non-local
+ indirect(4) -- host/network/sub-network
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The type of route. Note that the values
+ direct(3) and indirect(4) refer to the notion of
+ direct and indirect routing in the IP
+ architecture.
+
+ Setting this object to the value invalid(2) has
+ the effect of invalidating the corresponding entry
+ in the ipRouteTable object. That is, it
+ effectively dissasociates the destination
+ identified with said entry from the route
+ identified with said entry. It is an
+ implementation-specific matter as to whether the
+ agent removes an invalidated entry from the table.
+ Accordingly, management stations must be prepared
+ to receive tabular information from agents that
+ corresponds to entries not currently in use.
+ Proper interpretation of such entries requires
+ examination of the relevant ipRouteType object."
+ ::= { ipRouteEntry 8 }
+
+ipRouteProto OBJECT-TYPE
+ SYNTAX INTEGER {
+ other(1), -- none of the following
+
+ -- non-protocol information,
+ -- e.g., manually configured
+ local(2), -- entries
+
+ -- set via a network
+ netmgmt(3), -- management protocol
+
+ -- obtained via ICMP,
+ icmp(4), -- e.g., Redirect
+
+ -- the remaining values are
+ -- all gateway routing
+ -- protocols
+ egp(5),
+ ggp(6),
+ hello(7),
+ rip(8),
+ is-is(9),
+ es-is(10),
+ ciscoIgrp(11),
+ bbnSpfIgp(12),
+ ospf(13),
+ bgp(14)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The routing mechanism via which this route was
+ learned. Inclusion of values for gateway routing
+ protocols is not intended to imply that hosts
+ should support those protocols."
+ ::= { ipRouteEntry 9 }
+
+ipRouteAge OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The number of seconds since this route was last
+ updated or otherwise determined to be correct.
+ Note that no semantics of `too old' can be implied
+ except through knowledge of the routing protocol
+ by which the route was learned."
+ ::= { ipRouteEntry 10 }
+
+ipRouteMask OBJECT-TYPE
+ SYNTAX IpAddress
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Indicate the mask to be logical-ANDed with the
+ destination address before being compared to the
+ value in the ipRouteDest field. For those systems
+ that do not support arbitrary subnet masks, an
+ agent constructs the value of the ipRouteMask by
+ determining whether the value of the correspondent
+ ipRouteDest field belong to a class-A, B, or C
+ network, and then using one of:
+
+ mask network
+ 255.0.0.0 class-A
+ 255.255.0.0 class-B
+ 255.255.255.0 class-C
+
+ If the value of the ipRouteDest is 0.0.0.0 (a
+ default route), then the mask value is also
+ 0.0.0.0. It should be noted that all IP routing
+ subsystems implicitly use this mechanism."
+ ::= { ipRouteEntry 11 }
+
+ipRouteMetric5 OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "An alternate routing metric for this route. The
+ semantics of this metric are determined by the
+ routing-protocol specified in the route's
+ ipRouteProto value. If this metric is not used,
+ its value should be set to -1."
+ ::= { ipRouteEntry 12 }
+
+ipRouteInfo OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A reference to MIB definitions specific to the
+ particular routing protocol which is responsible
+ for this route, as determined by the value
+ specified in the route's ipRouteProto value. If
+ this information is not present, its value should
+ be set to the OBJECT IDENTIFIER { 0 0 }, which is
+ a syntatically valid object identifier, and any
+ conformant implementation of ASN.1 and BER must be
+ able to generate and recognize this value."
+ ::= { ipRouteEntry 13 }
+
+-- the IP Address Translation table
+
+-- The IP address translation table contain the IpAddress to
+-- `physical' address equivalences. Some interfaces do not
+-- use translation tables for determining address
+-- equivalences (e.g., DDN-X.25 has an algorithmic method);
+-- if all interfaces are of this type, then the Address
+-- Translation table is empty, i.e., has zero entries.
+
+ipNetToMediaTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IpNetToMediaEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The IP Address Translation table used for mapping
+ from IP addresses to physical addresses."
+ ::= { ip 22 }
+
+ipNetToMediaEntry OBJECT-TYPE
+ SYNTAX IpNetToMediaEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Each entry contains one IpAddress to `physical'
+ address equivalence."
+ INDEX { ipNetToMediaIfIndex,
+ ipNetToMediaNetAddress }
+ ::= { ipNetToMediaTable 1 }
+
+IpNetToMediaEntry ::=
+ SEQUENCE {
+ ipNetToMediaIfIndex
+ INTEGER,
+ ipNetToMediaPhysAddress
+ PhysAddress,
+ ipNetToMediaNetAddress
+ IpAddress,
+ ipNetToMediaType
+ INTEGER
+ }
+
+ipNetToMediaIfIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The interface on which this entry's equivalence
+ is effective. The interface identified by a
+ particular value of this index is the same
+ interface as identified by the same value of
+ ifIndex."
+ ::= { ipNetToMediaEntry 1 }
+
+ipNetToMediaPhysAddress OBJECT-TYPE
+ SYNTAX PhysAddress
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The media-dependent `physical' address."
+ ::= { ipNetToMediaEntry 2 }
+
+ipNetToMediaNetAddress OBJECT-TYPE
+ SYNTAX IpAddress
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The IpAddress corresponding to the media-
+ dependent `physical' address."
+ ::= { ipNetToMediaEntry 3 }
+
+ipNetToMediaType OBJECT-TYPE
+ SYNTAX INTEGER {
+ other(1), -- none of the following
+ invalid(2), -- an invalidated mapping
+ dynamic(3),
+ static(4)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The type of mapping.
+
+ Setting this object to the value invalid(2) has
+ the effect of invalidating the corresponding entry
+ in the ipNetToMediaTable. That is, it effectively
+ dissasociates the interface identified with said
+ entry from the mapping identified with said entry.
+ It is an implementation-specific matter as to
+ whether the agent removes an invalidated entry
+ from the table. Accordingly, management stations
+ must be prepared to receive tabular information
+ from agents that corresponds to entries not
+ currently in use. Proper interpretation of such
+ entries requires examination of the relevant
+ ipNetToMediaType object."
+ ::= { ipNetToMediaEntry 4 }
+
+-- additional IP objects
+
+ipRoutingDiscards OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of routing entries which were chosen
+ to be discarded even though they are valid. One
+ possible reason for discarding such an entry could
+ be to free-up buffer space for other routing
+
+ entries."
+ ::= { ip 23 }
+
+-- the ICMP group
+
+-- Implementation of the ICMP group is mandatory for all
+-- systems.
+
+icmpInMsgs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of ICMP messages which the
+ entity received. Note that this counter includes
+ all those counted by icmpInErrors."
+ ::= { icmp 1 }
+
+icmpInErrors OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP messages which the entity
+ received but determined as having ICMP-specific
+ errors (bad ICMP checksums, bad length, etc.)."
+ ::= { icmp 2 }
+
+icmpInDestUnreachs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Destination Unreachable
+ messages received."
+ ::= { icmp 3 }
+
+icmpInTimeExcds OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Time Exceeded messages
+ received."
+ ::= { icmp 4 }
+
+icmpInParmProbs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Parameter Problem messages
+ received."
+ ::= { icmp 5 }
+
+icmpInSrcQuenchs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Source Quench messages
+ received."
+ ::= { icmp 6 }
+
+icmpInRedirects OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Redirect messages received."
+ ::= { icmp 7 }
+
+icmpInEchos OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Echo (request) messages
+ received."
+ ::= { icmp 8 }
+
+icmpInEchoReps OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Echo Reply messages received."
+ ::= { icmp 9 }
+
+icmpInTimestamps OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Timestamp (request) messages
+ received."
+ ::= { icmp 10 }
+
+icmpInTimestampReps OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Timestamp Reply messages
+ received."
+ ::= { icmp 11 }
+
+icmpInAddrMasks OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Address Mask Request messages
+ received."
+ ::= { icmp 12 }
+
+icmpInAddrMaskReps OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Address Mask Reply messages
+ received."
+ ::= { icmp 13 }
+
+icmpOutMsgs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of ICMP messages which this
+ entity attempted to send. Note that this counter
+ includes all those counted by icmpOutErrors."
+ ::= { icmp 14 }
+
+icmpOutErrors OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP messages which this entity did
+ not send due to problems discovered within ICMP
+
+ such as a lack of buffers. This value should not
+ include errors discovered outside the ICMP layer
+ such as the inability of IP to route the resultant
+ datagram. In some implementations there may be no
+ types of error which contribute to this counter's
+ value."
+ ::= { icmp 15 }
+
+icmpOutDestUnreachs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Destination Unreachable
+ messages sent."
+ ::= { icmp 16 }
+
+icmpOutTimeExcds OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Time Exceeded messages sent."
+ ::= { icmp 17 }
+
+icmpOutParmProbs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Parameter Problem messages
+ sent."
+ ::= { icmp 18 }
+
+icmpOutSrcQuenchs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Source Quench messages sent."
+ ::= { icmp 19 }
+
+icmpOutRedirects OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Redirect messages sent. For a
+
+ host, this object will always be zero, since hosts
+ do not send redirects."
+ ::= { icmp 20 }
+
+icmpOutEchos OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Echo (request) messages sent."
+ ::= { icmp 21 }
+
+icmpOutEchoReps OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Echo Reply messages sent."
+ ::= { icmp 22 }
+
+icmpOutTimestamps OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Timestamp (request) messages
+ sent."
+ ::= { icmp 23 }
+
+icmpOutTimestampReps OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Timestamp Reply messages
+ sent."
+ ::= { icmp 24 }
+
+icmpOutAddrMasks OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Address Mask Request messages
+ sent."
+ ::= { icmp 25 }
+
+icmpOutAddrMaskReps OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Address Mask Reply messages
+ sent."
+ ::= { icmp 26 }
+
+-- the TCP group
+
+-- Implementation of the TCP group is mandatory for all
+-- systems that implement the TCP.
+
+-- Note that instances of object types that represent
+-- information about a particular TCP connection are
+-- transient; they persist only as long as the connection
+-- in question.
+
+tcpRtoAlgorithm OBJECT-TYPE
+ SYNTAX INTEGER {
+ other(1), -- none of the following
+
+ constant(2), -- a constant rto
+ rsre(3), -- MIL-STD-1778, Appendix B
+ vanj(4) -- Van Jacobson's algorithm [10]
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The algorithm used to determine the timeout value
+ used for retransmitting unacknowledged octets."
+ ::= { tcp 1 }
+
+tcpRtoMin OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The minimum value permitted by a TCP
+ implementation for the retransmission timeout,
+ measured in milliseconds. More refined semantics
+ for objects of this type depend upon the algorithm
+ used to determine the retransmission timeout. In
+ particular, when the timeout algorithm is rsre(3),
+ an object of this type has the semantics of the
+ LBOUND quantity described in RFC 793."
+ ::= { tcp 2 }
+
+tcpRtoMax OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The maximum value permitted by a TCP
+ implementation for the retransmission timeout,
+ measured in milliseconds. More refined semantics
+ for objects of this type depend upon the algorithm
+ used to determine the retransmission timeout. In
+ particular, when the timeout algorithm is rsre(3),
+ an object of this type has the semantics of the
+ UBOUND quantity described in RFC 793."
+ ::= { tcp 3 }
+
+tcpMaxConn OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The limit on the total number of TCP connections
+ the entity can support. In entities where the
+ maximum number of connections is dynamic, this
+ object should contain the value -1."
+ ::= { tcp 4 }
+
+tcpActiveOpens OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of times TCP connections have made a
+ direct transition to the SYN-SENT state from the
+ CLOSED state."
+ ::= { tcp 5 }
+
+tcpPassiveOpens OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of times TCP connections have made a
+ direct transition to the SYN-RCVD state from the
+ LISTEN state."
+ ::= { tcp 6 }
+
+tcpAttemptFails OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of times TCP connections have made a
+ direct transition to the CLOSED state from either
+ the SYN-SENT state or the SYN-RCVD state, plus the
+ number of times TCP connections have made a direct
+ transition to the LISTEN state from the SYN-RCVD
+ state."
+ ::= { tcp 7 }
+
+tcpEstabResets OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of times TCP connections have made a
+ direct transition to the CLOSED state from either
+ the ESTABLISHED state or the CLOSE-WAIT state."
+ ::= { tcp 8 }
+
+tcpCurrEstab OBJECT-TYPE
+ SYNTAX Gauge
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of TCP connections for which the
+ current state is either ESTABLISHED or CLOSE-
+ WAIT."
+ ::= { tcp 9 }
+
+tcpInSegs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of segments received, including
+ those received in error. This count includes
+ segments received on currently established
+ connections."
+ ::= { tcp 10 }
+
+tcpOutSegs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of segments sent, including
+ those on current connections but excluding those
+ containing only retransmitted octets."
+ ::= { tcp 11 }
+
+tcpRetransSegs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of segments retransmitted - that
+ is, the number of TCP segments transmitted
+ containing one or more previously transmitted
+ octets."
+ ::= { tcp 12 }
+
+-- the TCP Connection table
+
+-- The TCP connection table contains information about this
+-- entity's existing TCP connections.
+
+tcpConnTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF TcpConnEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A table containing TCP connection-specific
+ information."
+ ::= { tcp 13 }
+
+tcpConnEntry OBJECT-TYPE
+ SYNTAX TcpConnEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Information about a particular current TCP
+ connection. An object of this type is transient,
+ in that it ceases to exist when (or soon after)
+ the connection makes the transition to the CLOSED
+ state."
+ INDEX { tcpConnLocalAddress,
+ tcpConnLocalPort,
+ tcpConnRemAddress,
+ tcpConnRemPort }
+ ::= { tcpConnTable 1 }
+
+TcpConnEntry ::=
+ SEQUENCE {
+ tcpConnState
+ INTEGER,
+ tcpConnLocalAddress
+ IpAddress,
+ tcpConnLocalPort
+ INTEGER (0..65535),
+ tcpConnRemAddress
+ IpAddress,
+ tcpConnRemPort
+ INTEGER (0..65535)
+ }
+
+tcpConnState OBJECT-TYPE
+ SYNTAX INTEGER {
+ closed(1),
+ listen(2),
+ synSent(3),
+ synReceived(4),
+ established(5),
+ finWait1(6),
+ finWait2(7),
+ closeWait(8),
+ lastAck(9),
+ closing(10),
+ timeWait(11),
+ deleteTCB(12)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The state of this TCP connection.
+
+ The only value which may be set by a management
+ station is deleteTCB(12). Accordingly, it is
+ appropriate for an agent to return a `badValue'
+ response if a management station attempts to set
+ this object to any other value.
+
+ If a management station sets this object to the
+ value deleteTCB(12), then this has the effect of
+ deleting the TCB (as defined in RFC 793) of the
+ corresponding connection on the managed node,
+ resulting in immediate termination of the
+ connection.
+
+ As an implementation-specific option, a RST
+
+ segment may be sent from the managed node to the
+ other TCP endpoint (note however that RST segments
+ are not sent reliably)."
+ ::= { tcpConnEntry 1 }
+
+tcpConnLocalAddress OBJECT-TYPE
+ SYNTAX IpAddress
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The local IP address for this TCP connection. In
+ the case of a connection in the listen state which
+ is willing to accept connections for any IP
+ interface associated with the node, the value
+ 0.0.0.0 is used."
+ ::= { tcpConnEntry 2 }
+
+tcpConnLocalPort OBJECT-TYPE
+ SYNTAX INTEGER (0..65535)
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The local port number for this TCP connection."
+ ::= { tcpConnEntry 3 }
+
+tcpConnRemAddress OBJECT-TYPE
+ SYNTAX IpAddress
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The remote IP address for this TCP connection."
+ ::= { tcpConnEntry 4 }
+
+tcpConnRemPort OBJECT-TYPE
+ SYNTAX INTEGER (0..65535)
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The remote port number for this TCP connection."
+ ::= { tcpConnEntry 5 }
+
+-- additional TCP objects
+
+tcpInErrs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of segments received in error
+ (e.g., bad TCP checksums)."
+ ::= { tcp 14 }
+
+tcpOutRsts OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of TCP segments sent containing the
+ RST flag."
+ ::= { tcp 15 }
+
+-- the UDP group
+
+-- Implementation of the UDP group is mandatory for all
+-- systems which implement the UDP.
+
+udpInDatagrams OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of UDP datagrams delivered to
+ UDP users."
+ ::= { udp 1 }
+
+udpNoPorts OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of received UDP datagrams for
+ which there was no application at the destination
+ port."
+ ::= { udp 2 }
+
+udpInErrors OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of received UDP datagrams that could
+ not be delivered for reasons other than the lack
+ of an application at the destination port."
+ ::= { udp 3 }
+
+udpOutDatagrams OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of UDP datagrams sent from this
+ entity."
+ ::= { udp 4 }
+
+-- the UDP Listener table
+
+-- The UDP listener table contains information about this
+-- entity's UDP end-points on which a local application is
+-- currently accepting datagrams.
+
+udpTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF UdpEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A table containing UDP listener information."
+ ::= { udp 5 }
+
+udpEntry OBJECT-TYPE
+ SYNTAX UdpEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Information about a particular current UDP
+ listener."
+ INDEX { udpLocalAddress, udpLocalPort }
+ ::= { udpTable 1 }
+
+UdpEntry ::=
+ SEQUENCE {
+ udpLocalAddress
+ IpAddress,
+ udpLocalPort
+ INTEGER (0..65535)
+ }
+
+udpLocalAddress OBJECT-TYPE
+ SYNTAX IpAddress
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The local IP address for this UDP listener. In
+
+ the case of a UDP listener which is willing to
+ accept datagrams for any IP interface associated
+ with the node, the value 0.0.0.0 is used."
+ ::= { udpEntry 1 }
+
+udpLocalPort OBJECT-TYPE
+ SYNTAX INTEGER (0..65535)
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The local port number for this UDP listener."
+ ::= { udpEntry 2 }
+
+-- the EGP group
+
+-- Implementation of the EGP group is mandatory for all
+-- systems which implement the EGP.
+
+egpInMsgs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of EGP messages received without
+ error."
+ ::= { egp 1 }
+
+egpInErrors OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of EGP messages received that proved
+ to be in error."
+ ::= { egp 2 }
+
+egpOutMsgs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of locally generated EGP
+ messages."
+ ::= { egp 3 }
+
+egpOutErrors OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of locally generated EGP messages not
+ sent due to resource limitations within an EGP
+ entity."
+ ::= { egp 4 }
+
+-- the EGP Neighbor table
+
+-- The EGP neighbor table contains information about this
+-- entity's EGP neighbors.
+
+egpNeighTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF EgpNeighEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The EGP neighbor table."
+ ::= { egp 5 }
+
+egpNeighEntry OBJECT-TYPE
+ SYNTAX EgpNeighEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Information about this entity's relationship with
+ a particular EGP neighbor."
+ INDEX { egpNeighAddr }
+ ::= { egpNeighTable 1 }
+
+EgpNeighEntry ::=
+ SEQUENCE {
+ egpNeighState
+ INTEGER,
+ egpNeighAddr
+ IpAddress,
+ egpNeighAs
+ INTEGER,
+ egpNeighInMsgs
+ Counter,
+ egpNeighInErrs
+ Counter,
+ egpNeighOutMsgs
+ Counter,
+ egpNeighOutErrs
+ Counter,
+ egpNeighInErrMsgs
+ Counter,
+ egpNeighOutErrMsgs
+ Counter,
+ egpNeighStateUps
+ Counter,
+ egpNeighStateDowns
+ Counter,
+ egpNeighIntervalHello
+ INTEGER,
+ egpNeighIntervalPoll
+ INTEGER,
+ egpNeighMode
+ INTEGER,
+ egpNeighEventTrigger
+ INTEGER
+ }
+
+egpNeighState OBJECT-TYPE
+ SYNTAX INTEGER {
+ idle(1),
+ acquisition(2),
+ down(3),
+ up(4),
+ cease(5)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The EGP state of the local system with respect to
+ this entry's EGP neighbor. Each EGP state is
+ represented by a value that is one greater than
+ the numerical value associated with said state in
+ RFC 904."
+ ::= { egpNeighEntry 1 }
+
+egpNeighAddr OBJECT-TYPE
+ SYNTAX IpAddress
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The IP address of this entry's EGP neighbor."
+ ::= { egpNeighEntry 2 }
+
+egpNeighAs OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The autonomous system of this EGP peer. Zero
+ should be specified if the autonomous system
+ number of the neighbor is not yet known."
+ ::= { egpNeighEntry 3 }
+
+egpNeighInMsgs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of EGP messages received without error
+ from this EGP peer."
+ ::= { egpNeighEntry 4 }
+
+egpNeighInErrs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of EGP messages received from this EGP
+ peer that proved to be in error (e.g., bad EGP
+ checksum)."
+ ::= { egpNeighEntry 5 }
+
+egpNeighOutMsgs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of locally generated EGP messages to
+ this EGP peer."
+ ::= { egpNeighEntry 6 }
+
+egpNeighOutErrs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of locally generated EGP messages not
+ sent to this EGP peer due to resource limitations
+ within an EGP entity."
+ ::= { egpNeighEntry 7 }
+
+egpNeighInErrMsgs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of EGP-defined error messages received
+ from this EGP peer."
+ ::= { egpNeighEntry 8 }
+
+egpNeighOutErrMsgs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of EGP-defined error messages sent to
+ this EGP peer."
+ ::= { egpNeighEntry 9 }
+
+egpNeighStateUps OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of EGP state transitions to the UP
+ state with this EGP peer."
+ ::= { egpNeighEntry 10 }
+
+egpNeighStateDowns OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of EGP state transitions from the UP
+ state to any other state with this EGP peer."
+ ::= { egpNeighEntry 11 }
+
+egpNeighIntervalHello OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The interval between EGP Hello command
+ retransmissions (in hundredths of a second). This
+ represents the t1 timer as defined in RFC 904."
+ ::= { egpNeighEntry 12 }
+
+egpNeighIntervalPoll OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The interval between EGP poll command
+
+ retransmissions (in hundredths of a second). This
+ represents the t3 timer as defined in RFC 904."
+ ::= { egpNeighEntry 13 }
+
+egpNeighMode OBJECT-TYPE
+ SYNTAX INTEGER { active(1), passive(2) }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The polling mode of this EGP entity, either
+ passive or active."
+ ::= { egpNeighEntry 14 }
+
+egpNeighEventTrigger OBJECT-TYPE
+ SYNTAX INTEGER { start(1), stop(2) }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "A control variable used to trigger operator-
+ initiated Start and Stop events. When read, this
+ variable always returns the most recent value that
+ egpNeighEventTrigger was set to. If it has not
+ been set since the last initialization of the
+ network management subsystem on the node, it
+ returns a value of `stop'.
+
+ When set, this variable causes a Start or Stop
+ event on the specified neighbor, as specified on
+ pages 8-10 of RFC 904. Briefly, a Start event
+ causes an Idle peer to begin neighbor acquisition
+ and a non-Idle peer to reinitiate neighbor
+ acquisition. A stop event causes a non-Idle peer
+ to return to the Idle state until a Start event
+ occurs, either via egpNeighEventTrigger or
+ otherwise."
+ ::= { egpNeighEntry 15 }
+
+-- additional EGP objects
+
+egpAs OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The autonomous system number of this EGP entity."
+ ::= { egp 6 }
+
+-- the Transmission group
+
+-- Based on the transmission media underlying each interface
+-- on a system, the corresponding portion of the Transmission
+-- group is mandatory for that system.
+
+-- When Internet-standard definitions for managing
+-- transmission media are defined, the transmission group is
+-- used to provide a prefix for the names of those objects.
+
+-- Typically, such definitions reside in the experimental
+-- portion of the MIB until they are "proven", then as a
+-- part of the Internet standardization process, the
+-- definitions are accordingly elevated and a new object
+-- identifier, under the transmission group is defined. By
+-- convention, the name assigned is:
+--
+-- type OBJECT IDENTIFIER ::= { transmission number }
+--
+-- where "type" is the symbolic value used for the media in
+-- the ifType column of the ifTable object, and "number" is
+-- the actual integer value corresponding to the symbol.
+
+-- the SNMP group
+
+-- Implementation of the SNMP group is mandatory for all
+-- systems which support an SNMP protocol entity. Some of
+-- the objects defined below will be zero-valued in those
+-- SNMP implementations that are optimized to support only
+-- those functions specific to either a management agent or
+-- a management station. In particular, it should be
+-- observed that the objects below refer to an SNMP entity,
+-- and there may be several SNMP entities residing on a
+-- managed node (e.g., if the node is hosting acting as
+-- a management station).
+
+snmpInPkts OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of Messages delivered to the
+ SNMP entity from the transport service."
+ ::= { snmp 1 }
+
+snmpOutPkts OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Messages which were
+ passed from the SNMP protocol entity to the
+ transport service."
+ ::= { snmp 2 }
+
+snmpInBadVersions OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Messages which were
+ delivered to the SNMP protocol entity and were for
+ an unsupported SNMP version."
+ ::= { snmp 3 }
+
+snmpInBadCommunityNames OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Messages delivered to
+ the SNMP protocol entity which used a SNMP
+ community name not known to said entity."
+ ::= { snmp 4 }
+
+snmpInBadCommunityUses OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Messages delivered to
+ the SNMP protocol entity which represented an SNMP
+ operation which was not allowed by the SNMP
+ community named in the Message."
+ ::= { snmp 5 }
+
+snmpInASNParseErrs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of ASN.1 or BER errors
+ encountered by the SNMP protocol entity when
+ decoding received SNMP Messages."
+ ::= { snmp 6 }
+
+-- { snmp 7 } is not used
+
+snmpInTooBigs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP PDUs which were
+ delivered to the SNMP protocol entity and for
+ which the value of the error-status field is
+ `tooBig'."
+ ::= { snmp 8 }
+
+snmpInNoSuchNames OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP PDUs which were
+ delivered to the SNMP protocol entity and for
+ which the value of the error-status field is
+ `noSuchName'."
+ ::= { snmp 9 }
+
+snmpInBadValues OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP PDUs which were
+ delivered to the SNMP protocol entity and for
+ which the value of the error-status field is
+ `badValue'."
+ ::= { snmp 10 }
+
+snmpInReadOnlys OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number valid SNMP PDUs which were
+ delivered to the SNMP protocol entity and for
+ which the value of the error-status field is
+ `readOnly'. It should be noted that it is a
+ protocol error to generate an SNMP PDU which
+ contains the value `readOnly' in the error-status
+ field, as such this object is provided as a means
+ of detecting incorrect implementations of the
+
+ SNMP."
+ ::= { snmp 11 }
+
+snmpInGenErrs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP PDUs which were
+ delivered to the SNMP protocol entity and for
+ which the value of the error-status field is
+ `genErr'."
+ ::= { snmp 12 }
+
+snmpInTotalReqVars OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of MIB objects which have been
+ retrieved successfully by the SNMP protocol entity
+ as the result of receiving valid SNMP Get-Request
+ and Get-Next PDUs."
+ ::= { snmp 13 }
+
+snmpInTotalSetVars OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of MIB objects which have been
+ altered successfully by the SNMP protocol entity
+ as the result of receiving valid SNMP Set-Request
+ PDUs."
+ ::= { snmp 14 }
+
+snmpInGetRequests OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Get-Request PDUs which
+ have been accepted and processed by the SNMP
+ protocol entity."
+ ::= { snmp 15 }
+
+snmpInGetNexts OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Get-Next PDUs which have
+ been accepted and processed by the SNMP protocol
+ entity."
+ ::= { snmp 16 }
+
+snmpInSetRequests OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Set-Request PDUs which
+ have been accepted and processed by the SNMP
+ protocol entity."
+ ::= { snmp 17 }
+
+snmpInGetResponses OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Get-Response PDUs which
+ have been accepted and processed by the SNMP
+ protocol entity."
+ ::= { snmp 18 }
+
+snmpInTraps OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Trap PDUs which have
+ been accepted and processed by the SNMP protocol
+ entity."
+ ::= { snmp 19 }
+
+snmpOutTooBigs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP PDUs which were
+ generated by the SNMP protocol entity and for
+ which the value of the error-status field is
+ `tooBig.'"
+ ::= { snmp 20 }
+
+snmpOutNoSuchNames OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP PDUs which were
+ generated by the SNMP protocol entity and for
+ which the value of the error-status is
+ `noSuchName'."
+ ::= { snmp 21 }
+
+snmpOutBadValues OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP PDUs which were
+ generated by the SNMP protocol entity and for
+ which the value of the error-status field is
+ `badValue'."
+ ::= { snmp 22 }
+
+-- { snmp 23 } is not used
+
+snmpOutGenErrs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP PDUs which were
+ generated by the SNMP protocol entity and for
+ which the value of the error-status field is
+ `genErr'."
+ ::= { snmp 24 }
+
+snmpOutGetRequests OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Get-Request PDUs which
+ have been generated by the SNMP protocol entity."
+ ::= { snmp 25 }
+
+snmpOutGetNexts OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Get-Next PDUs which have
+ been generated by the SNMP protocol entity."
+ ::= { snmp 26 }
+
+snmpOutSetRequests OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Set-Request PDUs which
+ have been generated by the SNMP protocol entity."
+ ::= { snmp 27 }
+
+snmpOutGetResponses OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Get-Response PDUs which
+ have been generated by the SNMP protocol entity."
+ ::= { snmp 28 }
+
+snmpOutTraps OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Trap PDUs which have
+ been generated by the SNMP protocol entity."
+ ::= { snmp 29 }
+
+snmpEnableAuthenTraps OBJECT-TYPE
+ SYNTAX INTEGER { enabled(1), disabled(2) }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Indicates whether the SNMP agent process is
+ permitted to generate authentication-failure
+ traps. The value of this object overrides any
+ configuration information; as such, it provides a
+ means whereby all authentication-failure traps may
+ be disabled.
+
+ Note that it is strongly recommended that this
+ object be stored in non-volatile memory so that it
+ remains constant between re-initializations of the
+ network management system."
+ ::= { snmp 30 }
+
+END
diff --git a/php/extras/mibs/RMON-MIB.txt b/php/extras/mibs/RMON-MIB.txt
new file mode 100644
index 000000000..983c22ef5
--- /dev/null
+++ b/php/extras/mibs/RMON-MIB.txt
@@ -0,0 +1,3980 @@
+RMON-MIB DEFINITIONS ::= BEGIN
+
+ IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE, OBJECT-IDENTITY,
+ NOTIFICATION-TYPE, mib-2, Counter32,
+ Integer32, TimeTicks FROM SNMPv2-SMI
+
+ TEXTUAL-CONVENTION, DisplayString FROM SNMPv2-TC
+
+ MODULE-COMPLIANCE, OBJECT-GROUP,
+ NOTIFICATION-GROUP FROM SNMPv2-CONF;
+
+-- Remote Network Monitoring MIB
+
+rmonMibModule MODULE-IDENTITY
+ LAST-UPDATED "200005110000Z" -- 11 May, 2000
+ ORGANIZATION "IETF RMON MIB Working Group"
+ CONTACT-INFO
+ "Steve Waldbusser
+ Phone: +1-650-948-6500
+ Fax: +1-650-745-0671
+ Email: waldbusser@nextbeacon.com"
+ DESCRIPTION
+ "Remote network monitoring devices, often called
+ monitors or probes, are instruments that exist for
+ the purpose of managing a network. This MIB defines
+ objects for managing remote network monitoring devices."
+
+ REVISION "200005110000Z" -- 11 May, 2000
+ DESCRIPTION
+ "Reformatted into SMIv2 format.
+
+ This version published as RFC 2819."
+
+ REVISION "199502010000Z" -- 1 Feb, 1995
+ DESCRIPTION
+ "Bug fixes, clarifications and minor changes based on
+ implementation experience, published as RFC1757 [18].
+
+ Two changes were made to object definitions:
+
+ 1) A new status bit has been defined for the
+ captureBufferPacketStatus object, indicating that the
+ packet order within the capture buffer may not be identical to
+ the packet order as received off the wire. This bit may only
+
+ be used for packets transmitted by the probe. Older NMS
+ applications can safely ignore this status bit, which might be
+ used by newer agents.
+
+ 2) The packetMatch trap has been removed. This trap was never
+ actually 'approved' and was not added to this document along
+ with the risingAlarm and fallingAlarm traps. The packetMatch
+ trap could not be throttled, which could cause disruption of
+ normal network traffic under some circumstances. An NMS should
+ configure a risingAlarm threshold on the appropriate
+ channelMatches instance if a trap is desired for a packetMatch
+ event. Note that logging of packetMatch events is still
+ supported--only trap generation for such events has been
+ removed.
+
+ In addition, several clarifications to individual object
+ definitions have been added to assist agent and NMS
+ implementors:
+
+ - global definition of 'good packets' and 'bad packets'
+
+ - more detailed text governing conceptual row creation and
+ modification
+
+ - instructions for probes relating to interface changes and
+ disruptions
+
+ - clarification of some ethernet counter definitions
+
+ - recommended formula for calculating network utilization
+
+ - clarification of channel and captureBuffer behavior for some
+ unusual conditions
+
+ - examples of proper instance naming for each table"
+
+ REVISION "199111010000Z" -- 1 Nov, 1991
+ DESCRIPTION
+ "The original version of this MIB, published as RFC1271."
+ ::= { rmonConformance 8 }
+
+ rmon OBJECT IDENTIFIER ::= { mib-2 16 }
+
+ -- textual conventions
+
+OwnerString ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "This data type is used to model an administratively
+ assigned name of the owner of a resource. Implementations
+ must accept values composed of well-formed NVT ASCII
+ sequences. In addition, implementations should accept
+ values composed of well-formed UTF-8 sequences.
+
+ It is suggested that this name contain one or more of
+ the following: IP address, management station name,
+ network manager's name, location, or phone number.
+ In some cases the agent itself will be the owner of
+ an entry. In these cases, this string shall be set
+ to a string starting with 'monitor'.
+
+ SNMP access control is articulated entirely in terms
+ of the contents of MIB views; access to a particular
+ SNMP object instance depends only upon its presence
+ or absence in a particular MIB view and never upon
+ its value or the value of related object instances.
+ Thus, objects of this type afford resolution of
+ resource contention only among cooperating
+ managers; they realize no access control function
+ with respect to uncooperative parties."
+ SYNTAX OCTET STRING (SIZE (0..127))
+
+EntryStatus ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "The status of a table entry.
+
+ Setting this object to the value invalid(4) has the
+ effect of invalidating the corresponding entry.
+ That is, it effectively disassociates the mapping
+ identified with said entry.
+ It is an implementation-specific matter as to whether
+ the agent removes an invalidated entry from the table.
+ Accordingly, management stations must be prepared to
+ receive tabular information from agents that corresponds
+ to entries currently not in use. Proper
+ interpretation of such entries requires examination
+ of the relevant EntryStatus object.
+
+ An existing instance of this object cannot be set to
+ createRequest(2). This object may only be set to
+ createRequest(2) when this instance is created. When
+ this object is created, the agent may wish to create
+ supplemental object instances with default values
+ to complete a conceptual row in this table. Because the
+
+ creation of these default objects is entirely at the option
+ of the agent, the manager must not assume that any will be
+ created, but may make use of any that are created.
+ Immediately after completing the create operation, the agent
+ must set this object to underCreation(3).
+
+ When in the underCreation(3) state, an entry is allowed to
+ exist in a possibly incomplete, possibly inconsistent state,
+ usually to allow it to be modified in multiple PDUs. When in
+ this state, an entry is not fully active.
+ Entries shall exist in the underCreation(3) state until
+ the management station is finished configuring the entry
+ and sets this object to valid(1) or aborts, setting this
+ object to invalid(4). If the agent determines that an
+ entry has been in the underCreation(3) state for an
+ abnormally long time, it may decide that the management
+ station has crashed. If the agent makes this decision,
+ it may set this object to invalid(4) to reclaim the
+ entry. A prudent agent will understand that the
+ management station may need to wait for human input
+ and will allow for that possibility in its
+ determination of this abnormally long period.
+
+ An entry in the valid(1) state is fully configured and
+ consistent and fully represents the configuration or
+ operation such a row is intended to represent. For
+ example, it could be a statistical function that is
+ configured and active, or a filter that is available
+ in the list of filters processed by the packet capture
+ process.
+
+ A manager is restricted to changing the state of an entry in
+ the following ways:
+
+ To: valid createRequest underCreation invalid
+ From:
+ valid OK NO OK OK
+ createRequest N/A N/A N/A N/A
+ underCreation OK NO OK OK
+ invalid NO NO NO OK
+ nonExistent NO OK NO OK
+
+ In the table above, it is not applicable to move the state
+ from the createRequest state to any other state because the
+ manager will never find the variable in that state. The
+ nonExistent state is not a value of the enumeration, rather
+ it means that the entryStatus variable does not exist at all.
+
+ An agent may allow an entryStatus variable to change state in
+ additional ways, so long as the semantics of the states are
+ followed. This allowance is made to ease the implementation of
+ the agent and is made despite the fact that managers should
+ never exercise these additional state transitions."
+ SYNTAX INTEGER {
+ valid(1),
+ createRequest(2),
+ underCreation(3),
+ invalid(4)
+ }
+
+ statistics OBJECT IDENTIFIER ::= { rmon 1 }
+ history OBJECT IDENTIFIER ::= { rmon 2 }
+ alarm OBJECT IDENTIFIER ::= { rmon 3 }
+ hosts OBJECT IDENTIFIER ::= { rmon 4 }
+ hostTopN OBJECT IDENTIFIER ::= { rmon 5 }
+ matrix OBJECT IDENTIFIER ::= { rmon 6 }
+ filter OBJECT IDENTIFIER ::= { rmon 7 }
+ capture OBJECT IDENTIFIER ::= { rmon 8 }
+ event OBJECT IDENTIFIER ::= { rmon 9 }
+ rmonConformance OBJECT IDENTIFIER ::= { rmon 20 }
+
+-- The Ethernet Statistics Group
+--
+-- Implementation of the Ethernet Statistics group is optional.
+-- Consult the MODULE-COMPLIANCE macro for the authoritative
+-- conformance information for this MIB.
+--
+-- The ethernet statistics group contains statistics measured by the
+-- probe for each monitored interface on this device. These
+-- statistics take the form of free running counters that start from
+-- zero when a valid entry is created.
+--
+-- This group currently has statistics defined only for
+-- Ethernet interfaces. Each etherStatsEntry contains statistics
+-- for one Ethernet interface. The probe must create one
+-- etherStats entry for each monitored Ethernet interface
+-- on the device.
+
+etherStatsTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF EtherStatsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A list of Ethernet statistics entries."
+ ::= { statistics 1 }
+
+etherStatsEntry OBJECT-TYPE
+ SYNTAX EtherStatsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A collection of statistics kept for a particular
+ Ethernet interface. As an example, an instance of the
+ etherStatsPkts object might be named etherStatsPkts.1"
+ INDEX { etherStatsIndex }
+ ::= { etherStatsTable 1 }
+
+EtherStatsEntry ::= SEQUENCE {
+ etherStatsIndex Integer32,
+ etherStatsDataSource OBJECT IDENTIFIER,
+ etherStatsDropEvents Counter32,
+ etherStatsOctets Counter32,
+ etherStatsPkts Counter32,
+ etherStatsBroadcastPkts Counter32,
+ etherStatsMulticastPkts Counter32,
+ etherStatsCRCAlignErrors Counter32,
+ etherStatsUndersizePkts Counter32,
+ etherStatsOversizePkts Counter32,
+ etherStatsFragments Counter32,
+ etherStatsJabbers Counter32,
+ etherStatsCollisions Counter32,
+ etherStatsPkts64Octets Counter32,
+ etherStatsPkts65to127Octets Counter32,
+ etherStatsPkts128to255Octets Counter32,
+ etherStatsPkts256to511Octets Counter32,
+ etherStatsPkts512to1023Octets Counter32,
+ etherStatsPkts1024to1518Octets Counter32,
+ etherStatsOwner OwnerString,
+ etherStatsStatus EntryStatus
+}
+
+etherStatsIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of this object uniquely identifies this
+ etherStats entry."
+ ::= { etherStatsEntry 1 }
+
+etherStatsDataSource OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object identifies the source of the data that
+ this etherStats entry is configured to analyze. This
+ source can be any ethernet interface on this device.
+ In order to identify a particular interface, this object
+ shall identify the instance of the ifIndex object,
+ defined in RFC 2233 [17], for the desired interface.
+ For example, if an entry were to receive data from
+ interface #1, this object would be set to ifIndex.1.
+
+ The statistics in this group reflect all packets
+ on the local network segment attached to the identified
+ interface.
+
+ An agent may or may not be able to tell if fundamental
+ changes to the media of the interface have occurred and
+ necessitate an invalidation of this entry. For example, a
+ hot-pluggable ethernet card could be pulled out and replaced
+ by a token-ring card. In such a case, if the agent has such
+ knowledge of the change, it is recommended that it
+ invalidate this entry.
+
+ This object may not be modified if the associated
+ etherStatsStatus object is equal to valid(1)."
+ ::= { etherStatsEntry 2 }
+
+etherStatsDropEvents OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of events in which packets
+ were dropped by the probe due to lack of resources.
+ Note that this number is not necessarily the number of
+ packets dropped; it is just the number of times this
+ condition has been detected."
+ ::= { etherStatsEntry 3 }
+
+etherStatsOctets OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Octets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of octets of data (including
+ those in bad packets) received on the
+ network (excluding framing bits but including
+ FCS octets).
+
+ This object can be used as a reasonable estimate of
+ 10-Megabit ethernet utilization. If greater precision is
+ desired, the etherStatsPkts and etherStatsOctets objects
+ should be sampled before and after a common interval. The
+ differences in the sampled values are Pkts and Octets,
+ respectively, and the number of seconds in the interval is
+ Interval. These values are used to calculate the Utilization
+ as follows:
+
+ Pkts * (9.6 + 6.4) + (Octets * .8)
+ Utilization = -------------------------------------
+ Interval * 10,000
+
+ The result of this equation is the value Utilization which
+ is the percent utilization of the ethernet segment on a
+ scale of 0 to 100 percent."
+ ::= { etherStatsEntry 4 }
+
+etherStatsPkts OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of packets (including bad packets,
+ broadcast packets, and multicast packets) received."
+ ::= { etherStatsEntry 5 }
+
+etherStatsBroadcastPkts OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of good packets received that were
+ directed to the broadcast address. Note that this
+ does not include multicast packets."
+ ::= { etherStatsEntry 6 }
+
+etherStatsMulticastPkts OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of good packets received that were
+ directed to a multicast address. Note that this number
+ does not include packets directed to the broadcast
+
+ address."
+ ::= { etherStatsEntry 7 }
+
+etherStatsCRCAlignErrors OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of packets received that
+ had a length (excluding framing bits, but
+ including FCS octets) of between 64 and 1518
+ octets, inclusive, but had either a bad
+ Frame Check Sequence (FCS) with an integral
+ number of octets (FCS Error) or a bad FCS with
+ a non-integral number of octets (Alignment Error)."
+ ::= { etherStatsEntry 8 }
+
+etherStatsUndersizePkts OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of packets received that were
+ less than 64 octets long (excluding framing bits,
+ but including FCS octets) and were otherwise well
+ formed."
+ ::= { etherStatsEntry 9 }
+
+etherStatsOversizePkts OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of packets received that were
+ longer than 1518 octets (excluding framing bits,
+ but including FCS octets) and were otherwise
+ well formed."
+ ::= { etherStatsEntry 10 }
+
+etherStatsFragments OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of packets received that were less than
+ 64 octets in length (excluding framing bits but including
+ FCS octets) and had either a bad Frame Check Sequence
+ (FCS) with an integral number of octets (FCS Error) or a
+ bad FCS with a non-integral number of octets (Alignment
+ Error).
+
+ Note that it is entirely normal for etherStatsFragments to
+ increment. This is because it counts both runts (which are
+ normal occurrences due to collisions) and noise hits."
+ ::= { etherStatsEntry 11 }
+
+etherStatsJabbers OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of packets received that were
+ longer than 1518 octets (excluding framing bits,
+ but including FCS octets), and had either a bad
+ Frame Check Sequence (FCS) with an integral number
+ of octets (FCS Error) or a bad FCS with a non-integral
+ number of octets (Alignment Error).
+
+ Note that this definition of jabber is different
+ than the definition in IEEE-802.3 section 8.2.1.5
+ (10BASE5) and section 10.3.1.4 (10BASE2). These
+ documents define jabber as the condition where any
+ packet exceeds 20 ms. The allowed range to detect
+ jabber is between 20 ms and 150 ms."
+ ::= { etherStatsEntry 12 }
+
+etherStatsCollisions OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Collisions"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The best estimate of the total number of collisions
+ on this Ethernet segment.
+
+ The value returned will depend on the location of the
+ RMON probe. Section 8.2.1.3 (10BASE-5) and section
+ 10.3.1.3 (10BASE-2) of IEEE standard 802.3 states that a
+ station must detect a collision, in the receive mode, if
+ three or more stations are transmitting simultaneously. A
+ repeater port must detect a collision when two or more
+
+ stations are transmitting simultaneously. Thus a probe
+ placed on a repeater port could record more collisions
+ than a probe connected to a station on the same segment
+ would.
+
+ Probe location plays a much smaller role when considering
+ 10BASE-T. 14.2.1.4 (10BASE-T) of IEEE standard 802.3
+ defines a collision as the simultaneous presence of signals
+ on the DO and RD circuits (transmitting and receiving
+ at the same time). A 10BASE-T station can only detect
+ collisions when it is transmitting. Thus probes placed on
+ a station and a repeater, should report the same number of
+ collisions.
+
+ Note also that an RMON probe inside a repeater should
+ ideally report collisions between the repeater and one or
+ more other hosts (transmit collisions as defined by IEEE
+ 802.3k) plus receiver collisions observed on any coax
+ segments to which the repeater is connected."
+ ::= { etherStatsEntry 13 }
+
+etherStatsPkts64Octets OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of packets (including bad
+ packets) received that were 64 octets in length
+ (excluding framing bits but including FCS octets)."
+ ::= { etherStatsEntry 14 }
+
+etherStatsPkts65to127Octets OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of packets (including bad
+ packets) received that were between
+ 65 and 127 octets in length inclusive
+ (excluding framing bits but including FCS octets)."
+ ::= { etherStatsEntry 15 }
+
+etherStatsPkts128to255Octets OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of packets (including bad
+ packets) received that were between
+ 128 and 255 octets in length inclusive
+ (excluding framing bits but including FCS octets)."
+ ::= { etherStatsEntry 16 }
+
+etherStatsPkts256to511Octets OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of packets (including bad
+ packets) received that were between
+ 256 and 511 octets in length inclusive
+ (excluding framing bits but including FCS octets)."
+ ::= { etherStatsEntry 17 }
+
+etherStatsPkts512to1023Octets OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of packets (including bad
+ packets) received that were between
+ 512 and 1023 octets in length inclusive
+ (excluding framing bits but including FCS octets)."
+ ::= { etherStatsEntry 18 }
+
+etherStatsPkts1024to1518Octets OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of packets (including bad
+ packets) received that were between
+ 1024 and 1518 octets in length inclusive
+ (excluding framing bits but including FCS octets)."
+ ::= { etherStatsEntry 19 }
+
+etherStatsOwner OBJECT-TYPE
+ SYNTAX OwnerString
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The entity that configured this entry and is therefore
+ using the resources assigned to it."
+ ::= { etherStatsEntry 20 }
+
+etherStatsStatus OBJECT-TYPE
+ SYNTAX EntryStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status of this etherStats entry."
+ ::= { etherStatsEntry 21 }
+
+-- The History Control Group
+
+-- Implementation of the History Control group is optional.
+-- Consult the MODULE-COMPLIANCE macro for the authoritative
+-- conformance information for this MIB.
+--
+-- The history control group controls the periodic statistical
+-- sampling of data from various types of networks. The
+-- historyControlTable stores configuration entries that each
+-- define an interface, polling period, and other parameters.
+-- Once samples are taken, their data is stored in an entry
+-- in a media-specific table. Each such entry defines one
+-- sample, and is associated with the historyControlEntry that
+-- caused the sample to be taken. Each counter in the
+-- etherHistoryEntry counts the same event as its similarly-named
+-- counterpart in the etherStatsEntry, except that each value here
+-- is a cumulative sum during a sampling period.
+--
+-- If the probe keeps track of the time of day, it should start
+-- the first sample of the history at a time such that
+-- when the next hour of the day begins, a sample is
+-- started at that instant. This tends to make more
+-- user-friendly reports, and enables comparison of reports
+-- from different probes that have relatively accurate time
+-- of day.
+--
+-- The probe is encouraged to add two history control entries
+-- per monitored interface upon initialization that describe a short
+-- term and a long term polling period. Suggested parameters are 30
+-- seconds for the short term polling period and 30 minutes for
+-- the long term period.
+
+historyControlTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF HistoryControlEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A list of history control entries."
+ ::= { history 1 }
+
+historyControlEntry OBJECT-TYPE
+ SYNTAX HistoryControlEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A list of parameters that set up a periodic sampling of
+ statistics. As an example, an instance of the
+ historyControlInterval object might be named
+ historyControlInterval.2"
+ INDEX { historyControlIndex }
+ ::= { historyControlTable 1 }
+
+HistoryControlEntry ::= SEQUENCE {
+ historyControlIndex Integer32,
+ historyControlDataSource OBJECT IDENTIFIER,
+ historyControlBucketsRequested Integer32,
+ historyControlBucketsGranted Integer32,
+ historyControlInterval Integer32,
+ historyControlOwner OwnerString,
+ historyControlStatus EntryStatus
+}
+
+historyControlIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An index that uniquely identifies an entry in the
+ historyControl table. Each such entry defines a
+ set of samples at a particular interval for an
+ interface on the device."
+ ::= { historyControlEntry 1 }
+
+historyControlDataSource OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object identifies the source of the data for
+ which historical data was collected and
+ placed in a media-specific table on behalf of this
+ historyControlEntry. This source can be any
+ interface on this device. In order to identify
+
+ a particular interface, this object shall identify
+ the instance of the ifIndex object, defined
+ in RFC 2233 [17], for the desired interface.
+ For example, if an entry were to receive data from
+ interface #1, this object would be set to ifIndex.1.
+
+ The statistics in this group reflect all packets
+ on the local network segment attached to the identified
+ interface.
+
+ An agent may or may not be able to tell if fundamental
+ changes to the media of the interface have occurred and
+ necessitate an invalidation of this entry. For example, a
+ hot-pluggable ethernet card could be pulled out and replaced
+ by a token-ring card. In such a case, if the agent has such
+ knowledge of the change, it is recommended that it
+ invalidate this entry.
+
+ This object may not be modified if the associated
+ historyControlStatus object is equal to valid(1)."
+ ::= { historyControlEntry 2 }
+
+historyControlBucketsRequested OBJECT-TYPE
+ SYNTAX Integer32 (1..65535)
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The requested number of discrete time intervals
+ over which data is to be saved in the part of the
+ media-specific table associated with this
+ historyControlEntry.
+
+ When this object is created or modified, the probe
+ should set historyControlBucketsGranted as closely to
+ this object as is possible for the particular probe
+ implementation and available resources."
+ DEFVAL { 50 }
+ ::= { historyControlEntry 3 }
+
+historyControlBucketsGranted OBJECT-TYPE
+ SYNTAX Integer32 (1..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of discrete sampling intervals
+ over which data shall be saved in the part of
+ the media-specific table associated with this
+ historyControlEntry.
+
+ When the associated historyControlBucketsRequested
+ object is created or modified, the probe
+ should set this object as closely to the requested
+ value as is possible for the particular
+ probe implementation and available resources. The
+ probe must not lower this value except as a result
+ of a modification to the associated
+ historyControlBucketsRequested object.
+
+ There will be times when the actual number of
+ buckets associated with this entry is less than
+ the value of this object. In this case, at the
+ end of each sampling interval, a new bucket will
+ be added to the media-specific table.
+
+ When the number of buckets reaches the value of
+ this object and a new bucket is to be added to the
+ media-specific table, the oldest bucket associated
+ with this historyControlEntry shall be deleted by
+ the agent so that the new bucket can be added.
+
+ When the value of this object changes to a value less
+ than the current value, entries are deleted
+ from the media-specific table associated with this
+ historyControlEntry. Enough of the oldest of these
+ entries shall be deleted by the agent so that their
+ number remains less than or equal to the new value of
+ this object.
+
+ When the value of this object changes to a value greater
+ than the current value, the number of associated media-
+ specific entries may be allowed to grow."
+ ::= { historyControlEntry 4 }
+
+historyControlInterval OBJECT-TYPE
+ SYNTAX Integer32 (1..3600)
+ UNITS "Seconds"
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The interval in seconds over which the data is
+ sampled for each bucket in the part of the
+ media-specific table associated with this
+ historyControlEntry. This interval can
+ be set to any number of seconds between 1 and
+ 3600 (1 hour).
+
+ Because the counters in a bucket may overflow at their
+
+ maximum value with no indication, a prudent manager will
+ take into account the possibility of overflow in any of
+ the associated counters. It is important to consider the
+ minimum time in which any counter could overflow on a
+ particular media type and set the historyControlInterval
+ object to a value less than this interval. This is
+ typically most important for the 'octets' counter in any
+ media-specific table. For example, on an Ethernet
+ network, the etherHistoryOctets counter could overflow
+ in about one hour at the Ethernet's maximum
+ utilization.
+
+ This object may not be modified if the associated
+ historyControlStatus object is equal to valid(1)."
+ DEFVAL { 1800 }
+ ::= { historyControlEntry 5 }
+
+historyControlOwner OBJECT-TYPE
+ SYNTAX OwnerString
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The entity that configured this entry and is therefore
+ using the resources assigned to it."
+ ::= { historyControlEntry 6 }
+
+historyControlStatus OBJECT-TYPE
+ SYNTAX EntryStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status of this historyControl entry.
+
+ Each instance of the media-specific table associated
+ with this historyControlEntry will be deleted by the agent
+ if this historyControlEntry is not equal to valid(1)."
+ ::= { historyControlEntry 7 }
+
+-- The Ethernet History Group
+
+-- Implementation of the Ethernet History group is optional.
+-- Consult the MODULE-COMPLIANCE macro for the authoritative
+-- conformance information for this MIB.
+--
+-- The Ethernet History group records periodic statistical samples
+-- from a network and stores them for later retrieval.
+-- Once samples are taken, their data is stored in an entry
+-- in a media-specific table. Each such entry defines one
+
+-- sample, and is associated with the historyControlEntry that
+-- caused the sample to be taken. This group defines the
+-- etherHistoryTable, for Ethernet networks.
+--
+
+etherHistoryTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF EtherHistoryEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A list of Ethernet history entries."
+ ::= { history 2 }
+
+etherHistoryEntry OBJECT-TYPE
+ SYNTAX EtherHistoryEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An historical sample of Ethernet statistics on a particular
+ Ethernet interface. This sample is associated with the
+ historyControlEntry which set up the parameters for
+ a regular collection of these samples. As an example, an
+ instance of the etherHistoryPkts object might be named
+ etherHistoryPkts.2.89"
+ INDEX { etherHistoryIndex , etherHistorySampleIndex }
+ ::= { etherHistoryTable 1 }
+
+EtherHistoryEntry ::= SEQUENCE {
+ etherHistoryIndex Integer32,
+ etherHistorySampleIndex Integer32,
+ etherHistoryIntervalStart TimeTicks,
+ etherHistoryDropEvents Counter32,
+ etherHistoryOctets Counter32,
+ etherHistoryPkts Counter32,
+ etherHistoryBroadcastPkts Counter32,
+ etherHistoryMulticastPkts Counter32,
+ etherHistoryCRCAlignErrors Counter32,
+ etherHistoryUndersizePkts Counter32,
+ etherHistoryOversizePkts Counter32,
+ etherHistoryFragments Counter32,
+ etherHistoryJabbers Counter32,
+ etherHistoryCollisions Counter32,
+ etherHistoryUtilization Integer32
+}
+
+etherHistoryIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The history of which this entry is a part. The
+ history identified by a particular value of this
+ index is the same history as identified
+ by the same value of historyControlIndex."
+ ::= { etherHistoryEntry 1 }
+
+etherHistorySampleIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..2147483647)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An index that uniquely identifies the particular
+ sample this entry represents among all samples
+ associated with the same historyControlEntry.
+ This index starts at 1 and increases by one
+ as each new sample is taken."
+ ::= { etherHistoryEntry 2 }
+
+etherHistoryIntervalStart OBJECT-TYPE
+ SYNTAX TimeTicks
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime at the start of the interval
+ over which this sample was measured. If the probe
+ keeps track of the time of day, it should start
+ the first sample of the history at a time such that
+ when the next hour of the day begins, a sample is
+ started at that instant. Note that following this
+ rule may require the probe to delay collecting the
+ first sample of the history, as each sample must be
+ of the same interval. Also note that the sample which
+ is currently being collected is not accessible in this
+ table until the end of its interval."
+ ::= { etherHistoryEntry 3 }
+
+etherHistoryDropEvents OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of events in which packets
+ were dropped by the probe due to lack of resources
+ during this sampling interval. Note that this number
+ is not necessarily the number of packets dropped, it
+ is just the number of times this condition has been
+
+ detected."
+ ::= { etherHistoryEntry 4 }
+
+etherHistoryOctets OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Octets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of octets of data (including
+ those in bad packets) received on the
+ network (excluding framing bits but including
+ FCS octets)."
+ ::= { etherHistoryEntry 5 }
+
+etherHistoryPkts OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of packets (including bad packets)
+ received during this sampling interval."
+ ::= { etherHistoryEntry 6 }
+
+etherHistoryBroadcastPkts OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of good packets received during this
+ sampling interval that were directed to the
+ broadcast address."
+ ::= { etherHistoryEntry 7 }
+
+etherHistoryMulticastPkts OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of good packets received during this
+ sampling interval that were directed to a
+ multicast address. Note that this number does not
+ include packets addressed to the broadcast address."
+ ::= { etherHistoryEntry 8 }
+
+etherHistoryCRCAlignErrors OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of packets received during this
+ sampling interval that had a length (excluding
+ framing bits but including FCS octets) between
+ 64 and 1518 octets, inclusive, but had either a bad Frame
+ Check Sequence (FCS) with an integral number of octets
+ (FCS Error) or a bad FCS with a non-integral number
+ of octets (Alignment Error)."
+ ::= { etherHistoryEntry 9 }
+
+etherHistoryUndersizePkts OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of packets received during this
+ sampling interval that were less than 64 octets
+ long (excluding framing bits but including FCS
+ octets) and were otherwise well formed."
+ ::= { etherHistoryEntry 10 }
+
+etherHistoryOversizePkts OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of packets received during this
+ sampling interval that were longer than 1518
+ octets (excluding framing bits but including
+ FCS octets) but were otherwise well formed."
+ ::= { etherHistoryEntry 11 }
+
+etherHistoryFragments OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of packets received during this
+ sampling interval that were less than 64 octets in
+ length (excluding framing bits but including FCS
+
+ octets) had either a bad Frame Check Sequence (FCS)
+ with an integral number of octets (FCS Error) or a bad
+ FCS with a non-integral number of octets (Alignment
+ Error).
+
+ Note that it is entirely normal for etherHistoryFragments to
+ increment. This is because it counts both runts (which are
+ normal occurrences due to collisions) and noise hits."
+ ::= { etherHistoryEntry 12 }
+
+etherHistoryJabbers OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of packets received during this
+ sampling interval that were longer than 1518 octets
+ (excluding framing bits but including FCS octets),
+ and had either a bad Frame Check Sequence (FCS)
+ with an integral number of octets (FCS Error) or
+ a bad FCS with a non-integral number of octets
+ (Alignment Error).
+
+ Note that this definition of jabber is different
+ than the definition in IEEE-802.3 section 8.2.1.5
+ (10BASE5) and section 10.3.1.4 (10BASE2). These
+ documents define jabber as the condition where any
+ packet exceeds 20 ms. The allowed range to detect
+ jabber is between 20 ms and 150 ms."
+ ::= { etherHistoryEntry 13 }
+
+etherHistoryCollisions OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Collisions"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The best estimate of the total number of collisions
+ on this Ethernet segment during this sampling
+ interval.
+
+ The value returned will depend on the location of the
+ RMON probe. Section 8.2.1.3 (10BASE-5) and section
+ 10.3.1.3 (10BASE-2) of IEEE standard 802.3 states that a
+ station must detect a collision, in the receive mode, if
+ three or more stations are transmitting simultaneously. A
+ repeater port must detect a collision when two or more
+
+ stations are transmitting simultaneously. Thus a probe
+ placed on a repeater port could record more collisions
+ than a probe connected to a station on the same segment
+ would.
+
+ Probe location plays a much smaller role when considering
+ 10BASE-T. 14.2.1.4 (10BASE-T) of IEEE standard 802.3
+ defines a collision as the simultaneous presence of signals
+ on the DO and RD circuits (transmitting and receiving
+ at the same time). A 10BASE-T station can only detect
+ collisions when it is transmitting. Thus probes placed on
+ a station and a repeater, should report the same number of
+ collisions.
+
+ Note also that an RMON probe inside a repeater should
+ ideally report collisions between the repeater and one or
+ more other hosts (transmit collisions as defined by IEEE
+ 802.3k) plus receiver collisions observed on any coax
+ segments to which the repeater is connected."
+ ::= { etherHistoryEntry 14 }
+
+etherHistoryUtilization OBJECT-TYPE
+ SYNTAX Integer32 (0..10000)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The best estimate of the mean physical layer
+ network utilization on this interface during this
+ sampling interval, in hundredths of a percent."
+ ::= { etherHistoryEntry 15 }
+
+-- The Alarm Group
+
+-- Implementation of the Alarm group is optional. The Alarm Group
+-- requires the implementation of the Event group.
+-- Consult the MODULE-COMPLIANCE macro for the authoritative
+-- conformance information for this MIB.
+--
+-- The Alarm group periodically takes statistical samples from
+-- variables in the probe and compares them to thresholds that have
+-- been configured. The alarm table stores configuration
+-- entries that each define a variable, polling period, and
+-- threshold parameters. If a sample is found to cross the
+-- threshold values, an event is generated. Only variables that
+-- resolve to an ASN.1 primitive type of INTEGER (INTEGER, Integer32,
+-- Counter32, Counter64, Gauge32, or TimeTicks) may be monitored in
+-- this way.
+--
+
+-- This function has a hysteresis mechanism to limit the generation
+-- of events. This mechanism generates one event as a threshold
+-- is crossed in the appropriate direction. No more events are
+-- generated for that threshold until the opposite threshold is
+-- crossed.
+--
+-- In the case of a sampling a deltaValue, a probe may implement
+-- this mechanism with more precision if it takes a delta sample
+-- twice per period, each time comparing the sum of the latest two
+-- samples to the threshold. This allows the detection of threshold
+-- crossings that span the sampling boundary. Note that this does
+-- not require any special configuration of the threshold value.
+-- It is suggested that probes implement this more precise algorithm.
+
+alarmTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF AlarmEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A list of alarm entries."
+ ::= { alarm 1 }
+
+alarmEntry OBJECT-TYPE
+ SYNTAX AlarmEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A list of parameters that set up a periodic checking
+ for alarm conditions. For example, an instance of the
+ alarmValue object might be named alarmValue.8"
+ INDEX { alarmIndex }
+ ::= { alarmTable 1 }
+
+AlarmEntry ::= SEQUENCE {
+ alarmIndex Integer32,
+ alarmInterval Integer32,
+ alarmVariable OBJECT IDENTIFIER,
+ alarmSampleType INTEGER,
+ alarmValue Integer32,
+ alarmStartupAlarm INTEGER,
+ alarmRisingThreshold Integer32,
+ alarmFallingThreshold Integer32,
+ alarmRisingEventIndex Integer32,
+ alarmFallingEventIndex Integer32,
+ alarmOwner OwnerString,
+ alarmStatus EntryStatus
+}
+
+alarmIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An index that uniquely identifies an entry in the
+ alarm table. Each such entry defines a
+ diagnostic sample at a particular interval
+ for an object on the device."
+ ::= { alarmEntry 1 }
+
+alarmInterval OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "Seconds"
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The interval in seconds over which the data is
+ sampled and compared with the rising and falling
+ thresholds. When setting this variable, care
+ should be taken in the case of deltaValue
+ sampling - the interval should be set short enough
+ that the sampled variable is very unlikely to
+ increase or decrease by more than 2^31 - 1 during
+ a single sampling interval.
+
+ This object may not be modified if the associated
+ alarmStatus object is equal to valid(1)."
+ ::= { alarmEntry 2 }
+
+alarmVariable OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The object identifier of the particular variable to be
+ sampled. Only variables that resolve to an ASN.1 primitive
+ type of INTEGER (INTEGER, Integer32, Counter32, Counter64,
+ Gauge, or TimeTicks) may be sampled.
+
+ Because SNMP access control is articulated entirely
+ in terms of the contents of MIB views, no access
+ control mechanism exists that can restrict the value of
+ this object to identify only those objects that exist
+ in a particular MIB view. Because there is thus no
+ acceptable means of restricting the read access that
+ could be obtained through the alarm mechanism, the
+ probe must only grant write access to this object in
+
+ those views that have read access to all objects on
+ the probe.
+
+ During a set operation, if the supplied variable name is
+ not available in the selected MIB view, a badValue error
+ must be returned. If at any time the variable name of
+ an established alarmEntry is no longer available in the
+ selected MIB view, the probe must change the status of
+ this alarmEntry to invalid(4).
+
+ This object may not be modified if the associated
+ alarmStatus object is equal to valid(1)."
+ ::= { alarmEntry 3 }
+
+alarmSampleType OBJECT-TYPE
+ SYNTAX INTEGER {
+ absoluteValue(1),
+ deltaValue(2)
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The method of sampling the selected variable and
+ calculating the value to be compared against the
+ thresholds. If the value of this object is
+ absoluteValue(1), the value of the selected variable
+ will be compared directly with the thresholds at the
+ end of the sampling interval. If the value of this
+ object is deltaValue(2), the value of the selected
+ variable at the last sample will be subtracted from
+ the current value, and the difference compared with
+ the thresholds.
+
+ This object may not be modified if the associated
+ alarmStatus object is equal to valid(1)."
+ ::= { alarmEntry 4 }
+
+alarmValue OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of the statistic during the last sampling
+ period. For example, if the sample type is deltaValue,
+ this value will be the difference between the samples
+ at the beginning and end of the period. If the sample
+ type is absoluteValue, this value will be the sampled
+ value at the end of the period.
+
+ This is the value that is compared with the rising and
+ falling thresholds.
+
+ The value during the current sampling period is not
+ made available until the period is completed and will
+ remain available until the next period completes."
+ ::= { alarmEntry 5 }
+
+alarmStartupAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ risingAlarm(1),
+ fallingAlarm(2),
+ risingOrFallingAlarm(3)
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The alarm that may be sent when this entry is first
+ set to valid. If the first sample after this entry
+ becomes valid is greater than or equal to the
+ risingThreshold and alarmStartupAlarm is equal to
+ risingAlarm(1) or risingOrFallingAlarm(3), then a single
+ rising alarm will be generated. If the first sample
+ after this entry becomes valid is less than or equal
+ to the fallingThreshold and alarmStartupAlarm is equal
+ to fallingAlarm(2) or risingOrFallingAlarm(3), then a
+ single falling alarm will be generated.
+
+ This object may not be modified if the associated
+ alarmStatus object is equal to valid(1)."
+ ::= { alarmEntry 6 }
+
+alarmRisingThreshold OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "A threshold for the sampled statistic. When the current
+ sampled value is greater than or equal to this threshold,
+ and the value at the last sampling interval was less than
+ this threshold, a single event will be generated.
+ A single event will also be generated if the first
+ sample after this entry becomes valid is greater than or
+ equal to this threshold and the associated
+ alarmStartupAlarm is equal to risingAlarm(1) or
+ risingOrFallingAlarm(3).
+
+ After a rising event is generated, another such event
+
+ will not be generated until the sampled value
+ falls below this threshold and reaches the
+ alarmFallingThreshold.
+
+ This object may not be modified if the associated
+ alarmStatus object is equal to valid(1)."
+ ::= { alarmEntry 7 }
+
+alarmFallingThreshold OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "A threshold for the sampled statistic. When the current
+ sampled value is less than or equal to this threshold,
+ and the value at the last sampling interval was greater than
+ this threshold, a single event will be generated.
+ A single event will also be generated if the first
+ sample after this entry becomes valid is less than or
+ equal to this threshold and the associated
+ alarmStartupAlarm is equal to fallingAlarm(2) or
+ risingOrFallingAlarm(3).
+
+ After a falling event is generated, another such event
+ will not be generated until the sampled value
+ rises above this threshold and reaches the
+ alarmRisingThreshold.
+
+ This object may not be modified if the associated
+ alarmStatus object is equal to valid(1)."
+ ::= { alarmEntry 8 }
+
+alarmRisingEventIndex OBJECT-TYPE
+ SYNTAX Integer32 (0..65535)
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The index of the eventEntry that is
+ used when a rising threshold is crossed. The
+ eventEntry identified by a particular value of
+ this index is the same as identified by the same value
+ of the eventIndex object. If there is no
+ corresponding entry in the eventTable, then
+ no association exists. In particular, if this value
+ is zero, no associated event will be generated, as
+ zero is not a valid event index.
+
+ This object may not be modified if the associated
+
+ alarmStatus object is equal to valid(1)."
+ ::= { alarmEntry 9 }
+
+alarmFallingEventIndex OBJECT-TYPE
+ SYNTAX Integer32 (0..65535)
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The index of the eventEntry that is
+ used when a falling threshold is crossed. The
+ eventEntry identified by a particular value of
+ this index is the same as identified by the same value
+ of the eventIndex object. If there is no
+ corresponding entry in the eventTable, then
+ no association exists. In particular, if this value
+ is zero, no associated event will be generated, as
+ zero is not a valid event index.
+
+ This object may not be modified if the associated
+ alarmStatus object is equal to valid(1)."
+ ::= { alarmEntry 10 }
+
+alarmOwner OBJECT-TYPE
+ SYNTAX OwnerString
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The entity that configured this entry and is therefore
+ using the resources assigned to it."
+ ::= { alarmEntry 11 }
+
+alarmStatus OBJECT-TYPE
+ SYNTAX EntryStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status of this alarm entry."
+ ::= { alarmEntry 12 }
+
+-- The Host Group
+
+-- Implementation of the Host group is optional.
+-- Consult the MODULE-COMPLIANCE macro for the authoritative
+-- conformance information for this MIB.
+--
+-- The host group discovers new hosts on the network by
+-- keeping a list of source and destination MAC Addresses seen
+-- in good packets. For each of these addresses, the host group
+
+-- keeps a set of statistics. The hostControlTable controls
+-- which interfaces this function is performed on, and contains
+-- some information about the process. On behalf of each
+-- hostControlEntry, data is collected on an interface and placed
+-- in both the hostTable and the hostTimeTable. If the
+-- monitoring device finds itself short of resources, it may
+-- delete entries as needed. It is suggested that the device
+-- delete the least recently used entries first.
+
+-- The hostTable contains entries for each address discovered on
+-- a particular interface. Each entry contains statistical
+-- data about that host. This table is indexed by the
+-- MAC address of the host, through which a random access
+-- may be achieved.
+
+-- The hostTimeTable contains data in the same format as the
+-- hostTable, and must contain the same set of hosts, but is
+-- indexed using hostTimeCreationOrder rather than hostAddress.
+-- The hostTimeCreationOrder is an integer which reflects
+-- the relative order in which a particular entry was discovered
+-- and thus inserted into the table. As this order, and thus
+-- the index, is among those entries currently in the table,
+-- the index for a particular entry may change if an
+-- (earlier) entry is deleted. Thus the association between
+-- hostTimeCreationOrder and hostTimeEntry may be broken at
+-- any time.
+
+-- The hostTimeTable has two important uses. The first is the
+-- fast download of this potentially large table. Because the
+-- index of this table runs from 1 to the size of the table,
+-- inclusive, its values are predictable. This allows very
+-- efficient packing of variables into SNMP PDU's and allows
+-- a table transfer to have multiple packets outstanding.
+-- These benefits increase transfer rates tremendously.
+
+-- The second use of the hostTimeTable is the efficient discovery
+-- by the management station of new entries added to the table.
+-- After the management station has downloaded the entire table,
+-- it knows that new entries will be added immediately after the
+-- end of the current table. It can thus detect new entries there
+-- and retrieve them easily.
+
+-- Because the association between hostTimeCreationOrder and
+-- hostTimeEntry may be broken at any time, the management
+-- station must monitor the related hostControlLastDeleteTime
+-- object. When the management station thus detects a deletion,
+-- it must assume that any such associations have been broken,
+-- and invalidate any it has stored locally. This includes
+
+-- restarting any download of the hostTimeTable that may have been
+-- in progress, as well as rediscovering the end of the
+-- hostTimeTable so that it may detect new entries. If the
+-- management station does not detect the broken association,
+-- it may continue to refer to a particular host by its
+-- creationOrder while unwittingly retrieving the data associated
+-- with another host entirely. If this happens while downloading
+-- the host table, the management station may fail to download
+-- all of the entries in the table.
+
+hostControlTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF HostControlEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A list of host table control entries."
+ ::= { hosts 1 }
+
+hostControlEntry OBJECT-TYPE
+ SYNTAX HostControlEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A list of parameters that set up the discovery of hosts
+ on a particular interface and the collection of statistics
+ about these hosts. For example, an instance of the
+ hostControlTableSize object might be named
+ hostControlTableSize.1"
+ INDEX { hostControlIndex }
+ ::= { hostControlTable 1 }
+
+HostControlEntry ::= SEQUENCE {
+
+ hostControlIndex Integer32,
+ hostControlDataSource OBJECT IDENTIFIER,
+ hostControlTableSize Integer32,
+ hostControlLastDeleteTime TimeTicks,
+ hostControlOwner OwnerString,
+ hostControlStatus EntryStatus
+}
+
+hostControlIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An index that uniquely identifies an entry in the
+
+ hostControl table. Each such entry defines
+ a function that discovers hosts on a particular interface
+ and places statistics about them in the hostTable and
+ the hostTimeTable on behalf of this hostControlEntry."
+ ::= { hostControlEntry 1 }
+
+hostControlDataSource OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object identifies the source of the data for
+ this instance of the host function. This source
+ can be any interface on this device. In order
+ to identify a particular interface, this object shall
+ identify the instance of the ifIndex object, defined
+ in RFC 2233 [17], for the desired interface.
+ For example, if an entry were to receive data from
+ interface #1, this object would be set to ifIndex.1.
+
+ The statistics in this group reflect all packets
+ on the local network segment attached to the identified
+ interface.
+
+ An agent may or may not be able to tell if fundamental
+ changes to the media of the interface have occurred and
+ necessitate an invalidation of this entry. For example, a
+ hot-pluggable ethernet card could be pulled out and replaced
+ by a token-ring card. In such a case, if the agent has such
+ knowledge of the change, it is recommended that it
+ invalidate this entry.
+
+ This object may not be modified if the associated
+ hostControlStatus object is equal to valid(1)."
+ ::= { hostControlEntry 2 }
+
+hostControlTableSize OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of hostEntries in the hostTable and the
+ hostTimeTable associated with this hostControlEntry."
+ ::= { hostControlEntry 3 }
+
+hostControlLastDeleteTime OBJECT-TYPE
+ SYNTAX TimeTicks
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime when the last entry
+ was deleted from the portion of the hostTable
+ associated with this hostControlEntry. If no
+ deletions have occurred, this value shall be zero."
+ ::= { hostControlEntry 4 }
+
+hostControlOwner OBJECT-TYPE
+ SYNTAX OwnerString
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The entity that configured this entry and is therefore
+ using the resources assigned to it."
+ ::= { hostControlEntry 5 }
+
+hostControlStatus OBJECT-TYPE
+ SYNTAX EntryStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status of this hostControl entry.
+
+ If this object is not equal to valid(1), all associated
+ entries in the hostTable, hostTimeTable, and the
+ hostTopNTable shall be deleted by the agent."
+ ::= { hostControlEntry 6 }
+
+hostTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF HostEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A list of host entries."
+ ::= { hosts 2 }
+
+hostEntry OBJECT-TYPE
+ SYNTAX HostEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A collection of statistics for a particular host that has
+ been discovered on an interface of this device. For example,
+ an instance of the hostOutBroadcastPkts object might be
+ named hostOutBroadcastPkts.1.6.8.0.32.27.3.176"
+ INDEX { hostIndex, hostAddress }
+ ::= { hostTable 1 }
+
+HostEntry ::= SEQUENCE {
+ hostAddress OCTET STRING,
+ hostCreationOrder Integer32,
+ hostIndex Integer32,
+ hostInPkts Counter32,
+ hostOutPkts Counter32,
+ hostInOctets Counter32,
+ hostOutOctets Counter32,
+ hostOutErrors Counter32,
+ hostOutBroadcastPkts Counter32,
+ hostOutMulticastPkts Counter32
+}
+
+hostAddress OBJECT-TYPE
+ SYNTAX OCTET STRING
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The physical address of this host."
+ ::= { hostEntry 1 }
+
+hostCreationOrder OBJECT-TYPE
+ SYNTAX Integer32 (1..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An index that defines the relative ordering of
+ the creation time of hosts captured for a
+ particular hostControlEntry. This index shall
+ be between 1 and N, where N is the value of
+ the associated hostControlTableSize. The ordering
+ of the indexes is based on the order of each entry's
+ insertion into the table, in which entries added earlier
+ have a lower index value than entries added later.
+
+ It is important to note that the order for a
+ particular entry may change as an (earlier) entry
+ is deleted from the table. Because this order may
+ change, management stations should make use of the
+ hostControlLastDeleteTime variable in the
+ hostControlEntry associated with the relevant
+ portion of the hostTable. By observing
+ this variable, the management station may detect
+ the circumstances where a previous association
+ between a value of hostCreationOrder
+ and a hostEntry may no longer hold."
+ ::= { hostEntry 2 }
+
+hostIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The set of collected host statistics of which
+ this entry is a part. The set of hosts
+ identified by a particular value of this
+ index is associated with the hostControlEntry
+ as identified by the same value of hostControlIndex."
+ ::= { hostEntry 3 }
+
+hostInPkts OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of good packets transmitted to this
+ address since it was added to the hostTable."
+ ::= { hostEntry 4 }
+
+hostOutPkts OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of packets, including bad packets, transmitted
+ by this address since it was added to the hostTable."
+ ::= { hostEntry 5 }
+
+hostInOctets OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Octets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of octets transmitted to this address since
+ it was added to the hostTable (excluding framing
+ bits but including FCS octets), except for those
+ octets in bad packets."
+ ::= { hostEntry 6 }
+
+hostOutOctets OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Octets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of octets transmitted by this address since
+ it was added to the hostTable (excluding framing
+ bits but including FCS octets), including those
+ octets in bad packets."
+ ::= { hostEntry 7 }
+
+hostOutErrors OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of bad packets transmitted by this address
+ since this host was added to the hostTable."
+ ::= { hostEntry 8 }
+
+hostOutBroadcastPkts OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of good packets transmitted by this
+ address that were directed to the broadcast address
+ since this host was added to the hostTable."
+ ::= { hostEntry 9 }
+
+hostOutMulticastPkts OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of good packets transmitted by this
+ address that were directed to a multicast address
+ since this host was added to the hostTable.
+ Note that this number does not include packets
+ directed to the broadcast address."
+ ::= { hostEntry 10 }
+
+-- host Time Table
+
+hostTimeTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF HostTimeEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A list of time-ordered host table entries."
+ ::= { hosts 3 }
+
+hostTimeEntry OBJECT-TYPE
+ SYNTAX HostTimeEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A collection of statistics for a particular host that has
+ been discovered on an interface of this device. This
+ collection includes the relative ordering of the creation
+ time of this object. For example, an instance of the
+ hostTimeOutBroadcastPkts object might be named
+ hostTimeOutBroadcastPkts.1.687"
+ INDEX { hostTimeIndex, hostTimeCreationOrder }
+ ::= { hostTimeTable 1 }
+
+HostTimeEntry ::= SEQUENCE {
+ hostTimeAddress OCTET STRING,
+ hostTimeCreationOrder Integer32,
+ hostTimeIndex Integer32,
+ hostTimeInPkts Counter32,
+ hostTimeOutPkts Counter32,
+ hostTimeInOctets Counter32,
+ hostTimeOutOctets Counter32,
+ hostTimeOutErrors Counter32,
+ hostTimeOutBroadcastPkts Counter32,
+ hostTimeOutMulticastPkts Counter32
+}
+
+hostTimeAddress OBJECT-TYPE
+ SYNTAX OCTET STRING
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The physical address of this host."
+ ::= { hostTimeEntry 1 }
+
+hostTimeCreationOrder OBJECT-TYPE
+ SYNTAX Integer32 (1..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An index that uniquely identifies an entry in
+ the hostTime table among those entries associated
+ with the same hostControlEntry. This index shall
+ be between 1 and N, where N is the value of
+
+ the associated hostControlTableSize. The ordering
+ of the indexes is based on the order of each entry's
+ insertion into the table, in which entries added earlier
+ have a lower index value than entries added later.
+ Thus the management station has the ability to
+ learn of new entries added to this table without
+ downloading the entire table.
+
+ It is important to note that the index for a
+ particular entry may change as an (earlier) entry
+ is deleted from the table. Because this order may
+ change, management stations should make use of the
+ hostControlLastDeleteTime variable in the
+ hostControlEntry associated with the relevant
+ portion of the hostTimeTable. By observing
+ this variable, the management station may detect
+ the circumstances where a download of the table
+ may have missed entries, and where a previous
+ association between a value of hostTimeCreationOrder
+ and a hostTimeEntry may no longer hold."
+ ::= { hostTimeEntry 2 }
+
+hostTimeIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The set of collected host statistics of which
+ this entry is a part. The set of hosts
+ identified by a particular value of this
+ index is associated with the hostControlEntry
+ as identified by the same value of hostControlIndex."
+ ::= { hostTimeEntry 3 }
+
+hostTimeInPkts OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of good packets transmitted to this
+ address since it was added to the hostTimeTable."
+ ::= { hostTimeEntry 4 }
+
+hostTimeOutPkts OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of packets, including bad packets, transmitted
+ by this address since it was added to the hostTimeTable."
+ ::= { hostTimeEntry 5 }
+
+hostTimeInOctets OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Octets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of octets transmitted to this address since
+ it was added to the hostTimeTable (excluding framing
+ bits but including FCS octets), except for those
+ octets in bad packets."
+ ::= { hostTimeEntry 6 }
+
+hostTimeOutOctets OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Octets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of octets transmitted by this address since
+ it was added to the hostTimeTable (excluding framing
+ bits but including FCS octets), including those
+ octets in bad packets."
+ ::= { hostTimeEntry 7 }
+
+hostTimeOutErrors OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of bad packets transmitted by this address
+ since this host was added to the hostTimeTable."
+ ::= { hostTimeEntry 8 }
+
+hostTimeOutBroadcastPkts OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of good packets transmitted by this
+ address that were directed to the broadcast address
+
+ since this host was added to the hostTimeTable."
+ ::= { hostTimeEntry 9 }
+
+hostTimeOutMulticastPkts OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of good packets transmitted by this
+ address that were directed to a multicast address
+ since this host was added to the hostTimeTable.
+ Note that this number does not include packets directed
+ to the broadcast address."
+ ::= { hostTimeEntry 10 }
+
+-- The Host Top "N" Group
+
+-- Implementation of the Host Top N group is optional. The Host Top N
+-- group requires the implementation of the host group.
+-- Consult the MODULE-COMPLIANCE macro for the authoritative
+-- conformance information for this MIB.
+--
+-- The Host Top N group is used to prepare reports that describe
+-- the hosts that top a list ordered by one of their statistics.
+-- The available statistics are samples of one of their
+-- base statistics, over an interval specified by the management
+-- station. Thus, these statistics are rate based. The management
+-- station also selects how many such hosts are reported.
+
+-- The hostTopNControlTable is used to initiate the generation of
+-- such a report. The management station may select the parameters
+-- of such a report, such as which interface, which statistic,
+-- how many hosts, and the start and stop times of the sampling.
+-- When the report is prepared, entries are created in the
+-- hostTopNTable associated with the relevant hostTopNControlEntry.
+-- These entries are static for each report after it has been
+-- prepared.
+
+hostTopNControlTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF HostTopNControlEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A list of top N host control entries."
+ ::= { hostTopN 1 }
+
+hostTopNControlEntry OBJECT-TYPE
+ SYNTAX HostTopNControlEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A set of parameters that control the creation of a report
+ of the top N hosts according to several metrics. For
+ example, an instance of the hostTopNDuration object might
+ be named hostTopNDuration.3"
+ INDEX { hostTopNControlIndex }
+ ::= { hostTopNControlTable 1 }
+
+HostTopNControlEntry ::= SEQUENCE {
+ hostTopNControlIndex Integer32,
+ hostTopNHostIndex Integer32,
+ hostTopNRateBase INTEGER,
+ hostTopNTimeRemaining Integer32,
+ hostTopNDuration Integer32,
+ hostTopNRequestedSize Integer32,
+ hostTopNGrantedSize Integer32,
+ hostTopNStartTime TimeTicks,
+ hostTopNOwner OwnerString,
+ hostTopNStatus EntryStatus
+}
+
+hostTopNControlIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An index that uniquely identifies an entry
+ in the hostTopNControl table. Each such
+ entry defines one top N report prepared for
+ one interface."
+ ::= { hostTopNControlEntry 1 }
+
+hostTopNHostIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..65535)
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The host table for which a top N report will be prepared
+ on behalf of this entry. The host table identified by a
+ particular value of this index is associated with the same
+ host table as identified by the same value of
+ hostIndex.
+
+ This object may not be modified if the associated
+ hostTopNStatus object is equal to valid(1)."
+ ::= { hostTopNControlEntry 2 }
+
+hostTopNRateBase OBJECT-TYPE
+ SYNTAX INTEGER {
+ hostTopNInPkts(1),
+ hostTopNOutPkts(2),
+ hostTopNInOctets(3),
+ hostTopNOutOctets(4),
+ hostTopNOutErrors(5),
+ hostTopNOutBroadcastPkts(6),
+ hostTopNOutMulticastPkts(7)
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The variable for each host that the hostTopNRate
+ variable is based upon.
+
+ This object may not be modified if the associated
+ hostTopNStatus object is equal to valid(1)."
+ ::= { hostTopNControlEntry 3 }
+
+hostTopNTimeRemaining OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "Seconds"
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The number of seconds left in the report currently being
+ collected. When this object is modified by the management
+ station, a new collection is started, possibly aborting
+ a currently running report. The new value is used
+ as the requested duration of this report, which is
+ loaded into the associated hostTopNDuration object.
+
+ When this object is set to a non-zero value, any
+ associated hostTopNEntries shall be made
+ inaccessible by the monitor. While the value of this
+ object is non-zero, it decrements by one per second until
+ it reaches zero. During this time, all associated
+ hostTopNEntries shall remain inaccessible. At the time
+ that this object decrements to zero, the report is made
+ accessible in the hostTopNTable. Thus, the hostTopN
+ table needs to be created only at the end of the collection
+ interval."
+ DEFVAL { 0 }
+ ::= { hostTopNControlEntry 4 }
+
+hostTopNDuration OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "Seconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of seconds that this report has collected
+ during the last sampling interval, or if this
+ report is currently being collected, the number
+ of seconds that this report is being collected
+ during this sampling interval.
+
+ When the associated hostTopNTimeRemaining object is set,
+ this object shall be set by the probe to the same value
+ and shall not be modified until the next time
+ the hostTopNTimeRemaining is set.
+
+ This value shall be zero if no reports have been
+ requested for this hostTopNControlEntry."
+ DEFVAL { 0 }
+ ::= { hostTopNControlEntry 5 }
+
+hostTopNRequestedSize OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The maximum number of hosts requested for the top N
+ table.
+
+ When this object is created or modified, the probe
+ should set hostTopNGrantedSize as closely to this
+ object as is possible for the particular probe
+ implementation and available resources."
+ DEFVAL { 10 }
+ ::= { hostTopNControlEntry 6 }
+
+hostTopNGrantedSize OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The maximum number of hosts in the top N table.
+
+ When the associated hostTopNRequestedSize object is
+ created or modified, the probe should set this
+ object as closely to the requested value as is possible
+ for the particular implementation and available
+
+ resources. The probe must not lower this value except
+ as a result of a set to the associated
+ hostTopNRequestedSize object.
+
+ Hosts with the highest value of hostTopNRate shall be
+ placed in this table in decreasing order of this rate
+ until there is no more room or until there are no more
+ hosts."
+ ::= { hostTopNControlEntry 7 }
+
+hostTopNStartTime OBJECT-TYPE
+ SYNTAX TimeTicks
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime when this top N report was
+ last started. In other words, this is the time that
+ the associated hostTopNTimeRemaining object was
+ modified to start the requested report."
+ ::= { hostTopNControlEntry 8 }
+
+hostTopNOwner OBJECT-TYPE
+ SYNTAX OwnerString
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The entity that configured this entry and is therefore
+ using the resources assigned to it."
+ ::= { hostTopNControlEntry 9 }
+
+hostTopNStatus OBJECT-TYPE
+ SYNTAX EntryStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status of this hostTopNControl entry.
+
+ If this object is not equal to valid(1), all associated
+ hostTopNEntries shall be deleted by the agent."
+ ::= { hostTopNControlEntry 10 }
+
+hostTopNTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF HostTopNEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A list of top N host entries."
+ ::= { hostTopN 2 }
+
+hostTopNEntry OBJECT-TYPE
+ SYNTAX HostTopNEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A set of statistics for a host that is part of a top N
+ report. For example, an instance of the hostTopNRate
+ object might be named hostTopNRate.3.10"
+ INDEX { hostTopNReport, hostTopNIndex }
+ ::= { hostTopNTable 1 }
+
+HostTopNEntry ::= SEQUENCE {
+ hostTopNReport Integer32,
+ hostTopNIndex Integer32,
+ hostTopNAddress OCTET STRING,
+ hostTopNRate Integer32
+}
+
+hostTopNReport OBJECT-TYPE
+ SYNTAX Integer32 (1..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "This object identifies the top N report of which
+ this entry is a part. The set of hosts
+ identified by a particular value of this
+ object is part of the same report as identified
+ by the same value of the hostTopNControlIndex object."
+ ::= { hostTopNEntry 1 }
+
+hostTopNIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An index that uniquely identifies an entry in
+ the hostTopN table among those in the same report.
+ This index is between 1 and N, where N is the
+ number of entries in this table. Increasing values
+ of hostTopNIndex shall be assigned to entries with
+ decreasing values of hostTopNRate until index N
+ is assigned to the entry with the lowest value of
+ hostTopNRate or there are no more hostTopNEntries."
+ ::= { hostTopNEntry 2 }
+
+hostTopNAddress OBJECT-TYPE
+ SYNTAX OCTET STRING
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The physical address of this host."
+ ::= { hostTopNEntry 3 }
+
+hostTopNRate OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The amount of change in the selected variable
+ during this sampling interval. The selected
+ variable is this host's instance of the object
+ selected by hostTopNRateBase."
+ ::= { hostTopNEntry 4 }
+
+-- The Matrix Group
+
+-- Implementation of the Matrix group is optional.
+-- Consult the MODULE-COMPLIANCE macro for the authoritative
+-- conformance information for this MIB.
+--
+-- The Matrix group consists of the matrixControlTable, matrixSDTable
+-- and the matrixDSTable. These tables store statistics for a
+-- particular conversation between two addresses. As the device
+-- detects a new conversation, including those to a non-unicast
+-- address, it creates a new entry in both of the matrix tables.
+-- It must only create new entries based on information
+-- received in good packets. If the monitoring device finds
+-- itself short of resources, it may delete entries as needed.
+-- It is suggested that the device delete the least recently used
+-- entries first.
+
+matrixControlTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF MatrixControlEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A list of information entries for the
+ traffic matrix on each interface."
+ ::= { matrix 1 }
+
+matrixControlEntry OBJECT-TYPE
+ SYNTAX MatrixControlEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Information about a traffic matrix on a particular
+
+ interface. For example, an instance of the
+ matrixControlLastDeleteTime object might be named
+ matrixControlLastDeleteTime.1"
+ INDEX { matrixControlIndex }
+ ::= { matrixControlTable 1 }
+
+MatrixControlEntry ::= SEQUENCE {
+ matrixControlIndex Integer32,
+ matrixControlDataSource OBJECT IDENTIFIER,
+ matrixControlTableSize Integer32,
+ matrixControlLastDeleteTime TimeTicks,
+ matrixControlOwner OwnerString,
+ matrixControlStatus EntryStatus
+}
+
+matrixControlIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An index that uniquely identifies an entry in the
+ matrixControl table. Each such entry defines
+ a function that discovers conversations on a particular
+ interface and places statistics about them in the
+ matrixSDTable and the matrixDSTable on behalf of this
+ matrixControlEntry."
+ ::= { matrixControlEntry 1 }
+
+matrixControlDataSource OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object identifies the source of
+ the data from which this entry creates a traffic matrix.
+ This source can be any interface on this device. In
+ order to identify a particular interface, this object
+ shall identify the instance of the ifIndex object,
+ defined in RFC 2233 [17], for the desired
+ interface. For example, if an entry were to receive data
+ from interface #1, this object would be set to ifIndex.1.
+
+ The statistics in this group reflect all packets
+ on the local network segment attached to the identified
+ interface.
+
+ An agent may or may not be able to tell if fundamental
+ changes to the media of the interface have occurred and
+
+ necessitate an invalidation of this entry. For example, a
+ hot-pluggable ethernet card could be pulled out and replaced
+ by a token-ring card. In such a case, if the agent has such
+ knowledge of the change, it is recommended that it
+ invalidate this entry.
+
+ This object may not be modified if the associated
+ matrixControlStatus object is equal to valid(1)."
+ ::= { matrixControlEntry 2 }
+
+matrixControlTableSize OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of matrixSDEntries in the matrixSDTable
+ for this interface. This must also be the value of
+ the number of entries in the matrixDSTable for this
+ interface."
+ ::= { matrixControlEntry 3 }
+
+matrixControlLastDeleteTime OBJECT-TYPE
+ SYNTAX TimeTicks
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime when the last entry
+ was deleted from the portion of the matrixSDTable
+ or matrixDSTable associated with this matrixControlEntry.
+ If no deletions have occurred, this value shall be
+ zero."
+ ::= { matrixControlEntry 4 }
+
+matrixControlOwner OBJECT-TYPE
+ SYNTAX OwnerString
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The entity that configured this entry and is therefore
+ using the resources assigned to it."
+ ::= { matrixControlEntry 5 }
+
+matrixControlStatus OBJECT-TYPE
+ SYNTAX EntryStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status of this matrixControl entry.
+
+ If this object is not equal to valid(1), all associated
+ entries in the matrixSDTable and the matrixDSTable
+ shall be deleted by the agent."
+ ::= { matrixControlEntry 6 }
+
+matrixSDTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF MatrixSDEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A list of traffic matrix entries indexed by
+ source and destination MAC address."
+ ::= { matrix 2 }
+
+matrixSDEntry OBJECT-TYPE
+ SYNTAX MatrixSDEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A collection of statistics for communications between
+ two addresses on a particular interface. For example,
+ an instance of the matrixSDPkts object might be named
+ matrixSDPkts.1.6.8.0.32.27.3.176.6.8.0.32.10.8.113"
+ INDEX { matrixSDIndex,
+ matrixSDSourceAddress, matrixSDDestAddress }
+ ::= { matrixSDTable 1 }
+
+MatrixSDEntry ::= SEQUENCE {
+ matrixSDSourceAddress OCTET STRING,
+ matrixSDDestAddress OCTET STRING,
+ matrixSDIndex Integer32,
+ matrixSDPkts Counter32,
+ matrixSDOctets Counter32,
+ matrixSDErrors Counter32
+}
+
+matrixSDSourceAddress OBJECT-TYPE
+ SYNTAX OCTET STRING
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The source physical address."
+ ::= { matrixSDEntry 1 }
+
+matrixSDDestAddress OBJECT-TYPE
+ SYNTAX OCTET STRING
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The destination physical address."
+ ::= { matrixSDEntry 2 }
+
+matrixSDIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The set of collected matrix statistics of which
+ this entry is a part. The set of matrix statistics
+ identified by a particular value of this index
+ is associated with the same matrixControlEntry
+ as identified by the same value of matrixControlIndex."
+ ::= { matrixSDEntry 3 }
+
+matrixSDPkts OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of packets transmitted from the source
+ address to the destination address (this number includes
+ bad packets)."
+ ::= { matrixSDEntry 4 }
+
+matrixSDOctets OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Octets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of octets (excluding framing bits but
+ including FCS octets) contained in all packets
+ transmitted from the source address to the
+ destination address."
+ ::= { matrixSDEntry 5 }
+
+matrixSDErrors OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of bad packets transmitted from
+ the source address to the destination address."
+ ::= { matrixSDEntry 6 }
+
+-- Traffic matrix tables from destination to source
+
+matrixDSTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF MatrixDSEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A list of traffic matrix entries indexed by
+ destination and source MAC address."
+ ::= { matrix 3 }
+
+matrixDSEntry OBJECT-TYPE
+ SYNTAX MatrixDSEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A collection of statistics for communications between
+ two addresses on a particular interface. For example,
+ an instance of the matrixSDPkts object might be named
+ matrixSDPkts.1.6.8.0.32.10.8.113.6.8.0.32.27.3.176"
+ INDEX { matrixDSIndex,
+ matrixDSDestAddress, matrixDSSourceAddress }
+ ::= { matrixDSTable 1 }
+
+MatrixDSEntry ::= SEQUENCE {
+ matrixDSSourceAddress OCTET STRING,
+ matrixDSDestAddress OCTET STRING,
+ matrixDSIndex Integer32,
+ matrixDSPkts Counter32,
+ matrixDSOctets Counter32,
+ matrixDSErrors Counter32
+}
+
+matrixDSSourceAddress OBJECT-TYPE
+ SYNTAX OCTET STRING
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The source physical address."
+ ::= { matrixDSEntry 1 }
+
+matrixDSDestAddress OBJECT-TYPE
+ SYNTAX OCTET STRING
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The destination physical address."
+ ::= { matrixDSEntry 2 }
+
+matrixDSIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The set of collected matrix statistics of which
+ this entry is a part. The set of matrix statistics
+ identified by a particular value of this index
+ is associated with the same matrixControlEntry
+ as identified by the same value of matrixControlIndex."
+ ::= { matrixDSEntry 3 }
+
+matrixDSPkts OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of packets transmitted from the source
+ address to the destination address (this number includes
+ bad packets)."
+ ::= { matrixDSEntry 4 }
+
+matrixDSOctets OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Octets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of octets (excluding framing bits
+ but including FCS octets) contained in all packets
+ transmitted from the source address to the
+ destination address."
+ ::= { matrixDSEntry 5 }
+
+matrixDSErrors OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of bad packets transmitted from
+ the source address to the destination address."
+ ::= { matrixDSEntry 6 }
+
+-- The Filter Group
+
+-- Implementation of the Filter group is optional.
+
+-- Consult the MODULE-COMPLIANCE macro for the authoritative
+-- conformance information for this MIB.
+--
+-- The Filter group allows packets to be captured with an
+-- arbitrary filter expression. A logical data and
+-- event stream or "channel" is formed by the packets
+-- that match the filter expression.
+--
+-- This filter mechanism allows the creation of an arbitrary
+-- logical expression with which to filter packets. Each
+-- filter associated with a channel is OR'ed with the others.
+-- Within a filter, any bits checked in the data and status are
+-- AND'ed with respect to other bits in the same filter. The
+-- NotMask also allows for checking for inequality. Finally,
+-- the channelAcceptType object allows for inversion of the
+-- whole equation.
+--
+-- If a management station wishes to receive a trap to alert it
+-- that new packets have been captured and are available for
+-- download, it is recommended that it set up an alarm entry that
+-- monitors the value of the relevant channelMatches instance.
+--
+-- The channel can be turned on or off, and can also
+-- generate events when packets pass through it.
+
+filterTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF FilterEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A list of packet filter entries."
+ ::= { filter 1 }
+
+filterEntry OBJECT-TYPE
+ SYNTAX FilterEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A set of parameters for a packet filter applied on a
+ particular interface. As an example, an instance of the
+ filterPktData object might be named filterPktData.12"
+ INDEX { filterIndex }
+ ::= { filterTable 1 }
+
+FilterEntry ::= SEQUENCE {
+ filterIndex Integer32,
+ filterChannelIndex Integer32,
+ filterPktDataOffset Integer32,
+ filterPktData OCTET STRING,
+ filterPktDataMask OCTET STRING,
+ filterPktDataNotMask OCTET STRING,
+ filterPktStatus Integer32,
+ filterPktStatusMask Integer32,
+ filterPktStatusNotMask Integer32,
+ filterOwner OwnerString,
+ filterStatus EntryStatus
+}
+
+filterIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An index that uniquely identifies an entry
+ in the filter table. Each such entry defines
+ one filter that is to be applied to every packet
+ received on an interface."
+ ::= { filterEntry 1 }
+
+filterChannelIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..65535)
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object identifies the channel of which this filter
+ is a part. The filters identified by a particular value
+ of this object are associated with the same channel as
+ identified by the same value of the channelIndex object."
+ ::= { filterEntry 2 }
+
+filterPktDataOffset OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "Octets"
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The offset from the beginning of each packet where
+ a match of packet data will be attempted. This offset
+ is measured from the point in the physical layer
+ packet after the framing bits, if any. For example,
+ in an Ethernet frame, this point is at the beginning of
+ the destination MAC address.
+
+ This object may not be modified if the associated
+ filterStatus object is equal to valid(1)."
+ DEFVAL { 0 }
+ ::= { filterEntry 3 }
+
+filterPktData OBJECT-TYPE
+ SYNTAX OCTET STRING
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The data that is to be matched with the input packet.
+ For each packet received, this filter and the accompanying
+ filterPktDataMask and filterPktDataNotMask will be
+ adjusted for the offset. The only bits relevant to this
+ match algorithm are those that have the corresponding
+ filterPktDataMask bit equal to one. The following three
+ rules are then applied to every packet:
+
+ (1) If the packet is too short and does not have data
+ corresponding to part of the filterPktData, the packet
+ will fail this data match.
+
+ (2) For each relevant bit from the packet with the
+ corresponding filterPktDataNotMask bit set to zero, if
+ the bit from the packet is not equal to the corresponding
+ bit from the filterPktData, then the packet will fail
+ this data match.
+
+ (3) If for every relevant bit from the packet with the
+ corresponding filterPktDataNotMask bit set to one, the
+ bit from the packet is equal to the corresponding bit
+ from the filterPktData, then the packet will fail this
+ data match.
+
+ Any packets that have not failed any of the three matches
+ above have passed this data match. In particular, a zero
+ length filter will match any packet.
+
+ This object may not be modified if the associated
+ filterStatus object is equal to valid(1)."
+ ::= { filterEntry 4 }
+
+filterPktDataMask OBJECT-TYPE
+ SYNTAX OCTET STRING
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The mask that is applied to the match process.
+ After adjusting this mask for the offset, only those
+ bits in the received packet that correspond to bits set
+ in this mask are relevant for further processing by the
+
+ match algorithm. The offset is applied to filterPktDataMask
+ in the same way it is applied to the filter. For the
+ purposes of the matching algorithm, if the associated
+ filterPktData object is longer than this mask, this mask is
+ conceptually extended with '1' bits until it reaches the
+ length of the filterPktData object.
+
+ This object may not be modified if the associated
+ filterStatus object is equal to valid(1)."
+ ::= { filterEntry 5 }
+
+filterPktDataNotMask OBJECT-TYPE
+ SYNTAX OCTET STRING
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The inversion mask that is applied to the match
+ process. After adjusting this mask for the offset,
+ those relevant bits in the received packet that correspond
+ to bits cleared in this mask must all be equal to their
+ corresponding bits in the filterPktData object for the packet
+ to be accepted. In addition, at least one of those relevant
+ bits in the received packet that correspond to bits set in
+ this mask must be different to its corresponding bit in the
+ filterPktData object.
+
+ For the purposes of the matching algorithm, if the associated
+ filterPktData object is longer than this mask, this mask is
+ conceptually extended with '0' bits until it reaches the
+ length of the filterPktData object.
+
+ This object may not be modified if the associated
+ filterStatus object is equal to valid(1)."
+ ::= { filterEntry 6 }
+
+filterPktStatus OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status that is to be matched with the input packet.
+ The only bits relevant to this match algorithm are those that
+ have the corresponding filterPktStatusMask bit equal to one.
+ The following two rules are then applied to every packet:
+
+ (1) For each relevant bit from the packet status with the
+ corresponding filterPktStatusNotMask bit set to zero, if
+ the bit from the packet status is not equal to the
+
+ corresponding bit from the filterPktStatus, then the
+ packet will fail this status match.
+
+ (2) If for every relevant bit from the packet status with the
+ corresponding filterPktStatusNotMask bit set to one, the
+ bit from the packet status is equal to the corresponding
+ bit from the filterPktStatus, then the packet will fail
+ this status match.
+
+ Any packets that have not failed either of the two matches
+ above have passed this status match. In particular, a zero
+ length status filter will match any packet's status.
+
+ The value of the packet status is a sum. This sum
+ initially takes the value zero. Then, for each
+ error, E, that has been discovered in this packet,
+ 2 raised to a value representing E is added to the sum.
+ The errors and the bits that represent them are dependent
+ on the media type of the interface that this channel
+ is receiving packets from.
+
+ The errors defined for a packet captured off of an
+ Ethernet interface are as follows:
+
+ bit # Error
+ 0 Packet is longer than 1518 octets
+ 1 Packet is shorter than 64 octets
+ 2 Packet experienced a CRC or Alignment error
+
+ For example, an Ethernet fragment would have a
+ value of 6 (2^1 + 2^2).
+
+ As this MIB is expanded to new media types, this object
+ will have other media-specific errors defined.
+
+ For the purposes of this status matching algorithm, if the
+ packet status is longer than this filterPktStatus object,
+ this object is conceptually extended with '0' bits until it
+ reaches the size of the packet status.
+
+ This object may not be modified if the associated
+ filterStatus object is equal to valid(1)."
+ ::= { filterEntry 7 }
+
+filterPktStatusMask OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The mask that is applied to the status match process.
+ Only those bits in the received packet that correspond to
+ bits set in this mask are relevant for further processing
+ by the status match algorithm. For the purposes
+ of the matching algorithm, if the associated filterPktStatus
+ object is longer than this mask, this mask is conceptually
+ extended with '1' bits until it reaches the size of the
+ filterPktStatus. In addition, if a packet status is longer
+ than this mask, this mask is conceptually extended with '0'
+ bits until it reaches the size of the packet status.
+
+ This object may not be modified if the associated
+ filterStatus object is equal to valid(1)."
+ ::= { filterEntry 8 }
+
+filterPktStatusNotMask OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The inversion mask that is applied to the status match
+ process. Those relevant bits in the received packet status
+ that correspond to bits cleared in this mask must all be
+ equal to their corresponding bits in the filterPktStatus
+ object for the packet to be accepted. In addition, at least
+ one of those relevant bits in the received packet status
+ that correspond to bits set in this mask must be different
+ to its corresponding bit in the filterPktStatus object for
+ the packet to be accepted.
+
+ For the purposes of the matching algorithm, if the associated
+ filterPktStatus object or a packet status is longer than this
+ mask, this mask is conceptually extended with '0' bits until
+ it reaches the longer of the lengths of the filterPktStatus
+ object and the packet status.
+
+ This object may not be modified if the associated
+ filterStatus object is equal to valid(1)."
+ ::= { filterEntry 9 }
+
+filterOwner OBJECT-TYPE
+ SYNTAX OwnerString
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The entity that configured this entry and is therefore
+ using the resources assigned to it."
+ ::= { filterEntry 10 }
+
+filterStatus OBJECT-TYPE
+ SYNTAX EntryStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status of this filter entry."
+ ::= { filterEntry 11 }
+
+channelTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF ChannelEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A list of packet channel entries."
+ ::= { filter 2 }
+
+channelEntry OBJECT-TYPE
+ SYNTAX ChannelEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A set of parameters for a packet channel applied on a
+ particular interface. As an example, an instance of the
+ channelMatches object might be named channelMatches.3"
+ INDEX { channelIndex }
+ ::= { channelTable 1 }
+
+ChannelEntry ::= SEQUENCE {
+ channelIndex Integer32,
+ channelIfIndex Integer32,
+ channelAcceptType INTEGER,
+ channelDataControl INTEGER,
+ channelTurnOnEventIndex Integer32,
+ channelTurnOffEventIndex Integer32,
+ channelEventIndex Integer32,
+ channelEventStatus INTEGER,
+ channelMatches Counter32,
+ channelDescription DisplayString,
+ channelOwner OwnerString,
+ channelStatus EntryStatus
+}
+
+channelIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An index that uniquely identifies an entry in the channel
+ table. Each such entry defines one channel, a logical
+ data and event stream.
+
+ It is suggested that before creating a channel, an
+ application should scan all instances of the
+ filterChannelIndex object to make sure that there are no
+ pre-existing filters that would be inadvertently be linked
+ to the channel."
+ ::= { channelEntry 1 }
+
+channelIfIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..65535)
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The value of this object uniquely identifies the
+ interface on this remote network monitoring device to which
+ the associated filters are applied to allow data into this
+ channel. The interface identified by a particular value
+ of this object is the same interface as identified by the
+ same value of the ifIndex object, defined in RFC 2233 [17].
+
+ The filters in this group are applied to all packets on
+ the local network segment attached to the identified
+ interface.
+
+ An agent may or may not be able to tell if fundamental
+ changes to the media of the interface have occurred and
+ necessitate an invalidation of this entry. For example, a
+ hot-pluggable ethernet card could be pulled out and replaced
+ by a token-ring card. In such a case, if the agent has such
+ knowledge of the change, it is recommended that it
+ invalidate this entry.
+
+ This object may not be modified if the associated
+ channelStatus object is equal to valid(1)."
+ ::= { channelEntry 2 }
+
+channelAcceptType OBJECT-TYPE
+ SYNTAX INTEGER {
+ acceptMatched(1),
+ acceptFailed(2)
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object controls the action of the filters
+ associated with this channel. If this object is equal
+ to acceptMatched(1), packets will be accepted to this
+ channel if they are accepted by both the packet data and
+ packet status matches of an associated filter. If
+ this object is equal to acceptFailed(2), packets will
+ be accepted to this channel only if they fail either
+ the packet data match or the packet status match of
+ each of the associated filters.
+
+ In particular, a channel with no associated filters will
+ match no packets if set to acceptMatched(1) case and will
+ match all packets in the acceptFailed(2) case.
+
+ This object may not be modified if the associated
+ channelStatus object is equal to valid(1)."
+ ::= { channelEntry 3 }
+
+channelDataControl OBJECT-TYPE
+ SYNTAX INTEGER {
+ on(1),
+ off(2)
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object controls the flow of data through this channel.
+ If this object is on(1), data, status and events flow
+ through this channel. If this object is off(2), data,
+ status and events will not flow through this channel."
+ DEFVAL { off }
+ ::= { channelEntry 4 }
+
+channelTurnOnEventIndex OBJECT-TYPE
+ SYNTAX Integer32 (0..65535)
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The value of this object identifies the event
+ that is configured to turn the associated
+ channelDataControl from off to on when the event is
+ generated. The event identified by a particular value
+ of this object is the same event as identified by the
+ same value of the eventIndex object. If there is no
+ corresponding entry in the eventTable, then no
+ association exists. In fact, if no event is intended
+ for this channel, channelTurnOnEventIndex must be
+ set to zero, a non-existent event index.
+
+ This object may not be modified if the associated
+ channelStatus object is equal to valid(1)."
+ ::= { channelEntry 5 }
+
+channelTurnOffEventIndex OBJECT-TYPE
+ SYNTAX Integer32 (0..65535)
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The value of this object identifies the event
+ that is configured to turn the associated
+ channelDataControl from on to off when the event is
+ generated. The event identified by a particular value
+ of this object is the same event as identified by the
+ same value of the eventIndex object. If there is no
+ corresponding entry in the eventTable, then no
+ association exists. In fact, if no event is intended
+ for this channel, channelTurnOffEventIndex must be
+ set to zero, a non-existent event index.
+
+ This object may not be modified if the associated
+ channelStatus object is equal to valid(1)."
+ ::= { channelEntry 6 }
+
+channelEventIndex OBJECT-TYPE
+ SYNTAX Integer32 (0..65535)
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The value of this object identifies the event
+ that is configured to be generated when the
+ associated channelDataControl is on and a packet
+ is matched. The event identified by a particular value
+ of this object is the same event as identified by the
+ same value of the eventIndex object. If there is no
+ corresponding entry in the eventTable, then no
+ association exists. In fact, if no event is intended
+ for this channel, channelEventIndex must be
+ set to zero, a non-existent event index.
+
+ This object may not be modified if the associated
+ channelStatus object is equal to valid(1)."
+ ::= { channelEntry 7 }
+
+channelEventStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ eventReady(1),
+ eventFired(2),
+ eventAlwaysReady(3)
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The event status of this channel.
+
+ If this channel is configured to generate events
+ when packets are matched, a means of controlling
+ the flow of those events is often needed. When
+ this object is equal to eventReady(1), a single
+ event may be generated, after which this object
+ will be set by the probe to eventFired(2). While
+ in the eventFired(2) state, no events will be
+ generated until the object is modified to
+ eventReady(1) (or eventAlwaysReady(3)). The
+ management station can thus easily respond to a
+ notification of an event by re-enabling this object.
+
+ If the management station wishes to disable this
+ flow control and allow events to be generated
+ at will, this object may be set to
+ eventAlwaysReady(3). Disabling the flow control
+ is discouraged as it can result in high network
+ traffic or other performance problems."
+ DEFVAL { eventReady }
+ ::= { channelEntry 8 }
+
+channelMatches OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of times this channel has matched a packet.
+ Note that this object is updated even when
+ channelDataControl is set to off."
+ ::= { channelEntry 9 }
+
+channelDescription OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..127))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "A comment describing this channel."
+ ::= { channelEntry 10 }
+
+channelOwner OBJECT-TYPE
+ SYNTAX OwnerString
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The entity that configured this entry and is therefore
+ using the resources assigned to it."
+ ::= { channelEntry 11 }
+
+channelStatus OBJECT-TYPE
+ SYNTAX EntryStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status of this channel entry."
+ ::= { channelEntry 12 }
+
+-- The Packet Capture Group
+
+-- Implementation of the Packet Capture group is optional. The Packet
+-- Capture Group requires implementation of the Filter Group.
+-- Consult the MODULE-COMPLIANCE macro for the authoritative
+-- conformance information for this MIB.
+--
+-- The Packet Capture group allows packets to be captured
+-- upon a filter match. The bufferControlTable controls
+-- the captured packets output from a channel that is
+-- associated with it. The captured packets are placed
+-- in entries in the captureBufferTable. These entries are
+-- associated with the bufferControlEntry on whose behalf they
+-- were stored.
+
+bufferControlTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF BufferControlEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A list of buffers control entries."
+ ::= { capture 1 }
+
+bufferControlEntry OBJECT-TYPE
+ SYNTAX BufferControlEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A set of parameters that control the collection of a stream
+ of packets that have matched filters. As an example, an
+ instance of the bufferControlCaptureSliceSize object might
+ be named bufferControlCaptureSliceSize.3"
+ INDEX { bufferControlIndex }
+ ::= { bufferControlTable 1 }
+
+BufferControlEntry ::= SEQUENCE {
+ bufferControlIndex Integer32,
+ bufferControlChannelIndex Integer32,
+ bufferControlFullStatus INTEGER,
+ bufferControlFullAction INTEGER,
+ bufferControlCaptureSliceSize Integer32,
+ bufferControlDownloadSliceSize Integer32,
+ bufferControlDownloadOffset Integer32,
+ bufferControlMaxOctetsRequested Integer32,
+ bufferControlMaxOctetsGranted Integer32,
+ bufferControlCapturedPackets Integer32,
+ bufferControlTurnOnTime TimeTicks,
+ bufferControlOwner OwnerString,
+ bufferControlStatus EntryStatus
+}
+
+bufferControlIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An index that uniquely identifies an entry
+ in the bufferControl table. The value of this
+ index shall never be zero. Each such
+ entry defines one set of packets that is
+ captured and controlled by one or more filters."
+ ::= { bufferControlEntry 1 }
+
+bufferControlChannelIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..65535)
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "An index that identifies the channel that is the
+ source of packets for this bufferControl table.
+ The channel identified by a particular value of this
+ index is the same as identified by the same value of
+ the channelIndex object.
+
+ This object may not be modified if the associated
+ bufferControlStatus object is equal to valid(1)."
+ ::= { bufferControlEntry 2 }
+
+bufferControlFullStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+
+ spaceAvailable(1),
+ full(2)
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "This object shows whether the buffer has room to
+ accept new packets or if it is full.
+
+ If the status is spaceAvailable(1), the buffer is
+ accepting new packets normally. If the status is
+ full(2) and the associated bufferControlFullAction
+ object is wrapWhenFull, the buffer is accepting new
+ packets by deleting enough of the oldest packets
+ to make room for new ones as they arrive. Otherwise,
+ if the status is full(2) and the
+ bufferControlFullAction object is lockWhenFull,
+ then the buffer has stopped collecting packets.
+
+ When this object is set to full(2) the probe must
+ not later set it to spaceAvailable(1) except in the
+ case of a significant gain in resources such as
+ an increase of bufferControlOctetsGranted. In
+ particular, the wrap-mode action of deleting old
+ packets to make room for newly arrived packets
+ must not affect the value of this object."
+ ::= { bufferControlEntry 3 }
+
+bufferControlFullAction OBJECT-TYPE
+ SYNTAX INTEGER {
+ lockWhenFull(1),
+ wrapWhenFull(2) -- FIFO
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Controls the action of the buffer when it
+ reaches the full status. When in the lockWhenFull(1)
+ state and a packet is added to the buffer that
+ fills the buffer, the bufferControlFullStatus will
+ be set to full(2) and this buffer will stop capturing
+ packets."
+ ::= { bufferControlEntry 4 }
+
+bufferControlCaptureSliceSize OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "Octets"
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The maximum number of octets of each packet
+ that will be saved in this capture buffer.
+ For example, if a 1500 octet packet is received by
+ the probe and this object is set to 500, then only
+ 500 octets of the packet will be stored in the
+ associated capture buffer. If this variable is set
+ to 0, the capture buffer will save as many octets
+ as is possible.
+
+ This object may not be modified if the associated
+ bufferControlStatus object is equal to valid(1)."
+ DEFVAL { 100 }
+ ::= { bufferControlEntry 5 }
+
+bufferControlDownloadSliceSize OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "Octets"
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The maximum number of octets of each packet
+ in this capture buffer that will be returned in
+ an SNMP retrieval of that packet. For example,
+ if 500 octets of a packet have been stored in the
+ associated capture buffer, the associated
+ bufferControlDownloadOffset is 0, and this
+ object is set to 100, then the captureBufferPacket
+ object that contains the packet will contain only
+ the first 100 octets of the packet.
+
+ A prudent manager will take into account possible
+ interoperability or fragmentation problems that may
+ occur if the download slice size is set too large.
+ In particular, conformant SNMP implementations are not
+ required to accept messages whose length exceeds 484
+ octets, although they are encouraged to support larger
+ datagrams whenever feasible."
+ DEFVAL { 100 }
+ ::= { bufferControlEntry 6 }
+
+bufferControlDownloadOffset OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "Octets"
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The offset of the first octet of each packet
+ in this capture buffer that will be returned in
+ an SNMP retrieval of that packet. For example,
+ if 500 octets of a packet have been stored in the
+ associated capture buffer and this object is set to
+ 100, then the captureBufferPacket object that
+ contains the packet will contain bytes starting
+ 100 octets into the packet."
+ DEFVAL { 0 }
+ ::= { bufferControlEntry 7 }
+
+bufferControlMaxOctetsRequested OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "Octets"
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The requested maximum number of octets to be
+ saved in this captureBuffer, including any
+ implementation-specific overhead. If this variable
+ is set to -1, the capture buffer will save as many
+ octets as is possible.
+
+ When this object is created or modified, the probe
+ should set bufferControlMaxOctetsGranted as closely
+ to this object as is possible for the particular probe
+ implementation and available resources. However, if
+ the object has the special value of -1, the probe
+ must set bufferControlMaxOctetsGranted to -1."
+ DEFVAL { -1 }
+ ::= { bufferControlEntry 8 }
+
+bufferControlMaxOctetsGranted OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "Octets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The maximum number of octets that can be
+ saved in this captureBuffer, including overhead.
+ If this variable is -1, the capture buffer will save
+ as many octets as possible.
+
+ When the bufferControlMaxOctetsRequested object is
+ created or modified, the probe should set this object
+ as closely to the requested value as is possible for the
+ particular probe implementation and available resources.
+ However, if the request object has the special value
+
+ of -1, the probe must set this object to -1.
+
+ The probe must not lower this value except as a result of
+ a modification to the associated
+ bufferControlMaxOctetsRequested object.
+
+ When this maximum number of octets is reached
+ and a new packet is to be added to this
+ capture buffer and the corresponding
+ bufferControlFullAction is set to wrapWhenFull(2),
+ enough of the oldest packets associated with this
+ capture buffer shall be deleted by the agent so
+ that the new packet can be added. If the corresponding
+ bufferControlFullAction is set to lockWhenFull(1),
+ the new packet shall be discarded. In either case,
+ the probe must set bufferControlFullStatus to
+ full(2).
+
+ When the value of this object changes to a value less
+ than the current value, entries are deleted from
+ the captureBufferTable associated with this
+ bufferControlEntry. Enough of the
+ oldest of these captureBufferEntries shall be
+ deleted by the agent so that the number of octets
+ used remains less than or equal to the new value of
+ this object.
+
+ When the value of this object changes to a value greater
+ than the current value, the number of associated
+ captureBufferEntries may be allowed to grow."
+ ::= { bufferControlEntry 9 }
+
+bufferControlCapturedPackets OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "Packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of packets currently in this captureBuffer."
+ ::= { bufferControlEntry 10 }
+
+bufferControlTurnOnTime OBJECT-TYPE
+ SYNTAX TimeTicks
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime when this capture buffer was
+ first turned on."
+ ::= { bufferControlEntry 11 }
+
+bufferControlOwner OBJECT-TYPE
+ SYNTAX OwnerString
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The entity that configured this entry and is therefore
+ using the resources assigned to it."
+ ::= { bufferControlEntry 12 }
+
+bufferControlStatus OBJECT-TYPE
+ SYNTAX EntryStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status of this buffer Control Entry."
+ ::= { bufferControlEntry 13 }
+
+captureBufferTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF CaptureBufferEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A list of packets captured off of a channel."
+ ::= { capture 2 }
+
+captureBufferEntry OBJECT-TYPE
+ SYNTAX CaptureBufferEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A packet captured off of an attached network. As an
+ example, an instance of the captureBufferPacketData
+ object might be named captureBufferPacketData.3.1783"
+ INDEX { captureBufferControlIndex, captureBufferIndex }
+ ::= { captureBufferTable 1 }
+
+CaptureBufferEntry ::= SEQUENCE {
+ captureBufferControlIndex Integer32,
+ captureBufferIndex Integer32,
+ captureBufferPacketID Integer32,
+ captureBufferPacketData OCTET STRING,
+ captureBufferPacketLength Integer32,
+ captureBufferPacketTime Integer32,
+ captureBufferPacketStatus Integer32
+}
+
+captureBufferControlIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The index of the bufferControlEntry with which
+ this packet is associated."
+ ::= { captureBufferEntry 1 }
+
+captureBufferIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..2147483647)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An index that uniquely identifies an entry
+ in the captureBuffer table associated with a
+ particular bufferControlEntry. This index will
+ start at 1 and increase by one for each new packet
+ added with the same captureBufferControlIndex.
+
+ Should this value reach 2147483647, the next packet
+ added with the same captureBufferControlIndex shall
+ cause this value to wrap around to 1."
+ ::= { captureBufferEntry 2 }
+
+captureBufferPacketID OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An index that describes the order of packets
+ that are received on a particular interface.
+ The packetID of a packet captured on an
+ interface is defined to be greater than the
+ packetID's of all packets captured previously on
+ the same interface. As the captureBufferPacketID
+ object has a maximum positive value of 2^31 - 1,
+ any captureBufferPacketID object shall have the
+ value of the associated packet's packetID mod 2^31."
+ ::= { captureBufferEntry 3 }
+
+captureBufferPacketData OBJECT-TYPE
+ SYNTAX OCTET STRING
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The data inside the packet, starting at the beginning
+ of the packet plus any offset specified in the
+
+ associated bufferControlDownloadOffset, including any
+ link level headers. The length of the data in this object
+ is the minimum of the length of the captured packet minus
+ the offset, the length of the associated
+ bufferControlCaptureSliceSize minus the offset, and the
+ associated bufferControlDownloadSliceSize. If this minimum
+ is less than zero, this object shall have a length of zero."
+ ::= { captureBufferEntry 4 }
+
+captureBufferPacketLength OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "Octets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The actual length (off the wire) of the packet stored
+ in this entry, including FCS octets."
+ ::= { captureBufferEntry 5 }
+
+captureBufferPacketTime OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "Milliseconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of milliseconds that had passed since
+ this capture buffer was first turned on when this
+ packet was captured."
+ ::= { captureBufferEntry 6 }
+
+captureBufferPacketStatus OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A value which indicates the error status of this packet.
+
+ The value of this object is defined in the same way as
+ filterPktStatus. The value is a sum. This sum
+ initially takes the value zero. Then, for each
+ error, E, that has been discovered in this packet,
+ 2 raised to a value representing E is added to the sum.
+
+ The errors defined for a packet captured off of an
+ Ethernet interface are as follows:
+
+ bit # Error
+ 0 Packet is longer than 1518 octets
+
+ 1 Packet is shorter than 64 octets
+ 2 Packet experienced a CRC or Alignment error
+ 3 First packet in this capture buffer after
+ it was detected that some packets were
+ not processed correctly.
+ 4 Packet's order in buffer is only approximate
+ (May only be set for packets sent from
+ the probe)
+
+ For example, an Ethernet fragment would have a
+ value of 6 (2^1 + 2^2).
+
+ As this MIB is expanded to new media types, this object
+ will have other media-specific errors defined."
+ ::= { captureBufferEntry 7 }
+
+-- The Event Group
+
+-- Implementation of the Event group is optional.
+-- Consult the MODULE-COMPLIANCE macro for the authoritative
+-- conformance information for this MIB.
+--
+-- The Event group controls the generation and notification
+-- of events from this device. Each entry in the eventTable
+-- describes the parameters of the event that can be triggered.
+-- Each event entry is fired by an associated condition located
+-- elsewhere in the MIB. An event entry may also be associated
+-- with a function elsewhere in the MIB that will be executed
+-- when the event is generated. For example, a channel may
+-- be turned on or off by the firing of an event.
+--
+-- Each eventEntry may optionally specify that a log entry
+-- be created on its behalf whenever the event occurs.
+-- Each entry may also specify that notification should
+-- occur by way of SNMP trap messages. In this case, the
+-- community for the trap message is given in the associated
+-- eventCommunity object. The enterprise and specific trap
+-- fields of the trap are determined by the condition that
+-- triggered the event. Two traps are defined: risingAlarm and
+-- fallingAlarm. If the eventTable is triggered by a condition
+-- specified elsewhere, the enterprise and specific trap fields
+-- must be specified for traps generated for that condition.
+
+eventTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF EventEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A list of events to be generated."
+ ::= { event 1 }
+
+eventEntry OBJECT-TYPE
+ SYNTAX EventEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A set of parameters that describe an event to be generated
+ when certain conditions are met. As an example, an instance
+ of the eventLastTimeSent object might be named
+ eventLastTimeSent.6"
+ INDEX { eventIndex }
+ ::= { eventTable 1 }
+
+EventEntry ::= SEQUENCE {
+ eventIndex Integer32,
+ eventDescription DisplayString,
+ eventType INTEGER,
+ eventCommunity OCTET STRING,
+ eventLastTimeSent TimeTicks,
+ eventOwner OwnerString,
+ eventStatus EntryStatus
+}
+
+eventIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An index that uniquely identifies an entry in the
+ event table. Each such entry defines one event that
+ is to be generated when the appropriate conditions
+ occur."
+ ::= { eventEntry 1 }
+
+eventDescription OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..127))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "A comment describing this event entry."
+ ::= { eventEntry 2 }
+
+eventType OBJECT-TYPE
+ SYNTAX INTEGER {
+ none(1),
+ log(2),
+ snmptrap(3), -- send an SNMP trap
+ logandtrap(4)
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The type of notification that the probe will make
+ about this event. In the case of log, an entry is
+ made in the log table for each event. In the case of
+ snmp-trap, an SNMP trap is sent to one or more
+ management stations."
+ ::= { eventEntry 3 }
+
+eventCommunity OBJECT-TYPE
+ SYNTAX OCTET STRING (SIZE (0..127))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "If an SNMP trap is to be sent, it will be sent to
+ the SNMP community specified by this octet string."
+ ::= { eventEntry 4 }
+
+eventLastTimeSent OBJECT-TYPE
+ SYNTAX TimeTicks
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime at the time this event
+ entry last generated an event. If this entry has
+ not generated any events, this value will be
+ zero."
+ ::= { eventEntry 5 }
+
+eventOwner OBJECT-TYPE
+ SYNTAX OwnerString
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The entity that configured this entry and is therefore
+ using the resources assigned to it.
+
+ If this object contains a string starting with 'monitor'
+ and has associated entries in the log table, all connected
+ management stations should retrieve those log entries,
+ as they may have significance to all management stations
+ connected to this device"
+ ::= { eventEntry 6 }
+
+eventStatus OBJECT-TYPE
+ SYNTAX EntryStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status of this event entry.
+
+ If this object is not equal to valid(1), all associated
+ log entries shall be deleted by the agent."
+ ::= { eventEntry 7 }
+
+--
+logTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF LogEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A list of events that have been logged."
+ ::= { event 2 }
+
+logEntry OBJECT-TYPE
+ SYNTAX LogEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A set of data describing an event that has been
+ logged. For example, an instance of the logDescription
+ object might be named logDescription.6.47"
+ INDEX { logEventIndex, logIndex }
+ ::= { logTable 1 }
+
+LogEntry ::= SEQUENCE {
+ logEventIndex Integer32,
+ logIndex Integer32,
+ logTime TimeTicks,
+ logDescription DisplayString
+}
+
+logEventIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The event entry that generated this log
+ entry. The log identified by a particular
+ value of this index is associated with the same
+ eventEntry as identified by the same value
+ of eventIndex."
+ ::= { logEntry 1 }
+
+logIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..2147483647)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An index that uniquely identifies an entry
+ in the log table amongst those generated by the
+ same eventEntries. These indexes are
+ assigned beginning with 1 and increase by one
+ with each new log entry. The association
+ between values of logIndex and logEntries
+ is fixed for the lifetime of each logEntry.
+ The agent may choose to delete the oldest
+ instances of logEntry as required because of
+ lack of memory. It is an implementation-specific
+ matter as to when this deletion may occur."
+ ::= { logEntry 2 }
+
+logTime OBJECT-TYPE
+ SYNTAX TimeTicks
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime when this log entry was created."
+ ::= { logEntry 3 }
+
+logDescription OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..255))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An implementation dependent description of the
+ event that activated this log entry."
+ ::= { logEntry 4 }
+
+-- Remote Network Monitoring Traps
+
+rmonEventsV2 OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION "Definition point for RMON notifications."
+ ::= { rmon 0 }
+
+risingAlarm NOTIFICATION-TYPE
+ OBJECTS { alarmIndex, alarmVariable, alarmSampleType,
+ alarmValue, alarmRisingThreshold }
+ STATUS current
+ DESCRIPTION
+ "The SNMP trap that is generated when an alarm
+ entry crosses its rising threshold and generates
+ an event that is configured for sending SNMP
+ traps."
+ ::= { rmonEventsV2 1 }
+
+fallingAlarm NOTIFICATION-TYPE
+ OBJECTS { alarmIndex, alarmVariable, alarmSampleType,
+ alarmValue, alarmFallingThreshold }
+ STATUS current
+ DESCRIPTION
+ "The SNMP trap that is generated when an alarm
+ entry crosses its falling threshold and generates
+ an event that is configured for sending SNMP
+ traps."
+ ::= { rmonEventsV2 2 }
+
+-- Conformance information
+
+rmonCompliances OBJECT IDENTIFIER ::= { rmonConformance 9 }
+rmonGroups OBJECT IDENTIFIER ::= { rmonConformance 10 }
+
+-- Compliance Statements
+rmonCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The requirements for conformance to the RMON MIB. At least
+ one of the groups in this module must be implemented to
+ conform to the RMON MIB. Implementations of this MIB
+ must also implement the system group of MIB-II [16] and the
+ IF-MIB [17]."
+ MODULE -- this module
+
+ GROUP rmonEtherStatsGroup
+ DESCRIPTION
+ "The RMON Ethernet Statistics Group is optional."
+
+ GROUP rmonHistoryControlGroup
+ DESCRIPTION
+ "The RMON History Control Group is optional."
+
+ GROUP rmonEthernetHistoryGroup
+ DESCRIPTION
+ "The RMON Ethernet History Group is optional."
+
+ GROUP rmonAlarmGroup
+ DESCRIPTION
+ "The RMON Alarm Group is optional."
+
+ GROUP rmonHostGroup
+ DESCRIPTION
+ "The RMON Host Group is mandatory when the
+ rmonHostTopNGroup is implemented."
+
+ GROUP rmonHostTopNGroup
+ DESCRIPTION
+ "The RMON Host Top N Group is optional."
+
+ GROUP rmonMatrixGroup
+ DESCRIPTION
+ "The RMON Matrix Group is optional."
+
+ GROUP rmonFilterGroup
+ DESCRIPTION
+ "The RMON Filter Group is mandatory when the
+ rmonPacketCaptureGroup is implemented."
+
+ GROUP rmonPacketCaptureGroup
+ DESCRIPTION
+ "The RMON Packet Capture Group is optional."
+
+ GROUP rmonEventGroup
+ DESCRIPTION
+ "The RMON Event Group is mandatory when the
+ rmonAlarmGroup is implemented."
+ ::= { rmonCompliances 1 }
+
+ rmonEtherStatsGroup OBJECT-GROUP
+ OBJECTS {
+ etherStatsIndex, etherStatsDataSource,
+ etherStatsDropEvents, etherStatsOctets, etherStatsPkts,
+ etherStatsBroadcastPkts, etherStatsMulticastPkts,
+ etherStatsCRCAlignErrors, etherStatsUndersizePkts,
+ etherStatsOversizePkts, etherStatsFragments,
+ etherStatsJabbers, etherStatsCollisions,
+ etherStatsPkts64Octets, etherStatsPkts65to127Octets,
+ etherStatsPkts128to255Octets,
+ etherStatsPkts256to511Octets,
+ etherStatsPkts512to1023Octets,
+ etherStatsPkts1024to1518Octets,
+ etherStatsOwner, etherStatsStatus
+ }
+ STATUS current
+ DESCRIPTION
+ "The RMON Ethernet Statistics Group."
+ ::= { rmonGroups 1 }
+
+ rmonHistoryControlGroup OBJECT-GROUP
+ OBJECTS {
+ historyControlIndex, historyControlDataSource,
+ historyControlBucketsRequested,
+ historyControlBucketsGranted, historyControlInterval,
+ historyControlOwner, historyControlStatus
+ }
+ STATUS current
+ DESCRIPTION
+ "The RMON History Control Group."
+ ::= { rmonGroups 2 }
+
+ rmonEthernetHistoryGroup OBJECT-GROUP
+ OBJECTS {
+ etherHistoryIndex, etherHistorySampleIndex,
+ etherHistoryIntervalStart, etherHistoryDropEvents,
+ etherHistoryOctets, etherHistoryPkts,
+ etherHistoryBroadcastPkts, etherHistoryMulticastPkts,
+ etherHistoryCRCAlignErrors, etherHistoryUndersizePkts,
+ etherHistoryOversizePkts, etherHistoryFragments,
+ etherHistoryJabbers, etherHistoryCollisions,
+ etherHistoryUtilization
+ }
+ STATUS current
+ DESCRIPTION
+ "The RMON Ethernet History Group."
+ ::= { rmonGroups 3 }
+
+ rmonAlarmGroup OBJECT-GROUP
+ OBJECTS {
+ alarmIndex, alarmInterval, alarmVariable,
+ alarmSampleType, alarmValue, alarmStartupAlarm,
+ alarmRisingThreshold, alarmFallingThreshold,
+ alarmRisingEventIndex, alarmFallingEventIndex,
+ alarmOwner, alarmStatus
+ }
+ STATUS current
+ DESCRIPTION
+ "The RMON Alarm Group."
+ ::= { rmonGroups 4 }
+
+ rmonHostGroup OBJECT-GROUP
+ OBJECTS {
+ hostControlIndex, hostControlDataSource,
+ hostControlTableSize, hostControlLastDeleteTime,
+ hostControlOwner, hostControlStatus,
+ hostAddress, hostCreationOrder, hostIndex,
+ hostInPkts, hostOutPkts, hostInOctets,
+ hostOutOctets, hostOutErrors, hostOutBroadcastPkts,
+ hostOutMulticastPkts, hostTimeAddress,
+ hostTimeCreationOrder, hostTimeIndex,
+ hostTimeInPkts, hostTimeOutPkts, hostTimeInOctets,
+ hostTimeOutOctets, hostTimeOutErrors,
+ hostTimeOutBroadcastPkts, hostTimeOutMulticastPkts
+ }
+ STATUS current
+ DESCRIPTION
+ "The RMON Host Group."
+ ::= { rmonGroups 5 }
+
+ rmonHostTopNGroup OBJECT-GROUP
+ OBJECTS {
+ hostTopNControlIndex, hostTopNHostIndex,
+ hostTopNRateBase, hostTopNTimeRemaining,
+ hostTopNDuration, hostTopNRequestedSize,
+ hostTopNGrantedSize, hostTopNStartTime,
+ hostTopNOwner, hostTopNStatus,
+ hostTopNReport, hostTopNIndex,
+ hostTopNAddress, hostTopNRate
+ }
+ STATUS current
+ DESCRIPTION
+ "The RMON Host Top 'N' Group."
+ ::= { rmonGroups 6 }
+
+ rmonMatrixGroup OBJECT-GROUP
+ OBJECTS {
+ matrixControlIndex, matrixControlDataSource,
+ matrixControlTableSize, matrixControlLastDeleteTime,
+ matrixControlOwner, matrixControlStatus,
+ matrixSDSourceAddress, matrixSDDestAddress,
+ matrixSDIndex, matrixSDPkts,
+ matrixSDOctets, matrixSDErrors,
+ matrixDSSourceAddress, matrixDSDestAddress,
+ matrixDSIndex, matrixDSPkts,
+ matrixDSOctets, matrixDSErrors
+ }
+ STATUS current
+ DESCRIPTION
+ "The RMON Matrix Group."
+ ::= { rmonGroups 7 }
+
+ rmonFilterGroup OBJECT-GROUP
+ OBJECTS {
+
+ filterIndex, filterChannelIndex, filterPktDataOffset,
+ filterPktData, filterPktDataMask,
+ filterPktDataNotMask, filterPktStatus,
+ filterPktStatusMask, filterPktStatusNotMask,
+ filterOwner, filterStatus,
+ channelIndex, channelIfIndex, channelAcceptType,
+ channelDataControl, channelTurnOnEventIndex,
+ channelTurnOffEventIndex, channelEventIndex,
+ channelEventStatus, channelMatches,
+ channelDescription, channelOwner, channelStatus
+ }
+ STATUS current
+ DESCRIPTION
+ "The RMON Filter Group."
+ ::= { rmonGroups 8 }
+
+ rmonPacketCaptureGroup OBJECT-GROUP
+ OBJECTS {
+ bufferControlIndex, bufferControlChannelIndex,
+ bufferControlFullStatus, bufferControlFullAction,
+ bufferControlCaptureSliceSize,
+ bufferControlDownloadSliceSize,
+ bufferControlDownloadOffset,
+ bufferControlMaxOctetsRequested,
+ bufferControlMaxOctetsGranted,
+ bufferControlCapturedPackets,
+ bufferControlTurnOnTime,
+ bufferControlOwner, bufferControlStatus,
+ captureBufferControlIndex, captureBufferIndex,
+ captureBufferPacketID, captureBufferPacketData,
+ captureBufferPacketLength, captureBufferPacketTime,
+ captureBufferPacketStatus
+ }
+ STATUS current
+ DESCRIPTION
+ "The RMON Packet Capture Group."
+ ::= { rmonGroups 9 }
+
+ rmonEventGroup OBJECT-GROUP
+ OBJECTS {
+ eventIndex, eventDescription, eventType,
+ eventCommunity, eventLastTimeSent,
+ eventOwner, eventStatus,
+ logEventIndex, logIndex, logTime,
+ logDescription
+ }
+ STATUS current
+ DESCRIPTION
+ "The RMON Event Group."
+ ::= { rmonGroups 10 }
+
+ rmonNotificationGroup NOTIFICATION-GROUP
+ NOTIFICATIONS { risingAlarm, fallingAlarm }
+ STATUS current
+ DESCRIPTION
+ "The RMON Notification Group."
+ ::= { rmonGroups 11 }
+END
diff --git a/php/extras/mibs/SCTP-MIB.txt b/php/extras/mibs/SCTP-MIB.txt
new file mode 100644
index 000000000..9d809d282
--- /dev/null
+++ b/php/extras/mibs/SCTP-MIB.txt
@@ -0,0 +1,1342 @@
+SCTP-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE, Integer32, Unsigned32, Gauge32,
+ Counter32, Counter64, mib-2
+ FROM SNMPv2-SMI -- [RFC2578]
+ TimeStamp, TruthValue
+ FROM SNMPv2-TC -- [RFC2579]
+ MODULE-COMPLIANCE, OBJECT-GROUP
+ FROM SNMPv2-CONF -- [RFC2580]
+ InetAddressType, InetAddress, InetPortNumber
+ FROM INET-ADDRESS-MIB; -- [RFC3291]
+
+sctpMIB MODULE-IDENTITY
+ LAST-UPDATED "200409020000Z" -- 2nd September 2004
+ ORGANIZATION "IETF SIGTRAN Working Group"
+ CONTACT-INFO
+ "
+ WG EMail: sigtran@ietf.org
+
+ Web Page:
+ http://www.ietf.org/html.charters/sigtran-charter.html
+
+ Chair: Lyndon Ong
+ Ciena Corporation
+ 0480 Ridgeview Drive
+ Cupertino, CA 95014
+ USA
+ Tel:
+ Email: lyong@ciena.com
+
+ Editors: Maria-Carmen Belinchon
+ R&D Department
+ Ericsson Espana S. A.
+ Via de los Poblados, 13
+ 28033 Madrid
+ Spain
+ Tel: +34 91 339 3535
+ Email: Maria.C.Belinchon@ericsson.com
+
+ Jose-Javier Pastor-Balbas
+ R&D Department
+ Ericsson Espana S. A.
+ Via de los Poblados, 13
+ 28033 Madrid
+ Spain
+ Tel: +34 91 339 1397
+ Email: J.Javier.Pastor@ericsson.com
+ "
+ DESCRIPTION
+ "The MIB module for managing SCTP implementations.
+
+ Copyright (C) The Internet Society (2004). This version of
+ this MIB module is part of RFC 3873; see the RFC itself for
+ full legal notices. "
+
+ REVISION "200409020000Z" -- 2nd September 2004
+ DESCRIPTION " Initial version, published as RFC 3873"
+ ::= { mib-2 104 }
+
+-- the SCTP base variables group
+
+sctpObjects OBJECT IDENTIFIER ::= { sctpMIB 1 }
+
+sctpStats OBJECT IDENTIFIER ::= { sctpObjects 1 }
+sctpParams OBJECT IDENTIFIER ::= { sctpObjects 2 }
+
+-- STATISTICS
+-- **********
+
+-- STATE-RELATED STATISTICS
+
+sctpCurrEstab OBJECT-TYPE
+ SYNTAX Gauge32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of associations for which the current state is
+ either ESTABLISHED, SHUTDOWN-RECEIVED or SHUTDOWN-PENDING."
+ REFERENCE
+ "Section 4 in RFC2960 covers the SCTP Association state
+ diagram."
+ ::= { sctpStats 1 }
+
+sctpActiveEstabs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of times that associations have made a direct
+ transition to the ESTABLISHED state from the COOKIE-ECHOED
+ state: COOKIE-ECHOED -> ESTABLISHED. The upper layer initiated
+ the association attempt."
+ REFERENCE
+ "Section 4 in RFC2960 covers the SCTP Association state
+ diagram."
+ ::= { sctpStats 2 }
+
+sctpPassiveEstabs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of times that associations have made a direct
+ transition to the ESTABLISHED state from the CLOSED state:
+ CLOSED -> ESTABLISHED. The remote endpoint initiated the
+ association attempt."
+ REFERENCE
+ "Section 4 in RFC2960 covers the SCTP Association state
+ diagram."
+ ::= { sctpStats 3 }
+
+sctpAborteds OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of times that associations have made a direct
+ transition to the CLOSED state from any state using the
+ primitive 'ABORT': AnyState --Abort--> CLOSED. Ungraceful
+ termination of the association."
+ REFERENCE
+ "Section 4 in RFC2960 covers the SCTP Association state
+ diagram."
+ ::= { sctpStats 4 }
+
+sctpShutdowns OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of times that associations have made a direct
+ transition to the CLOSED state from either the SHUTDOWN-SENT
+ state or the SHUTDOWN-ACK-SENT state. Graceful termination of
+ the association."
+ REFERENCE
+ "Section 4 in RFC2960 covers the SCTP Association state
+ diagram."
+ ::= { sctpStats 5 }
+
+-- OTHER LAYER STATISTICS
+
+sctpOutOfBlues OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of out of the blue packets received by the host.
+ An out of the blue packet is an SCTP packet correctly formed,
+ including the proper checksum, but for which the receiver was
+ unable to identify an appropriate association."
+ REFERENCE
+ "Section 8.4 in RFC2960 deals with the Out-Of-The-Blue
+ (OOTB) packet definition and procedures."
+ ::= { sctpStats 6 }
+
+sctpChecksumErrors OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of SCTP packets received with an invalid
+ checksum."
+ REFERENCE
+ "The checksum is located at the end of the SCTP packet as per
+ Section 3.1 in RFC2960. RFC3309 updates SCTP to use a 32 bit
+ CRC checksum."
+::= { sctpStats 7 }
+
+sctpOutCtrlChunks OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of SCTP control chunks sent (retransmissions are
+ not included). Control chunks are those chunks different from
+ DATA."
+ REFERENCE
+ "Sections 1.3.5 and 1.4 in RFC2960 refer to control chunk as
+ those chunks different from those that contain user
+ information, i.e., DATA chunks."
+ ::= { sctpStats 8 }
+
+sctpOutOrderChunks OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of SCTP ordered data chunks sent (retransmissions
+ are not included)."
+ REFERENCE
+ "Section 3.3.1 in RFC2960 defines the ordered data chunk."
+ ::= { sctpStats 9 }
+
+sctpOutUnorderChunks OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of SCTP unordered chunks (data chunks in which the
+ U bit is set to 1) sent (retransmissions are not included)."
+ REFERENCE
+ "Section 3.3.1 in RFC2960 defines the unordered data chunk."
+ ::= { sctpStats 10 }
+
+sctpInCtrlChunks OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of SCTP control chunks received (no duplicate
+ chunks included)."
+ REFERENCE
+ "Sections 1.3.5 and 1.4 in RFC2960 refer to control chunk as
+ those chunks different from those that contain user
+ information, i.e., DATA chunks."
+ ::= { sctpStats 11 }
+
+sctpInOrderChunks OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of SCTP ordered data chunks received (no duplicate
+ chunks included)."
+ REFERENCE
+ "Section 3.3.1 in RFC2960 defines the ordered data chunk."
+ ::= { sctpStats 12 }
+
+sctpInUnorderChunks OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of SCTP unordered chunks (data chunks in which the
+ U bit is set to 1) received (no duplicate chunks included)."
+ REFERENCE
+ "Section 3.3.1 in RFC2960 defines the unordered data chunk."
+ ::= { sctpStats 13 }
+
+sctpFragUsrMsgs OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of user messages that have to be fragmented
+ because of the MTU."
+ ::= { sctpStats 14 }
+
+sctpReasmUsrMsgs OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of user messages reassembled, after conversion
+ into DATA chunks."
+ REFERENCE
+ "Section 6.9 in RFC2960 includes a description of the
+ reassembly process."
+ ::= { sctpStats 15 }
+
+sctpOutSCTPPacks OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of SCTP packets sent. Retransmitted DATA chunks
+ are included."
+ ::= { sctpStats 16 }
+
+sctpInSCTPPacks OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of SCTP packets received. Duplicates are
+ included."
+ ::= { sctpStats 17 }
+
+sctpDiscontinuityTime OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime on the most recent occasion at which
+ any one or more of this general statistics counters suffered a
+ discontinuity. The relevant counters are the specific
+ instances associated with this interface of any Counter32 or
+ Counter64 object contained in the SCTP layer statistics
+ (defined below sctpStats branch). If no such discontinuities
+ have occurred since the last re-initialization of the local
+ management subsystem, then this object contains a zero value."
+ REFERENCE
+ "The inclusion of this object is recommended by RFC2578."
+ ::= { sctpStats 18 }
+
+-- PROTOCOL GENERAL VARIABLES
+-- **************************
+
+sctpRtoAlgorithm OBJECT-TYPE
+ SYNTAX INTEGER {
+ other(1), -- Other new one. Future use
+ vanj(2) -- Van Jacobson's algorithm
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The algorithm used to determine the timeout value (T3-rtx)
+ used for re-transmitting unacknowledged chunks."
+ REFERENCE
+ "Section 6.3.1 and 6.3.2 in RFC2960 cover the RTO calculation
+ and retransmission timer rules."
+ DEFVAL {vanj} -- vanj(2)
+ ::= { sctpParams 1 }
+
+sctpRtoMin OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "milliseconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The minimum value permitted by a SCTP implementation for the
+ retransmission timeout value, measured in milliseconds. More
+ refined semantics for objects of this type depend upon the
+ algorithm used to determine the retransmission timeout value.
+
+ A retransmission time value of zero means immediate
+ retransmission.
+
+ The value of this object has to be lower than or equal to
+ stcpRtoMax's value."
+ DEFVAL {1000} -- milliseconds
+ ::= { sctpParams 2 }
+
+sctpRtoMax OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "milliseconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The maximum value permitted by a SCTP implementation for the
+ retransmission timeout value, measured in milliseconds. More
+ refined semantics for objects of this type depend upon the
+ algorithm used to determine the retransmission timeout value.
+
+ A retransmission time value of zero means immediate re-
+ transmission.
+
+ The value of this object has to be greater than or equal to
+ stcpRtoMin's value."
+ DEFVAL {60000} -- milliseconds
+ ::= { sctpParams 3 }
+
+sctpRtoInitial OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "milliseconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The initial value for the retransmission timer.
+
+ A retransmission time value of zero means immediate re-
+ transmission."
+ DEFVAL {3000} -- milliseconds
+ ::= { sctpParams 4 }
+
+sctpMaxAssocs OBJECT-TYPE
+ SYNTAX Integer32 (-1 | 0..2147483647)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The limit on the total number of associations the entity can
+ support. In entities where the maximum number of associations
+ is dynamic, this object should contain the value -1."
+ ::= { sctpParams 5 }
+
+sctpValCookieLife OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "milliseconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Valid cookie life in the 4-way start-up handshake procedure."
+ REFERENCE
+ "Section 5.1.3 in RFC2960 explains the cookie generation
+ process. Recommended value is per section 14 in RFC2960."
+ DEFVAL {60000} -- milliseconds
+ ::= { sctpParams 6 }
+
+sctpMaxInitRetr OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The maximum number of retransmissions at the start-up phase
+ (INIT and COOKIE ECHO chunks). "
+ REFERENCE
+ "Section 5.1.4, 5.1.6 in RFC2960 refers to Max.Init.Retransmit
+ parameter. Recommended value is per section 14 in RFC2960."
+ DEFVAL {8} -- number of attempts
+ ::= { sctpParams 7 }
+
+-- TABLES
+-- ******
+
+-- the SCTP Association TABLE
+
+-- The SCTP association table contains information about each
+-- association in which the local endpoint is involved.
+
+sctpAssocTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SctpAssocEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table containing SCTP association-specific information."
+ ::= { sctpObjects 3 }
+
+sctpAssocEntry OBJECT-TYPE
+ SYNTAX SctpAssocEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "General common variables and statistics for the whole
+ association."
+ INDEX { sctpAssocId }
+ ::= { sctpAssocTable 1 }
+
+SctpAssocEntry ::= SEQUENCE {
+ sctpAssocId Unsigned32,
+ sctpAssocRemHostName OCTET STRING,
+ sctpAssocLocalPort InetPortNumber,
+ sctpAssocRemPort InetPortNumber,
+ sctpAssocRemPrimAddrType InetAddressType,
+ sctpAssocRemPrimAddr InetAddress,
+ sctpAssocHeartBeatInterval Unsigned32,
+ sctpAssocState INTEGER,
+ sctpAssocInStreams Unsigned32,
+ sctpAssocOutStreams Unsigned32,
+ sctpAssocMaxRetr Unsigned32,
+ sctpAssocPrimProcess Unsigned32,
+ sctpAssocT1expireds Counter32, -- Statistic
+ sctpAssocT2expireds Counter32, -- Statistic
+ sctpAssocRtxChunks Counter32, -- Statistic
+ sctpAssocStartTime TimeStamp,
+ sctpAssocDiscontinuityTime TimeStamp
+ }
+
+sctpAssocId OBJECT-TYPE
+ SYNTAX Unsigned32 (1..4294967295)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Association Identification. Value identifying the
+ association. "
+ ::= { sctpAssocEntry 1 }
+
+sctpAssocRemHostName OBJECT-TYPE
+ SYNTAX OCTET STRING (SIZE(0..255))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The peer's DNS name. This object needs to have the same
+ format as the encoding in the DNS protocol. This implies that
+ the domain name can be up to 255 octets long, each octet being
+ 0<=x<=255 as value with US-ASCII A-Z having a case insensitive
+ matching.
+
+ If no DNS domain name was received from the peer at init time
+ (embedded in the INIT or INIT-ACK chunk), this object is
+ meaningless. In such cases the object MUST contain a zero-
+ length string value. Otherwise, it contains the remote host
+ name received at init time."
+ ::= { sctpAssocEntry 2 }
+
+sctpAssocLocalPort OBJECT-TYPE
+ SYNTAX InetPortNumber (1..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The local SCTP port number used for this association."
+ ::= { sctpAssocEntry 3 }
+
+sctpAssocRemPort OBJECT-TYPE
+ SYNTAX InetPortNumber (1..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The remote SCTP port number used for this association."
+ ::= { sctpAssocEntry 4 }
+
+sctpAssocRemPrimAddrType OBJECT-TYPE
+ SYNTAX InetAddressType
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The internet type of primary remote IP address. "
+ ::= { sctpAssocEntry 5 }
+
+sctpAssocRemPrimAddr OBJECT-TYPE
+ SYNTAX InetAddress
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The primary remote IP address. The type of this address is
+ determined by the value of sctpAssocRemPrimAddrType.
+
+ The client side will know this value after INIT_ACK message
+ reception, the server side will know this value when sending
+ INIT_ACK message. However, values will be filled in at
+ established(4) state."
+ ::= { sctpAssocEntry 6 }
+
+sctpAssocHeartBeatInterval OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "milliseconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The current heartbeat interval..
+
+ Zero value means no HeartBeat, even when the concerned
+ sctpAssocRemAddrHBFlag object is true."
+ DEFVAL {30000} -- milliseconds
+ ::= { sctpAssocEntry 7 }
+
+sctpAssocState OBJECT-TYPE
+ SYNTAX INTEGER {
+ closed(1),
+ cookieWait(2),
+ cookieEchoed(3),
+ established(4),
+ shutdownPending(5),
+ shutdownSent(6),
+ shutdownReceived(7),
+ shutdownAckSent(8),
+ deleteTCB(9)
+ }
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The state of this SCTP association.
+
+ As in TCP, deleteTCB(9) is the only value that may be set by a
+ management station. If any other value is received, then the
+ agent must return a wrongValue error.
+
+ If a management station sets this object to the value
+ deleteTCB(9), then this has the effect of deleting the TCB (as
+ defined in SCTP) of the corresponding association on the
+ managed node, resulting in immediate termination of the
+ association.
+
+ As an implementation-specific option, an ABORT chunk may be
+ sent from the managed node to the other SCTP endpoint as a
+ result of setting the deleteTCB(9) value. The ABORT chunk
+ implies an ungraceful association shutdown."
+ REFERENCE
+ "Section 4 in RFC2960 covers the SCTP Association state
+ diagram."
+ ::= { sctpAssocEntry 8 }
+
+sctpAssocInStreams OBJECT-TYPE
+ SYNTAX Unsigned32 (1..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Inbound Streams according to the negotiation at association
+ start up."
+ REFERENCE
+ "Section 1.3 in RFC2960 includes a definition of stream.
+ Section 5.1.1 in RFC2960 covers the streams negotiation
+ process."
+ ::= { sctpAssocEntry 9 }
+
+sctpAssocOutStreams OBJECT-TYPE
+ SYNTAX Unsigned32 (1..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Outbound Streams according to the negotiation at association
+ start up. "
+ REFERENCE
+ "Section 1.3 in RFC2960 includes a definition of stream.
+ Section 5.1.1 in RFC2960 covers the streams negotiation
+ process."
+ ::= { sctpAssocEntry 10 }
+
+sctpAssocMaxRetr OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The maximum number of data retransmissions in the association
+ context. This value is specific for each association and the
+ upper layer can change it by calling the appropriate
+ primitives. This value has to be smaller than the addition of
+ all the maximum number for all the paths
+ (sctpAssocRemAddrMaxPathRtx).
+
+ A value of zero value means no retransmissions."
+ DEFVAL {10} -- number of attempts
+ ::= { sctpAssocEntry 11 }
+
+sctpAssocPrimProcess OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "This object identifies the system level process which holds
+ primary responsibility for the SCTP association.
+ Wherever possible, this should be the system's native unique
+ identification number. The special value 0 can be used to
+ indicate that no primary process is known.
+
+ Note that the value of this object can be used as a pointer
+ into the swRunTable of the HOST-RESOURCES-MIB(if the value is
+ smaller than 2147483647) or into the sysApplElmtRunTable of
+ the SYSAPPL-MIB."
+ ::= { sctpAssocEntry 12 }
+
+-- Association Statistics
+
+sctpAssocT1expireds OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The T1 timer determines how long to wait for an
+ acknowledgement after sending an INIT or COOKIE-ECHO chunk.
+ This object reflects the number of times the T1 timer expires
+ without having received the acknowledgement.
+
+ Discontinuities in the value of this counter can occur at re-
+ initialization of the management system, and at other times as
+ indicated by the value of sctpAssocDiscontinuityTime."
+ REFERENCE
+ "Section 5 in RFC2960."
+ ::= { sctpAssocEntry 13 }
+
+sctpAssocT2expireds OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The T2 timer determines how long to wait for an
+ acknowledgement after sending a SHUTDOWN or SHUTDOWN-ACK
+ chunk. This object reflects the number of times that T2- timer
+ expired.
+
+ Discontinuities in the value of this counter can occur at re-
+ initialization of the management system, and at other times as
+ indicated by the value of sctpAssocDiscontinuityTime."
+REFERENCE
+ "Section 9.2 in RFC2960."
+ ::= { sctpAssocEntry 14 }
+
+sctpAssocRtxChunks OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "When T3-rtx expires, the DATA chunks that triggered the T3
+ timer will be re-sent according with the retransmissions
+ rules. Every DATA chunk that was included in the SCTP packet
+ that triggered the T3-rtx timer must be added to the value of
+ this counter.
+
+ Discontinuities in the value of this counter can occur at re-
+ initialization of the management system, and at other times as
+ indicated by the value of sctpAssocDiscontinuityTime."
+ REFERENCE
+ "Section 6 in RFC2960 covers the retransmission process and
+ rules."
+ ::= { sctpAssocEntry 15 }
+
+sctpAssocStartTime OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime at the time that the association
+ represented by this row enters the ESTABLISHED state, i.e.,
+ the sctpAssocState object is set to established(4). The
+ value of this object will be zero:
+ - before the association enters the established(4)
+ state, or
+
+ - if the established(4) state was entered prior to
+ the last re-initialization of the local network management
+ subsystem."
+ ::= { sctpAssocEntry 16 }
+
+sctpAssocDiscontinuityTime OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime on the most recent occasion at which
+ any one or more of this SCTP association counters suffered a
+ discontinuity. The relevant counters are the specific
+ instances associated with this interface of any Counter32 or
+ Counter64 object contained in the sctpAssocTable or
+ sctpLocalAddrTable or sctpRemAddrTable. If no such
+ discontinuities have occurred since the last re-initialization
+ of the local management subsystem, then this object contains a
+ zero value. "
+ REFERENCE
+ "The inclusion of this object is recommended by RFC2578."
+ ::= { sctpAssocEntry 17 }
+
+-- Expanded tables: Including Multi-home feature
+
+-- Local Address TABLE
+-- *******************
+
+sctpAssocLocalAddrTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SctpAssocLocalAddrEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Expanded table of sctpAssocTable based on the AssocId index.
+ This table shows data related to each local IP address which
+ is used by this association."
+ ::= { sctpObjects 4 }
+
+sctpAssocLocalAddrEntry OBJECT-TYPE
+ SYNTAX SctpAssocLocalAddrEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Local information about the available addresses. There will
+ be an entry for every local IP address defined for this
+
+ association.
+ Implementors need to be aware that if the size of
+ sctpAssocLocalAddr exceeds 114 octets then OIDs of column
+ instances in this table will have more than 128 sub-
+ identifiers and cannot be accessed using SNMPv1, SNMPv2c, or
+ SNMPv3."
+ INDEX { sctpAssocId, -- shared index
+ sctpAssocLocalAddrType,
+ sctpAssocLocalAddr }
+ ::= { sctpAssocLocalAddrTable 1 }
+
+SctpAssocLocalAddrEntry ::= SEQUENCE {
+ sctpAssocLocalAddrType InetAddressType,
+ sctpAssocLocalAddr InetAddress,
+ sctpAssocLocalAddrStartTime TimeStamp
+ }
+
+sctpAssocLocalAddrType OBJECT-TYPE
+ SYNTAX InetAddressType
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Internet type of local IP address used for this association."
+ ::= { sctpAssocLocalAddrEntry 1 }
+
+sctpAssocLocalAddr OBJECT-TYPE
+ SYNTAX InetAddress
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The value of a local IP address available for this
+ association. The type of this address is determined by the
+ value of sctpAssocLocalAddrType."
+ ::= { sctpAssocLocalAddrEntry 2 }
+
+sctpAssocLocalAddrStartTime OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime at the time that this row was
+ created."
+ ::= { sctpAssocLocalAddrEntry 3 }
+
+-- Remote Addresses TABLE
+-- **********************
+
+sctpAssocRemAddrTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SctpAssocRemAddrEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Expanded table of sctpAssocTable based on the AssocId index.
+ This table shows data related to each remote peer IP address
+ which is used by this association."
+ ::= { sctpObjects 5 }
+
+sctpAssocRemAddrEntry OBJECT-TYPE
+ SYNTAX SctpAssocRemAddrEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Information about the most important variables for every
+ remote IP address. There will be an entry for every remote IP
+ address defined for this association.
+
+ Implementors need to be aware that if the size of
+ sctpAssocRemAddr exceeds 114 octets then OIDs of column
+ instances in this table will have more than 128 sub-
+ identifiers and cannot be accessed using SNMPv1, SNMPv2c, or
+ SNMPv3."
+ INDEX { sctpAssocId, -- shared index
+ sctpAssocRemAddrType,
+ sctpAssocRemAddr }
+ ::= { sctpAssocRemAddrTable 1 }
+
+SctpAssocRemAddrEntry ::= SEQUENCE {
+ sctpAssocRemAddrType InetAddressType,
+ sctpAssocRemAddr InetAddress,
+ sctpAssocRemAddrActive TruthValue,
+ sctpAssocRemAddrHBActive TruthValue,
+ sctpAssocRemAddrRTO Unsigned32,
+ sctpAssocRemAddrMaxPathRtx Unsigned32,
+ sctpAssocRemAddrRtx Counter32, -- Statistic
+ sctpAssocRemAddrStartTime TimeStamp
+ }
+
+sctpAssocRemAddrType OBJECT-TYPE
+ SYNTAX InetAddressType
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Internet type of a remote IP address available for this
+ association."
+ ::= { sctpAssocRemAddrEntry 1 }
+
+sctpAssocRemAddr OBJECT-TYPE
+ SYNTAX InetAddress
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The value of a remote IP address available for this
+ association. The type of this address is determined by the
+ value of sctpAssocLocalAddrType."
+ ::= { sctpAssocRemAddrEntry 2 }
+
+sctpAssocRemAddrActive OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "This object gives information about the reachability of this
+ specific remote IP address.
+
+ When the object is set to 'true' (1), the remote IP address is
+ understood as Active. Active means that the threshold of no
+ answers received from this IP address has not been reached.
+
+ When the object is set to 'false' (2), the remote IP address
+ is understood as Inactive. Inactive means that either no
+ heartbeat or any other message was received from this address,
+ reaching the threshold defined by the protocol."
+ REFERENCE
+ "The remote transport states are defined as Active and
+ Inactive in the SCTP, RFC2960."
+ ::= { sctpAssocRemAddrEntry 3 }
+
+sctpAssocRemAddrHBActive OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "This object indicates whether the optional Heartbeat check
+ associated to one destination transport address is activated
+ or not (value equal to true or false, respectively). "
+ ::= { sctpAssocRemAddrEntry 4 }
+
+sctpAssocRemAddrRTO OBJECT-TYPE -- T3-rtx- Timer
+ SYNTAX Unsigned32
+ UNITS "milliseconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The current Retransmission Timeout. T3-rtx timer as defined
+ in the protocol SCTP."
+ REFERENCE
+ "Section 6.3 in RFC2960 deals with the Retransmission Timer
+ Management."
+ ::= { sctpAssocRemAddrEntry 5 }
+
+sctpAssocRemAddrMaxPathRtx OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Maximum number of DATA chunks retransmissions allowed to a
+ remote IP address before it is considered inactive, as defined
+ in RFC2960."
+ REFERENCE
+ "Section 8.2, 8.3 and 14 in RFC2960."
+ DEFVAL {5} -- number of attempts
+ ::= { sctpAssocRemAddrEntry 6 }
+
+-- Remote Address Statistic
+
+sctpAssocRemAddrRtx OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Number of DATA chunks retransmissions to this specific IP
+ address. When T3-rtx expires, the DATA chunk that triggered
+ the T3 timer will be re-sent according to the retransmissions
+ rules. Every DATA chunk that is included in a SCTP packet and
+ was transmitted to this specific IP address before, will be
+ included in this counter.
+
+ Discontinuities in the value of this counter can occur at re-
+ initialization of the management system, and at other times as
+ indicated by the value of sctpAssocDiscontinuityTime."
+ ::= { sctpAssocRemAddrEntry 7 }
+
+sctpAssocRemAddrStartTime OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime at the time that this row was
+ created."
+ ::= { sctpAssocRemAddrEntry 8 }
+
+-- ASSOCIATION INVERSE TABLE
+-- *************************
+
+-- BY LOCAL PORT
+
+sctpLookupLocalPortTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SctpLookupLocalPortEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "With the use of this table, a list of associations which are
+
+ using the specified local port can be retrieved."
+ ::= { sctpObjects 6 }
+
+sctpLookupLocalPortEntry OBJECT-TYPE
+ SYNTAX SctpLookupLocalPortEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This table is indexed by local port and association ID.
+ Specifying a local port, we would get a list of the
+ associations whose local port is the one specified."
+ INDEX { sctpAssocLocalPort,
+ sctpAssocId }
+ ::= { sctpLookupLocalPortTable 1 }
+
+SctpLookupLocalPortEntry::= SEQUENCE {
+ sctpLookupLocalPortStartTime TimeStamp
+ }
+
+sctpLookupLocalPortStartTime OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime at the time that this row was created.
+
+ As the table will be created after the sctpAssocTable
+ creation, this value could be equal to the sctpAssocStartTime
+ object from the main table."
+ ::= { sctpLookupLocalPortEntry 1 }
+
+-- BY REMOTE PORT
+
+sctpLookupRemPortTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SctpLookupRemPortEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "With the use of this table, a list of associations which are
+ using the specified remote port can be got"
+ ::= { sctpObjects 7 }
+
+sctpLookupRemPortEntry OBJECT-TYPE
+ SYNTAX SctpLookupRemPortEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This table is indexed by remote port and association ID.
+ Specifying a remote port we would get a list of the
+ associations whose local port is the one specified "
+ INDEX { sctpAssocRemPort,
+ sctpAssocId }
+ ::= { sctpLookupRemPortTable 1 }
+
+SctpLookupRemPortEntry::= SEQUENCE {
+ sctpLookupRemPortStartTime TimeStamp
+ }
+
+sctpLookupRemPortStartTime OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime at the time that this row was created.
+
+ As the table will be created after the sctpAssocTable
+ creation, this value could be equal to the sctpAssocStartTime
+ object from the main table."
+ ::= { sctpLookupRemPortEntry 1 }
+
+-- BY REMOTE HOST NAME
+
+sctpLookupRemHostNameTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SctpLookupRemHostNameEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "With the use of this table, a list of associations with that
+ particular host can be retrieved."
+ ::= { sctpObjects 8 }
+
+sctpLookupRemHostNameEntry OBJECT-TYPE
+ SYNTAX SctpLookupRemHostNameEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This table is indexed by remote host name and association ID.
+ Specifying a host name we would get a list of the associations
+ specifying that host name as the remote one.
+
+ Implementors need to be aware that if the size of
+ sctpAssocRemHostName exceeds 115 octets then OIDs of column
+ instances in this table will have more than 128 sub-
+ identifiers and cannot be accessed using SNMPv1, SNMPv2c, or
+ SNMPv3."
+ INDEX { sctpAssocRemHostName,
+ sctpAssocId }
+ ::= { sctpLookupRemHostNameTable 1 }
+
+SctpLookupRemHostNameEntry::= SEQUENCE {
+ sctpLookupRemHostNameStartTime TimeStamp
+ }
+
+sctpLookupRemHostNameStartTime OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime at the time that this row was created.
+
+ As the table will be created after the sctpAssocTable
+ creation, this value could be equal to the sctpAssocStartTime
+ object from the main table."
+ ::= { sctpLookupRemHostNameEntry 1 }
+
+-- BY REMOTE PRIMARY IP ADDRESS
+
+sctpLookupRemPrimIPAddrTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SctpLookupRemPrimIPAddrEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "With the use of this table, a list of associations that have
+ the specified IP address as primary within the remote set of
+ active addresses can be retrieved."
+ ::= { sctpObjects 9 }
+
+sctpLookupRemPrimIPAddrEntry OBJECT-TYPE
+ SYNTAX SctpLookupRemPrimIPAddrEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This table is indexed by primary address and association ID.
+ Specifying a primary address, we would get a list of the
+ associations that have the specified remote IP address marked
+ as primary.
+ Implementors need to be aware that if the size of
+ sctpAssocRemPrimAddr exceeds 114 octets then OIDs of column
+ instances in this table will have more than 128 sub-
+ identifiers and cannot be accessed using SNMPv1, SNMPv2c, or
+ SNMPv3."
+ INDEX { sctpAssocRemPrimAddrType,
+ sctpAssocRemPrimAddr,
+ sctpAssocId }
+ ::= { sctpLookupRemPrimIPAddrTable 1 }
+
+SctpLookupRemPrimIPAddrEntry::= SEQUENCE {
+ sctpLookupRemPrimIPAddrStartTime TimeStamp
+ }
+
+sctpLookupRemPrimIPAddrStartTime OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of SysUpTime at the time that this row was created.
+
+ As the table will be created after the sctpAssocTable
+ creation, this value could be equal to the sctpAssocStartTime
+ object from the main table."
+ ::= { sctpLookupRemPrimIPAddrEntry 1 }
+
+-- BY REMOTE IP ADDRESS
+
+sctpLookupRemIPAddrTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SctpLookupRemIPAddrEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "With the use of this table, a list of associations that have
+ the specified IP address as one of the remote ones can be
+ retrieved. "
+ ::= { sctpObjects 10 }
+
+sctpLookupRemIPAddrEntry OBJECT-TYPE
+ SYNTAX SctpLookupRemIPAddrEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This table is indexed by a remote IP address and association
+ ID. Specifying an IP address we would get a list of the
+ associations that have the specified IP address included
+ within the set of remote IP addresses."
+ INDEX { sctpAssocRemAddrType,
+ sctpAssocRemAddr,
+ sctpAssocId }
+ ::= { sctpLookupRemIPAddrTable 1 }
+
+SctpLookupRemIPAddrEntry::= SEQUENCE {
+
+ sctpLookupRemIPAddrStartTime TimeStamp
+ }
+
+sctpLookupRemIPAddrStartTime OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of SysUpTime at the time that this row was created.
+
+ As the table will be created after the sctpAssocTable
+ creation, this value could be equal to the sctpAssocStartTime
+ object from the main table."
+ ::= { sctpLookupRemIPAddrEntry 1 }
+
+-- 4.1 Conformance Information
+
+sctpMibConformance OBJECT IDENTIFIER ::= { sctpMIB 2 }
+sctpMibCompliances OBJECT IDENTIFIER ::= { sctpMibConformance 1 }
+sctpMibGroups OBJECT IDENTIFIER ::= { sctpMibConformance 2 }
+
+-- 4.1.1 Units of conformance
+
+--
+-- MODULE GROUPS
+--
+
+sctpLayerParamsGroup OBJECT-GROUP
+ OBJECTS { sctpRtoAlgorithm,
+ sctpRtoMin,
+ sctpRtoMax,
+ sctpRtoInitial,
+ sctpMaxAssocs,
+ sctpValCookieLife,
+ sctpMaxInitRetr
+ }
+ STATUS current
+ DESCRIPTION
+ "Common parameters for the SCTP layer, i.e., for all the
+ associations. They can usually be referred to as configuration
+ parameters."
+ ::= { sctpMibGroups 1 }
+
+sctpStatsGroup OBJECT-GROUP
+ OBJECTS { sctpCurrEstab,
+ sctpActiveEstabs,
+ sctpPassiveEstabs,
+ sctpAborteds,
+ sctpShutdowns,
+ sctpOutOfBlues,
+ sctpChecksumErrors,
+ sctpOutCtrlChunks,
+ sctpOutOrderChunks,
+ sctpOutUnorderChunks,
+ sctpInCtrlChunks,
+ sctpInOrderChunks,
+ sctpInUnorderChunks,
+ sctpFragUsrMsgs,
+ sctpReasmUsrMsgs,
+ sctpOutSCTPPacks,
+ sctpInSCTPPacks,
+ sctpDiscontinuityTime,
+ sctpAssocT1expireds,
+ sctpAssocT2expireds,
+ sctpAssocRtxChunks,
+ sctpAssocRemAddrRtx
+ }
+ STATUS current
+ DESCRIPTION
+ "Statistics group. It includes the objects to collect state
+ changes in the SCTP protocol local layer and flow control
+ statistics."
+ ::= { sctpMibGroups 2 }
+
+sctpPerAssocParamsGroup OBJECT-GROUP
+ OBJECTS { sctpAssocRemHostName,
+ sctpAssocLocalPort,
+ sctpAssocRemPort,
+ sctpAssocRemPrimAddrType,
+ sctpAssocRemPrimAddr,
+ sctpAssocHeartBeatInterval,
+ sctpAssocState,
+ sctpAssocInStreams,
+ sctpAssocOutStreams,
+ sctpAssocMaxRetr,
+ sctpAssocPrimProcess,
+ sctpAssocStartTime,
+ sctpAssocDiscontinuityTime,
+ sctpAssocLocalAddrStartTime,
+ sctpAssocRemAddrActive,
+ sctpAssocRemAddrHBActive,
+ sctpAssocRemAddrRTO,
+ sctpAssocRemAddrMaxPathRtx,
+ sctpAssocRemAddrStartTime
+ }
+ STATUS current
+ DESCRIPTION
+ "The SCTP group of objects to manage per-association
+ parameters. These variables include all the SCTP basic
+ features."
+ ::= { sctpMibGroups 3 }
+
+sctpPerAssocStatsGroup OBJECT-GROUP
+ OBJECTS
+ { sctpAssocT1expireds,
+ sctpAssocT2expireds,
+ sctpAssocRtxChunks,
+ sctpAssocRemAddrRtx
+ }
+ STATUS current
+ DESCRIPTION
+ "Per Association Statistics group. It includes the objects to
+ collect flow control statistics per association."
+ ::= { sctpMibGroups 4 }
+
+sctpInverseGroup OBJECT-GROUP
+ OBJECTS { sctpLookupLocalPortStartTime,
+ sctpLookupRemPortStartTime,
+ sctpLookupRemHostNameStartTime,
+ sctpLookupRemPrimIPAddrStartTime,
+ sctpLookupRemIPAddrStartTime
+ }
+ STATUS current
+ DESCRIPTION
+ "Objects used in the inverse lookup tables."
+ ::= { sctpMibGroups 5 }
+
+-- 4.1.2 Compliance Statements
+
+--
+-- MODULE COMPLIANCES
+--
+
+sctpMibCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for SNMP entities which implement
+ this SCTP MIB Module.
+
+ There are a number of INDEX objects that cannot be represented
+ in the form of OBJECT clauses in SMIv2, but for which we have
+ the following compliance requirements, expressed in OBJECT
+ clause form in this description clause:
+
+-- OBJECT sctpAssocLocalAddrType
+-- SYNTAX InetAddressType {ipv4(1), ipv6(2)}
+-- DESCRIPTION
+-- It is only required to have IPv4 and IPv6 addresses without
+-- zone indices.
+-- The address with zone indices is required if an
+-- implementation can connect multiple zones.
+--
+-- OBJECT sctpAssocLocalAddr
+-- SYNTAX InetAddress (SIZE(4|16))
+-- DESCRIPTION
+-- An implementation is only required to support globally
+-- unique IPv4 and IPv6 addresses.
+--
+-- OBJECT sctpAssocRemAddrType
+-- SYNTAX InetAddressType {ipv4(1), ipv6(2)}
+-- DESCRIPTION
+-- It is only required to have IPv4 and IPv6 addresses without
+-- zone indices.
+-- The address with zone indices is required if an
+-- implementation can connect multiple zones.
+--
+-- OBJECT sctpAssocRemAddr
+-- SYNTAX InetAddress (SIZE(4|16))
+-- DESCRIPTION
+-- An implementation is only required to support globally
+-- unique IPv4 and IPv6 addresses.
+--
+ " -- closes DESCRIPTION clause of MODULE-COMPLIANCE
+
+ MODULE -- this module
+
+ MANDATORY-GROUPS { sctpLayerParamsGroup,
+ sctpPerAssocParamsGroup,
+ sctpStatsGroup,
+ sctpPerAssocStatsGroup
+ }
+
+ OBJECT sctpAssocRemPrimAddrType
+ SYNTAX InetAddressType { ipv4(1),
+ ipv6(2)
+ }
+ DESCRIPTION
+ "It is only required to have IPv4 and IPv6 addresses
+ without zone indices.
+
+ The address with zone indices is required if an
+ implementation can connect multiple zones."
+
+ OBJECT sctpAssocRemPrimAddr
+ SYNTAX InetAddress (SIZE(4|16))
+ DESCRIPTION
+ "An implementation is only required to support globally
+ unique IPv4 and globally unique IPv6 addresses."
+
+ OBJECT sctpAssocState
+ WRITE-SYNTAX INTEGER { deleteTCB(9) }
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Only the deleteTCB(9) value MAY be set by a management
+ station at most. A read-only option is also considered to
+ be compliant with this MIB module description."
+
+ GROUP sctpInverseGroup
+ DESCRIPTION
+ "Objects used in inverse lookup tables. This should be
+ implemented, at the discretion of the implementers, for
+ easier lookups in the association tables"
+ ::= { sctpMibCompliances 1 }
+
+END
diff --git a/php/extras/mibs/SMUX-MIB.txt b/php/extras/mibs/SMUX-MIB.txt
new file mode 100644
index 000000000..078248540
--- /dev/null
+++ b/php/extras/mibs/SMUX-MIB.txt
@@ -0,0 +1,158 @@
+SMUX-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ enterprises
+ FROM RFC1155-SMI
+ OBJECT-TYPE
+ FROM RFC1212;
+
+unix OBJECT IDENTIFIER ::= { enterprises 4 }
+
+smux OBJECT IDENTIFIER ::= { unix 4 }
+
+smuxPeerTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SmuxPeerEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The SMUX peer table."
+ ::= { smux 1 }
+
+smuxPeerEntry OBJECT-TYPE
+ SYNTAX SmuxPeerEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "An entry in the SMUX peer table."
+ INDEX { smuxPindex }
+ ::= { smuxPeerTable 1}
+
+SmuxPeerEntry ::=
+ SEQUENCE {
+ smuxPindex
+ INTEGER,
+ smuxPidentity
+ OBJECT IDENTIFIER,
+ smuxPdescription
+ DisplayString,
+ smuxPstatus
+ INTEGER
+ }
+
+smuxPindex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "An index which uniquely identifies a SMUX peer."
+ ::= { smuxPeerEntry 1 }
+
+smuxPidentity OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The authoritative designation for a SMUX peer."
+ ::= { smuxPeerEntry 2 }
+
+smuxPdescription OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..255))
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A human-readable description of a SMUX peer."
+ ::= { smuxPeerEntry 3 }
+
+smuxPstatus OBJECT-TYPE
+ SYNTAX INTEGER { valid(1), invalid(2), connecting(3) }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The type of SMUX peer.
+
+ Setting this object to the value invalid(2) has
+ the effect of invaliding the corresponding entry
+ in the smuxPeerTable. It is an implementation-
+ specific matter as to whether the agent removes an
+ invalidated entry from the table. Accordingly,
+ management stations must be prepared to receive
+ tabular information from agents that correspond to
+ entries not currently in use. Proper
+ interpretation of such entries requires
+ examination of the relative smuxPstatus object."
+ ::= { smuxPeerEntry 4 }
+
+smuxTreeTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SmuxTreeEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The SMUX tree table."
+ ::= { smux 2 }
+
+smuxTreeEntry OBJECT-TYPE
+ SYNTAX SmuxTreeEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "An entry in the SMUX tree table."
+ INDEX { smuxTsubtree, smuxTpriority }
+ ::= { smuxTreeTable 1}
+
+SmuxTreeEntry ::=
+ SEQUENCE {
+ smuxTsubtree
+ OBJECT IDENTIFIER,
+ smuxTpriority
+ INTEGER,
+ smuxTindex
+ INTEGER,
+ smuxTstatus
+ INTEGER
+ }
+
+smuxTsubtree OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The MIB subtree being exported by a SMUX peer."
+ ::= { smuxTreeEntry 1 }
+
+smuxTpriority OBJECT-TYPE
+ SYNTAX INTEGER (0..'07fffffff'h)
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The SMUX peer's priority when exporting the MIB
+ subtree."
+ ::= { smuxTreeEntry 2 }
+
+smuxTindex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The SMUX peer's identity."
+ ::= { smuxTreeEntry 3 }
+
+smuxTstatus OBJECT-TYPE
+ SYNTAX INTEGER { valid(1), invalid(2) }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The type of SMUX tree.
+
+ Setting this object to the value invalid(2) has
+ the effect of invaliding the corresponding entry
+ in the smuxTreeTable. It is an implementation-
+ specific matter as to whether the agent removes an
+ invalidated entry from the table. Accordingly,
+ management stations must be prepared to receive
+ tabular information from agents that correspond to
+ entries not currently in use. Proper
+ interpretation of such entries requires
+ examination of the relative smuxTstatus object."
+ ::= { smuxTreeEntry 4 }
+
+END
diff --git a/php/extras/mibs/SNMP-COMMUNITY-MIB.txt b/php/extras/mibs/SNMP-COMMUNITY-MIB.txt
new file mode 100644
index 000000000..bc3d4d278
--- /dev/null
+++ b/php/extras/mibs/SNMP-COMMUNITY-MIB.txt
@@ -0,0 +1,429 @@
+SNMP-COMMUNITY-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ IpAddress,
+ MODULE-IDENTITY,
+ OBJECT-TYPE,
+ Integer32,
+ snmpModules
+ FROM SNMPv2-SMI
+ RowStatus,
+ StorageType
+ FROM SNMPv2-TC
+ SnmpAdminString,
+ SnmpEngineID
+ FROM SNMP-FRAMEWORK-MIB
+ SnmpTagValue,
+ snmpTargetAddrEntry
+ FROM SNMP-TARGET-MIB
+ MODULE-COMPLIANCE,
+ OBJECT-GROUP
+ FROM SNMPv2-CONF;
+
+snmpCommunityMIB MODULE-IDENTITY
+ LAST-UPDATED "200003060000Z" -- 6 Mar 2000, midnight
+ ORGANIZATION "SNMPv3 Working Group"
+ CONTACT-INFO "WG-email: snmpv3@lists.tislabs.com
+ Subscribe: majordomo@lists.tislabs.com
+ In msg body: subscribe snmpv3
+
+ Chair: Russ Mundy
+ TIS Labs at Network Associates
+ Postal: 3060 Washington Rd
+ Glenwood MD 21738
+ USA
+ Email: mundy@tislabs.com
+ Phone: +1-301-854-6889
+
+ Co-editor: Rob Frye
+ CoSine Communications
+ Postal: 1200 Bridge Parkway
+ Redwood City, CA 94065
+ USA
+ E-mail: rfrye@cosinecom.com
+ Phone: +1 703 725 1130
+
+ Co-editor: David B. Levi
+ Nortel Networks
+ Postal: 3505 Kesterwood Drive
+ Knoxville, TN 37918
+ E-mail: dlevi@nortelnetworks.com
+ Phone: +1 423 686 0432
+
+ Co-editor: Shawn A. Routhier
+ Integrated Systems Inc.
+ Postal: 333 North Ave 4th Floor
+ Wakefield, MA 01880
+ E-mail: sar@epilogue.com
+ Phone: +1 781 245 0804
+
+ Co-editor: Bert Wijnen
+ Lucent Technologies
+ Postal: Schagen 33
+ 3461 GL Linschoten
+ Netherlands
+ Email: bwijnen@lucent.com
+ Phone: +31-348-407-775
+ "
+ DESCRIPTION
+ "This MIB module defines objects to help support coexistence
+ between SNMPv1, SNMPv2c, and SNMPv3."
+ REVISION "200003060000Z" -- 6 Mar 2000
+ DESCRIPTION "This version published as RFC 2576."
+ REVISION "199905130000Z" -- 13 May 1999
+ DESCRIPTION "The Initial Revision"
+ ::= { snmpModules 18 }
+
+-- Administrative assignments ****************************************
+
+snmpCommunityMIBObjects OBJECT IDENTIFIER ::= { snmpCommunityMIB 1 }
+snmpCommunityMIBConformance OBJECT IDENTIFIER ::= { snmpCommunityMIB 2 }
+
+--
+-- The snmpCommunityTable contains a database of community strings.
+-- This table provides mappings between community strings, and the
+
+-- parameters required for View-based Access Control.
+--
+
+snmpCommunityTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SnmpCommunityEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The table of community strings configured in the SNMP
+ engine's Local Configuration Datastore (LCD)."
+ ::= { snmpCommunityMIBObjects 1 }
+
+snmpCommunityEntry OBJECT-TYPE
+ SYNTAX SnmpCommunityEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Information about a particular community string."
+ INDEX { IMPLIED snmpCommunityIndex }
+ ::= { snmpCommunityTable 1 }
+
+SnmpCommunityEntry ::= SEQUENCE {
+ snmpCommunityIndex SnmpAdminString,
+ snmpCommunityName OCTET STRING,
+ snmpCommunitySecurityName SnmpAdminString,
+ snmpCommunityContextEngineID SnmpEngineID,
+ snmpCommunityContextName SnmpAdminString,
+ snmpCommunityTransportTag SnmpTagValue,
+ snmpCommunityStorageType StorageType,
+ snmpCommunityStatus RowStatus
+}
+
+snmpCommunityIndex OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(1..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The unique index value of a row in this table."
+ ::= { snmpCommunityEntry 1 }
+
+snmpCommunityName OBJECT-TYPE
+ SYNTAX OCTET STRING
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The community string for which a row in this table
+ represents a configuration."
+ ::= { snmpCommunityEntry 2 }
+
+snmpCommunitySecurityName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(1..32))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "A human readable string representing the corresponding
+ value of snmpCommunityName in a Security Model
+ independent format."
+ ::= { snmpCommunityEntry 3 }
+
+snmpCommunityContextEngineID OBJECT-TYPE
+ SYNTAX SnmpEngineID
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The contextEngineID indicating the location of the
+ context in which management information is accessed
+ when using the community string specified by the
+ corresponding instance of snmpCommunityName.
+
+ The default value is the snmpEngineID of the entity in
+ which this object is instantiated."
+ ::= { snmpCommunityEntry 4 }
+
+snmpCommunityContextName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(0..32))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The context in which management information is accessed
+ when using the community string specified by the corresponding
+ instance of snmpCommunityName."
+ DEFVAL { ''H } -- the empty string
+ ::= { snmpCommunityEntry 5 }
+
+snmpCommunityTransportTag OBJECT-TYPE
+ SYNTAX SnmpTagValue
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object specifies a set of transport endpoints
+ from which a command responder application will accept
+ management requests. If a management request containing
+ this community is received on a transport endpoint other
+ than the transport endpoints identified by this object,
+ the request is deemed unauthentic.
+
+ The transports identified by this object are specified
+
+ in the snmpTargetAddrTable. Entries in that table
+ whose snmpTargetAddrTagList contains this tag value
+ are identified.
+
+ If the value of this object has zero-length, transport
+ endpoints are not checked when authenticating messages
+ containing this community string."
+ DEFVAL { ''H } -- the empty string
+ ::= { snmpCommunityEntry 6 }
+
+snmpCommunityStorageType OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The storage type for this conceptual row in the
+ snmpCommunityTable. Conceptual rows having the value
+ 'permanent' need not allow write-access to any
+ columnar object in the row."
+ ::= { snmpCommunityEntry 7 }
+
+snmpCommunityStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status of this conceptual row in the snmpCommunityTable.
+
+ An entry in this table is not qualified for activation
+ until instances of all corresponding columns have been
+ initialized, either through default values, or through
+ Set operations. The snmpCommunityName and
+ snmpCommunitySecurityName objects must be explicitly set.
+
+ There is no restriction on setting columns in this table
+ when the value of snmpCommunityStatus is active(1)."
+ ::= { snmpCommunityEntry 8 }
+
+--
+-- The snmpTargetAddrExtTable
+--
+
+snmpTargetAddrExtTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SnmpTargetAddrExtEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The table of mask and mms values associated with the
+
+ snmpTargetAddrTable.
+
+ The snmpTargetAddrExtTable augments the
+ snmpTargetAddrTable with a transport address mask value
+ and a maximum message size value. The transport address
+ mask allows entries in the snmpTargetAddrTable to define
+ a set of addresses instead of just a single address.
+ The maximum message size value allows the maximum
+ message size of another SNMP entity to be configured for
+ use in SNMPv1 (and SNMPv2c) transactions, where the
+ message format does not specify a maximum message size."
+ ::= { snmpCommunityMIBObjects 2 }
+
+snmpTargetAddrExtEntry OBJECT-TYPE
+ SYNTAX SnmpTargetAddrExtEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Information about a particular mask and mms value."
+ AUGMENTS { snmpTargetAddrEntry }
+ ::= { snmpTargetAddrExtTable 1 }
+
+SnmpTargetAddrExtEntry ::= SEQUENCE {
+ snmpTargetAddrTMask OCTET STRING,
+ snmpTargetAddrMMS Integer32
+}
+
+snmpTargetAddrTMask OBJECT-TYPE
+ SYNTAX OCTET STRING (SIZE (0..255))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The mask value associated with an entry in the
+ snmpTargetAddrTable. The value of this object must
+ have the same length as the corresponding instance of
+ snmpTargetAddrTAddress, or must have length 0. An
+ attempt to set it to any other value will result in
+ an inconsistentValue error.
+
+ The value of this object allows an entry in the
+ snmpTargetAddrTable to specify multiple addresses.
+ The mask value is used to select which bits of
+ a transport address must match bits of the corresponding
+ instance of snmpTargetAddrTAddress, in order for the
+ transport address to match a particular entry in the
+ snmpTargetAddrTable. Bits which are 1 in the mask
+ value indicate bits in the transport address which
+ must match bits in the snmpTargetAddrTAddress value.
+
+ Bits which are 0 in the mask indicate bits in the
+ transport address which need not match. If the
+ length of the mask is 0, the mask should be treated
+ as if all its bits were 1 and its length were equal
+ to the length of the corresponding value of
+ snmpTargetAddrTable.
+
+ This object may not be modified while the value of the
+ corresponding instance of snmpTargetAddrRowStatus is
+ active(1). An attempt to set this object in this case
+ will result in an inconsistentValue error."
+ DEFVAL { ''H }
+ ::= { snmpTargetAddrExtEntry 1 }
+
+snmpTargetAddrMMS OBJECT-TYPE
+ SYNTAX Integer32 (0|484..2147483647)
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The maximum message size value associated with an entry
+ in the snmpTargetAddrTable."
+ DEFVAL { 484 }
+ ::= { snmpTargetAddrExtEntry 2 }
+
+--
+-- The snmpTrapAddress and snmpTrapCommunity objects are included
+-- in notifications that are forwarded by a proxy, which were
+-- originally received as SNMPv1 Trap messages.
+--
+
+snmpTrapAddress OBJECT-TYPE
+ SYNTAX IpAddress
+ MAX-ACCESS accessible-for-notify
+ STATUS current
+ DESCRIPTION
+ "The value of the agent-addr field of a Trap PDU which
+ is forwarded by a proxy forwarder application using
+ an SNMP version other than SNMPv1. The value of this
+ object SHOULD contain the value of the agent-addr field
+ from the original Trap PDU as generated by an SNMPv1
+ agent."
+ ::= { snmpCommunityMIBObjects 3 }
+
+snmpTrapCommunity OBJECT-TYPE
+ SYNTAX OCTET STRING
+ MAX-ACCESS accessible-for-notify
+ STATUS current
+ DESCRIPTION
+ "The value of the community string field of an SNMPv1
+ message containing a Trap PDU which is forwarded by a
+ a proxy forwarder application using an SNMP version
+ other than SNMPv1. The value of this object SHOULD
+ contain the value of the community string field from
+ the original SNMPv1 message containing a Trap PDU as
+ generated by an SNMPv1 agent."
+ ::= { snmpCommunityMIBObjects 4 }
+
+-- Conformance Information *******************************************
+
+snmpCommunityMIBCompliances OBJECT IDENTIFIER
+ ::= { snmpCommunityMIBConformance 1 }
+snmpCommunityMIBGroups OBJECT IDENTIFIER
+ ::= { snmpCommunityMIBConformance 2 }
+
+-- Compliance statements
+
+snmpCommunityMIBCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for SNMP engines which
+ implement the SNMP-COMMUNITY-MIB."
+
+ MODULE -- this module
+ MANDATORY-GROUPS { snmpCommunityGroup }
+
+ OBJECT snmpCommunityName
+ MIN-ACCESS read-only
+ DESCRIPTION "Write access is not required."
+
+ OBJECT snmpCommunitySecurityName
+ MIN-ACCESS read-only
+ DESCRIPTION "Write access is not required."
+
+ OBJECT snmpCommunityContextEngineID
+ MIN-ACCESS read-only
+ DESCRIPTION "Write access is not required."
+
+ OBJECT snmpCommunityContextName
+ MIN-ACCESS read-only
+ DESCRIPTION "Write access is not required."
+
+ OBJECT snmpCommunityTransportTag
+ MIN-ACCESS read-only
+ DESCRIPTION "Write access is not required."
+
+ OBJECT snmpCommunityStorageType
+ MIN-ACCESS read-only
+ DESCRIPTION "Write access is not required."
+
+ OBJECT snmpCommunityStatus
+ MIN-ACCESS read-only
+ DESCRIPTION "Write access is not required."
+ ::= { snmpCommunityMIBCompliances 1 }
+
+snmpProxyTrapForwardCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for SNMP engines which
+ contain a proxy forwarding application which is
+ capable of forwarding SNMPv1 traps using SNMPv2c
+ or SNMPv3."
+ MODULE -- this module
+ MANDATORY-GROUPS { snmpProxyTrapForwardGroup }
+ ::= { snmpCommunityMIBCompliances 2 }
+
+snmpCommunityGroup OBJECT-GROUP
+ OBJECTS {
+ snmpCommunityName,
+ snmpCommunitySecurityName,
+ snmpCommunityContextEngineID,
+ snmpCommunityContextName,
+ snmpCommunityTransportTag,
+ snmpCommunityStorageType,
+ snmpCommunityStatus,
+ snmpTargetAddrTMask,
+ snmpTargetAddrMMS
+ }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing for configuration
+ of community strings for SNMPv1 (and SNMPv2c) usage."
+ ::= { snmpCommunityMIBGroups 1 }
+
+snmpProxyTrapForwardGroup OBJECT-GROUP
+ OBJECTS {
+ snmpTrapAddress,
+ snmpTrapCommunity
+ }
+ STATUS current
+ DESCRIPTION
+ "Objects which are used by proxy forwarding applications
+ when translating traps between SNMP versions. These are
+ used to preserve SNMPv1-specific information when
+
+ translating to SNMPv2c or SNMPv3."
+ ::= { snmpCommunityMIBGroups 3 }
+
+END
diff --git a/php/extras/mibs/SNMP-FRAMEWORK-MIB.txt b/php/extras/mibs/SNMP-FRAMEWORK-MIB.txt
new file mode 100644
index 000000000..aa273c285
--- /dev/null
+++ b/php/extras/mibs/SNMP-FRAMEWORK-MIB.txt
@@ -0,0 +1,526 @@
+SNMP-FRAMEWORK-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE,
+ OBJECT-IDENTITY,
+ snmpModules FROM SNMPv2-SMI
+ TEXTUAL-CONVENTION FROM SNMPv2-TC
+ MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF;
+
+snmpFrameworkMIB MODULE-IDENTITY
+ LAST-UPDATED "200210140000Z"
+ ORGANIZATION "SNMPv3 Working Group"
+ CONTACT-INFO "WG-EMail: snmpv3@lists.tislabs.com
+ Subscribe: snmpv3-request@lists.tislabs.com
+
+ Co-Chair: Russ Mundy
+ Network Associates Laboratories
+ postal: 15204 Omega Drive, Suite 300
+ Rockville, MD 20850-4601
+ USA
+ EMail: mundy@tislabs.com
+ phone: +1 301-947-7107
+
+ Co-Chair &
+ Co-editor: David Harrington
+ Enterasys Networks
+ postal: 35 Industrial Way
+ P. O. Box 5005
+ Rochester, New Hampshire 03866-5005
+ USA
+ EMail: dbh@enterasys.com
+ phone: +1 603-337-2614
+
+ Co-editor: Randy Presuhn
+ BMC Software, Inc.
+ postal: 2141 North First Street
+ San Jose, California 95131
+ USA
+ EMail: randy_presuhn@bmc.com
+ phone: +1 408-546-1006
+
+ Co-editor: Bert Wijnen
+ Lucent Technologies
+ postal: Schagen 33
+ 3461 GL Linschoten
+ Netherlands
+
+ EMail: bwijnen@lucent.com
+ phone: +31 348-680-485
+ "
+ DESCRIPTION "The SNMP Management Architecture MIB
+
+ Copyright (C) The Internet Society (2002). This
+ version of this MIB module is part of RFC 3411;
+ see the RFC itself for full legal notices.
+ "
+
+ REVISION "200210140000Z" -- 14 October 2002
+ DESCRIPTION "Changes in this revision:
+ - Updated various administrative information.
+ - Corrected some typos.
+ - Corrected typo in description of SnmpEngineID
+ that led to range overlap for 127.
+ - Changed '255a' to '255t' in definition of
+ SnmpAdminString to align with current SMI.
+ - Reworded 'reserved' for value zero in
+ DESCRIPTION of SnmpSecurityModel.
+ - The algorithm for allocating security models
+ should give 256 per enterprise block, rather
+ than 255.
+ - The example engine ID of 'abcd' is not
+ legal. Replaced with '800002b804616263'H based
+ on example enterprise 696, string 'abc'.
+ - Added clarification that engineID should
+ persist across re-initializations.
+ This revision published as RFC 3411.
+ "
+ REVISION "199901190000Z" -- 19 January 1999
+ DESCRIPTION "Updated editors' addresses, fixed typos.
+ Published as RFC 2571.
+ "
+ REVISION "199711200000Z" -- 20 November 1997
+ DESCRIPTION "The initial version, published in RFC 2271.
+ "
+ ::= { snmpModules 10 }
+
+ -- Textual Conventions used in the SNMP Management Architecture ***
+
+SnmpEngineID ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION "An SNMP engine's administratively-unique identifier.
+ Objects of this type are for identification, not for
+ addressing, even though it is possible that an
+ address may have been used in the generation of
+ a specific value.
+
+ The value for this object may not be all zeros or
+ all 'ff'H or the empty (zero length) string.
+
+ The initial value for this object may be configured
+ via an operator console entry or via an algorithmic
+ function. In the latter case, the following
+ example algorithm is recommended.
+
+ In cases where there are multiple engines on the
+ same system, the use of this algorithm is NOT
+ appropriate, as it would result in all of those
+ engines ending up with the same ID value.
+
+ 1) The very first bit is used to indicate how the
+ rest of the data is composed.
+
+ 0 - as defined by enterprise using former methods
+ that existed before SNMPv3. See item 2 below.
+
+ 1 - as defined by this architecture, see item 3
+ below.
+
+ Note that this allows existing uses of the
+ engineID (also known as AgentID [RFC1910]) to
+ co-exist with any new uses.
+
+ 2) The snmpEngineID has a length of 12 octets.
+
+ The first four octets are set to the binary
+ equivalent of the agent's SNMP management
+ private enterprise number as assigned by the
+ Internet Assigned Numbers Authority (IANA).
+ For example, if Acme Networks has been assigned
+ { enterprises 696 }, the first four octets would
+ be assigned '000002b8'H.
+
+ The remaining eight octets are determined via
+ one or more enterprise-specific methods. Such
+ methods must be designed so as to maximize the
+ possibility that the value of this object will
+ be unique in the agent's administrative domain.
+ For example, it may be the IP address of the SNMP
+ entity, or the MAC address of one of the
+ interfaces, with each address suitably padded
+ with random octets. If multiple methods are
+ defined, then it is recommended that the first
+ octet indicate the method being used and the
+ remaining octets be a function of the method.
+
+ 3) The length of the octet string varies.
+
+ The first four octets are set to the binary
+ equivalent of the agent's SNMP management
+ private enterprise number as assigned by the
+ Internet Assigned Numbers Authority (IANA).
+ For example, if Acme Networks has been assigned
+ { enterprises 696 }, the first four octets would
+ be assigned '000002b8'H.
+
+ The very first bit is set to 1. For example, the
+ above value for Acme Networks now changes to be
+ '800002b8'H.
+
+ The fifth octet indicates how the rest (6th and
+ following octets) are formatted. The values for
+ the fifth octet are:
+
+ 0 - reserved, unused.
+
+ 1 - IPv4 address (4 octets)
+ lowest non-special IP address
+
+ 2 - IPv6 address (16 octets)
+ lowest non-special IP address
+
+ 3 - MAC address (6 octets)
+ lowest IEEE MAC address, canonical
+ order
+
+ 4 - Text, administratively assigned
+ Maximum remaining length 27
+
+ 5 - Octets, administratively assigned
+ Maximum remaining length 27
+
+ 6-127 - reserved, unused
+
+ 128-255 - as defined by the enterprise
+ Maximum remaining length 27
+ "
+ SYNTAX OCTET STRING (SIZE(5..32))
+
+SnmpSecurityModel ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION "An identifier that uniquely identifies a
+ Security Model of the Security Subsystem within
+ this SNMP Management Architecture.
+
+ The values for securityModel are allocated as
+ follows:
+
+ - The zero value does not identify any particular
+ security model.
+
+ - Values between 1 and 255, inclusive, are reserved
+ for standards-track Security Models and are
+ managed by the Internet Assigned Numbers Authority
+ (IANA).
+ - Values greater than 255 are allocated to
+ enterprise-specific Security Models. An
+ enterprise-specific securityModel value is defined
+ to be:
+
+ enterpriseID * 256 + security model within
+ enterprise
+
+ For example, the fourth Security Model defined by
+ the enterprise whose enterpriseID is 1 would be
+ 259.
+
+ This scheme for allocation of securityModel
+ values allows for a maximum of 255 standards-
+ based Security Models, and for a maximum of
+ 256 Security Models per enterprise.
+
+ It is believed that the assignment of new
+ securityModel values will be rare in practice
+ because the larger the number of simultaneously
+ utilized Security Models, the larger the
+ chance that interoperability will suffer.
+ Consequently, it is believed that such a range
+ will be sufficient. In the unlikely event that
+ the standards committee finds this number to be
+ insufficient over time, an enterprise number
+ can be allocated to obtain an additional 256
+ possible values.
+
+ Note that the most significant bit must be zero;
+ hence, there are 23 bits allocated for various
+ organizations to design and define non-standard
+
+ securityModels. This limits the ability to
+ define new proprietary implementations of Security
+ Models to the first 8,388,608 enterprises.
+
+ It is worthwhile to note that, in its encoded
+ form, the securityModel value will normally
+ require only a single byte since, in practice,
+ the leftmost bits will be zero for most messages
+ and sign extension is suppressed by the encoding
+ rules.
+
+ As of this writing, there are several values
+ of securityModel defined for use with SNMP or
+ reserved for use with supporting MIB objects.
+ They are as follows:
+
+ 0 reserved for 'any'
+ 1 reserved for SNMPv1
+ 2 reserved for SNMPv2c
+ 3 User-Based Security Model (USM)
+ "
+ SYNTAX INTEGER(0 .. 2147483647)
+
+SnmpMessageProcessingModel ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION "An identifier that uniquely identifies a Message
+ Processing Model of the Message Processing
+ Subsystem within this SNMP Management Architecture.
+
+ The values for messageProcessingModel are
+ allocated as follows:
+
+ - Values between 0 and 255, inclusive, are
+ reserved for standards-track Message Processing
+ Models and are managed by the Internet Assigned
+ Numbers Authority (IANA).
+
+ - Values greater than 255 are allocated to
+ enterprise-specific Message Processing Models.
+ An enterprise messageProcessingModel value is
+ defined to be:
+
+ enterpriseID * 256 +
+ messageProcessingModel within enterprise
+
+ For example, the fourth Message Processing Model
+ defined by the enterprise whose enterpriseID
+
+ is 1 would be 259.
+
+ This scheme for allocating messageProcessingModel
+ values allows for a maximum of 255 standards-
+ based Message Processing Models, and for a
+ maximum of 256 Message Processing Models per
+ enterprise.
+
+ It is believed that the assignment of new
+ messageProcessingModel values will be rare
+ in practice because the larger the number of
+ simultaneously utilized Message Processing Models,
+ the larger the chance that interoperability
+ will suffer. It is believed that such a range
+ will be sufficient. In the unlikely event that
+ the standards committee finds this number to be
+ insufficient over time, an enterprise number
+ can be allocated to obtain an additional 256
+ possible values.
+
+ Note that the most significant bit must be zero;
+ hence, there are 23 bits allocated for various
+ organizations to design and define non-standard
+ messageProcessingModels. This limits the ability
+ to define new proprietary implementations of
+ Message Processing Models to the first 8,388,608
+ enterprises.
+
+ It is worthwhile to note that, in its encoded
+ form, the messageProcessingModel value will
+ normally require only a single byte since, in
+ practice, the leftmost bits will be zero for
+ most messages and sign extension is suppressed
+ by the encoding rules.
+
+ As of this writing, there are several values of
+ messageProcessingModel defined for use with SNMP.
+ They are as follows:
+
+ 0 reserved for SNMPv1
+ 1 reserved for SNMPv2c
+ 2 reserved for SNMPv2u and SNMPv2*
+ 3 reserved for SNMPv3
+ "
+ SYNTAX INTEGER(0 .. 2147483647)
+
+SnmpSecurityLevel ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION "A Level of Security at which SNMP messages can be
+ sent or with which operations are being processed;
+ in particular, one of:
+
+ noAuthNoPriv - without authentication and
+ without privacy,
+ authNoPriv - with authentication but
+ without privacy,
+ authPriv - with authentication and
+ with privacy.
+
+ These three values are ordered such that
+ noAuthNoPriv is less than authNoPriv and
+ authNoPriv is less than authPriv.
+ "
+ SYNTAX INTEGER { noAuthNoPriv(1),
+ authNoPriv(2),
+ authPriv(3)
+ }
+
+SnmpAdminString ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "255t"
+ STATUS current
+ DESCRIPTION "An octet string containing administrative
+ information, preferably in human-readable form.
+
+ To facilitate internationalization, this
+ information is represented using the ISO/IEC
+ IS 10646-1 character set, encoded as an octet
+ string using the UTF-8 transformation format
+ described in [RFC2279].
+
+ Since additional code points are added by
+ amendments to the 10646 standard from time
+ to time, implementations must be prepared to
+ encounter any code point from 0x00000000 to
+ 0x7fffffff. Byte sequences that do not
+ correspond to the valid UTF-8 encoding of a
+ code point or are outside this range are
+ prohibited.
+
+ The use of control codes should be avoided.
+
+ When it is necessary to represent a newline,
+ the control code sequence CR LF should be used.
+
+ The use of leading or trailing white space should
+ be avoided.
+
+ For code points not directly supported by user
+ interface hardware or software, an alternative
+ means of entry and display, such as hexadecimal,
+ may be provided.
+
+ For information encoded in 7-bit US-ASCII,
+ the UTF-8 encoding is identical to the
+ US-ASCII encoding.
+
+ UTF-8 may require multiple bytes to represent a
+ single character / code point; thus the length
+ of this object in octets may be different from
+ the number of characters encoded. Similarly,
+ size constraints refer to the number of encoded
+ octets, not the number of characters represented
+ by an encoding.
+
+ Note that when this TC is used for an object that
+ is used or envisioned to be used as an index, then
+ a SIZE restriction MUST be specified so that the
+ number of sub-identifiers for any object instance
+ does not exceed the limit of 128, as defined by
+ [RFC3416].
+
+ Note that the size of an SnmpAdminString object is
+ measured in octets, not characters.
+ "
+ SYNTAX OCTET STRING (SIZE (0..255))
+
+-- Administrative assignments ***************************************
+
+snmpFrameworkAdmin
+ OBJECT IDENTIFIER ::= { snmpFrameworkMIB 1 }
+snmpFrameworkMIBObjects
+ OBJECT IDENTIFIER ::= { snmpFrameworkMIB 2 }
+snmpFrameworkMIBConformance
+ OBJECT IDENTIFIER ::= { snmpFrameworkMIB 3 }
+
+-- the snmpEngine Group ********************************************
+
+snmpEngine OBJECT IDENTIFIER ::= { snmpFrameworkMIBObjects 1 }
+
+snmpEngineID OBJECT-TYPE
+ SYNTAX SnmpEngineID
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "An SNMP engine's administratively-unique identifier.
+
+ This information SHOULD be stored in non-volatile
+ storage so that it remains constant across
+ re-initializations of the SNMP engine.
+ "
+ ::= { snmpEngine 1 }
+
+snmpEngineBoots OBJECT-TYPE
+ SYNTAX INTEGER (1..2147483647)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "The number of times that the SNMP engine has
+ (re-)initialized itself since snmpEngineID
+ was last configured.
+ "
+ ::= { snmpEngine 2 }
+
+snmpEngineTime OBJECT-TYPE
+ SYNTAX INTEGER (0..2147483647)
+ UNITS "seconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "The number of seconds since the value of
+ the snmpEngineBoots object last changed.
+ When incrementing this object's value would
+ cause it to exceed its maximum,
+ snmpEngineBoots is incremented as if a
+ re-initialization had occurred, and this
+ object's value consequently reverts to zero.
+ "
+ ::= { snmpEngine 3 }
+
+snmpEngineMaxMessageSize OBJECT-TYPE
+ SYNTAX INTEGER (484..2147483647)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "The maximum length in octets of an SNMP message
+ which this SNMP engine can send or receive and
+ process, determined as the minimum of the maximum
+ message size values supported among all of the
+ transports available to and supported by the engine.
+ "
+ ::= { snmpEngine 4 }
+
+-- Registration Points for Authentication and Privacy Protocols **
+
+snmpAuthProtocols OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION "Registration point for standards-track
+ authentication protocols used in SNMP Management
+ Frameworks.
+ "
+ ::= { snmpFrameworkAdmin 1 }
+
+snmpPrivProtocols OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION "Registration point for standards-track privacy
+ protocols used in SNMP Management Frameworks.
+ "
+ ::= { snmpFrameworkAdmin 2 }
+
+-- Conformance information ******************************************
+
+snmpFrameworkMIBCompliances
+ OBJECT IDENTIFIER ::= {snmpFrameworkMIBConformance 1}
+snmpFrameworkMIBGroups
+ OBJECT IDENTIFIER ::= {snmpFrameworkMIBConformance 2}
+
+-- compliance statements
+
+snmpFrameworkMIBCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION "The compliance statement for SNMP engines which
+ implement the SNMP Management Framework MIB.
+ "
+ MODULE -- this module
+ MANDATORY-GROUPS { snmpEngineGroup }
+ ::= { snmpFrameworkMIBCompliances 1 }
+
+-- units of conformance
+
+snmpEngineGroup OBJECT-GROUP
+ OBJECTS {
+ snmpEngineID,
+ snmpEngineBoots,
+ snmpEngineTime,
+ snmpEngineMaxMessageSize
+ }
+ STATUS current
+ DESCRIPTION "A collection of objects for identifying and
+ determining the configuration and current timeliness
+
+ values of an SNMP engine.
+ "
+ ::= { snmpFrameworkMIBGroups 1 }
+
+END
diff --git a/php/extras/mibs/SNMP-MPD-MIB.txt b/php/extras/mibs/SNMP-MPD-MIB.txt
new file mode 100644
index 000000000..d4c605b1c
--- /dev/null
+++ b/php/extras/mibs/SNMP-MPD-MIB.txt
@@ -0,0 +1,145 @@
+SNMP-MPD-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
+ MODULE-IDENTITY, OBJECT-TYPE,
+ snmpModules, Counter32 FROM SNMPv2-SMI;
+
+snmpMPDMIB MODULE-IDENTITY
+ LAST-UPDATED "200210140000Z"
+ ORGANIZATION "SNMPv3 Working Group"
+ CONTACT-INFO "WG-EMail: snmpv3@lists.tislabs.com
+ Subscribe: snmpv3-request@lists.tislabs.com
+
+ Co-Chair: Russ Mundy
+ Network Associates Laboratories
+ postal: 15204 Omega Drive, Suite 300
+ Rockville, MD 20850-4601
+ USA
+
+ EMail: mundy@tislabs.com
+ phone: +1 301-947-7107
+
+ Co-Chair &
+ Co-editor: David Harrington
+ Enterasys Networks
+ postal: 35 Industrial Way
+ P. O. Box 5005
+ Rochester NH 03866-5005
+ USA
+ EMail: dbh@enterasys.com
+ phone: +1 603-337-2614
+
+ Co-editor: Jeffrey Case
+ SNMP Research, Inc.
+ postal: 3001 Kimberlin Heights Road
+ Knoxville, TN 37920-9716
+ USA
+ EMail: case@snmp.com
+ phone: +1 423-573-1434
+
+ Co-editor: Randy Presuhn
+ BMC Software, Inc.
+ postal: 2141 North First Street
+ San Jose, CA 95131
+ USA
+ EMail: randy_presuhn@bmc.com
+ phone: +1 408-546-1006
+
+ Co-editor: Bert Wijnen
+ Lucent Technologies
+ postal: Schagen 33
+ 3461 GL Linschoten
+ Netherlands
+ EMail: bwijnen@lucent.com
+ phone: +31 348-680-485
+ "
+ DESCRIPTION "The MIB for Message Processing and Dispatching
+
+ Copyright (C) The Internet Society (2002). This
+ version of this MIB module is part of RFC 3412;
+ see the RFC itself for full legal notices.
+ "
+ REVISION "200210140000Z" -- 14 October 2002
+ DESCRIPTION "Updated addresses, published as RFC 3412."
+ REVISION "199905041636Z" -- 4 May 1999
+ DESCRIPTION "Updated addresses, published as RFC 2572."
+
+ REVISION "199709300000Z" -- 30 September 1997
+ DESCRIPTION "Original version, published as RFC 2272."
+ ::= { snmpModules 11 }
+
+-- Administrative assignments ***************************************
+
+snmpMPDAdmin OBJECT IDENTIFIER ::= { snmpMPDMIB 1 }
+snmpMPDMIBObjects OBJECT IDENTIFIER ::= { snmpMPDMIB 2 }
+snmpMPDMIBConformance OBJECT IDENTIFIER ::= { snmpMPDMIB 3 }
+
+-- Statistics for SNMP Messages *************************************
+
+snmpMPDStats OBJECT IDENTIFIER ::= { snmpMPDMIBObjects 1 }
+
+snmpUnknownSecurityModels OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "The total number of packets received by the SNMP
+ engine which were dropped because they referenced a
+ securityModel that was not known to or supported by
+ the SNMP engine.
+ "
+ ::= { snmpMPDStats 1 }
+
+snmpInvalidMsgs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "The total number of packets received by the SNMP
+ engine which were dropped because there were invalid
+ or inconsistent components in the SNMP message.
+ "
+ ::= { snmpMPDStats 2 }
+
+snmpUnknownPDUHandlers OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "The total number of packets received by the SNMP
+ engine which were dropped because the PDU contained
+ in the packet could not be passed to an application
+ responsible for handling the pduType, e.g. no SNMP
+ application had registered for the proper
+ combination of the contextEngineID and the pduType.
+ "
+ ::= { snmpMPDStats 3 }
+
+-- Conformance information ******************************************
+
+snmpMPDMIBCompliances OBJECT IDENTIFIER ::= {snmpMPDMIBConformance 1}
+snmpMPDMIBGroups OBJECT IDENTIFIER ::= {snmpMPDMIBConformance 2}
+
+-- Compliance statements
+
+snmpMPDCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION "The compliance statement for SNMP entities which
+ implement the SNMP-MPD-MIB.
+ "
+ MODULE -- this module
+ MANDATORY-GROUPS { snmpMPDGroup }
+ ::= { snmpMPDMIBCompliances 1 }
+
+snmpMPDGroup OBJECT-GROUP
+ OBJECTS {
+ snmpUnknownSecurityModels,
+ snmpInvalidMsgs,
+ snmpUnknownPDUHandlers
+ }
+ STATUS current
+ DESCRIPTION "A collection of objects providing for remote
+ monitoring of the SNMP Message Processing and
+ Dispatching process.
+ "
+ ::= { snmpMPDMIBGroups 1 }
+
+END
diff --git a/php/extras/mibs/SNMP-NOTIFICATION-MIB.txt b/php/extras/mibs/SNMP-NOTIFICATION-MIB.txt
new file mode 100644
index 000000000..0ef06b648
--- /dev/null
+++ b/php/extras/mibs/SNMP-NOTIFICATION-MIB.txt
@@ -0,0 +1,589 @@
+SNMP-NOTIFICATION-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY,
+ OBJECT-TYPE,
+ snmpModules
+ FROM SNMPv2-SMI
+
+ RowStatus,
+ StorageType
+ FROM SNMPv2-TC
+
+ SnmpAdminString
+ FROM SNMP-FRAMEWORK-MIB
+
+ SnmpTagValue,
+ snmpTargetParamsName
+ FROM SNMP-TARGET-MIB
+
+ MODULE-COMPLIANCE,
+ OBJECT-GROUP
+ FROM SNMPv2-CONF;
+
+snmpNotificationMIB MODULE-IDENTITY
+ LAST-UPDATED "200210140000Z"
+ ORGANIZATION "IETF SNMPv3 Working Group"
+ CONTACT-INFO
+ "WG-email: snmpv3@lists.tislabs.com
+ Subscribe: majordomo@lists.tislabs.com
+ In message body: subscribe snmpv3
+
+ Co-Chair: Russ Mundy
+ Network Associates Laboratories
+ Postal: 15204 Omega Drive, Suite 300
+ Rockville, MD 20850-4601
+ USA
+ EMail: mundy@tislabs.com
+ Phone: +1 301-947-7107
+
+ Co-Chair: David Harrington
+ Enterasys Networks
+ Postal: 35 Industrial Way
+ P. O. Box 5004
+ Rochester, New Hampshire 03866-5005
+ USA
+ EMail: dbh@enterasys.com
+ Phone: +1 603-337-2614
+
+ Co-editor: David B. Levi
+ Nortel Networks
+ Postal: 3505 Kesterwood Drive
+ Knoxville, Tennessee 37918
+ EMail: dlevi@nortelnetworks.com
+ Phone: +1 865 686 0432
+
+ Co-editor: Paul Meyer
+ Secure Computing Corporation
+ Postal: 2675 Long Lake Road
+ Roseville, Minnesota 55113
+ EMail: paul_meyer@securecomputing.com
+ Phone: +1 651 628 1592
+
+ Co-editor: Bob Stewart
+ Retired"
+ DESCRIPTION
+ "This MIB module defines MIB objects which provide
+ mechanisms to remotely configure the parameters
+ used by an SNMP entity for the generation of
+ notifications.
+
+ Copyright (C) The Internet Society (2002). This
+ version of this MIB module is part of RFC 3413;
+ see the RFC itself for full legal notices.
+ "
+ REVISION "200210140000Z" -- 14 October 2002
+ DESCRIPTION "Clarifications, published as
+ RFC 3413."
+ REVISION "199808040000Z" -- 4 August 1998
+ DESCRIPTION "Clarifications, published as
+ RFC 2573."
+ REVISION "199707140000Z" -- 14 July 1997
+ DESCRIPTION "The initial revision, published as RFC2273."
+ ::= { snmpModules 13 }
+
+snmpNotifyObjects OBJECT IDENTIFIER ::=
+ { snmpNotificationMIB 1 }
+snmpNotifyConformance OBJECT IDENTIFIER ::=
+ { snmpNotificationMIB 3 }
+
+--
+--
+-- The snmpNotifyObjects group
+--
+--
+
+snmpNotifyTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SnmpNotifyEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This table is used to select management targets which should
+ receive notifications, as well as the type of notification
+ which should be sent to each selected management target."
+ ::= { snmpNotifyObjects 1 }
+
+snmpNotifyEntry OBJECT-TYPE
+ SYNTAX SnmpNotifyEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry in this table selects a set of management targets
+ which should receive notifications, as well as the type of
+
+ notification which should be sent to each selected
+ management target.
+
+ Entries in the snmpNotifyTable are created and
+ deleted using the snmpNotifyRowStatus object."
+ INDEX { IMPLIED snmpNotifyName }
+ ::= { snmpNotifyTable 1 }
+
+SnmpNotifyEntry ::= SEQUENCE {
+ snmpNotifyName SnmpAdminString,
+ snmpNotifyTag SnmpTagValue,
+ snmpNotifyType INTEGER,
+ snmpNotifyStorageType StorageType,
+ snmpNotifyRowStatus RowStatus
+}
+
+snmpNotifyName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(1..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The locally arbitrary, but unique identifier associated
+ with this snmpNotifyEntry."
+ ::= { snmpNotifyEntry 1 }
+
+snmpNotifyTag OBJECT-TYPE
+ SYNTAX SnmpTagValue
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object contains a single tag value which is used
+ to select entries in the snmpTargetAddrTable. Any entry
+ in the snmpTargetAddrTable which contains a tag value
+ which is equal to the value of an instance of this
+ object is selected. If this object contains a value
+ of zero length, no entries are selected."
+ DEFVAL { "" }
+ ::= { snmpNotifyEntry 2 }
+
+snmpNotifyType OBJECT-TYPE
+ SYNTAX INTEGER {
+ trap(1),
+ inform(2)
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object determines the type of notification to
+
+ be generated for entries in the snmpTargetAddrTable
+ selected by the corresponding instance of
+ snmpNotifyTag. This value is only used when
+ generating notifications, and is ignored when
+ using the snmpTargetAddrTable for other purposes.
+
+ If the value of this object is trap(1), then any
+ messages generated for selected rows will contain
+ Unconfirmed-Class PDUs.
+
+ If the value of this object is inform(2), then any
+ messages generated for selected rows will contain
+ Confirmed-Class PDUs.
+
+ Note that if an SNMP entity only supports
+ generation of Unconfirmed-Class PDUs (and not
+ Confirmed-Class PDUs), then this object may be
+ read-only."
+ DEFVAL { trap }
+ ::= { snmpNotifyEntry 3 }
+
+snmpNotifyStorageType OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The storage type for this conceptual row.
+ Conceptual rows having the value 'permanent' need not
+ allow write-access to any columnar objects in the row."
+ DEFVAL { nonVolatile }
+ ::= { snmpNotifyEntry 4 }
+
+snmpNotifyRowStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status of this conceptual row.
+
+ To create a row in this table, a manager must
+ set this object to either createAndGo(4) or
+ createAndWait(5)."
+ ::= { snmpNotifyEntry 5 }
+
+snmpNotifyFilterProfileTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SnmpNotifyFilterProfileEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This table is used to associate a notification filter
+ profile with a particular set of target parameters."
+ ::= { snmpNotifyObjects 2 }
+
+snmpNotifyFilterProfileEntry OBJECT-TYPE
+ SYNTAX SnmpNotifyFilterProfileEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry in this table indicates the name of the filter
+ profile to be used when generating notifications using
+ the corresponding entry in the snmpTargetParamsTable.
+
+ Entries in the snmpNotifyFilterProfileTable are created
+ and deleted using the snmpNotifyFilterProfileRowStatus
+ object."
+ INDEX { IMPLIED snmpTargetParamsName }
+ ::= { snmpNotifyFilterProfileTable 1 }
+
+SnmpNotifyFilterProfileEntry ::= SEQUENCE {
+ snmpNotifyFilterProfileName SnmpAdminString,
+ snmpNotifyFilterProfileStorType StorageType,
+ snmpNotifyFilterProfileRowStatus RowStatus
+}
+
+snmpNotifyFilterProfileName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(1..32))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The name of the filter profile to be used when generating
+ notifications using the corresponding entry in the
+ snmpTargetAddrTable."
+ ::= { snmpNotifyFilterProfileEntry 1 }
+
+snmpNotifyFilterProfileStorType OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The storage type for this conceptual row.
+ Conceptual rows having the value 'permanent' need not
+ allow write-access to any columnar objects in the row."
+ DEFVAL { nonVolatile }
+ ::= { snmpNotifyFilterProfileEntry 2 }
+
+snmpNotifyFilterProfileRowStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status of this conceptual row.
+
+ To create a row in this table, a manager must
+ set this object to either createAndGo(4) or
+ createAndWait(5).
+
+ Until instances of all corresponding columns are
+ appropriately configured, the value of the
+ corresponding instance of the
+ snmpNotifyFilterProfileRowStatus column is 'notReady'.
+
+ In particular, a newly created row cannot be made
+ active until the corresponding instance of
+ snmpNotifyFilterProfileName has been set."
+ ::= { snmpNotifyFilterProfileEntry 3 }
+
+snmpNotifyFilterTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SnmpNotifyFilterEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The table of filter profiles. Filter profiles are used
+ to determine whether particular management targets should
+ receive particular notifications.
+
+ When a notification is generated, it must be compared
+ with the filters associated with each management target
+ which is configured to receive notifications, in order to
+ determine whether it may be sent to each such management
+ target.
+
+ A more complete discussion of notification filtering
+ can be found in section 6. of [SNMP-APPL]."
+ ::= { snmpNotifyObjects 3 }
+
+snmpNotifyFilterEntry OBJECT-TYPE
+ SYNTAX SnmpNotifyFilterEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An element of a filter profile.
+
+ Entries in the snmpNotifyFilterTable are created and
+ deleted using the snmpNotifyFilterRowStatus object."
+ INDEX { snmpNotifyFilterProfileName,
+ IMPLIED snmpNotifyFilterSubtree }
+ ::= { snmpNotifyFilterTable 1 }
+
+SnmpNotifyFilterEntry ::= SEQUENCE {
+ snmpNotifyFilterSubtree OBJECT IDENTIFIER,
+ snmpNotifyFilterMask OCTET STRING,
+ snmpNotifyFilterType INTEGER,
+ snmpNotifyFilterStorageType StorageType,
+ snmpNotifyFilterRowStatus RowStatus
+}
+
+snmpNotifyFilterSubtree OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The MIB subtree which, when combined with the corresponding
+ instance of snmpNotifyFilterMask, defines a family of
+ subtrees which are included in or excluded from the
+ filter profile."
+ ::= { snmpNotifyFilterEntry 1 }
+
+snmpNotifyFilterMask OBJECT-TYPE
+ SYNTAX OCTET STRING (SIZE(0..16))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The bit mask which, in combination with the corresponding
+ instance of snmpNotifyFilterSubtree, defines a family of
+ subtrees which are included in or excluded from the
+ filter profile.
+
+ Each bit of this bit mask corresponds to a
+ sub-identifier of snmpNotifyFilterSubtree, with the
+ most significant bit of the i-th octet of this octet
+ string value (extended if necessary, see below)
+ corresponding to the (8*i - 7)-th sub-identifier, and
+ the least significant bit of the i-th octet of this
+ octet string corresponding to the (8*i)-th
+ sub-identifier, where i is in the range 1 through 16.
+
+ Each bit of this bit mask specifies whether or not
+ the corresponding sub-identifiers must match when
+ determining if an OBJECT IDENTIFIER matches this
+ family of filter subtrees; a '1' indicates that an
+ exact match must occur; a '0' indicates 'wild card',
+ i.e., any sub-identifier value matches.
+
+ Thus, the OBJECT IDENTIFIER X of an object instance
+ is contained in a family of filter subtrees if, for
+ each sub-identifier of the value of
+ snmpNotifyFilterSubtree, either:
+
+ the i-th bit of snmpNotifyFilterMask is 0, or
+
+ the i-th sub-identifier of X is equal to the i-th
+ sub-identifier of the value of
+ snmpNotifyFilterSubtree.
+
+ If the value of this bit mask is M bits long and
+ there are more than M sub-identifiers in the
+ corresponding instance of snmpNotifyFilterSubtree,
+ then the bit mask is extended with 1's to be the
+ required length.
+
+ Note that when the value of this object is the
+ zero-length string, this extension rule results in
+ a mask of all-1's being used (i.e., no 'wild card'),
+ and the family of filter subtrees is the one
+ subtree uniquely identified by the corresponding
+ instance of snmpNotifyFilterSubtree."
+ DEFVAL { ''H }
+ ::= { snmpNotifyFilterEntry 2 }
+
+snmpNotifyFilterType OBJECT-TYPE
+ SYNTAX INTEGER {
+ included(1),
+ excluded(2)
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object indicates whether the family of filter subtrees
+ defined by this entry are included in or excluded from a
+ filter. A more detailed discussion of the use of this
+ object can be found in section 6. of [SNMP-APPL]."
+ DEFVAL { included }
+ ::= { snmpNotifyFilterEntry 3 }
+
+snmpNotifyFilterStorageType OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The storage type for this conceptual row.
+ Conceptual rows having the value 'permanent' need not
+
+ allow write-access to any columnar objects in the row."
+ DEFVAL { nonVolatile }
+ ::= { snmpNotifyFilterEntry 4 }
+
+snmpNotifyFilterRowStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status of this conceptual row.
+
+ To create a row in this table, a manager must
+ set this object to either createAndGo(4) or
+ createAndWait(5)."
+ ::= { snmpNotifyFilterEntry 5 }
+
+--
+--
+-- Conformance information
+--
+--
+
+snmpNotifyCompliances OBJECT IDENTIFIER ::=
+ { snmpNotifyConformance 1 }
+snmpNotifyGroups OBJECT IDENTIFIER ::=
+ { snmpNotifyConformance 2 }
+
+--
+--
+-- Compliance statements
+--
+--
+
+snmpNotifyBasicCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for minimal SNMP entities which
+ implement only SNMP Unconfirmed-Class notifications and
+ read-create operations on only the snmpTargetAddrTable."
+ MODULE SNMP-TARGET-MIB
+ MANDATORY-GROUPS { snmpTargetBasicGroup }
+
+ OBJECT snmpTargetParamsMPModel
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Create/delete/modify access is not required."
+
+ OBJECT snmpTargetParamsSecurityModel
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Create/delete/modify access is not required."
+
+ OBJECT snmpTargetParamsSecurityName
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Create/delete/modify access is not required."
+
+ OBJECT snmpTargetParamsSecurityLevel
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Create/delete/modify access is not required."
+
+ OBJECT snmpTargetParamsStorageType
+ SYNTAX INTEGER {
+ readOnly(5)
+ }
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Create/delete/modify access is not required.
+ Support of the values other(1), volatile(2),
+ nonVolatile(3), and permanent(4) is not required."
+
+ OBJECT snmpTargetParamsRowStatus
+ SYNTAX INTEGER {
+ active(1)
+ }
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Create/delete/modify access to the
+ snmpTargetParamsTable is not required.
+ Support of the values notInService(2), notReady(3),
+ createAndGo(4), createAndWait(5), and destroy(6) is
+ not required."
+
+ MODULE -- This Module
+ MANDATORY-GROUPS { snmpNotifyGroup }
+
+ OBJECT snmpNotifyTag
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Create/delete/modify access is not required."
+
+ OBJECT snmpNotifyType
+ SYNTAX INTEGER {
+ trap(1)
+ }
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Create/delete/modify access is not required.
+ Support of the value notify(2) is not required."
+
+ OBJECT snmpNotifyStorageType
+ SYNTAX INTEGER {
+ readOnly(5)
+ }
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Create/delete/modify access is not required.
+ Support of the values other(1), volatile(2),
+ nonVolatile(3), and permanent(4) is not required."
+
+ OBJECT snmpNotifyRowStatus
+ SYNTAX INTEGER {
+ active(1)
+ }
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Create/delete/modify access to the
+ snmpNotifyTable is not required.
+ Support of the values notInService(2), notReady(3),
+ createAndGo(4), createAndWait(5), and destroy(6) is
+ not required."
+ ::= { snmpNotifyCompliances 1 }
+
+snmpNotifyBasicFiltersCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for SNMP entities which implement
+ SNMP Unconfirmed-Class notifications with filtering, and
+ read-create operations on all related tables."
+ MODULE SNMP-TARGET-MIB
+ MANDATORY-GROUPS { snmpTargetBasicGroup }
+ MODULE -- This Module
+ MANDATORY-GROUPS { snmpNotifyGroup,
+ snmpNotifyFilterGroup }
+ ::= { snmpNotifyCompliances 2 }
+
+snmpNotifyFullCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for SNMP entities which either
+ implement only SNMP Confirmed-Class notifications, or both
+ SNMP Unconfirmed-Class and Confirmed-Class notifications,
+ plus filtering and read-create operations on all related
+ tables."
+ MODULE SNMP-TARGET-MIB
+ MANDATORY-GROUPS { snmpTargetBasicGroup,
+ snmpTargetResponseGroup }
+ MODULE -- This Module
+ MANDATORY-GROUPS { snmpNotifyGroup,
+ snmpNotifyFilterGroup }
+ ::= { snmpNotifyCompliances 3 }
+
+snmpNotifyGroup OBJECT-GROUP
+ OBJECTS {
+ snmpNotifyTag,
+ snmpNotifyType,
+ snmpNotifyStorageType,
+ snmpNotifyRowStatus
+ }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects for selecting which management
+ targets are used for generating notifications, and the
+ type of notification to be generated for each selected
+ management target."
+ ::= { snmpNotifyGroups 1 }
+
+snmpNotifyFilterGroup OBJECT-GROUP
+ OBJECTS {
+ snmpNotifyFilterProfileName,
+ snmpNotifyFilterProfileStorType,
+ snmpNotifyFilterProfileRowStatus,
+ snmpNotifyFilterMask,
+ snmpNotifyFilterType,
+ snmpNotifyFilterStorageType,
+ snmpNotifyFilterRowStatus
+ }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing remote configuration
+ of notification filters."
+ ::= { snmpNotifyGroups 2 }
+
+END
diff --git a/php/extras/mibs/SNMP-PROXY-MIB.txt b/php/extras/mibs/SNMP-PROXY-MIB.txt
new file mode 100644
index 000000000..4a72e8603
--- /dev/null
+++ b/php/extras/mibs/SNMP-PROXY-MIB.txt
@@ -0,0 +1,294 @@
+SNMP-PROXY-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY,
+ OBJECT-TYPE,
+ snmpModules
+ FROM SNMPv2-SMI
+
+ RowStatus,
+ StorageType
+ FROM SNMPv2-TC
+
+ SnmpEngineID,
+ SnmpAdminString
+ FROM SNMP-FRAMEWORK-MIB
+
+ SnmpTagValue
+ FROM SNMP-TARGET-MIB
+
+ MODULE-COMPLIANCE,
+ OBJECT-GROUP
+ FROM SNMPv2-CONF;
+
+snmpProxyMIB MODULE-IDENTITY
+ LAST-UPDATED "200210140000Z"
+ ORGANIZATION "IETF SNMPv3 Working Group"
+ CONTACT-INFO
+ "WG-email: snmpv3@lists.tislabs.com
+ Subscribe: majordomo@lists.tislabs.com
+ In message body: subscribe snmpv3
+
+ Co-Chair: Russ Mundy
+ Network Associates Laboratories
+ Postal: 15204 Omega Drive, Suite 300
+ Rockville, MD 20850-4601
+ USA
+ EMail: mundy@tislabs.com
+ Phone: +1 301-947-7107
+
+ Co-Chair: David Harrington
+ Enterasys Networks
+ Postal: 35 Industrial Way
+ P. O. Box 5004
+ Rochester, New Hampshire 03866-5005
+ USA
+ EMail: dbh@enterasys.com
+ Phone: +1 603-337-2614
+
+ Co-editor: David B. Levi
+ Nortel Networks
+ Postal: 3505 Kesterwood Drive
+ Knoxville, Tennessee 37918
+ EMail: dlevi@nortelnetworks.com
+ Phone: +1 865 686 0432
+
+ Co-editor: Paul Meyer
+ Secure Computing Corporation
+ Postal: 2675 Long Lake Road
+ Roseville, Minnesota 55113
+ EMail: paul_meyer@securecomputing.com
+ Phone: +1 651 628 1592
+
+ Co-editor: Bob Stewart
+ Retired"
+ DESCRIPTION
+ "This MIB module defines MIB objects which provide
+ mechanisms to remotely configure the parameters
+ used by a proxy forwarding application.
+
+ Copyright (C) The Internet Society (2002). This
+ version of this MIB module is part of RFC 3413;
+ see the RFC itself for full legal notices.
+ "
+ REVISION "200210140000Z" -- 14 October 2002
+ DESCRIPTION "Clarifications, published as
+ RFC 3413."
+ REVISION "199808040000Z" -- 4 August 1998
+ DESCRIPTION "Clarifications, published as
+ RFC 2573."
+ REVISION "199707140000Z" -- 14 July 1997
+ DESCRIPTION "The initial revision, published as RFC2273."
+ ::= { snmpModules 14 }
+
+snmpProxyObjects OBJECT IDENTIFIER ::= { snmpProxyMIB 1 }
+snmpProxyConformance OBJECT IDENTIFIER ::= { snmpProxyMIB 3 }
+
+--
+
+--
+-- The snmpProxyObjects group
+--
+--
+
+snmpProxyTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SnmpProxyEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The table of translation parameters used by proxy forwarder
+ applications for forwarding SNMP messages."
+ ::= { snmpProxyObjects 2 }
+
+snmpProxyEntry OBJECT-TYPE
+ SYNTAX SnmpProxyEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A set of translation parameters used by a proxy forwarder
+ application for forwarding SNMP messages.
+
+ Entries in the snmpProxyTable are created and deleted
+ using the snmpProxyRowStatus object."
+ INDEX { IMPLIED snmpProxyName }
+ ::= { snmpProxyTable 1 }
+
+SnmpProxyEntry ::= SEQUENCE {
+ snmpProxyName SnmpAdminString,
+ snmpProxyType INTEGER,
+ snmpProxyContextEngineID SnmpEngineID,
+ snmpProxyContextName SnmpAdminString,
+ snmpProxyTargetParamsIn SnmpAdminString,
+ snmpProxySingleTargetOut SnmpAdminString,
+ snmpProxyMultipleTargetOut SnmpTagValue,
+ snmpProxyStorageType StorageType,
+ snmpProxyRowStatus RowStatus
+}
+
+snmpProxyName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(1..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The locally arbitrary, but unique identifier associated
+ with this snmpProxyEntry."
+ ::= { snmpProxyEntry 1 }
+
+snmpProxyType OBJECT-TYPE
+ SYNTAX INTEGER {
+ read(1),
+ write(2),
+ trap(3),
+ inform(4)
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The type of message that may be forwarded using
+ the translation parameters defined by this entry."
+ ::= { snmpProxyEntry 2 }
+
+snmpProxyContextEngineID OBJECT-TYPE
+ SYNTAX SnmpEngineID
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The contextEngineID contained in messages that
+ may be forwarded using the translation parameters
+ defined by this entry."
+ ::= { snmpProxyEntry 3 }
+
+snmpProxyContextName OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The contextName contained in messages that may be
+ forwarded using the translation parameters defined
+ by this entry.
+
+ This object is optional, and if not supported, the
+ contextName contained in a message is ignored when
+ selecting an entry in the snmpProxyTable."
+ ::= { snmpProxyEntry 4 }
+
+snmpProxyTargetParamsIn OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object selects an entry in the snmpTargetParamsTable.
+ The selected entry is used to determine which row of the
+ snmpProxyTable to use for forwarding received messages."
+ ::= { snmpProxyEntry 5 }
+
+snmpProxySingleTargetOut OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object selects a management target defined in the
+ snmpTargetAddrTable (in the SNMP-TARGET-MIB). The
+ selected target is defined by an entry in the
+ snmpTargetAddrTable whose index value (snmpTargetAddrName)
+ is equal to this object.
+
+ This object is only used when selection of a single
+ target is required (i.e. when forwarding an incoming
+ read or write request)."
+ ::= { snmpProxyEntry 6 }
+
+snmpProxyMultipleTargetOut OBJECT-TYPE
+ SYNTAX SnmpTagValue
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object selects a set of management targets defined
+ in the snmpTargetAddrTable (in the SNMP-TARGET-MIB).
+
+ This object is only used when selection of multiple
+ targets is required (i.e. when forwarding an incoming
+ notification)."
+ ::= { snmpProxyEntry 7 }
+
+snmpProxyStorageType OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The storage type of this conceptual row.
+ Conceptual rows having the value 'permanent' need not
+ allow write-access to any columnar objects in the row."
+ DEFVAL { nonVolatile }
+ ::= { snmpProxyEntry 8 }
+
+snmpProxyRowStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status of this conceptual row.
+
+ To create a row in this table, a manager must
+
+ set this object to either createAndGo(4) or
+ createAndWait(5).
+
+ The following objects may not be modified while the
+ value of this object is active(1):
+ - snmpProxyType
+ - snmpProxyContextEngineID
+ - snmpProxyContextName
+ - snmpProxyTargetParamsIn
+ - snmpProxySingleTargetOut
+ - snmpProxyMultipleTargetOut"
+ ::= { snmpProxyEntry 9 }
+
+--
+--
+-- Conformance information
+--
+--
+
+snmpProxyCompliances OBJECT IDENTIFIER ::=
+ { snmpProxyConformance 1 }
+snmpProxyGroups OBJECT IDENTIFIER ::=
+ { snmpProxyConformance 2 }
+
+--
+--
+-- Compliance statements
+--
+--
+
+snmpProxyCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for SNMP entities which include
+ a proxy forwarding application."
+ MODULE SNMP-TARGET-MIB
+ MANDATORY-GROUPS { snmpTargetBasicGroup,
+ snmpTargetResponseGroup }
+ MODULE -- This Module
+ MANDATORY-GROUPS { snmpProxyGroup }
+ ::= { snmpProxyCompliances 1 }
+
+snmpProxyGroup OBJECT-GROUP
+ OBJECTS {
+ snmpProxyType,
+ snmpProxyContextEngineID,
+ snmpProxyContextName,
+ snmpProxyTargetParamsIn,
+ snmpProxySingleTargetOut,
+ snmpProxyMultipleTargetOut,
+ snmpProxyStorageType,
+ snmpProxyRowStatus
+ }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing remote configuration of
+ management target translation parameters for use by
+ proxy forwarder applications."
+ ::= { snmpProxyGroups 3 }
+
+END
diff --git a/php/extras/mibs/SNMP-TARGET-MIB.txt b/php/extras/mibs/SNMP-TARGET-MIB.txt
new file mode 100644
index 000000000..654afdd69
--- /dev/null
+++ b/php/extras/mibs/SNMP-TARGET-MIB.txt
@@ -0,0 +1,660 @@
+SNMP-TARGET-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY,
+ OBJECT-TYPE,
+ snmpModules,
+ Counter32,
+ Integer32
+ FROM SNMPv2-SMI
+
+ TEXTUAL-CONVENTION,
+ TDomain,
+ TAddress,
+ TimeInterval,
+ RowStatus,
+ StorageType,
+ TestAndIncr
+ FROM SNMPv2-TC
+
+ SnmpSecurityModel,
+ SnmpMessageProcessingModel,
+ SnmpSecurityLevel,
+ SnmpAdminString
+ FROM SNMP-FRAMEWORK-MIB
+
+ MODULE-COMPLIANCE,
+ OBJECT-GROUP
+ FROM SNMPv2-CONF;
+
+snmpTargetMIB MODULE-IDENTITY
+ LAST-UPDATED "200210140000Z"
+ ORGANIZATION "IETF SNMPv3 Working Group"
+ CONTACT-INFO
+ "WG-email: snmpv3@lists.tislabs.com
+ Subscribe: majordomo@lists.tislabs.com
+ In message body: subscribe snmpv3
+
+ Co-Chair: Russ Mundy
+ Network Associates Laboratories
+ Postal: 15204 Omega Drive, Suite 300
+ Rockville, MD 20850-4601
+ USA
+ EMail: mundy@tislabs.com
+ Phone: +1 301-947-7107
+
+ Co-Chair: David Harrington
+ Enterasys Networks
+ Postal: 35 Industrial Way
+ P. O. Box 5004
+ Rochester, New Hampshire 03866-5005
+ USA
+ EMail: dbh@enterasys.com
+ Phone: +1 603-337-2614
+
+ Co-editor: David B. Levi
+ Nortel Networks
+ Postal: 3505 Kesterwood Drive
+ Knoxville, Tennessee 37918
+ EMail: dlevi@nortelnetworks.com
+ Phone: +1 865 686 0432
+
+ Co-editor: Paul Meyer
+ Secure Computing Corporation
+ Postal: 2675 Long Lake Road
+
+ Roseville, Minnesota 55113
+ EMail: paul_meyer@securecomputing.com
+ Phone: +1 651 628 1592
+
+ Co-editor: Bob Stewart
+ Retired"
+ DESCRIPTION
+ "This MIB module defines MIB objects which provide
+ mechanisms to remotely configure the parameters used
+ by an SNMP entity for the generation of SNMP messages.
+
+ Copyright (C) The Internet Society (2002). This
+ version of this MIB module is part of RFC 3413;
+ see the RFC itself for full legal notices.
+ "
+ REVISION "200210140000Z" -- 14 October 2002
+ DESCRIPTION "Fixed DISPLAY-HINTS for UTF-8 strings, fixed hex
+ value of LF characters, clarified meaning of zero
+ length tag values, improved tag list examples.
+ Published as RFC 3413."
+ REVISION "199808040000Z" -- 4 August 1998
+ DESCRIPTION "Clarifications, published as
+ RFC 2573."
+ REVISION "199707140000Z" -- 14 July 1997
+ DESCRIPTION "The initial revision, published as RFC2273."
+ ::= { snmpModules 12 }
+
+snmpTargetObjects OBJECT IDENTIFIER ::= { snmpTargetMIB 1 }
+snmpTargetConformance OBJECT IDENTIFIER ::= { snmpTargetMIB 3 }
+
+SnmpTagValue ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "255t"
+ STATUS current
+ DESCRIPTION
+ "An octet string containing a tag value.
+ Tag values are preferably in human-readable form.
+
+ To facilitate internationalization, this information
+ is represented using the ISO/IEC IS 10646-1 character
+ set, encoded as an octet string using the UTF-8
+ character encoding scheme described in RFC 2279.
+
+ Since additional code points are added by amendments
+ to the 10646 standard from time to time,
+ implementations must be prepared to encounter any code
+ point from 0x00000000 to 0x7fffffff.
+
+ The use of control codes should be avoided, and certain
+
+ control codes are not allowed as described below.
+
+ For code points not directly supported by user
+ interface hardware or software, an alternative means
+ of entry and display, such as hexadecimal, may be
+ provided.
+
+ For information encoded in 7-bit US-ASCII, the UTF-8
+ representation is identical to the US-ASCII encoding.
+
+ Note that when this TC is used for an object that
+ is used or envisioned to be used as an index, then a
+ SIZE restriction must be specified so that the number
+ of sub-identifiers for any object instance does not
+ exceed the limit of 128, as defined by [RFC1905].
+
+ An object of this type contains a single tag value
+ which is used to select a set of entries in a table.
+
+ A tag value is an arbitrary string of octets, but
+ may not contain a delimiter character. Delimiter
+ characters are defined to be one of the following:
+
+ - An ASCII space character (0x20).
+
+ - An ASCII TAB character (0x09).
+
+ - An ASCII carriage return (CR) character (0x0D).
+
+ - An ASCII line feed (LF) character (0x0A).
+
+ Delimiter characters are used to separate tag values
+ in a tag list. An object of this type may only
+ contain a single tag value, and so delimiter
+ characters are not allowed in a value of this type.
+
+ Note that a tag value of 0 length means that no tag is
+ defined. In other words, a tag value of 0 length would
+ never match anything in a tag list, and would never
+ select any table entries.
+
+ Some examples of valid tag values are:
+
+ - 'acme'
+
+ - 'router'
+
+ - 'host'
+
+ The use of a tag value to select table entries is
+ application and MIB specific."
+ SYNTAX OCTET STRING (SIZE (0..255))
+
+SnmpTagList ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "255t"
+ STATUS current
+ DESCRIPTION
+ "An octet string containing a list of tag values.
+ Tag values are preferably in human-readable form.
+
+ To facilitate internationalization, this information
+ is represented using the ISO/IEC IS 10646-1 character
+ set, encoded as an octet string using the UTF-8
+ character encoding scheme described in RFC 2279.
+
+ Since additional code points are added by amendments
+ to the 10646 standard from time to time,
+ implementations must be prepared to encounter any code
+ point from 0x00000000 to 0x7fffffff.
+
+ The use of control codes should be avoided, except as
+ described below.
+
+ For code points not directly supported by user
+ interface hardware or software, an alternative means
+ of entry and display, such as hexadecimal, may be
+ provided.
+
+ For information encoded in 7-bit US-ASCII, the UTF-8
+ representation is identical to the US-ASCII encoding.
+
+ An object of this type contains a list of tag values
+ which are used to select a set of entries in a table.
+
+ A tag value is an arbitrary string of octets, but
+ may not contain a delimiter character. Delimiter
+ characters are defined to be one of the following:
+
+ - An ASCII space character (0x20).
+
+ - An ASCII TAB character (0x09).
+
+ - An ASCII carriage return (CR) character (0x0D).
+
+ - An ASCII line feed (LF) character (0x0A).
+
+ Delimiter characters are used to separate tag values
+
+ in a tag list. Only a single delimiter character may
+ occur between two tag values. A tag value may not
+ have a zero length. These constraints imply certain
+ restrictions on the contents of this object:
+
+ - There cannot be a leading or trailing delimiter
+ character.
+
+ - There cannot be multiple adjacent delimiter
+ characters.
+
+ Some examples of valid tag lists are:
+
+ - '' -- an empty list
+
+ - 'acme' -- list of one tag
+
+ - 'host router bridge' -- list of several tags
+
+ Note that although a tag value may not have a length of
+ zero, an empty string is still valid. This indicates
+ an empty list (i.e. there are no tag values in the list).
+
+ The use of the tag list to select table entries is
+ application and MIB specific. Typically, an application
+ will provide one or more tag values, and any entry
+ which contains some combination of these tag values
+ will be selected."
+ SYNTAX OCTET STRING (SIZE (0..255))
+
+--
+--
+-- The snmpTargetObjects group
+--
+--
+
+snmpTargetSpinLock OBJECT-TYPE
+ SYNTAX TestAndIncr
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "This object is used to facilitate modification of table
+ entries in the SNMP-TARGET-MIB module by multiple
+ managers. In particular, it is useful when modifying
+ the value of the snmpTargetAddrTagList object.
+
+ The procedure for modifying the snmpTargetAddrTagList
+ object is as follows:
+
+ 1. Retrieve the value of snmpTargetSpinLock and
+ of snmpTargetAddrTagList.
+
+ 2. Generate a new value for snmpTargetAddrTagList.
+
+ 3. Set the value of snmpTargetSpinLock to the
+ retrieved value, and the value of
+ snmpTargetAddrTagList to the new value. If
+ the set fails for the snmpTargetSpinLock
+ object, go back to step 1."
+ ::= { snmpTargetObjects 1 }
+
+snmpTargetAddrTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SnmpTargetAddrEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table of transport addresses to be used in the generation
+ of SNMP messages."
+ ::= { snmpTargetObjects 2 }
+
+snmpTargetAddrEntry OBJECT-TYPE
+ SYNTAX SnmpTargetAddrEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A transport address to be used in the generation
+ of SNMP operations.
+
+ Entries in the snmpTargetAddrTable are created and
+ deleted using the snmpTargetAddrRowStatus object."
+ INDEX { IMPLIED snmpTargetAddrName }
+ ::= { snmpTargetAddrTable 1 }
+
+SnmpTargetAddrEntry ::= SEQUENCE {
+ snmpTargetAddrName SnmpAdminString,
+ snmpTargetAddrTDomain TDomain,
+ snmpTargetAddrTAddress TAddress,
+ snmpTargetAddrTimeout TimeInterval,
+ snmpTargetAddrRetryCount Integer32,
+ snmpTargetAddrTagList SnmpTagList,
+ snmpTargetAddrParams SnmpAdminString,
+ snmpTargetAddrStorageType StorageType,
+ snmpTargetAddrRowStatus RowStatus
+}
+
+snmpTargetAddrName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(1..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The locally arbitrary, but unique identifier associated
+ with this snmpTargetAddrEntry."
+ ::= { snmpTargetAddrEntry 1 }
+
+snmpTargetAddrTDomain OBJECT-TYPE
+ SYNTAX TDomain
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object indicates the transport type of the address
+ contained in the snmpTargetAddrTAddress object."
+ ::= { snmpTargetAddrEntry 2 }
+
+snmpTargetAddrTAddress OBJECT-TYPE
+ SYNTAX TAddress
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object contains a transport address. The format of
+ this address depends on the value of the
+ snmpTargetAddrTDomain object."
+ ::= { snmpTargetAddrEntry 3 }
+
+snmpTargetAddrTimeout OBJECT-TYPE
+ SYNTAX TimeInterval
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object should reflect the expected maximum round
+ trip time for communicating with the transport address
+ defined by this row. When a message is sent to this
+ address, and a response (if one is expected) is not
+ received within this time period, an implementation
+ may assume that the response will not be delivered.
+
+ Note that the time interval that an application waits
+ for a response may actually be derived from the value
+ of this object. The method for deriving the actual time
+ interval is implementation dependent. One such method
+ is to derive the expected round trip time based on a
+ particular retransmission algorithm and on the number
+ of timeouts which have occurred. The type of message may
+ also be considered when deriving expected round trip
+ times for retransmissions. For example, if a message is
+ being sent with a securityLevel that indicates both
+
+ authentication and privacy, the derived value may be
+ increased to compensate for extra processing time spent
+ during authentication and encryption processing."
+ DEFVAL { 1500 }
+ ::= { snmpTargetAddrEntry 4 }
+
+snmpTargetAddrRetryCount OBJECT-TYPE
+ SYNTAX Integer32 (0..255)
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object specifies a default number of retries to be
+ attempted when a response is not received for a generated
+ message. An application may provide its own retry count,
+ in which case the value of this object is ignored."
+ DEFVAL { 3 }
+ ::= { snmpTargetAddrEntry 5 }
+
+snmpTargetAddrTagList OBJECT-TYPE
+ SYNTAX SnmpTagList
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object contains a list of tag values which are
+ used to select target addresses for a particular
+ operation."
+ DEFVAL { "" }
+ ::= { snmpTargetAddrEntry 6 }
+
+snmpTargetAddrParams OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(1..32))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The value of this object identifies an entry in the
+ snmpTargetParamsTable. The identified entry
+ contains SNMP parameters to be used when generating
+ messages to be sent to this transport address."
+ ::= { snmpTargetAddrEntry 7 }
+
+snmpTargetAddrStorageType OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The storage type for this conceptual row.
+ Conceptual rows having the value 'permanent' need not
+ allow write-access to any columnar objects in the row."
+ DEFVAL { nonVolatile }
+ ::= { snmpTargetAddrEntry 8 }
+
+snmpTargetAddrRowStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status of this conceptual row.
+
+ To create a row in this table, a manager must
+ set this object to either createAndGo(4) or
+ createAndWait(5).
+
+ Until instances of all corresponding columns are
+ appropriately configured, the value of the
+ corresponding instance of the snmpTargetAddrRowStatus
+ column is 'notReady'.
+
+ In particular, a newly created row cannot be made
+ active until the corresponding instances of
+ snmpTargetAddrTDomain, snmpTargetAddrTAddress, and
+ snmpTargetAddrParams have all been set.
+
+ The following objects may not be modified while the
+ value of this object is active(1):
+ - snmpTargetAddrTDomain
+ - snmpTargetAddrTAddress
+ An attempt to set these objects while the value of
+ snmpTargetAddrRowStatus is active(1) will result in
+ an inconsistentValue error."
+ ::= { snmpTargetAddrEntry 9 }
+
+snmpTargetParamsTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SnmpTargetParamsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table of SNMP target information to be used
+ in the generation of SNMP messages."
+ ::= { snmpTargetObjects 3 }
+
+snmpTargetParamsEntry OBJECT-TYPE
+ SYNTAX SnmpTargetParamsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A set of SNMP target information.
+
+ Entries in the snmpTargetParamsTable are created and
+ deleted using the snmpTargetParamsRowStatus object."
+ INDEX { IMPLIED snmpTargetParamsName }
+ ::= { snmpTargetParamsTable 1 }
+
+SnmpTargetParamsEntry ::= SEQUENCE {
+ snmpTargetParamsName SnmpAdminString,
+ snmpTargetParamsMPModel SnmpMessageProcessingModel,
+ snmpTargetParamsSecurityModel SnmpSecurityModel,
+ snmpTargetParamsSecurityName SnmpAdminString,
+ snmpTargetParamsSecurityLevel SnmpSecurityLevel,
+ snmpTargetParamsStorageType StorageType,
+ snmpTargetParamsRowStatus RowStatus
+}
+
+snmpTargetParamsName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(1..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The locally arbitrary, but unique identifier associated
+ with this snmpTargetParamsEntry."
+ ::= { snmpTargetParamsEntry 1 }
+
+snmpTargetParamsMPModel OBJECT-TYPE
+ SYNTAX SnmpMessageProcessingModel
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The Message Processing Model to be used when generating
+ SNMP messages using this entry."
+ ::= { snmpTargetParamsEntry 2 }
+
+snmpTargetParamsSecurityModel OBJECT-TYPE
+ SYNTAX SnmpSecurityModel (1..2147483647)
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The Security Model to be used when generating SNMP
+ messages using this entry. An implementation may
+ choose to return an inconsistentValue error if an
+ attempt is made to set this variable to a value
+ for a security model which the implementation does
+ not support."
+ ::= { snmpTargetParamsEntry 3 }
+
+snmpTargetParamsSecurityName OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The securityName which identifies the Principal on
+ whose behalf SNMP messages will be generated using
+ this entry."
+ ::= { snmpTargetParamsEntry 4 }
+
+snmpTargetParamsSecurityLevel OBJECT-TYPE
+ SYNTAX SnmpSecurityLevel
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The Level of Security to be used when generating
+ SNMP messages using this entry."
+ ::= { snmpTargetParamsEntry 5 }
+
+snmpTargetParamsStorageType OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The storage type for this conceptual row.
+ Conceptual rows having the value 'permanent' need not
+ allow write-access to any columnar objects in the row."
+ DEFVAL { nonVolatile }
+ ::= { snmpTargetParamsEntry 6 }
+
+snmpTargetParamsRowStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status of this conceptual row.
+
+ To create a row in this table, a manager must
+ set this object to either createAndGo(4) or
+ createAndWait(5).
+
+ Until instances of all corresponding columns are
+ appropriately configured, the value of the
+ corresponding instance of the snmpTargetParamsRowStatus
+ column is 'notReady'.
+
+ In particular, a newly created row cannot be made
+ active until the corresponding
+ snmpTargetParamsMPModel,
+ snmpTargetParamsSecurityModel,
+ snmpTargetParamsSecurityName,
+ and snmpTargetParamsSecurityLevel have all been set.
+
+ The following objects may not be modified while the
+ value of this object is active(1):
+ - snmpTargetParamsMPModel
+ - snmpTargetParamsSecurityModel
+ - snmpTargetParamsSecurityName
+ - snmpTargetParamsSecurityLevel
+ An attempt to set these objects while the value of
+ snmpTargetParamsRowStatus is active(1) will result in
+ an inconsistentValue error."
+ ::= { snmpTargetParamsEntry 7 }
+
+snmpUnavailableContexts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of packets received by the SNMP
+ engine which were dropped because the context
+ contained in the message was unavailable."
+ ::= { snmpTargetObjects 4 }
+
+snmpUnknownContexts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of packets received by the SNMP
+ engine which were dropped because the context
+ contained in the message was unknown."
+ ::= { snmpTargetObjects 5 }
+
+--
+--
+-- Conformance information
+--
+--
+
+snmpTargetCompliances OBJECT IDENTIFIER ::=
+ { snmpTargetConformance 1 }
+snmpTargetGroups OBJECT IDENTIFIER ::=
+ { snmpTargetConformance 2 }
+
+--
+--
+-- Compliance statements
+
+--
+--
+
+snmpTargetCommandResponderCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for SNMP entities which include
+ a command responder application."
+ MODULE -- This Module
+ MANDATORY-GROUPS { snmpTargetCommandResponderGroup }
+ ::= { snmpTargetCompliances 1 }
+
+snmpTargetBasicGroup OBJECT-GROUP
+ OBJECTS {
+ snmpTargetSpinLock,
+ snmpTargetAddrTDomain,
+ snmpTargetAddrTAddress,
+ snmpTargetAddrTagList,
+ snmpTargetAddrParams,
+ snmpTargetAddrStorageType,
+ snmpTargetAddrRowStatus,
+ snmpTargetParamsMPModel,
+ snmpTargetParamsSecurityModel,
+ snmpTargetParamsSecurityName,
+ snmpTargetParamsSecurityLevel,
+ snmpTargetParamsStorageType,
+ snmpTargetParamsRowStatus
+ }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing basic remote
+ configuration of management targets."
+ ::= { snmpTargetGroups 1 }
+
+snmpTargetResponseGroup OBJECT-GROUP
+ OBJECTS {
+ snmpTargetAddrTimeout,
+ snmpTargetAddrRetryCount
+ }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing remote configuration
+ of management targets for applications which generate
+ SNMP messages for which a response message would be
+ expected."
+ ::= { snmpTargetGroups 2 }
+
+snmpTargetCommandResponderGroup OBJECT-GROUP
+
+ OBJECTS {
+ snmpUnavailableContexts,
+ snmpUnknownContexts
+ }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects required for command responder
+ applications, used for counting error conditions."
+ ::= { snmpTargetGroups 3 }
+
+END
diff --git a/php/extras/mibs/SNMP-USER-BASED-SM-MIB.txt b/php/extras/mibs/SNMP-USER-BASED-SM-MIB.txt
new file mode 100644
index 000000000..3b714030c
--- /dev/null
+++ b/php/extras/mibs/SNMP-USER-BASED-SM-MIB.txt
@@ -0,0 +1,912 @@
+SNMP-USER-BASED-SM-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE,
+ OBJECT-IDENTITY,
+ snmpModules, Counter32 FROM SNMPv2-SMI
+ TEXTUAL-CONVENTION, TestAndIncr,
+ RowStatus, RowPointer,
+ StorageType, AutonomousType FROM SNMPv2-TC
+ MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
+ SnmpAdminString, SnmpEngineID,
+ snmpAuthProtocols, snmpPrivProtocols FROM SNMP-FRAMEWORK-MIB;
+
+snmpUsmMIB MODULE-IDENTITY
+ LAST-UPDATED "200210160000Z" -- 16 Oct 2002, midnight
+ ORGANIZATION "SNMPv3 Working Group"
+ CONTACT-INFO "WG-email: snmpv3@lists.tislabs.com
+ Subscribe: majordomo@lists.tislabs.com
+ In msg body: subscribe snmpv3
+
+ Chair: Russ Mundy
+ Network Associates Laboratories
+ postal: 15204 Omega Drive, Suite 300
+ Rockville, MD 20850-4601
+ USA
+ email: mundy@tislabs.com
+
+ phone: +1 301-947-7107
+
+ Co-Chair: David Harrington
+ Enterasys Networks
+ Postal: 35 Industrial Way
+ P. O. Box 5004
+ Rochester, New Hampshire 03866-5005
+ USA
+ EMail: dbh@enterasys.com
+ Phone: +1 603-337-2614
+
+ Co-editor Uri Blumenthal
+ Lucent Technologies
+ postal: 67 Whippany Rd.
+ Whippany, NJ 07981
+ USA
+ email: uri@lucent.com
+ phone: +1-973-386-2163
+
+ Co-editor: Bert Wijnen
+ Lucent Technologies
+ postal: Schagen 33
+ 3461 GL Linschoten
+ Netherlands
+ email: bwijnen@lucent.com
+ phone: +31-348-480-685
+ "
+ DESCRIPTION "The management information definitions for the
+ SNMP User-based Security Model.
+
+ Copyright (C) The Internet Society (2002). This
+ version of this MIB module is part of RFC 3414;
+ see the RFC itself for full legal notices.
+ "
+-- Revision history
+
+ REVISION "200210160000Z" -- 16 Oct 2002, midnight
+ DESCRIPTION "Changes in this revision:
+ - Updated references and contact info.
+ - Clarification to usmUserCloneFrom DESCRIPTION
+ clause
+ - Fixed 'command responder' into 'command generator'
+ in last para of DESCRIPTION clause of
+ usmUserTable.
+ This revision published as RFC3414.
+ "
+ REVISION "199901200000Z" -- 20 Jan 1999, midnight
+ DESCRIPTION "Clarifications, published as RFC2574"
+
+ REVISION "199711200000Z" -- 20 Nov 1997, midnight
+ DESCRIPTION "Initial version, published as RFC2274"
+ ::= { snmpModules 15 }
+
+-- Administrative assignments ****************************************
+
+usmMIBObjects OBJECT IDENTIFIER ::= { snmpUsmMIB 1 }
+usmMIBConformance OBJECT IDENTIFIER ::= { snmpUsmMIB 2 }
+
+-- Identification of Authentication and Privacy Protocols ************
+
+usmNoAuthProtocol OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION "No Authentication Protocol."
+ ::= { snmpAuthProtocols 1 }
+
+usmHMACMD5AuthProtocol OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION "The HMAC-MD5-96 Digest Authentication Protocol."
+ REFERENCE "- H. Krawczyk, M. Bellare, R. Canetti HMAC:
+ Keyed-Hashing for Message Authentication,
+ RFC2104, Feb 1997.
+ - Rivest, R., Message Digest Algorithm MD5, RFC1321.
+ "
+ ::= { snmpAuthProtocols 2 }
+
+usmHMACSHAAuthProtocol OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION "The HMAC-SHA-96 Digest Authentication Protocol."
+ REFERENCE "- H. Krawczyk, M. Bellare, R. Canetti, HMAC:
+ Keyed-Hashing for Message Authentication,
+ RFC2104, Feb 1997.
+ - Secure Hash Algorithm. NIST FIPS 180-1.
+ "
+ ::= { snmpAuthProtocols 3 }
+
+usmNoPrivProtocol OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION "No Privacy Protocol."
+ ::= { snmpPrivProtocols 1 }
+
+usmDESPrivProtocol OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION "The CBC-DES Symmetric Encryption Protocol."
+ REFERENCE "- Data Encryption Standard, National Institute of
+ Standards and Technology. Federal Information
+ Processing Standard (FIPS) Publication 46-1.
+
+ Supersedes FIPS Publication 46,
+ (January, 1977; reaffirmed January, 1988).
+
+ - Data Encryption Algorithm, American National
+ Standards Institute. ANSI X3.92-1981,
+ (December, 1980).
+
+ - DES Modes of Operation, National Institute of
+ Standards and Technology. Federal Information
+ Processing Standard (FIPS) Publication 81,
+ (December, 1980).
+
+ - Data Encryption Algorithm - Modes of Operation,
+ American National Standards Institute.
+ ANSI X3.106-1983, (May 1983).
+ "
+ ::= { snmpPrivProtocols 2 }
+
+-- Textual Conventions ***********************************************
+
+KeyChange ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "Every definition of an object with this syntax must identify
+ a protocol P, a secret key K, and a hash algorithm H
+ that produces output of L octets.
+
+ The object's value is a manager-generated, partially-random
+ value which, when modified, causes the value of the secret
+ key K, to be modified via a one-way function.
+
+ The value of an instance of this object is the concatenation
+ of two components: first a 'random' component and then a
+ 'delta' component.
+
+ The lengths of the random and delta components
+ are given by the corresponding value of the protocol P;
+ if P requires K to be a fixed length, the length of both the
+ random and delta components is that fixed length; if P
+ allows the length of K to be variable up to a particular
+ maximum length, the length of the random component is that
+ maximum length and the length of the delta component is any
+ length less than or equal to that maximum length.
+ For example, usmHMACMD5AuthProtocol requires K to be a fixed
+ length of 16 octets and L - of 16 octets.
+ usmHMACSHAAuthProtocol requires K to be a fixed length of
+ 20 octets and L - of 20 octets. Other protocols may define
+ other sizes, as deemed appropriate.
+
+ When a requester wants to change the old key K to a new
+ key keyNew on a remote entity, the 'random' component is
+ obtained from either a true random generator, or from a
+ pseudorandom generator, and the 'delta' component is
+ computed as follows:
+
+ - a temporary variable is initialized to the existing value
+ of K;
+ - if the length of the keyNew is greater than L octets,
+ then:
+ - the random component is appended to the value of the
+ temporary variable, and the result is input to the
+ the hash algorithm H to produce a digest value, and
+ the temporary variable is set to this digest value;
+ - the value of the temporary variable is XOR-ed with
+ the first (next) L-octets (16 octets in case of MD5)
+ of the keyNew to produce the first (next) L-octets
+ (16 octets in case of MD5) of the 'delta' component.
+ - the above two steps are repeated until the unused
+ portion of the keyNew component is L octets or less,
+ - the random component is appended to the value of the
+ temporary variable, and the result is input to the
+ hash algorithm H to produce a digest value;
+ - this digest value, truncated if necessary to be the same
+ length as the unused portion of the keyNew, is XOR-ed
+ with the unused portion of the keyNew to produce the
+ (final portion of the) 'delta' component.
+
+ For example, using MD5 as the hash algorithm H:
+
+ iterations = (lenOfDelta - 1)/16; /* integer division */
+ temp = keyOld;
+ for (i = 0; i < iterations; i++) {
+ temp = MD5 (temp || random);
+ delta[i*16 .. (i*16)+15] =
+ temp XOR keyNew[i*16 .. (i*16)+15];
+ }
+ temp = MD5 (temp || random);
+ delta[i*16 .. lenOfDelta-1] =
+ temp XOR keyNew[i*16 .. lenOfDelta-1];
+
+ The 'random' and 'delta' components are then concatenated as
+ described above, and the resulting octet string is sent to
+ the recipient as the new value of an instance of this object.
+
+ At the receiver side, when an instance of this object is set
+ to a new value, then a new value of K is computed as follows:
+
+ - a temporary variable is initialized to the existing value
+ of K;
+ - if the length of the delta component is greater than L
+ octets, then:
+ - the random component is appended to the value of the
+ temporary variable, and the result is input to the
+ hash algorithm H to produce a digest value, and the
+ temporary variable is set to this digest value;
+ - the value of the temporary variable is XOR-ed with
+ the first (next) L-octets (16 octets in case of MD5)
+ of the delta component to produce the first (next)
+ L-octets (16 octets in case of MD5) of the new value
+ of K.
+ - the above two steps are repeated until the unused
+ portion of the delta component is L octets or less,
+ - the random component is appended to the value of the
+ temporary variable, and the result is input to the
+ hash algorithm H to produce a digest value;
+ - this digest value, truncated if necessary to be the same
+ length as the unused portion of the delta component, is
+ XOR-ed with the unused portion of the delta component to
+ produce the (final portion of the) new value of K.
+
+ For example, using MD5 as the hash algorithm H:
+
+ iterations = (lenOfDelta - 1)/16; /* integer division */
+ temp = keyOld;
+ for (i = 0; i < iterations; i++) {
+ temp = MD5 (temp || random);
+ keyNew[i*16 .. (i*16)+15] =
+ temp XOR delta[i*16 .. (i*16)+15];
+ }
+ temp = MD5 (temp || random);
+ keyNew[i*16 .. lenOfDelta-1] =
+ temp XOR delta[i*16 .. lenOfDelta-1];
+
+ The value of an object with this syntax, whenever it is
+ retrieved by the management protocol, is always the zero
+ length string.
+
+ Note that the keyOld and keyNew are the localized keys.
+
+ Note that it is probably wise that when an SNMP entity sends
+ a SetRequest to change a key, that it keeps a copy of the old
+ key until it has confirmed that the key change actually
+ succeeded.
+ "
+ SYNTAX OCTET STRING
+
+-- Statistics for the User-based Security Model **********************
+
+usmStats OBJECT IDENTIFIER ::= { usmMIBObjects 1 }
+
+usmStatsUnsupportedSecLevels OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "The total number of packets received by the SNMP
+ engine which were dropped because they requested a
+ securityLevel that was unknown to the SNMP engine
+ or otherwise unavailable.
+ "
+ ::= { usmStats 1 }
+
+usmStatsNotInTimeWindows OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "The total number of packets received by the SNMP
+ engine which were dropped because they appeared
+ outside of the authoritative SNMP engine's window.
+ "
+ ::= { usmStats 2 }
+
+usmStatsUnknownUserNames OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "The total number of packets received by the SNMP
+ engine which were dropped because they referenced a
+ user that was not known to the SNMP engine.
+ "
+ ::= { usmStats 3 }
+
+usmStatsUnknownEngineIDs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "The total number of packets received by the SNMP
+ engine which were dropped because they referenced an
+ snmpEngineID that was not known to the SNMP engine.
+ "
+ ::= { usmStats 4 }
+
+usmStatsWrongDigests OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "The total number of packets received by the SNMP
+ engine which were dropped because they didn't
+ contain the expected digest value.
+ "
+ ::= { usmStats 5 }
+
+usmStatsDecryptionErrors OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "The total number of packets received by the SNMP
+ engine which were dropped because they could not be
+ decrypted.
+ "
+ ::= { usmStats 6 }
+
+-- The usmUser Group ************************************************
+
+usmUser OBJECT IDENTIFIER ::= { usmMIBObjects 2 }
+
+usmUserSpinLock OBJECT-TYPE
+ SYNTAX TestAndIncr
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION "An advisory lock used to allow several cooperating
+ Command Generator Applications to coordinate their
+ use of facilities to alter secrets in the
+ usmUserTable.
+ "
+ ::= { usmUser 1 }
+
+-- The table of valid users for the User-based Security Model ********
+
+usmUserTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF UsmUserEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "The table of users configured in the SNMP engine's
+ Local Configuration Datastore (LCD).
+
+ To create a new user (i.e., to instantiate a new
+ conceptual row in this table), it is recommended to
+ follow this procedure:
+
+ 1) GET(usmUserSpinLock.0) and save in sValue.
+
+ 2) SET(usmUserSpinLock.0=sValue,
+ usmUserCloneFrom=templateUser,
+ usmUserStatus=createAndWait)
+ You should use a template user to clone from
+ which has the proper auth/priv protocol defined.
+
+ If the new user is to use privacy:
+
+ 3) generate the keyChange value based on the secret
+ privKey of the clone-from user and the secret key
+ to be used for the new user. Let us call this
+ pkcValue.
+ 4) GET(usmUserSpinLock.0) and save in sValue.
+ 5) SET(usmUserSpinLock.0=sValue,
+ usmUserPrivKeyChange=pkcValue
+ usmUserPublic=randomValue1)
+ 6) GET(usmUserPulic) and check it has randomValue1.
+ If not, repeat steps 4-6.
+
+ If the new user will never use privacy:
+
+ 7) SET(usmUserPrivProtocol=usmNoPrivProtocol)
+
+ If the new user is to use authentication:
+
+ 8) generate the keyChange value based on the secret
+ authKey of the clone-from user and the secret key
+ to be used for the new user. Let us call this
+ akcValue.
+ 9) GET(usmUserSpinLock.0) and save in sValue.
+ 10) SET(usmUserSpinLock.0=sValue,
+ usmUserAuthKeyChange=akcValue
+ usmUserPublic=randomValue2)
+ 11) GET(usmUserPulic) and check it has randomValue2.
+ If not, repeat steps 9-11.
+
+ If the new user will never use authentication:
+
+ 12) SET(usmUserAuthProtocol=usmNoAuthProtocol)
+
+ Finally, activate the new user:
+
+ 13) SET(usmUserStatus=active)
+
+ The new user should now be available and ready to be
+ used for SNMPv3 communication. Note however that access
+ to MIB data must be provided via configuration of the
+ SNMP-VIEW-BASED-ACM-MIB.
+
+ The use of usmUserSpinlock is to avoid conflicts with
+ another SNMP command generator application which may
+ also be acting on the usmUserTable.
+ "
+ ::= { usmUser 2 }
+
+usmUserEntry OBJECT-TYPE
+ SYNTAX UsmUserEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "A user configured in the SNMP engine's Local
+ Configuration Datastore (LCD) for the User-based
+ Security Model.
+ "
+ INDEX { usmUserEngineID,
+ usmUserName
+ }
+ ::= { usmUserTable 1 }
+
+UsmUserEntry ::= SEQUENCE
+ {
+ usmUserEngineID SnmpEngineID,
+ usmUserName SnmpAdminString,
+ usmUserSecurityName SnmpAdminString,
+ usmUserCloneFrom RowPointer,
+ usmUserAuthProtocol AutonomousType,
+ usmUserAuthKeyChange KeyChange,
+ usmUserOwnAuthKeyChange KeyChange,
+ usmUserPrivProtocol AutonomousType,
+ usmUserPrivKeyChange KeyChange,
+ usmUserOwnPrivKeyChange KeyChange,
+ usmUserPublic OCTET STRING,
+ usmUserStorageType StorageType,
+ usmUserStatus RowStatus
+ }
+
+usmUserEngineID OBJECT-TYPE
+ SYNTAX SnmpEngineID
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "An SNMP engine's administratively-unique identifier.
+
+ In a simple agent, this value is always that agent's
+ own snmpEngineID value.
+
+ The value can also take the value of the snmpEngineID
+ of a remote SNMP engine with which this user can
+ communicate.
+ "
+ ::= { usmUserEntry 1 }
+
+usmUserName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(1..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "A human readable string representing the name of
+ the user.
+
+ This is the (User-based Security) Model dependent
+ security ID.
+ "
+ ::= { usmUserEntry 2 }
+
+usmUserSecurityName OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "A human readable string representing the user in
+ Security Model independent format.
+
+ The default transformation of the User-based Security
+ Model dependent security ID to the securityName and
+ vice versa is the identity function so that the
+ securityName is the same as the userName.
+ "
+ ::= { usmUserEntry 3 }
+
+usmUserCloneFrom OBJECT-TYPE
+ SYNTAX RowPointer
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "A pointer to another conceptual row in this
+ usmUserTable. The user in this other conceptual
+ row is called the clone-from user.
+
+ When a new user is created (i.e., a new conceptual
+ row is instantiated in this table), the privacy and
+ authentication parameters of the new user must be
+ cloned from its clone-from user. These parameters are:
+ - authentication protocol (usmUserAuthProtocol)
+ - privacy protocol (usmUserPrivProtocol)
+ They will be copied regardless of what the current
+ value is.
+
+ Cloning also causes the initial values of the secret
+ authentication key (authKey) and the secret encryption
+
+ key (privKey) of the new user to be set to the same
+ values as the corresponding secrets of the clone-from
+ user to allow the KeyChange process to occur as
+ required during user creation.
+
+ The first time an instance of this object is set by
+ a management operation (either at or after its
+ instantiation), the cloning process is invoked.
+ Subsequent writes are successful but invoke no
+ action to be taken by the receiver.
+ The cloning process fails with an 'inconsistentName'
+ error if the conceptual row representing the
+ clone-from user does not exist or is not in an active
+ state when the cloning process is invoked.
+
+ When this object is read, the ZeroDotZero OID
+ is returned.
+ "
+ ::= { usmUserEntry 4 }
+
+usmUserAuthProtocol OBJECT-TYPE
+ SYNTAX AutonomousType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "An indication of whether messages sent on behalf of
+ this user to/from the SNMP engine identified by
+ usmUserEngineID, can be authenticated, and if so,
+ the type of authentication protocol which is used.
+
+ An instance of this object is created concurrently
+ with the creation of any other object instance for
+ the same user (i.e., as part of the processing of
+ the set operation which creates the first object
+ instance in the same conceptual row).
+
+ If an initial set operation (i.e. at row creation time)
+ tries to set a value for an unknown or unsupported
+ protocol, then a 'wrongValue' error must be returned.
+
+ The value will be overwritten/set when a set operation
+ is performed on the corresponding instance of
+ usmUserCloneFrom.
+
+ Once instantiated, the value of such an instance of
+ this object can only be changed via a set operation to
+ the value of the usmNoAuthProtocol.
+
+ If a set operation tries to change the value of an
+
+ existing instance of this object to any value other
+ than usmNoAuthProtocol, then an 'inconsistentValue'
+ error must be returned.
+
+ If a set operation tries to set the value to the
+ usmNoAuthProtocol while the usmUserPrivProtocol value
+ in the same row is not equal to usmNoPrivProtocol,
+ then an 'inconsistentValue' error must be returned.
+ That means that an SNMP command generator application
+ must first ensure that the usmUserPrivProtocol is set
+ to the usmNoPrivProtocol value before it can set
+ the usmUserAuthProtocol value to usmNoAuthProtocol.
+ "
+ DEFVAL { usmNoAuthProtocol }
+ ::= { usmUserEntry 5 }
+
+usmUserAuthKeyChange OBJECT-TYPE
+ SYNTAX KeyChange -- typically (SIZE (0 | 32)) for HMACMD5
+ -- typically (SIZE (0 | 40)) for HMACSHA
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "An object, which when modified, causes the secret
+ authentication key used for messages sent on behalf
+ of this user to/from the SNMP engine identified by
+ usmUserEngineID, to be modified via a one-way
+ function.
+
+ The associated protocol is the usmUserAuthProtocol.
+ The associated secret key is the user's secret
+ authentication key (authKey). The associated hash
+ algorithm is the algorithm used by the user's
+ usmUserAuthProtocol.
+
+ When creating a new user, it is an 'inconsistentName'
+ error for a set operation to refer to this object
+ unless it is previously or concurrently initialized
+ through a set operation on the corresponding instance
+ of usmUserCloneFrom.
+
+ When the value of the corresponding usmUserAuthProtocol
+ is usmNoAuthProtocol, then a set is successful, but
+ effectively is a no-op.
+
+ When this object is read, the zero-length (empty)
+ string is returned.
+
+ The recommended way to do a key change is as follows:
+
+ 1) GET(usmUserSpinLock.0) and save in sValue.
+ 2) generate the keyChange value based on the old
+ (existing) secret key and the new secret key,
+ let us call this kcValue.
+
+ If you do the key change on behalf of another user:
+
+ 3) SET(usmUserSpinLock.0=sValue,
+ usmUserAuthKeyChange=kcValue
+ usmUserPublic=randomValue)
+
+ If you do the key change for yourself:
+
+ 4) SET(usmUserSpinLock.0=sValue,
+ usmUserOwnAuthKeyChange=kcValue
+ usmUserPublic=randomValue)
+
+ If you get a response with error-status of noError,
+ then the SET succeeded and the new key is active.
+ If you do not get a response, then you can issue a
+ GET(usmUserPublic) and check if the value is equal
+ to the randomValue you did send in the SET. If so, then
+ the key change succeeded and the new key is active
+ (probably the response got lost). If not, then the SET
+ request probably never reached the target and so you
+ can start over with the procedure above.
+ "
+ DEFVAL { ''H } -- the empty string
+ ::= { usmUserEntry 6 }
+
+usmUserOwnAuthKeyChange OBJECT-TYPE
+ SYNTAX KeyChange -- typically (SIZE (0 | 32)) for HMACMD5
+ -- typically (SIZE (0 | 40)) for HMACSHA
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "Behaves exactly as usmUserAuthKeyChange, with one
+ notable difference: in order for the set operation
+ to succeed, the usmUserName of the operation
+ requester must match the usmUserName that
+ indexes the row which is targeted by this
+ operation.
+ In addition, the USM security model must be
+ used for this operation.
+
+ The idea here is that access to this column can be
+ public, since it will only allow a user to change
+ his own secret authentication key (authKey).
+ Note that this can only be done once the row is active.
+
+ When a set is received and the usmUserName of the
+ requester is not the same as the umsUserName that
+ indexes the row which is targeted by this operation,
+ then a 'noAccess' error must be returned.
+
+ When a set is received and the security model in use
+ is not USM, then a 'noAccess' error must be returned.
+ "
+ DEFVAL { ''H } -- the empty string
+ ::= { usmUserEntry 7 }
+
+usmUserPrivProtocol OBJECT-TYPE
+ SYNTAX AutonomousType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "An indication of whether messages sent on behalf of
+ this user to/from the SNMP engine identified by
+ usmUserEngineID, can be protected from disclosure,
+ and if so, the type of privacy protocol which is used.
+
+ An instance of this object is created concurrently
+ with the creation of any other object instance for
+ the same user (i.e., as part of the processing of
+ the set operation which creates the first object
+ instance in the same conceptual row).
+
+ If an initial set operation (i.e. at row creation time)
+ tries to set a value for an unknown or unsupported
+ protocol, then a 'wrongValue' error must be returned.
+
+ The value will be overwritten/set when a set operation
+ is performed on the corresponding instance of
+ usmUserCloneFrom.
+
+ Once instantiated, the value of such an instance of
+ this object can only be changed via a set operation to
+ the value of the usmNoPrivProtocol.
+
+ If a set operation tries to change the value of an
+ existing instance of this object to any value other
+ than usmNoPrivProtocol, then an 'inconsistentValue'
+ error must be returned.
+
+ Note that if any privacy protocol is used, then you
+ must also use an authentication protocol. In other
+ words, if usmUserPrivProtocol is set to anything else
+ than usmNoPrivProtocol, then the corresponding instance
+ of usmUserAuthProtocol cannot have a value of
+
+ usmNoAuthProtocol. If it does, then an
+ 'inconsistentValue' error must be returned.
+ "
+ DEFVAL { usmNoPrivProtocol }
+ ::= { usmUserEntry 8 }
+
+usmUserPrivKeyChange OBJECT-TYPE
+ SYNTAX KeyChange -- typically (SIZE (0 | 32)) for DES
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "An object, which when modified, causes the secret
+ encryption key used for messages sent on behalf
+ of this user to/from the SNMP engine identified by
+ usmUserEngineID, to be modified via a one-way
+ function.
+
+ The associated protocol is the usmUserPrivProtocol.
+ The associated secret key is the user's secret
+ privacy key (privKey). The associated hash
+ algorithm is the algorithm used by the user's
+ usmUserAuthProtocol.
+
+ When creating a new user, it is an 'inconsistentName'
+ error for a set operation to refer to this object
+ unless it is previously or concurrently initialized
+ through a set operation on the corresponding instance
+ of usmUserCloneFrom.
+
+ When the value of the corresponding usmUserPrivProtocol
+ is usmNoPrivProtocol, then a set is successful, but
+ effectively is a no-op.
+
+ When this object is read, the zero-length (empty)
+ string is returned.
+ See the description clause of usmUserAuthKeyChange for
+ a recommended procedure to do a key change.
+ "
+ DEFVAL { ''H } -- the empty string
+ ::= { usmUserEntry 9 }
+
+usmUserOwnPrivKeyChange OBJECT-TYPE
+ SYNTAX KeyChange -- typically (SIZE (0 | 32)) for DES
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "Behaves exactly as usmUserPrivKeyChange, with one
+ notable difference: in order for the Set operation
+ to succeed, the usmUserName of the operation
+ requester must match the usmUserName that indexes
+
+ the row which is targeted by this operation.
+ In addition, the USM security model must be
+ used for this operation.
+
+ The idea here is that access to this column can be
+ public, since it will only allow a user to change
+ his own secret privacy key (privKey).
+ Note that this can only be done once the row is active.
+
+ When a set is received and the usmUserName of the
+ requester is not the same as the umsUserName that
+ indexes the row which is targeted by this operation,
+ then a 'noAccess' error must be returned.
+
+ When a set is received and the security model in use
+ is not USM, then a 'noAccess' error must be returned.
+ "
+ DEFVAL { ''H } -- the empty string
+ ::= { usmUserEntry 10 }
+
+usmUserPublic OBJECT-TYPE
+ SYNTAX OCTET STRING (SIZE(0..32))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "A publicly-readable value which can be written as part
+ of the procedure for changing a user's secret
+ authentication and/or privacy key, and later read to
+ determine whether the change of the secret was
+ effected.
+ "
+ DEFVAL { ''H } -- the empty string
+ ::= { usmUserEntry 11 }
+
+usmUserStorageType OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "The storage type for this conceptual row.
+
+ Conceptual rows having the value 'permanent' must
+ allow write-access at a minimum to:
+
+ - usmUserAuthKeyChange, usmUserOwnAuthKeyChange
+ and usmUserPublic for a user who employs
+ authentication, and
+ - usmUserPrivKeyChange, usmUserOwnPrivKeyChange
+ and usmUserPublic for a user who employs
+ privacy.
+
+ Note that any user who employs authentication or
+ privacy must allow its secret(s) to be updated and
+ thus cannot be 'readOnly'.
+
+ If an initial set operation tries to set the value to
+ 'readOnly' for a user who employs authentication or
+ privacy, then an 'inconsistentValue' error must be
+ returned. Note that if the value has been previously
+ set (implicit or explicit) to any value, then the rules
+ as defined in the StorageType Textual Convention apply.
+
+ It is an implementation issue to decide if a SET for
+ a readOnly or permanent row is accepted at all. In some
+ contexts this may make sense, in others it may not. If
+ a SET for a readOnly or permanent row is not accepted
+ at all, then a 'wrongValue' error must be returned.
+ "
+ DEFVAL { nonVolatile }
+ ::= { usmUserEntry 12 }
+
+usmUserStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "The status of this conceptual row.
+
+ Until instances of all corresponding columns are
+ appropriately configured, the value of the
+ corresponding instance of the usmUserStatus column
+ is 'notReady'.
+
+ In particular, a newly created row for a user who
+ employs authentication, cannot be made active until the
+ corresponding usmUserCloneFrom and usmUserAuthKeyChange
+ have been set.
+
+ Further, a newly created row for a user who also
+ employs privacy, cannot be made active until the
+ usmUserPrivKeyChange has been set.
+
+ The RowStatus TC [RFC2579] requires that this
+ DESCRIPTION clause states under which circumstances
+ other objects in this row can be modified:
+
+ The value of this object has no effect on whether
+ other objects in this conceptual row can be modified,
+ except for usmUserOwnAuthKeyChange and
+ usmUserOwnPrivKeyChange. For these 2 objects, the
+
+ value of usmUserStatus MUST be active.
+ "
+ ::= { usmUserEntry 13 }
+
+-- Conformance Information *******************************************
+
+usmMIBCompliances OBJECT IDENTIFIER ::= { usmMIBConformance 1 }
+usmMIBGroups OBJECT IDENTIFIER ::= { usmMIBConformance 2 }
+
+-- Compliance statements
+
+usmMIBCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION "The compliance statement for SNMP engines which
+ implement the SNMP-USER-BASED-SM-MIB.
+ "
+
+ MODULE -- this module
+ MANDATORY-GROUPS { usmMIBBasicGroup }
+
+ OBJECT usmUserAuthProtocol
+ MIN-ACCESS read-only
+ DESCRIPTION "Write access is not required."
+
+ OBJECT usmUserPrivProtocol
+ MIN-ACCESS read-only
+ DESCRIPTION "Write access is not required."
+ ::= { usmMIBCompliances 1 }
+
+-- Units of compliance
+usmMIBBasicGroup OBJECT-GROUP
+ OBJECTS {
+ usmStatsUnsupportedSecLevels,
+ usmStatsNotInTimeWindows,
+ usmStatsUnknownUserNames,
+ usmStatsUnknownEngineIDs,
+ usmStatsWrongDigests,
+ usmStatsDecryptionErrors,
+ usmUserSpinLock,
+ usmUserSecurityName,
+ usmUserCloneFrom,
+ usmUserAuthProtocol,
+ usmUserAuthKeyChange,
+ usmUserOwnAuthKeyChange,
+ usmUserPrivProtocol,
+ usmUserPrivKeyChange,
+ usmUserOwnPrivKeyChange,
+ usmUserPublic,
+ usmUserStorageType,
+ usmUserStatus
+ }
+ STATUS current
+ DESCRIPTION "A collection of objects providing for configuration
+ of an SNMP engine which implements the SNMP
+ User-based Security Model.
+ "
+ ::= { usmMIBGroups 1 }
+
+END
diff --git a/php/extras/mibs/SNMP-USM-AES-MIB.txt b/php/extras/mibs/SNMP-USM-AES-MIB.txt
new file mode 100644
index 000000000..e9e9fb827
--- /dev/null
+++ b/php/extras/mibs/SNMP-USM-AES-MIB.txt
@@ -0,0 +1,62 @@
+SNMP-USM-AES-MIB DEFINITIONS ::= BEGIN
+ IMPORTS
+ MODULE-IDENTITY, OBJECT-IDENTITY,
+ snmpModules FROM SNMPv2-SMI -- [RFC2578]
+ snmpPrivProtocols FROM SNMP-FRAMEWORK-MIB; -- [RFC3411]
+
+snmpUsmAesMIB MODULE-IDENTITY
+ LAST-UPDATED "200406140000Z"
+ ORGANIZATION "IETF"
+ CONTACT-INFO "Uri Blumenthal
+ Lucent Technologies / Bell Labs
+ 67 Whippany Rd.
+ 14D-318
+ Whippany, NJ 07981, USA
+ 973-386-2163
+ uri@bell-labs.com
+
+ Fabio Maino
+ Andiamo Systems, Inc.
+ 375 East Tasman Drive
+ San Jose, CA 95134, USA
+ 408-853-7530
+ fmaino@andiamo.com
+
+ Keith McCloghrie
+ Cisco Systems, Inc.
+ 170 West Tasman Drive
+ San Jose, CA 95134-1706, USA
+
+ 408-526-5260
+ kzm@cisco.com"
+ DESCRIPTION "Definitions of Object Identities needed for
+ the use of AES by SNMP's User-based Security
+ Model.
+
+ Copyright (C) The Internet Society (2004).
+
+ This version of this MIB module is part of RFC 3826;
+ see the RFC itself for full legal notices.
+ Supplementary information may be available on
+ http://www.ietf.org/copyrights/ianamib.html."
+ REVISION "200406140000Z"
+ DESCRIPTION "Initial version, published as RFC3826"
+
+ ::= { snmpModules 20 }
+
+usmAesCfb128Protocol OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION "The CFB128-AES-128 Privacy Protocol."
+ REFERENCE "- Specification for the ADVANCED ENCRYPTION
+ STANDARD. Federal Information Processing
+ Standard (FIPS) Publication 197.
+ (November 2001).
+
+ - Dworkin, M., NIST Recommendation for Block
+ Cipher Modes of Operation, Methods and
+ Techniques. NIST Special Publication 800-38A
+ (December 2001).
+ "
+ ::= { snmpPrivProtocols 4 }
+
+END
diff --git a/php/extras/mibs/SNMP-USM-DH-OBJECTS-MIB.txt b/php/extras/mibs/SNMP-USM-DH-OBJECTS-MIB.txt
new file mode 100644
index 000000000..ee2076a8e
--- /dev/null
+++ b/php/extras/mibs/SNMP-USM-DH-OBJECTS-MIB.txt
@@ -0,0 +1,537 @@
+SNMP-USM-DH-OBJECTS-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE,
+ -- OBJECT-IDENTITY,
+ experimental, Integer32
+ FROM SNMPv2-SMI
+ TEXTUAL-CONVENTION
+ FROM SNMPv2-TC
+ MODULE-COMPLIANCE, OBJECT-GROUP
+ FROM SNMPv2-CONF
+ usmUserEntry
+ FROM SNMP-USER-BASED-SM-MIB
+ SnmpAdminString
+ FROM SNMP-FRAMEWORK-MIB;
+
+snmpUsmDHObjectsMIB MODULE-IDENTITY
+ LAST-UPDATED "200003060000Z" -- 6 March 2000, Midnight
+ ORGANIZATION "Excite@Home"
+ CONTACT-INFO "Author: Mike StJohns
+ Postal: Excite@Home
+ 450 Broadway
+ Redwood City, CA 94063
+ Email: stjohns@corp.home.net
+ Phone: +1-650-556-5368"
+
+ DESCRIPTION
+ "The management information definitions for providing forward
+ secrecy for key changes for the usmUserTable, and for providing a
+ method for 'kickstarting' access to the agent via a Diffie-Helman
+ key agreement."
+
+ REVISION "200003060000Z"
+ DESCRIPTION
+ "Initial version published as RFC 2786."
+
+
+ ::= { experimental 101 } -- IANA DHKEY-CHANGE 101
+
+-- Administrative assignments
+
+usmDHKeyObjects OBJECT IDENTIFIER ::= { snmpUsmDHObjectsMIB 1 }
+usmDHKeyConformance OBJECT IDENTIFIER ::= { snmpUsmDHObjectsMIB 2 }
+
+-- Textual conventions
+
+DHKeyChange ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "Upon initialization, or upon creation of a row containing an
+ object of this type, and after any successful SET of this value, a
+ GET of this value returns 'y' where y = g^xa MOD p, and where g is
+ the base from usmDHParameters, p is the prime from
+ usmDHParameters, and xa is a new random integer selected by the
+ agent in the interval 2^(l-1) <= xa < 2^l < p-1. 'l' is the
+ optional privateValueLength from usmDHParameters in bits. If 'l'
+ is omitted, then xa (and xr below) is selected in the interval 0
+ <= xa < p-1. y is expressed as an OCTET STRING 'PV' of length 'k'
+ which satisfies
+
+ k
+ y = SUM 2^(8(k-i)) PV'i
+ i=1
+
+ where PV1,...,PVk are the octets of PV from first to last, and
+ where PV1 <> 0.
+
+ A successful SET consists of the value 'y' expressed as an OCTET
+ STRING as above concatenated with the value 'z'(expressed as an
+ OCTET STRING in the same manner as y) where z = g^xr MOD p, where
+ g, p and l are as above, and where xr is a new random integer
+ selected by the manager in the interval 2^(l-1) <= xr < 2^l <
+ p-1. A SET to an object of this type will fail with the error
+ wrongValue if the current 'y' does not match the 'y' portion of
+ the value of the varbind for the object. (E.g. GET yout, SET
+ concat(yin, z), yout <> yin).
+
+ Note that the private values xa and xr are never transmitted from
+ manager to device or vice versa, only the values y and z.
+ Obviously, these values must be retained until a successful SET on
+ the associated object.
+
+ The shared secret 'sk' is calculated at the agent as sk = z^xa MOD
+ p, and at the manager as sk = y^xr MOD p.
+
+ Each object definition of this type MUST describe how to map from
+ the shared secret 'sk' to the operational key value used by the
+ protocols and operations related to the object. In general, if n
+ bits of key are required, the author suggests using the n
+ right-most bits of the shared secret as the operational key value."
+ REFERENCE
+ "-- Diffie-Hellman Key-Agreement Standard, PKCS #3;
+ RSA Laboratories, November 1993"
+ SYNTAX OCTET STRING
+
+-- Diffie Hellman public values
+
+usmDHPublicObjects OBJECT IDENTIFIER ::= { usmDHKeyObjects 1 }
+
+usmDHParameters OBJECT-TYPE
+ SYNTAX OCTET STRING
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The public Diffie-Hellman parameters for doing a Diffie-Hellman
+ key agreement for this device. This is encoded as an ASN.1
+ DHParameter per PKCS #3, section 9. E.g.
+
+ DHParameter ::= SEQUENCE {
+ prime INTEGER, -- p
+ base INTEGER, -- g
+ privateValueLength INTEGER OPTIONAL }
+
+
+ Implementors are encouraged to use either the values from
+ Oakley Group 1 or the values of from Oakley Group 2 as specified
+ in RFC-2409, The Internet Key Exchange, Section 6.1, 6.2 as the
+ default for this object. Other values may be used, but the
+ security properties of those values MUST be well understood and
+ MUST meet the requirements of PKCS #3 for the selection of
+ Diffie-Hellman primes.
+
+ In addition, any time usmDHParameters changes, all values of
+ type DHKeyChange will change and new random numbers MUST be
+ generated by the agent for each DHKeyChange object."
+ REFERENCE
+ "-- Diffie-Hellman Key-Agreement Standard, PKCS #3,
+ RSA Laboratories, November 1993
+ -- The Internet Key Exchange, RFC 2409, November 1998,
+ Sec 6.1, 6.2"
+ ::= { usmDHPublicObjects 1 }
+
+usmDHUserKeyTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF UsmDHUserKeyEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This table augments and extends the usmUserTable and provides
+ 4 objects which exactly mirror the objects in that table with the
+ textual convention of 'KeyChange'. This extension allows key
+ changes to be done in a manner where the knowledge of the current
+ secret plus knowledge of the key change data exchanges (e.g. via
+ wiretapping) will not reveal the new key."
+ ::= { usmDHPublicObjects 2 }
+
+usmDHUserKeyEntry OBJECT-TYPE
+ SYNTAX UsmDHUserKeyEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A row of DHKeyChange objects which augment or replace the
+ functionality of the KeyChange objects in the base table row."
+ AUGMENTS { usmUserEntry }
+ ::= {usmDHUserKeyTable 1 }
+
+UsmDHUserKeyEntry ::= SEQUENCE {
+ usmDHUserAuthKeyChange DHKeyChange,
+ usmDHUserOwnAuthKeyChange DHKeyChange,
+ usmDHUserPrivKeyChange DHKeyChange,
+ usmDHUserOwnPrivKeyChange DHKeyChange
+ }
+
+usmDHUserAuthKeyChange OBJECT-TYPE
+ SYNTAX DHKeyChange
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The object used to change any given user's Authentication Key
+ using a Diffie-Hellman key exchange.
+
+ The right-most n bits of the shared secret 'sk', where 'n' is the
+ number of bits required for the protocol defined by
+ usmUserAuthProtocol, are installed as the operational
+ authentication key for this row after a successful SET."
+ ::= { usmDHUserKeyEntry 1 }
+
+usmDHUserOwnAuthKeyChange OBJECT-TYPE
+ SYNTAX DHKeyChange
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The object used to change the agents own Authentication Key
+ using a Diffie-Hellman key exchange.
+
+ The right-most n bits of the shared secret 'sk', where 'n' is the
+ number of bits required for the protocol defined by
+ usmUserAuthProtocol, are installed as the operational
+ authentication key for this row after a successful SET."
+ ::= { usmDHUserKeyEntry 2 }
+
+usmDHUserPrivKeyChange OBJECT-TYPE
+ SYNTAX DHKeyChange
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The object used to change any given user's Privacy Key using
+ a Diffie-Hellman key exchange.
+
+ The right-most n bits of the shared secret 'sk', where 'n' is the
+ number of bits required for the protocol defined by
+ usmUserPrivProtocol, are installed as the operational privacy key
+ for this row after a successful SET."
+ ::= { usmDHUserKeyEntry 3 }
+
+usmDHUserOwnPrivKeyChange OBJECT-TYPE
+ SYNTAX DHKeyChange
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The object used to change the agent's own Privacy Key using a
+ Diffie-Hellman key exchange.
+
+ The right-most n bits of the shared secret 'sk', where 'n' is the
+ number of bits required for the protocol defined by
+ usmUserPrivProtocol, are installed as the operational privacy key
+ for this row after a successful SET."
+ ::= { usmDHUserKeyEntry 4 }
+
+usmDHKickstartGroup OBJECT IDENTIFIER ::= { usmDHKeyObjects 2 }
+
+usmDHKickstartTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF UsmDHKickstartEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table of mappings between zero or more Diffie-Helman key
+ agreement values and entries in the usmUserTable. Entries in this
+ table are created by providing the associated device with a
+ Diffie-Helman public value and a usmUserName/usmUserSecurityName
+ pair during initialization. How these values are provided is
+ outside the scope of this MIB, but could be provided manually, or
+ through a configuration file. Valid public value/name pairs
+ result in the creation of a row in this table as well as the
+ creation of an associated row (with keys derived as indicated) in
+ the usmUserTable. The actual access the related usmSecurityName
+ has is dependent on the entries in the VACM tables. In general,
+ an implementor will specify one or more standard security names
+ and will provide entries in the VACM tables granting various
+ levels of access to those names. The actual content of the VACM
+ table is beyond the scope of this MIB.
+
+ Note: This table is expected to be readable without authentication
+ using the usmUserSecurityName 'dhKickstart'. See the conformance
+ statements for details."
+ ::= { usmDHKickstartGroup 1 }
+
+usmDHKickstartEntry OBJECT-TYPE
+ SYNTAX UsmDHKickstartEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+
+ "An entry in the usmDHKickstartTable. The agent SHOULD either
+ delete this entry or mark it as inactive upon a successful SET of
+ any of the KeyChange-typed objects in the usmUserEntry or upon a
+ successful SET of any of the DHKeyChange-typed objects in the
+ usmDhKeyChangeEntry where the related usmSecurityName (e.g. row of
+ usmUserTable or row of ushDhKeyChangeTable) equals this entry's
+ usmDhKickstartSecurityName. In otherwords, once you've changed
+ one or more of the keys for a row in usmUserTable with a
+ particular security name, the row in this table with that same
+ security name is no longer useful or meaningful."
+
+ INDEX { usmDHKickstartIndex }
+ ::= {usmDHKickstartTable 1 }
+
+UsmDHKickstartEntry ::= SEQUENCE {
+ usmDHKickstartIndex Integer32,
+ usmDHKickstartMyPublic OCTET STRING,
+ usmDHKickstartMgrPublic OCTET STRING,
+ usmDHKickstartSecurityName SnmpAdminString
+ }
+
+usmDHKickstartIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..2147483647)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Index value for this row."
+ ::= { usmDHKickstartEntry 1 }
+
+usmDHKickstartMyPublic OBJECT-TYPE
+ SYNTAX OCTET STRING
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The agent's Diffie-Hellman public value for this row. At
+ initialization, the agent generates a random number and derives
+ its public value from that number. This public value is published
+ here. This public value 'y' equals g^r MOD p where g is the from
+ the set of Diffie-Hellman parameters, p is the prime from those
+ parameters, and r is a random integer selected by the agent in the
+ interval 2^(l-1) <= r < p-1 < 2^l. If l is unspecified, then r is
+ a random integer selected in the interval 0 <= r < p-1
+
+ The public value is expressed as an OCTET STRING 'PV' of length
+ 'k' which satisfies
+
+ k
+ y = SUM 2^(8(k-i)) PV'i
+ i = 1
+
+ where PV1,...,PVk are the octets of PV from first to last, and
+ where PV1 != 0.
+
+
+ The following DH parameters (Oakley group #2, RFC 2409, sec 6.1,
+ 6.2) are used for this object:
+
+ g = 2
+ p = FFFFFFFF FFFFFFFF C90FDAA2 2168C234 C4C6628B 80DC1CD1
+ 29024E08 8A67CC74 020BBEA6 3B139B22 514A0879 8E3404DD
+ EF9519B3 CD3A431B 302B0A6D F25F1437 4FE1356D 6D51C245
+ E485B576 625E7EC6 F44C42E9 A637ED6B 0BFF5CB6 F406B7ED
+ EE386BFB 5A899FA5 AE9F2411 7C4B1FE6 49286651 ECE65381
+ FFFFFFFF FFFFFFFF
+ l=1024
+ "
+ REFERENCE
+ "-- Diffie-Hellman Key-Agreement Standard, PKCS#3v1.4;
+ RSA Laboratories, November 1993
+ -- The Internet Key Exchange, RFC2409;
+ Harkins, D., Carrel, D.; November 1998"
+ ::= { usmDHKickstartEntry 2 }
+
+usmDHKickstartMgrPublic OBJECT-TYPE
+ SYNTAX OCTET STRING
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+
+ "The manager's Diffie-Hellman public value for this row. Note
+ that this value is not set via the SNMP agent, but may be set via
+ some out of band method, such as the device's configuration file.
+ The manager calculates this value in the same manner and using the
+ same parameter set as the agent does. E.g. it selects a random
+ number 'r', calculates y = g^r mod p and provides 'y' as the
+ public number expressed as an OCTET STRING. See
+ usmDHKickstartMyPublic for details.
+
+ When this object is set with a valid value during initialization,
+ a row is created in the usmUserTable with the following values:
+
+ usmUserEngineID localEngineID
+ usmUserName [value of usmDHKickstartSecurityName]
+ usmUserSecurityName [value of usmDHKickstartSecurityName]
+ usmUserCloneFrom ZeroDotZero
+ usmUserAuthProtocol usmHMACMD5AuthProtocol
+ usmUserAuthKeyChange -- derived from set value
+ usmUserOwnAuthKeyChange -- derived from set value
+ usmUserPrivProtocol usmDESPrivProtocol
+ usmUserPrivKeyChange -- derived from set value
+ usmUserOwnPrivKeyChange -- derived from set value
+ usmUserPublic ''
+ usmUserStorageType permanent
+ usmUserStatus active
+
+ A shared secret 'sk' is calculated at the agent as sk =
+ mgrPublic^r mod p where r is the agents random number and p is the
+ DH prime from the common parameters. The underlying privacy key
+ for this row is derived from sk by applying the key derivation
+ function PBKDF2 defined in PKCS#5v2.0 with a salt of 0xd1310ba6,
+ and iterationCount of 500, a keyLength of 16 (for
+ usmDESPrivProtocol), and a prf (pseudo random function) of
+ 'id-hmacWithSHA1'. The underlying authentication key for this row
+ is derived from sk by applying the key derivation function PBKDF2
+ with a salt of 0x98dfb5ac , an interation count of 500, a
+ keyLength of 16 (for usmHMAC5AuthProtocol), and a prf of
+ 'id-hmacWithSHA1'. Note: The salts are the first two words in the
+ ks0 [key schedule 0] of the BLOWFISH cipher from 'Applied
+ Cryptography' by Bruce Schnier - they could be any relatively
+ random string of bits.
+
+ The manager can use its knowledge of its own random number and the
+ agent's public value to kickstart its access to the agent in a
+ secure manner. Note that the security of this approach is
+ directly related to the strength of the authorization security of
+ the out of band provisioning of the managers public value
+ (e.g. the configuration file), but is not dependent at all on the
+ strength of the confidentiality of the out of band provisioning
+ data."
+ REFERENCE
+ "-- Password-Based Cryptography Standard, PKCS#5v2.0;
+ RSA Laboratories, March 1999
+ -- Applied Cryptography, 2nd Ed.; B. Schneier,
+ Counterpane Systems; John Wiley & Sons, 1996"
+ ::= { usmDHKickstartEntry 3 }
+
+usmDHKickstartSecurityName OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The usmUserName and usmUserSecurityName in the usmUserTable
+ associated with this row. This is provided in the same manner and
+ at the same time as the usmDHKickstartMgrPublic value -
+ e.g. possibly manually, or via the device's configuration file."
+ ::= { usmDHKickstartEntry 4 }
+
+-- Conformance Information
+
+usmDHKeyMIBCompliances OBJECT IDENTIFIER ::= { usmDHKeyConformance 1 }
+usmDHKeyMIBGroups OBJECT IDENTIFIER ::= { usmDHKeyConformance 2 }
+
+-- Compliance statements
+
+usmDHKeyMIBCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for this module."
+ MODULE
+ GROUP usmDHKeyMIBBasicGroup
+ DESCRIPTION
+ "This group MAY be implemented by any agent which
+ implements the usmUserTable and which wishes to provide the
+ ability to change user and agent authentication and privacy
+ keys via Diffie-Hellman key exchanges."
+
+ GROUP usmDHKeyParamGroup
+ DESCRIPTION
+ "This group MUST be implemented by any agent which
+ implements a MIB containing the DHKeyChange Textual
+ Convention defined in this module."
+
+ GROUP usmDHKeyKickstartGroup
+ DESCRIPTION
+ "This group MAY be implemented by any agent which
+ implements the usmUserTable and which wishes the ability to
+ populate the USM table based on out-of-band provided DH
+ ignition values.
+ Any agent implementing this group is expected to provide
+ preinstalled entries in the vacm tables as follows:
+
+ In the usmUserTable: This entry allows access to the
+ system and dhKickstart groups
+
+ usmUserEngineID localEngineID
+ usmUserName 'dhKickstart'
+ usmUserSecurityName 'dhKickstart'
+ usmUserCloneFrom ZeroDotZero
+ usmUserAuthProtocol none
+ usmUserAuthKeyChange ''
+ usmUserOwnAuthKeyChange ''
+ usmUserPrivProtocol none
+ usmUserPrivKeyChange ''
+ usmUserOwnPrivKeyChange ''
+ usmUserPublic ''
+ usmUserStorageType permanent
+ usmUserStatus active
+
+ In the vacmSecurityToGroupTable: This maps the initial
+ user into the accessible objects.
+
+ vacmSecurityModel 3 (USM)
+ vacmSecurityName 'dhKickstart'
+ vacmGroupName 'dhKickstart'
+ vacmSecurityToGroupStorageType permanent
+ vacmSecurityToGroupStatus active
+
+ In the vacmAccessTable: Group name to view name translation.
+
+ vacmGroupName 'dhKickstart'
+ vacmAccessContextPrefix ''
+ vacmAccessSecurityModel 3 (USM)
+ vacmAccessSecurityLevel noAuthNoPriv
+ vacmAccessContextMatch exact
+ vacmAccessReadViewName 'dhKickRestricted'
+ vacmAccessWriteViewName ''
+ vacmAccessNotifyViewName 'dhKickRestricted'
+ vacmAccessStorageType permanent
+ vacmAccessStatus active
+
+ In the vacmViewTreeFamilyTable: Two entries to allow the
+ initial entry to access the system and kickstart groups.
+
+ vacmViewTreeFamilyViewName 'dhKickRestricted'
+ vacmViewTreeFamilySubtree 1.3.6.1.2.1.1 (system)
+ vacmViewTreeFamilyMask ''
+ vacmViewTreeFamilyType 1
+ vacmViewTreeFamilyStorageType permanent
+ vacmViewTreeFamilyStatus active
+
+ vacmViewTreeFamilyViewName 'dhKickRestricted'
+ vacmViewTreeFamilySubtree (usmDHKickstartTable OID)
+ vacmViewTreeFamilyMask ''
+ vacmViewTreeFamilyType 1
+ vacmViewTreeFamilyStorageType permanent
+ vacmViewTreeFamilyStatus active
+ "
+
+ OBJECT usmDHParameters
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "It is compliant to implement this object as read-only for
+ any device."
+
+ ::= { usmDHKeyMIBCompliances 1 }
+
+-- Units of Compliance
+
+usmDHKeyMIBBasicGroup OBJECT-GROUP
+ OBJECTS {
+ usmDHUserAuthKeyChange,
+ usmDHUserOwnAuthKeyChange,
+ usmDHUserPrivKeyChange,
+ usmDHUserOwnPrivKeyChange
+ }
+ STATUS current
+ DESCRIPTION
+ ""
+ ::= { usmDHKeyMIBGroups 1 }
+
+usmDHKeyParamGroup OBJECT-GROUP
+ OBJECTS {
+ usmDHParameters
+ }
+ STATUS current
+ DESCRIPTION
+ "The mandatory object for all MIBs which use the DHKeyChange
+ textual convention."
+ ::= { usmDHKeyMIBGroups 2 }
+
+usmDHKeyKickstartGroup OBJECT-GROUP
+ OBJECTS {
+ usmDHKickstartMyPublic,
+ usmDHKickstartMgrPublic,
+ usmDHKickstartSecurityName
+ }
+ STATUS current
+ DESCRIPTION
+ "The objects used for kickstarting one or more SNMPv3 USM
+ associations via a configuration file or other out of band,
+ non-confidential access."
+ ::= { usmDHKeyMIBGroups 3 }
+
+
+END
diff --git a/php/extras/mibs/SNMP-VIEW-BASED-ACM-MIB.txt b/php/extras/mibs/SNMP-VIEW-BASED-ACM-MIB.txt
new file mode 100644
index 000000000..7244ad0af
--- /dev/null
+++ b/php/extras/mibs/SNMP-VIEW-BASED-ACM-MIB.txt
@@ -0,0 +1,830 @@
+SNMP-VIEW-BASED-ACM-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
+ MODULE-IDENTITY, OBJECT-TYPE,
+ snmpModules FROM SNMPv2-SMI
+ TestAndIncr,
+ RowStatus, StorageType FROM SNMPv2-TC
+ SnmpAdminString,
+ SnmpSecurityLevel,
+ SnmpSecurityModel FROM SNMP-FRAMEWORK-MIB;
+
+snmpVacmMIB MODULE-IDENTITY
+ LAST-UPDATED "200210160000Z" -- 16 Oct 2002, midnight
+ ORGANIZATION "SNMPv3 Working Group"
+ CONTACT-INFO "WG-email: snmpv3@lists.tislabs.com
+ Subscribe: majordomo@lists.tislabs.com
+ In message body: subscribe snmpv3
+
+ Co-Chair: Russ Mundy
+ Network Associates Laboratories
+ postal: 15204 Omega Drive, Suite 300
+ Rockville, MD 20850-4601
+ USA
+ email: mundy@tislabs.com
+ phone: +1 301-947-7107
+
+ Co-Chair: David Harrington
+ Enterasys Networks
+ Postal: 35 Industrial Way
+ P. O. Box 5004
+ Rochester, New Hampshire 03866-5005
+ USA
+ EMail: dbh@enterasys.com
+ Phone: +1 603-337-2614
+
+ Co-editor: Bert Wijnen
+ Lucent Technologies
+ postal: Schagen 33
+ 3461 GL Linschoten
+ Netherlands
+ email: bwijnen@lucent.com
+ phone: +31-348-480-685
+
+ Co-editor: Randy Presuhn
+ BMC Software, Inc.
+
+ postal: 2141 North First Street
+ San Jose, CA 95131
+ USA
+ email: randy_presuhn@bmc.com
+ phone: +1 408-546-1006
+
+ Co-editor: Keith McCloghrie
+ Cisco Systems, Inc.
+ postal: 170 West Tasman Drive
+ San Jose, CA 95134-1706
+ USA
+ email: kzm@cisco.com
+ phone: +1-408-526-5260
+ "
+ DESCRIPTION "The management information definitions for the
+ View-based Access Control Model for SNMP.
+
+ Copyright (C) The Internet Society (2002). This
+ version of this MIB module is part of RFC 3415;
+ see the RFC itself for full legal notices.
+ "
+-- Revision history
+
+ REVISION "200210160000Z" -- 16 Oct 2002, midnight
+ DESCRIPTION "Clarifications, published as RFC3415"
+
+ REVISION "199901200000Z" -- 20 Jan 1999, midnight
+ DESCRIPTION "Clarifications, published as RFC2575"
+
+ REVISION "199711200000Z" -- 20 Nov 1997, midnight
+ DESCRIPTION "Initial version, published as RFC2275"
+ ::= { snmpModules 16 }
+
+-- Administrative assignments ****************************************
+
+vacmMIBObjects OBJECT IDENTIFIER ::= { snmpVacmMIB 1 }
+vacmMIBConformance OBJECT IDENTIFIER ::= { snmpVacmMIB 2 }
+
+-- Information about Local Contexts **********************************
+
+vacmContextTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF VacmContextEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "The table of locally available contexts.
+
+ This table provides information to SNMP Command
+
+ Generator applications so that they can properly
+ configure the vacmAccessTable to control access to
+ all contexts at the SNMP entity.
+
+ This table may change dynamically if the SNMP entity
+ allows that contexts are added/deleted dynamically
+ (for instance when its configuration changes). Such
+ changes would happen only if the management
+ instrumentation at that SNMP entity recognizes more
+ (or fewer) contexts.
+
+ The presence of entries in this table and of entries
+ in the vacmAccessTable are independent. That is, a
+ context identified by an entry in this table is not
+ necessarily referenced by any entries in the
+ vacmAccessTable; and the context(s) referenced by an
+ entry in the vacmAccessTable does not necessarily
+ currently exist and thus need not be identified by an
+ entry in this table.
+
+ This table must be made accessible via the default
+ context so that Command Responder applications have
+ a standard way of retrieving the information.
+
+ This table is read-only. It cannot be configured via
+ SNMP.
+ "
+ ::= { vacmMIBObjects 1 }
+
+vacmContextEntry OBJECT-TYPE
+ SYNTAX VacmContextEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "Information about a particular context."
+ INDEX {
+ vacmContextName
+ }
+ ::= { vacmContextTable 1 }
+
+VacmContextEntry ::= SEQUENCE
+ {
+ vacmContextName SnmpAdminString
+ }
+
+vacmContextName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(0..32))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "A human readable name identifying a particular
+ context at a particular SNMP entity.
+
+ The empty contextName (zero length) represents the
+ default context.
+ "
+ ::= { vacmContextEntry 1 }
+
+-- Information about Groups ******************************************
+
+vacmSecurityToGroupTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF VacmSecurityToGroupEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "This table maps a combination of securityModel and
+ securityName into a groupName which is used to define
+ an access control policy for a group of principals.
+ "
+ ::= { vacmMIBObjects 2 }
+
+vacmSecurityToGroupEntry OBJECT-TYPE
+ SYNTAX VacmSecurityToGroupEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "An entry in this table maps the combination of a
+ securityModel and securityName into a groupName.
+ "
+ INDEX {
+ vacmSecurityModel,
+ vacmSecurityName
+ }
+ ::= { vacmSecurityToGroupTable 1 }
+
+VacmSecurityToGroupEntry ::= SEQUENCE
+ {
+ vacmSecurityModel SnmpSecurityModel,
+ vacmSecurityName SnmpAdminString,
+ vacmGroupName SnmpAdminString,
+ vacmSecurityToGroupStorageType StorageType,
+ vacmSecurityToGroupStatus RowStatus
+ }
+
+vacmSecurityModel OBJECT-TYPE
+ SYNTAX SnmpSecurityModel(1..2147483647)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "The Security Model, by which the vacmSecurityName
+ referenced by this entry is provided.
+
+ Note, this object may not take the 'any' (0) value.
+ "
+ ::= { vacmSecurityToGroupEntry 1 }
+
+vacmSecurityName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(1..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "The securityName for the principal, represented in a
+ Security Model independent format, which is mapped by
+ this entry to a groupName.
+ "
+ ::= { vacmSecurityToGroupEntry 2 }
+
+vacmGroupName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(1..32))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "The name of the group to which this entry (e.g., the
+ combination of securityModel and securityName)
+ belongs.
+
+ This groupName is used as index into the
+ vacmAccessTable to select an access control policy.
+ However, a value in this table does not imply that an
+ instance with the value exists in table vacmAccesTable.
+ "
+ ::= { vacmSecurityToGroupEntry 3 }
+
+vacmSecurityToGroupStorageType OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "The storage type for this conceptual row.
+ Conceptual rows having the value 'permanent' need not
+ allow write-access to any columnar objects in the row.
+ "
+ DEFVAL { nonVolatile }
+ ::= { vacmSecurityToGroupEntry 4 }
+
+vacmSecurityToGroupStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "The status of this conceptual row.
+
+ Until instances of all corresponding columns are
+ appropriately configured, the value of the
+
+ corresponding instance of the vacmSecurityToGroupStatus
+ column is 'notReady'.
+
+ In particular, a newly created row cannot be made
+ active until a value has been set for vacmGroupName.
+
+ The RowStatus TC [RFC2579] requires that this
+ DESCRIPTION clause states under which circumstances
+ other objects in this row can be modified:
+
+ The value of this object has no effect on whether
+ other objects in this conceptual row can be modified.
+ "
+ ::= { vacmSecurityToGroupEntry 5 }
+
+-- Information about Access Rights ***********************************
+
+vacmAccessTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF VacmAccessEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "The table of access rights for groups.
+
+ Each entry is indexed by a groupName, a contextPrefix,
+ a securityModel and a securityLevel. To determine
+ whether access is allowed, one entry from this table
+ needs to be selected and the proper viewName from that
+ entry must be used for access control checking.
+
+ To select the proper entry, follow these steps:
+
+ 1) the set of possible matches is formed by the
+ intersection of the following sets of entries:
+
+ the set of entries with identical vacmGroupName
+ the union of these two sets:
+ - the set with identical vacmAccessContextPrefix
+ - the set of entries with vacmAccessContextMatch
+ value of 'prefix' and matching
+ vacmAccessContextPrefix
+ intersected with the union of these two sets:
+ - the set of entries with identical
+ vacmSecurityModel
+ - the set of entries with vacmSecurityModel
+ value of 'any'
+ intersected with the set of entries with
+ vacmAccessSecurityLevel value less than or equal
+ to the requested securityLevel
+
+ 2) if this set has only one member, we're done
+ otherwise, it comes down to deciding how to weight
+ the preferences between ContextPrefixes,
+ SecurityModels, and SecurityLevels as follows:
+ a) if the subset of entries with securityModel
+ matching the securityModel in the message is
+ not empty, then discard the rest.
+ b) if the subset of entries with
+ vacmAccessContextPrefix matching the contextName
+ in the message is not empty,
+ then discard the rest
+ c) discard all entries with ContextPrefixes shorter
+ than the longest one remaining in the set
+ d) select the entry with the highest securityLevel
+
+ Please note that for securityLevel noAuthNoPriv, all
+ groups are really equivalent since the assumption that
+ the securityName has been authenticated does not hold.
+ "
+ ::= { vacmMIBObjects 4 }
+
+vacmAccessEntry OBJECT-TYPE
+ SYNTAX VacmAccessEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "An access right configured in the Local Configuration
+ Datastore (LCD) authorizing access to an SNMP context.
+
+ Entries in this table can use an instance value for
+ object vacmGroupName even if no entry in table
+ vacmAccessSecurityToGroupTable has a corresponding
+ value for object vacmGroupName.
+ "
+ INDEX { vacmGroupName,
+ vacmAccessContextPrefix,
+ vacmAccessSecurityModel,
+ vacmAccessSecurityLevel
+ }
+ ::= { vacmAccessTable 1 }
+
+VacmAccessEntry ::= SEQUENCE
+ {
+ vacmAccessContextPrefix SnmpAdminString,
+ vacmAccessSecurityModel SnmpSecurityModel,
+ vacmAccessSecurityLevel SnmpSecurityLevel,
+ vacmAccessContextMatch INTEGER,
+ vacmAccessReadViewName SnmpAdminString,
+ vacmAccessWriteViewName SnmpAdminString,
+ vacmAccessNotifyViewName SnmpAdminString,
+ vacmAccessStorageType StorageType,
+ vacmAccessStatus RowStatus
+ }
+
+vacmAccessContextPrefix OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(0..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "In order to gain the access rights allowed by this
+ conceptual row, a contextName must match exactly
+ (if the value of vacmAccessContextMatch is 'exact')
+ or partially (if the value of vacmAccessContextMatch
+ is 'prefix') to the value of the instance of this
+ object.
+ "
+ ::= { vacmAccessEntry 1 }
+
+vacmAccessSecurityModel OBJECT-TYPE
+ SYNTAX SnmpSecurityModel
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "In order to gain the access rights allowed by this
+ conceptual row, this securityModel must be in use.
+ "
+ ::= { vacmAccessEntry 2 }
+
+vacmAccessSecurityLevel OBJECT-TYPE
+ SYNTAX SnmpSecurityLevel
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "The minimum level of security required in order to
+ gain the access rights allowed by this conceptual
+ row. A securityLevel of noAuthNoPriv is less than
+ authNoPriv which in turn is less than authPriv.
+
+ If multiple entries are equally indexed except for
+ this vacmAccessSecurityLevel index, then the entry
+ which has the highest value for
+ vacmAccessSecurityLevel is selected.
+ "
+ ::= { vacmAccessEntry 3 }
+
+vacmAccessContextMatch OBJECT-TYPE
+ SYNTAX INTEGER
+ { exact (1), -- exact match of prefix and contextName
+ prefix (2) -- Only match to the prefix
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "If the value of this object is exact(1), then all
+ rows where the contextName exactly matches
+ vacmAccessContextPrefix are selected.
+
+ If the value of this object is prefix(2), then all
+ rows where the contextName whose starting octets
+ exactly match vacmAccessContextPrefix are selected.
+ This allows for a simple form of wildcarding.
+ "
+ DEFVAL { exact }
+ ::= { vacmAccessEntry 4 }
+
+vacmAccessReadViewName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(0..32))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "The value of an instance of this object identifies
+ the MIB view of the SNMP context to which this
+ conceptual row authorizes read access.
+
+ The identified MIB view is that one for which the
+ vacmViewTreeFamilyViewName has the same value as the
+ instance of this object; if the value is the empty
+ string or if there is no active MIB view having this
+ value of vacmViewTreeFamilyViewName, then no access
+ is granted.
+ "
+ DEFVAL { ''H } -- the empty string
+ ::= { vacmAccessEntry 5 }
+
+vacmAccessWriteViewName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(0..32))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "The value of an instance of this object identifies
+ the MIB view of the SNMP context to which this
+ conceptual row authorizes write access.
+
+ The identified MIB view is that one for which the
+ vacmViewTreeFamilyViewName has the same value as the
+ instance of this object; if the value is the empty
+ string or if there is no active MIB view having this
+ value of vacmViewTreeFamilyViewName, then no access
+ is granted.
+ "
+ DEFVAL { ''H } -- the empty string
+ ::= { vacmAccessEntry 6 }
+
+vacmAccessNotifyViewName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(0..32))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "The value of an instance of this object identifies
+ the MIB view of the SNMP context to which this
+ conceptual row authorizes access for notifications.
+
+ The identified MIB view is that one for which the
+ vacmViewTreeFamilyViewName has the same value as the
+ instance of this object; if the value is the empty
+ string or if there is no active MIB view having this
+ value of vacmViewTreeFamilyViewName, then no access
+ is granted.
+ "
+ DEFVAL { ''H } -- the empty string
+ ::= { vacmAccessEntry 7 }
+
+vacmAccessStorageType OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "The storage type for this conceptual row.
+
+ Conceptual rows having the value 'permanent' need not
+ allow write-access to any columnar objects in the row.
+ "
+ DEFVAL { nonVolatile }
+ ::= { vacmAccessEntry 8 }
+
+vacmAccessStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "The status of this conceptual row.
+
+ The RowStatus TC [RFC2579] requires that this
+ DESCRIPTION clause states under which circumstances
+ other objects in this row can be modified:
+
+ The value of this object has no effect on whether
+ other objects in this conceptual row can be modified.
+ "
+ ::= { vacmAccessEntry 9 }
+
+-- Information about MIB views ***************************************
+
+-- Support for instance-level granularity is optional.
+--
+-- In some implementations, instance-level access control
+-- granularity may come at a high performance cost. Managers
+-- should avoid requesting such configurations unnecessarily.
+
+vacmMIBViews OBJECT IDENTIFIER ::= { vacmMIBObjects 5 }
+
+vacmViewSpinLock OBJECT-TYPE
+ SYNTAX TestAndIncr
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION "An advisory lock used to allow cooperating SNMP
+ Command Generator applications to coordinate their
+ use of the Set operation in creating or modifying
+ views.
+
+ When creating a new view or altering an existing
+ view, it is important to understand the potential
+ interactions with other uses of the view. The
+ vacmViewSpinLock should be retrieved. The name of
+ the view to be created should be determined to be
+ unique by the SNMP Command Generator application by
+ consulting the vacmViewTreeFamilyTable. Finally,
+ the named view may be created (Set), including the
+ advisory lock.
+ If another SNMP Command Generator application has
+ altered the views in the meantime, then the spin
+ lock's value will have changed, and so this creation
+ will fail because it will specify the wrong value for
+ the spin lock.
+
+ Since this is an advisory lock, the use of this lock
+ is not enforced.
+ "
+ ::= { vacmMIBViews 1 }
+
+vacmViewTreeFamilyTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF VacmViewTreeFamilyEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "Locally held information about families of subtrees
+ within MIB views.
+
+ Each MIB view is defined by two sets of view subtrees:
+ - the included view subtrees, and
+ - the excluded view subtrees.
+ Every such view subtree, both the included and the
+
+ excluded ones, is defined in this table.
+
+ To determine if a particular object instance is in
+ a particular MIB view, compare the object instance's
+ OBJECT IDENTIFIER with each of the MIB view's active
+ entries in this table. If none match, then the
+ object instance is not in the MIB view. If one or
+ more match, then the object instance is included in,
+ or excluded from, the MIB view according to the
+ value of vacmViewTreeFamilyType in the entry whose
+ value of vacmViewTreeFamilySubtree has the most
+ sub-identifiers. If multiple entries match and have
+ the same number of sub-identifiers (when wildcarding
+ is specified with the value of vacmViewTreeFamilyMask),
+ then the lexicographically greatest instance of
+ vacmViewTreeFamilyType determines the inclusion or
+ exclusion.
+
+ An object instance's OBJECT IDENTIFIER X matches an
+ active entry in this table when the number of
+ sub-identifiers in X is at least as many as in the
+ value of vacmViewTreeFamilySubtree for the entry,
+ and each sub-identifier in the value of
+ vacmViewTreeFamilySubtree matches its corresponding
+ sub-identifier in X. Two sub-identifiers match
+ either if the corresponding bit of the value of
+ vacmViewTreeFamilyMask for the entry is zero (the
+ 'wild card' value), or if they are equal.
+
+ A 'family' of subtrees is the set of subtrees defined
+ by a particular combination of values of
+ vacmViewTreeFamilySubtree and vacmViewTreeFamilyMask.
+
+ In the case where no 'wild card' is defined in the
+ vacmViewTreeFamilyMask, the family of subtrees reduces
+ to a single subtree.
+
+ When creating or changing MIB views, an SNMP Command
+ Generator application should utilize the
+ vacmViewSpinLock to try to avoid collisions. See
+ DESCRIPTION clause of vacmViewSpinLock.
+
+ When creating MIB views, it is strongly advised that
+ first the 'excluded' vacmViewTreeFamilyEntries are
+ created and then the 'included' entries.
+
+ When deleting MIB views, it is strongly advised that
+ first the 'included' vacmViewTreeFamilyEntries are
+
+ deleted and then the 'excluded' entries.
+
+ If a create for an entry for instance-level access
+ control is received and the implementation does not
+ support instance-level granularity, then an
+ inconsistentName error must be returned.
+ "
+ ::= { vacmMIBViews 2 }
+
+vacmViewTreeFamilyEntry OBJECT-TYPE
+ SYNTAX VacmViewTreeFamilyEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "Information on a particular family of view subtrees
+ included in or excluded from a particular SNMP
+ context's MIB view.
+
+ Implementations must not restrict the number of
+ families of view subtrees for a given MIB view,
+ except as dictated by resource constraints on the
+ overall number of entries in the
+ vacmViewTreeFamilyTable.
+
+ If no conceptual rows exist in this table for a given
+ MIB view (viewName), that view may be thought of as
+ consisting of the empty set of view subtrees.
+ "
+ INDEX { vacmViewTreeFamilyViewName,
+ vacmViewTreeFamilySubtree
+ }
+ ::= { vacmViewTreeFamilyTable 1 }
+
+VacmViewTreeFamilyEntry ::= SEQUENCE
+ {
+ vacmViewTreeFamilyViewName SnmpAdminString,
+ vacmViewTreeFamilySubtree OBJECT IDENTIFIER,
+ vacmViewTreeFamilyMask OCTET STRING,
+ vacmViewTreeFamilyType INTEGER,
+ vacmViewTreeFamilyStorageType StorageType,
+ vacmViewTreeFamilyStatus RowStatus
+ }
+
+vacmViewTreeFamilyViewName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(1..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "The human readable name for a family of view subtrees.
+ "
+ ::= { vacmViewTreeFamilyEntry 1 }
+
+vacmViewTreeFamilySubtree OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "The MIB subtree which when combined with the
+ corresponding instance of vacmViewTreeFamilyMask
+ defines a family of view subtrees.
+ "
+ ::= { vacmViewTreeFamilyEntry 2 }
+
+vacmViewTreeFamilyMask OBJECT-TYPE
+ SYNTAX OCTET STRING (SIZE (0..16))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "The bit mask which, in combination with the
+ corresponding instance of vacmViewTreeFamilySubtree,
+ defines a family of view subtrees.
+
+ Each bit of this bit mask corresponds to a
+ sub-identifier of vacmViewTreeFamilySubtree, with the
+ most significant bit of the i-th octet of this octet
+ string value (extended if necessary, see below)
+ corresponding to the (8*i - 7)-th sub-identifier, and
+ the least significant bit of the i-th octet of this
+ octet string corresponding to the (8*i)-th
+ sub-identifier, where i is in the range 1 through 16.
+
+ Each bit of this bit mask specifies whether or not
+ the corresponding sub-identifiers must match when
+ determining if an OBJECT IDENTIFIER is in this
+ family of view subtrees; a '1' indicates that an
+ exact match must occur; a '0' indicates 'wild card',
+ i.e., any sub-identifier value matches.
+
+ Thus, the OBJECT IDENTIFIER X of an object instance
+ is contained in a family of view subtrees if, for
+ each sub-identifier of the value of
+ vacmViewTreeFamilySubtree, either:
+
+ the i-th bit of vacmViewTreeFamilyMask is 0, or
+
+ the i-th sub-identifier of X is equal to the i-th
+ sub-identifier of the value of
+ vacmViewTreeFamilySubtree.
+
+ If the value of this bit mask is M bits long and
+
+ there are more than M sub-identifiers in the
+ corresponding instance of vacmViewTreeFamilySubtree,
+ then the bit mask is extended with 1's to be the
+ required length.
+
+ Note that when the value of this object is the
+ zero-length string, this extension rule results in
+ a mask of all-1's being used (i.e., no 'wild card'),
+ and the family of view subtrees is the one view
+ subtree uniquely identified by the corresponding
+ instance of vacmViewTreeFamilySubtree.
+
+ Note that masks of length greater than zero length
+ do not need to be supported. In this case this
+ object is made read-only.
+ "
+ DEFVAL { ''H }
+ ::= { vacmViewTreeFamilyEntry 3 }
+
+vacmViewTreeFamilyType OBJECT-TYPE
+ SYNTAX INTEGER { included(1), excluded(2) }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "Indicates whether the corresponding instances of
+ vacmViewTreeFamilySubtree and vacmViewTreeFamilyMask
+ define a family of view subtrees which is included in
+ or excluded from the MIB view.
+ "
+ DEFVAL { included }
+ ::= { vacmViewTreeFamilyEntry 4 }
+
+vacmViewTreeFamilyStorageType OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "The storage type for this conceptual row.
+
+ Conceptual rows having the value 'permanent' need not
+ allow write-access to any columnar objects in the row.
+ "
+ DEFVAL { nonVolatile }
+ ::= { vacmViewTreeFamilyEntry 5 }
+
+vacmViewTreeFamilyStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "The status of this conceptual row.
+
+ The RowStatus TC [RFC2579] requires that this
+ DESCRIPTION clause states under which circumstances
+ other objects in this row can be modified:
+
+ The value of this object has no effect on whether
+ other objects in this conceptual row can be modified.
+ "
+ ::= { vacmViewTreeFamilyEntry 6 }
+
+-- Conformance information *******************************************
+
+vacmMIBCompliances OBJECT IDENTIFIER ::= { vacmMIBConformance 1 }
+vacmMIBGroups OBJECT IDENTIFIER ::= { vacmMIBConformance 2 }
+
+-- Compliance statements *********************************************
+
+vacmMIBCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION "The compliance statement for SNMP engines which
+ implement the SNMP View-based Access Control Model
+ configuration MIB.
+ "
+ MODULE -- this module
+ MANDATORY-GROUPS { vacmBasicGroup }
+
+ OBJECT vacmAccessContextMatch
+ MIN-ACCESS read-only
+ DESCRIPTION "Write access is not required."
+
+ OBJECT vacmAccessReadViewName
+ MIN-ACCESS read-only
+ DESCRIPTION "Write access is not required."
+
+ OBJECT vacmAccessWriteViewName
+ MIN-ACCESS read-only
+ DESCRIPTION "Write access is not required."
+
+ OBJECT vacmAccessNotifyViewName
+ MIN-ACCESS read-only
+ DESCRIPTION "Write access is not required."
+
+ OBJECT vacmAccessStorageType
+ MIN-ACCESS read-only
+ DESCRIPTION "Write access is not required."
+
+ OBJECT vacmAccessStatus
+ MIN-ACCESS read-only
+ DESCRIPTION "Create/delete/modify access to the
+
+ vacmAccessTable is not required.
+ "
+
+ OBJECT vacmViewTreeFamilyMask
+ WRITE-SYNTAX OCTET STRING (SIZE (0))
+ MIN-ACCESS read-only
+ DESCRIPTION "Support for configuration via SNMP of subtree
+ families using wild-cards is not required.
+ "
+
+ OBJECT vacmViewTreeFamilyType
+ MIN-ACCESS read-only
+ DESCRIPTION "Write access is not required."
+
+ OBJECT vacmViewTreeFamilyStorageType
+ MIN-ACCESS read-only
+ DESCRIPTION "Write access is not required."
+
+ OBJECT vacmViewTreeFamilyStatus
+ MIN-ACCESS read-only
+ DESCRIPTION "Create/delete/modify access to the
+ vacmViewTreeFamilyTable is not required.
+ "
+ ::= { vacmMIBCompliances 1 }
+
+-- Units of conformance **********************************************
+
+vacmBasicGroup OBJECT-GROUP
+ OBJECTS {
+ vacmContextName,
+ vacmGroupName,
+ vacmSecurityToGroupStorageType,
+ vacmSecurityToGroupStatus,
+ vacmAccessContextMatch,
+ vacmAccessReadViewName,
+ vacmAccessWriteViewName,
+ vacmAccessNotifyViewName,
+ vacmAccessStorageType,
+ vacmAccessStatus,
+ vacmViewSpinLock,
+ vacmViewTreeFamilyMask,
+ vacmViewTreeFamilyType,
+ vacmViewTreeFamilyStorageType,
+ vacmViewTreeFamilyStatus
+ }
+ STATUS current
+ DESCRIPTION "A collection of objects providing for remote
+ configuration of an SNMP engine which implements
+
+ the SNMP View-based Access Control Model.
+ "
+ ::= { vacmMIBGroups 1 }
+
+END
diff --git a/php/extras/mibs/SNMPv2-CONF.txt b/php/extras/mibs/SNMPv2-CONF.txt
new file mode 100644
index 000000000..24a1eed95
--- /dev/null
+++ b/php/extras/mibs/SNMPv2-CONF.txt
@@ -0,0 +1,322 @@
+SNMPv2-CONF DEFINITIONS ::= BEGIN
+
+IMPORTS ObjectName, NotificationName, ObjectSyntax
+ FROM SNMPv2-SMI;
+
+-- definitions for conformance groups
+
+OBJECT-GROUP MACRO ::=
+BEGIN
+ TYPE NOTATION ::=
+ ObjectsPart
+ "STATUS" Status
+ "DESCRIPTION" Text
+ ReferPart
+
+ VALUE NOTATION ::=
+ value(VALUE OBJECT IDENTIFIER)
+
+ ObjectsPart ::=
+ "OBJECTS" "{" Objects "}"
+ Objects ::=
+ Object
+ | Objects "," Object
+ Object ::=
+
+ value(ObjectName)
+
+ Status ::=
+ "current"
+ | "deprecated"
+ | "obsolete"
+
+ ReferPart ::=
+ "REFERENCE" Text
+ | empty
+
+ -- a character string as defined in [2]
+ Text ::= value(IA5String)
+END
+
+-- more definitions for conformance groups
+
+NOTIFICATION-GROUP MACRO ::=
+BEGIN
+ TYPE NOTATION ::=
+ NotificationsPart
+ "STATUS" Status
+ "DESCRIPTION" Text
+ ReferPart
+
+ VALUE NOTATION ::=
+ value(VALUE OBJECT IDENTIFIER)
+
+ NotificationsPart ::=
+ "NOTIFICATIONS" "{" Notifications "}"
+ Notifications ::=
+ Notification
+ | Notifications "," Notification
+ Notification ::=
+ value(NotificationName)
+
+ Status ::=
+ "current"
+ | "deprecated"
+ | "obsolete"
+
+ ReferPart ::=
+ "REFERENCE" Text
+ | empty
+
+ -- a character string as defined in [2]
+ Text ::= value(IA5String)
+END
+
+-- definitions for compliance statements
+
+MODULE-COMPLIANCE MACRO ::=
+BEGIN
+ TYPE NOTATION ::=
+ "STATUS" Status
+ "DESCRIPTION" Text
+ ReferPart
+ ModulePart
+
+ VALUE NOTATION ::=
+ value(VALUE OBJECT IDENTIFIER)
+
+ Status ::=
+ "current"
+ | "deprecated"
+ | "obsolete"
+
+ ReferPart ::=
+ "REFERENCE" Text
+ | empty
+
+ ModulePart ::=
+ Modules
+ Modules ::=
+ Module
+ | Modules Module
+ Module ::=
+ -- name of module --
+ "MODULE" ModuleName
+ MandatoryPart
+ CompliancePart
+
+ ModuleName ::=
+ -- identifier must start with uppercase letter
+ identifier ModuleIdentifier
+ -- must not be empty unless contained
+ -- in MIB Module
+ | empty
+ ModuleIdentifier ::=
+ value(OBJECT IDENTIFIER)
+ | empty
+
+ MandatoryPart ::=
+ "MANDATORY-GROUPS" "{" Groups "}"
+ | empty
+
+ Groups ::=
+
+ Group
+ | Groups "," Group
+ Group ::=
+ value(OBJECT IDENTIFIER)
+
+ CompliancePart ::=
+ Compliances
+ | empty
+
+ Compliances ::=
+ Compliance
+ | Compliances Compliance
+ Compliance ::=
+ ComplianceGroup
+ | Object
+
+ ComplianceGroup ::=
+ "GROUP" value(OBJECT IDENTIFIER)
+ "DESCRIPTION" Text
+
+ Object ::=
+ "OBJECT" value(ObjectName)
+ SyntaxPart
+ WriteSyntaxPart
+ AccessPart
+ "DESCRIPTION" Text
+
+ -- must be a refinement for object's SYNTAX clause
+ SyntaxPart ::= "SYNTAX" Syntax
+ | empty
+
+ -- must be a refinement for object's SYNTAX clause
+ WriteSyntaxPart ::= "WRITE-SYNTAX" Syntax
+ | empty
+
+ Syntax ::= -- Must be one of the following:
+ -- a base type (or its refinement),
+ -- a textual convention (or its refinement), or
+ -- a BITS pseudo-type
+ type
+ | "BITS" "{" NamedBits "}"
+
+ NamedBits ::= NamedBit
+ | NamedBits "," NamedBit
+
+ NamedBit ::= identifier "(" number ")" -- number is nonnegative
+
+ AccessPart ::=
+ "MIN-ACCESS" Access
+ | empty
+ Access ::=
+ "not-accessible"
+ | "accessible-for-notify"
+ | "read-only"
+ | "read-write"
+ | "read-create"
+
+ -- a character string as defined in [2]
+ Text ::= value(IA5String)
+END
+
+-- definitions for capabilities statements
+
+AGENT-CAPABILITIES MACRO ::=
+BEGIN
+ TYPE NOTATION ::=
+ "PRODUCT-RELEASE" Text
+ "STATUS" Status
+ "DESCRIPTION" Text
+ ReferPart
+ ModulePart
+
+ VALUE NOTATION ::=
+ value(VALUE OBJECT IDENTIFIER)
+
+ Status ::=
+ "current"
+ | "obsolete"
+
+ ReferPart ::=
+ "REFERENCE" Text
+ | empty
+
+ ModulePart ::=
+ Modules
+ | empty
+ Modules ::=
+ Module
+ | Modules Module
+ Module ::=
+ -- name of module --
+ "SUPPORTS" ModuleName
+ "INCLUDES" "{" Groups "}"
+ VariationPart
+
+ ModuleName ::=
+
+ -- identifier must start with uppercase letter
+ identifier ModuleIdentifier
+ ModuleIdentifier ::=
+ value(OBJECT IDENTIFIER)
+ | empty
+
+ Groups ::=
+ Group
+ | Groups "," Group
+ Group ::=
+ value(OBJECT IDENTIFIER)
+
+ VariationPart ::=
+ Variations
+ | empty
+ Variations ::=
+ Variation
+ | Variations Variation
+
+ Variation ::=
+ ObjectVariation
+ | NotificationVariation
+
+ NotificationVariation ::=
+ "VARIATION" value(NotificationName)
+ AccessPart
+ "DESCRIPTION" Text
+
+ ObjectVariation ::=
+ "VARIATION" value(ObjectName)
+ SyntaxPart
+ WriteSyntaxPart
+ AccessPart
+ CreationPart
+ DefValPart
+ "DESCRIPTION" Text
+
+ -- must be a refinement for object's SYNTAX clause
+ SyntaxPart ::= "SYNTAX" Syntax
+ | empty
+
+ WriteSyntaxPart ::= "WRITE-SYNTAX" Syntax
+ | empty
+
+ Syntax ::= -- Must be one of the following:
+ -- a base type (or its refinement),
+ -- a textual convention (or its refinement), or
+ -- a BITS pseudo-type
+
+ type
+ | "BITS" "{" NamedBits "}"
+
+ NamedBits ::= NamedBit
+ | NamedBits "," NamedBit
+
+ NamedBit ::= identifier "(" number ")" -- number is nonnegative
+
+ AccessPart ::=
+ "ACCESS" Access
+ | empty
+
+ Access ::=
+ "not-implemented"
+ -- only "not-implemented" for notifications
+ | "accessible-for-notify"
+ | "read-only"
+ | "read-write"
+ | "read-create"
+ -- following is for backward-compatibility only
+ | "write-only"
+
+ CreationPart ::=
+ "CREATION-REQUIRES" "{" Cells "}"
+ | empty
+ Cells ::=
+ Cell
+ | Cells "," Cell
+ Cell ::=
+ value(ObjectName)
+
+ DefValPart ::= "DEFVAL" "{" Defvalue "}"
+ | empty
+
+ Defvalue ::= -- must be valid for the object's syntax
+ -- in this macro's SYNTAX clause, if present,
+ -- or if not, in object's OBJECT-TYPE macro
+ value(ObjectSyntax)
+ | "{" BitsValue "}"
+
+ BitsValue ::= BitNames
+ | empty
+
+ BitNames ::= BitName
+ | BitNames "," BitName
+
+ BitName ::= identifier
+
+ -- a character string as defined in [2]
+ Text ::= value(IA5String)
+END
+
+END
diff --git a/php/extras/mibs/SNMPv2-MIB.txt b/php/extras/mibs/SNMPv2-MIB.txt
new file mode 100644
index 000000000..8c828305e
--- /dev/null
+++ b/php/extras/mibs/SNMPv2-MIB.txt
@@ -0,0 +1,854 @@
+SNMPv2-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
+ TimeTicks, Counter32, snmpModules, mib-2
+ FROM SNMPv2-SMI
+ DisplayString, TestAndIncr, TimeStamp
+
+ FROM SNMPv2-TC
+ MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
+ FROM SNMPv2-CONF;
+
+snmpMIB MODULE-IDENTITY
+ LAST-UPDATED "200210160000Z"
+ ORGANIZATION "IETF SNMPv3 Working Group"
+ CONTACT-INFO
+ "WG-EMail: snmpv3@lists.tislabs.com
+ Subscribe: snmpv3-request@lists.tislabs.com
+
+ Co-Chair: Russ Mundy
+ Network Associates Laboratories
+ postal: 15204 Omega Drive, Suite 300
+ Rockville, MD 20850-4601
+ USA
+ EMail: mundy@tislabs.com
+ phone: +1 301 947-7107
+
+ Co-Chair: David Harrington
+ Enterasys Networks
+ postal: 35 Industrial Way
+ P. O. Box 5005
+ Rochester, NH 03866-5005
+ USA
+ EMail: dbh@enterasys.com
+ phone: +1 603 337-2614
+
+ Editor: Randy Presuhn
+ BMC Software, Inc.
+ postal: 2141 North First Street
+ San Jose, CA 95131
+ USA
+ EMail: randy_presuhn@bmc.com
+ phone: +1 408 546-1006"
+ DESCRIPTION
+ "The MIB module for SNMP entities.
+
+ Copyright (C) The Internet Society (2002). This
+ version of this MIB module is part of RFC 3418;
+ see the RFC itself for full legal notices.
+ "
+ REVISION "200210160000Z"
+ DESCRIPTION
+ "This revision of this MIB module was published as
+ RFC 3418."
+ REVISION "199511090000Z"
+ DESCRIPTION
+ "This revision of this MIB module was published as
+ RFC 1907."
+ REVISION "199304010000Z"
+ DESCRIPTION
+ "The initial revision of this MIB module was published
+ as RFC 1450."
+ ::= { snmpModules 1 }
+
+snmpMIBObjects OBJECT IDENTIFIER ::= { snmpMIB 1 }
+
+-- ::= { snmpMIBObjects 1 } this OID is obsolete
+-- ::= { snmpMIBObjects 2 } this OID is obsolete
+-- ::= { snmpMIBObjects 3 } this OID is obsolete
+
+-- the System group
+--
+-- a collection of objects common to all managed systems.
+
+system OBJECT IDENTIFIER ::= { mib-2 1 }
+
+sysDescr OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..255))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A textual description of the entity. This value should
+ include the full name and version identification of
+ the system's hardware type, software operating-system,
+ and networking software."
+ ::= { system 1 }
+
+sysObjectID OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The vendor's authoritative identification of the
+ network management subsystem contained in the entity.
+ This value is allocated within the SMI enterprises
+ subtree (1.3.6.1.4.1) and provides an easy and
+ unambiguous means for determining `what kind of box' is
+ being managed. For example, if vendor `Flintstones,
+ Inc.' was assigned the subtree 1.3.6.1.4.1.424242,
+ it could assign the identifier 1.3.6.1.4.1.424242.1.1
+ to its `Fred Router'."
+ ::= { system 2 }
+
+sysUpTime OBJECT-TYPE
+ SYNTAX TimeTicks
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The time (in hundredths of a second) since the
+ network management portion of the system was last
+ re-initialized."
+ ::= { system 3 }
+
+sysContact OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..255))
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The textual identification of the contact person for
+ this managed node, together with information on how
+ to contact this person. If no contact information is
+ known, the value is the zero-length string."
+ ::= { system 4 }
+
+sysName OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..255))
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "An administratively-assigned name for this managed
+ node. By convention, this is the node's fully-qualified
+ domain name. If the name is unknown, the value is
+ the zero-length string."
+ ::= { system 5 }
+
+sysLocation OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..255))
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The physical location of this node (e.g., 'telephone
+ closet, 3rd floor'). If the location is unknown, the
+ value is the zero-length string."
+ ::= { system 6 }
+
+sysServices OBJECT-TYPE
+ SYNTAX INTEGER (0..127)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A value which indicates the set of services that this
+ entity may potentially offer. The value is a sum.
+
+ This sum initially takes the value zero. Then, for
+ each layer, L, in the range 1 through 7, that this node
+ performs transactions for, 2 raised to (L - 1) is added
+ to the sum. For example, a node which performs only
+ routing functions would have a value of 4 (2^(3-1)).
+ In contrast, a node which is a host offering application
+ services would have a value of 72 (2^(4-1) + 2^(7-1)).
+ Note that in the context of the Internet suite of
+ protocols, values should be calculated accordingly:
+
+ layer functionality
+ 1 physical (e.g., repeaters)
+ 2 datalink/subnetwork (e.g., bridges)
+ 3 internet (e.g., supports the IP)
+ 4 end-to-end (e.g., supports the TCP)
+ 7 applications (e.g., supports the SMTP)
+
+ For systems including OSI protocols, layers 5 and 6
+ may also be counted."
+ ::= { system 7 }
+
+-- object resource information
+--
+-- a collection of objects which describe the SNMP entity's
+-- (statically and dynamically configurable) support of
+-- various MIB modules.
+
+sysORLastChange OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime at the time of the most recent
+ change in state or value of any instance of sysORID."
+ ::= { system 8 }
+
+sysORTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SysOREntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The (conceptual) table listing the capabilities of
+ the local SNMP application acting as a command
+ responder with respect to various MIB modules.
+ SNMP entities having dynamically-configurable support
+ of MIB modules will have a dynamically-varying number
+ of conceptual rows."
+ ::= { system 9 }
+
+sysOREntry OBJECT-TYPE
+ SYNTAX SysOREntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry (conceptual row) in the sysORTable."
+ INDEX { sysORIndex }
+ ::= { sysORTable 1 }
+
+SysOREntry ::= SEQUENCE {
+ sysORIndex INTEGER,
+ sysORID OBJECT IDENTIFIER,
+ sysORDescr DisplayString,
+ sysORUpTime TimeStamp
+}
+
+sysORIndex OBJECT-TYPE
+ SYNTAX INTEGER (1..2147483647)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The auxiliary variable used for identifying instances
+ of the columnar objects in the sysORTable."
+ ::= { sysOREntry 1 }
+
+sysORID OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An authoritative identification of a capabilities
+ statement with respect to various MIB modules supported
+ by the local SNMP application acting as a command
+ responder."
+ ::= { sysOREntry 2 }
+
+sysORDescr OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A textual description of the capabilities identified
+ by the corresponding instance of sysORID."
+ ::= { sysOREntry 3 }
+
+sysORUpTime OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime at the time this conceptual
+ row was last instantiated."
+ ::= { sysOREntry 4 }
+
+-- the SNMP group
+--
+-- a collection of objects providing basic instrumentation and
+-- control of an SNMP entity.
+
+snmp OBJECT IDENTIFIER ::= { mib-2 11 }
+
+snmpInPkts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of messages delivered to the SNMP
+ entity from the transport service."
+ ::= { snmp 1 }
+
+snmpInBadVersions OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of SNMP messages which were delivered
+ to the SNMP entity and were for an unsupported SNMP
+ version."
+ ::= { snmp 3 }
+
+snmpInBadCommunityNames OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of community-based SNMP messages (for
+ example, SNMPv1) delivered to the SNMP entity which
+ used an SNMP community name not known to said entity.
+ Also, implementations which authenticate community-based
+ SNMP messages using check(s) in addition to matching
+ the community name (for example, by also checking
+ whether the message originated from a transport address
+ allowed to use a specified community name) MAY include
+ in this value the number of messages which failed the
+ additional check(s). It is strongly RECOMMENDED that
+
+ the documentation for any security model which is used
+ to authenticate community-based SNMP messages specify
+ the precise conditions that contribute to this value."
+ ::= { snmp 4 }
+
+snmpInBadCommunityUses OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of community-based SNMP messages (for
+ example, SNMPv1) delivered to the SNMP entity which
+ represented an SNMP operation that was not allowed for
+ the SNMP community named in the message. The precise
+ conditions under which this counter is incremented
+ (if at all) depend on how the SNMP entity implements
+ its access control mechanism and how its applications
+ interact with that access control mechanism. It is
+ strongly RECOMMENDED that the documentation for any
+ access control mechanism which is used to control access
+ to and visibility of MIB instrumentation specify the
+ precise conditions that contribute to this value."
+ ::= { snmp 5 }
+
+snmpInASNParseErrs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of ASN.1 or BER errors encountered by
+ the SNMP entity when decoding received SNMP messages."
+ ::= { snmp 6 }
+
+snmpEnableAuthenTraps OBJECT-TYPE
+ SYNTAX INTEGER { enabled(1), disabled(2) }
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "Indicates whether the SNMP entity is permitted to
+ generate authenticationFailure traps. The value of this
+ object overrides any configuration information; as such,
+ it provides a means whereby all authenticationFailure
+ traps may be disabled.
+
+ Note that it is strongly recommended that this object
+ be stored in non-volatile memory so that it remains
+ constant across re-initializations of the network
+ management system."
+ ::= { snmp 30 }
+
+snmpSilentDrops OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of Confirmed Class PDUs (such as
+ GetRequest-PDUs, GetNextRequest-PDUs,
+ GetBulkRequest-PDUs, SetRequest-PDUs, and
+ InformRequest-PDUs) delivered to the SNMP entity which
+ were silently dropped because the size of a reply
+ containing an alternate Response Class PDU (such as a
+ Response-PDU) with an empty variable-bindings field
+ was greater than either a local constraint or the
+ maximum message size associated with the originator of
+ the request."
+ ::= { snmp 31 }
+
+snmpProxyDrops OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of Confirmed Class PDUs
+ (such as GetRequest-PDUs, GetNextRequest-PDUs,
+ GetBulkRequest-PDUs, SetRequest-PDUs, and
+ InformRequest-PDUs) delivered to the SNMP entity which
+ were silently dropped because the transmission of
+ the (possibly translated) message to a proxy target
+ failed in a manner (other than a time-out) such that
+ no Response Class PDU (such as a Response-PDU) could
+ be returned."
+ ::= { snmp 32 }
+
+-- information for notifications
+--
+-- a collection of objects which allow the SNMP entity, when
+-- supporting a notification originator application,
+-- to be configured to generate SNMPv2-Trap-PDUs.
+
+snmpTrap OBJECT IDENTIFIER ::= { snmpMIBObjects 4 }
+
+snmpTrapOID OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS accessible-for-notify
+ STATUS current
+ DESCRIPTION
+ "The authoritative identification of the notification
+ currently being sent. This variable occurs as
+ the second varbind in every SNMPv2-Trap-PDU and
+ InformRequest-PDU."
+ ::= { snmpTrap 1 }
+
+-- ::= { snmpTrap 2 } this OID is obsolete
+
+snmpTrapEnterprise OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS accessible-for-notify
+ STATUS current
+ DESCRIPTION
+ "The authoritative identification of the enterprise
+ associated with the trap currently being sent. When an
+ SNMP proxy agent is mapping an RFC1157 Trap-PDU
+ into a SNMPv2-Trap-PDU, this variable occurs as the
+ last varbind."
+ ::= { snmpTrap 3 }
+
+-- ::= { snmpTrap 4 } this OID is obsolete
+
+-- well-known traps
+
+snmpTraps OBJECT IDENTIFIER ::= { snmpMIBObjects 5 }
+
+coldStart NOTIFICATION-TYPE
+ STATUS current
+ DESCRIPTION
+ "A coldStart trap signifies that the SNMP entity,
+ supporting a notification originator application, is
+ reinitializing itself and that its configuration may
+ have been altered."
+ ::= { snmpTraps 1 }
+
+warmStart NOTIFICATION-TYPE
+ STATUS current
+ DESCRIPTION
+ "A warmStart trap signifies that the SNMP entity,
+ supporting a notification originator application,
+ is reinitializing itself such that its configuration
+ is unaltered."
+ ::= { snmpTraps 2 }
+
+-- Note the linkDown NOTIFICATION-TYPE ::= { snmpTraps 3 }
+-- and the linkUp NOTIFICATION-TYPE ::= { snmpTraps 4 }
+-- are defined in RFC 2863 [RFC2863]
+
+authenticationFailure NOTIFICATION-TYPE
+ STATUS current
+ DESCRIPTION
+ "An authenticationFailure trap signifies that the SNMP
+ entity has received a protocol message that is not
+ properly authenticated. While all implementations
+ of SNMP entities MAY be capable of generating this
+ trap, the snmpEnableAuthenTraps object indicates
+ whether this trap will be generated."
+ ::= { snmpTraps 5 }
+
+-- Note the egpNeighborLoss notification is defined
+-- as { snmpTraps 6 } in RFC 1213
+
+-- the set group
+--
+-- a collection of objects which allow several cooperating
+-- command generator applications to coordinate their use of the
+-- set operation.
+
+snmpSet OBJECT IDENTIFIER ::= { snmpMIBObjects 6 }
+
+snmpSetSerialNo OBJECT-TYPE
+ SYNTAX TestAndIncr
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "An advisory lock used to allow several cooperating
+ command generator applications to coordinate their
+ use of the SNMP set operation.
+
+ This object is used for coarse-grain coordination.
+ To achieve fine-grain coordination, one or more similar
+ objects might be defined within each MIB group, as
+ appropriate."
+ ::= { snmpSet 1 }
+
+-- conformance information
+
+snmpMIBConformance
+ OBJECT IDENTIFIER ::= { snmpMIB 2 }
+
+snmpMIBCompliances
+ OBJECT IDENTIFIER ::= { snmpMIBConformance 1 }
+snmpMIBGroups OBJECT IDENTIFIER ::= { snmpMIBConformance 2 }
+
+-- compliance statements
+
+-- ::= { snmpMIBCompliances 1 } this OID is obsolete
+snmpBasicCompliance MODULE-COMPLIANCE
+ STATUS deprecated
+ DESCRIPTION
+ "The compliance statement for SNMPv2 entities which
+ implement the SNMPv2 MIB.
+
+ This compliance statement is replaced by
+ snmpBasicComplianceRev2."
+ MODULE -- this module
+ MANDATORY-GROUPS { snmpGroup, snmpSetGroup, systemGroup,
+ snmpBasicNotificationsGroup }
+
+ GROUP snmpCommunityGroup
+ DESCRIPTION
+ "This group is mandatory for SNMPv2 entities which
+ support community-based authentication."
+ ::= { snmpMIBCompliances 2 }
+
+snmpBasicComplianceRev2 MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for SNMP entities which
+ implement this MIB module."
+ MODULE -- this module
+ MANDATORY-GROUPS { snmpGroup, snmpSetGroup, systemGroup,
+ snmpBasicNotificationsGroup }
+
+ GROUP snmpCommunityGroup
+ DESCRIPTION
+ "This group is mandatory for SNMP entities which
+ support community-based authentication."
+
+ GROUP snmpWarmStartNotificationGroup
+ DESCRIPTION
+ "This group is mandatory for an SNMP entity which
+ supports command responder applications, and is
+ able to reinitialize itself such that its
+ configuration is unaltered."
+ ::= { snmpMIBCompliances 3 }
+
+-- units of conformance
+
+-- ::= { snmpMIBGroups 1 } this OID is obsolete
+-- ::= { snmpMIBGroups 2 } this OID is obsolete
+-- ::= { snmpMIBGroups 3 } this OID is obsolete
+
+-- ::= { snmpMIBGroups 4 } this OID is obsolete
+
+snmpGroup OBJECT-GROUP
+ OBJECTS { snmpInPkts,
+ snmpInBadVersions,
+ snmpInASNParseErrs,
+ snmpSilentDrops,
+ snmpProxyDrops,
+ snmpEnableAuthenTraps }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing basic instrumentation
+ and control of an SNMP entity."
+ ::= { snmpMIBGroups 8 }
+
+snmpCommunityGroup OBJECT-GROUP
+ OBJECTS { snmpInBadCommunityNames,
+ snmpInBadCommunityUses }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing basic instrumentation
+ of a SNMP entity which supports community-based
+ authentication."
+ ::= { snmpMIBGroups 9 }
+
+snmpSetGroup OBJECT-GROUP
+ OBJECTS { snmpSetSerialNo }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects which allow several cooperating
+ command generator applications to coordinate their
+ use of the set operation."
+ ::= { snmpMIBGroups 5 }
+
+systemGroup OBJECT-GROUP
+ OBJECTS { sysDescr, sysObjectID, sysUpTime,
+ sysContact, sysName, sysLocation,
+ sysServices,
+ sysORLastChange, sysORID,
+ sysORUpTime, sysORDescr }
+ STATUS current
+ DESCRIPTION
+ "The system group defines objects which are common to all
+ managed systems."
+ ::= { snmpMIBGroups 6 }
+
+snmpBasicNotificationsGroup NOTIFICATION-GROUP
+ NOTIFICATIONS { coldStart, authenticationFailure }
+ STATUS current
+ DESCRIPTION
+ "The basic notifications implemented by an SNMP entity
+ supporting command responder applications."
+ ::= { snmpMIBGroups 7 }
+
+snmpWarmStartNotificationGroup NOTIFICATION-GROUP
+ NOTIFICATIONS { warmStart }
+ STATUS current
+ DESCRIPTION
+ "An additional notification for an SNMP entity supporting
+ command responder applications, if it is able to reinitialize
+ itself such that its configuration is unaltered."
+ ::= { snmpMIBGroups 11 }
+
+snmpNotificationGroup OBJECT-GROUP
+ OBJECTS { snmpTrapOID, snmpTrapEnterprise }
+ STATUS current
+ DESCRIPTION
+ "These objects are required for entities
+ which support notification originator applications."
+ ::= { snmpMIBGroups 12 }
+
+-- definitions in RFC 1213 made obsolete by the inclusion of a
+-- subset of the snmp group in this MIB
+
+snmpOutPkts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP Messages which were
+ passed from the SNMP protocol entity to the
+ transport service."
+ ::= { snmp 2 }
+
+-- { snmp 7 } is not used
+
+snmpInTooBigs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP PDUs which were
+ delivered to the SNMP protocol entity and for
+ which the value of the error-status field was
+ `tooBig'."
+ ::= { snmp 8 }
+
+snmpInNoSuchNames OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP PDUs which were
+ delivered to the SNMP protocol entity and for
+ which the value of the error-status field was
+ `noSuchName'."
+ ::= { snmp 9 }
+
+snmpInBadValues OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP PDUs which were
+ delivered to the SNMP protocol entity and for
+ which the value of the error-status field was
+ `badValue'."
+ ::= { snmp 10 }
+
+snmpInReadOnlys OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number valid SNMP PDUs which were delivered
+ to the SNMP protocol entity and for which the value
+ of the error-status field was `readOnly'. It should
+ be noted that it is a protocol error to generate an
+ SNMP PDU which contains the value `readOnly' in the
+ error-status field, as such this object is provided
+ as a means of detecting incorrect implementations of
+ the SNMP."
+ ::= { snmp 11 }
+
+snmpInGenErrs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP PDUs which were delivered
+ to the SNMP protocol entity and for which the value
+ of the error-status field was `genErr'."
+ ::= { snmp 12 }
+
+snmpInTotalReqVars OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of MIB objects which have been
+ retrieved successfully by the SNMP protocol entity
+ as the result of receiving valid SNMP Get-Request
+ and Get-Next PDUs."
+ ::= { snmp 13 }
+
+snmpInTotalSetVars OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of MIB objects which have been
+ altered successfully by the SNMP protocol entity as
+ the result of receiving valid SNMP Set-Request PDUs."
+ ::= { snmp 14 }
+
+snmpInGetRequests OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP Get-Request PDUs which
+ have been accepted and processed by the SNMP
+ protocol entity."
+ ::= { snmp 15 }
+
+snmpInGetNexts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP Get-Next PDUs which have been
+ accepted and processed by the SNMP protocol entity."
+ ::= { snmp 16 }
+
+snmpInSetRequests OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP Set-Request PDUs which
+ have been accepted and processed by the SNMP protocol
+ entity."
+ ::= { snmp 17 }
+
+snmpInGetResponses OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP Get-Response PDUs which
+ have been accepted and processed by the SNMP protocol
+ entity."
+ ::= { snmp 18 }
+
+snmpInTraps OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP Trap PDUs which have been
+ accepted and processed by the SNMP protocol entity."
+ ::= { snmp 19 }
+
+snmpOutTooBigs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP PDUs which were generated
+ by the SNMP protocol entity and for which the value
+ of the error-status field was `tooBig.'"
+ ::= { snmp 20 }
+
+snmpOutNoSuchNames OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP PDUs which were generated
+ by the SNMP protocol entity and for which the value
+ of the error-status was `noSuchName'."
+ ::= { snmp 21 }
+
+snmpOutBadValues OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP PDUs which were generated
+ by the SNMP protocol entity and for which the value
+ of the error-status field was `badValue'."
+ ::= { snmp 22 }
+
+-- { snmp 23 } is not used
+
+snmpOutGenErrs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP PDUs which were generated
+ by the SNMP protocol entity and for which the value
+ of the error-status field was `genErr'."
+ ::= { snmp 24 }
+
+snmpOutGetRequests OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP Get-Request PDUs which
+ have been generated by the SNMP protocol entity."
+ ::= { snmp 25 }
+
+snmpOutGetNexts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP Get-Next PDUs which have
+ been generated by the SNMP protocol entity."
+ ::= { snmp 26 }
+
+snmpOutSetRequests OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP Set-Request PDUs which
+ have been generated by the SNMP protocol entity."
+ ::= { snmp 27 }
+
+snmpOutGetResponses OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP Get-Response PDUs which
+ have been generated by the SNMP protocol entity."
+ ::= { snmp 28 }
+
+snmpOutTraps OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP Trap PDUs which have
+ been generated by the SNMP protocol entity."
+ ::= { snmp 29 }
+
+snmpObsoleteGroup OBJECT-GROUP
+ OBJECTS { snmpOutPkts, snmpInTooBigs, snmpInNoSuchNames,
+ snmpInBadValues, snmpInReadOnlys, snmpInGenErrs,
+ snmpInTotalReqVars, snmpInTotalSetVars,
+ snmpInGetRequests, snmpInGetNexts, snmpInSetRequests,
+ snmpInGetResponses, snmpInTraps, snmpOutTooBigs,
+ snmpOutNoSuchNames, snmpOutBadValues,
+ snmpOutGenErrs, snmpOutGetRequests, snmpOutGetNexts,
+ snmpOutSetRequests, snmpOutGetResponses, snmpOutTraps
+ }
+ STATUS obsolete
+ DESCRIPTION
+ "A collection of objects from RFC 1213 made obsolete
+ by this MIB module."
+ ::= { snmpMIBGroups 10 }
+
+END
diff --git a/php/extras/mibs/SNMPv2-SMI.txt b/php/extras/mibs/SNMPv2-SMI.txt
new file mode 100644
index 000000000..1c01e1dfc
--- /dev/null
+++ b/php/extras/mibs/SNMPv2-SMI.txt
@@ -0,0 +1,344 @@
+SNMPv2-SMI DEFINITIONS ::= BEGIN
+
+-- the path to the root
+
+org OBJECT IDENTIFIER ::= { iso 3 } -- "iso" = 1
+dod OBJECT IDENTIFIER ::= { org 6 }
+internet OBJECT IDENTIFIER ::= { dod 1 }
+
+directory OBJECT IDENTIFIER ::= { internet 1 }
+
+mgmt OBJECT IDENTIFIER ::= { internet 2 }
+mib-2 OBJECT IDENTIFIER ::= { mgmt 1 }
+transmission OBJECT IDENTIFIER ::= { mib-2 10 }
+
+experimental OBJECT IDENTIFIER ::= { internet 3 }
+
+private OBJECT IDENTIFIER ::= { internet 4 }
+enterprises OBJECT IDENTIFIER ::= { private 1 }
+
+security OBJECT IDENTIFIER ::= { internet 5 }
+
+snmpV2 OBJECT IDENTIFIER ::= { internet 6 }
+
+-- transport domains
+snmpDomains OBJECT IDENTIFIER ::= { snmpV2 1 }
+
+-- transport proxies
+snmpProxys OBJECT IDENTIFIER ::= { snmpV2 2 }
+
+-- module identities
+snmpModules OBJECT IDENTIFIER ::= { snmpV2 3 }
+
+-- Extended UTCTime, to allow dates with four-digit years
+-- (Note that this definition of ExtUTCTime is not to be IMPORTed
+-- by MIB modules.)
+ExtUTCTime ::= OCTET STRING(SIZE(11 | 13))
+ -- format is YYMMDDHHMMZ or YYYYMMDDHHMMZ
+
+ -- where: YY - last two digits of year (only years
+ -- between 1900-1999)
+ -- YYYY - last four digits of the year (any year)
+ -- MM - month (01 through 12)
+ -- DD - day of month (01 through 31)
+ -- HH - hours (00 through 23)
+ -- MM - minutes (00 through 59)
+ -- Z - denotes GMT (the ASCII character Z)
+ --
+ -- For example, "9502192015Z" and "199502192015Z" represent
+ -- 8:15pm GMT on 19 February 1995. Years after 1999 must use
+ -- the four digit year format. Years 1900-1999 may use the
+ -- two or four digit format.
+
+-- definitions for information modules
+
+MODULE-IDENTITY MACRO ::=
+BEGIN
+ TYPE NOTATION ::=
+ "LAST-UPDATED" value(Update ExtUTCTime)
+ "ORGANIZATION" Text
+ "CONTACT-INFO" Text
+ "DESCRIPTION" Text
+ RevisionPart
+
+ VALUE NOTATION ::=
+ value(VALUE OBJECT IDENTIFIER)
+
+ RevisionPart ::=
+ Revisions
+ | empty
+ Revisions ::=
+ Revision
+ | Revisions Revision
+ Revision ::=
+ "REVISION" value(Update ExtUTCTime)
+ "DESCRIPTION" Text
+
+ -- a character string as defined in section 3.1.1
+ Text ::= value(IA5String)
+END
+
+OBJECT-IDENTITY MACRO ::=
+BEGIN
+ TYPE NOTATION ::=
+ "STATUS" Status
+ "DESCRIPTION" Text
+
+ ReferPart
+
+ VALUE NOTATION ::=
+ value(VALUE OBJECT IDENTIFIER)
+
+ Status ::=
+ "current"
+ | "deprecated"
+ | "obsolete"
+
+ ReferPart ::=
+ "REFERENCE" Text
+ | empty
+
+ -- a character string as defined in section 3.1.1
+ Text ::= value(IA5String)
+END
+
+-- names of objects
+-- (Note that these definitions of ObjectName and NotificationName
+-- are not to be IMPORTed by MIB modules.)
+
+ObjectName ::=
+ OBJECT IDENTIFIER
+
+NotificationName ::=
+ OBJECT IDENTIFIER
+
+-- syntax of objects
+
+-- the "base types" defined here are:
+-- 3 built-in ASN.1 types: INTEGER, OCTET STRING, OBJECT IDENTIFIER
+-- 8 application-defined types: Integer32, IpAddress, Counter32,
+-- Gauge32, Unsigned32, TimeTicks, Opaque, and Counter64
+
+ObjectSyntax ::=
+ CHOICE {
+ simple
+ SimpleSyntax,
+ -- note that SEQUENCEs for conceptual tables and
+ -- rows are not mentioned here...
+
+ application-wide
+ ApplicationSyntax
+ }
+
+-- built-in ASN.1 types
+
+SimpleSyntax ::=
+ CHOICE {
+ -- INTEGERs with a more restrictive range
+ -- may also be used
+ integer-value -- includes Integer32
+ INTEGER (-2147483648..2147483647),
+ -- OCTET STRINGs with a more restrictive size
+ -- may also be used
+ string-value
+ OCTET STRING (SIZE (0..65535)),
+ objectID-value
+ OBJECT IDENTIFIER
+ }
+
+-- indistinguishable from INTEGER, but never needs more than
+-- 32-bits for a two's complement representation
+Integer32 ::=
+ INTEGER (-2147483648..2147483647)
+
+-- application-wide types
+
+ApplicationSyntax ::=
+ CHOICE {
+ ipAddress-value
+ IpAddress,
+ counter-value
+ Counter32,
+ timeticks-value
+ TimeTicks,
+ arbitrary-value
+ Opaque,
+ big-counter-value
+ Counter64,
+ unsigned-integer-value -- includes Gauge32
+ Unsigned32
+ }
+
+-- in network-byte order
+
+-- (this is a tagged type for historical reasons)
+IpAddress ::=
+ [APPLICATION 0]
+ IMPLICIT OCTET STRING (SIZE (4))
+
+-- this wraps
+Counter32 ::=
+ [APPLICATION 1]
+ IMPLICIT INTEGER (0..4294967295)
+
+-- this doesn't wrap
+Gauge32 ::=
+ [APPLICATION 2]
+ IMPLICIT INTEGER (0..4294967295)
+
+-- an unsigned 32-bit quantity
+-- indistinguishable from Gauge32
+Unsigned32 ::=
+ [APPLICATION 2]
+ IMPLICIT INTEGER (0..4294967295)
+
+-- hundredths of seconds since an epoch
+TimeTicks ::=
+ [APPLICATION 3]
+ IMPLICIT INTEGER (0..4294967295)
+
+-- for backward-compatibility only
+Opaque ::=
+ [APPLICATION 4]
+ IMPLICIT OCTET STRING
+
+-- for counters that wrap in less than one hour with only 32 bits
+Counter64 ::=
+ [APPLICATION 6]
+ IMPLICIT INTEGER (0..18446744073709551615)
+
+-- definition for objects
+
+OBJECT-TYPE MACRO ::=
+BEGIN
+ TYPE NOTATION ::=
+ "SYNTAX" Syntax
+ UnitsPart
+ "MAX-ACCESS" Access
+ "STATUS" Status
+ "DESCRIPTION" Text
+ ReferPart
+
+ IndexPart
+ DefValPart
+
+ VALUE NOTATION ::=
+ value(VALUE ObjectName)
+
+ Syntax ::= -- Must be one of the following:
+ -- a base type (or its refinement),
+ -- a textual convention (or its refinement), or
+ -- a BITS pseudo-type
+ type
+ | "BITS" "{" NamedBits "}"
+
+ NamedBits ::= NamedBit
+ | NamedBits "," NamedBit
+
+ NamedBit ::= identifier "(" number ")" -- number is nonnegative
+
+ UnitsPart ::=
+ "UNITS" Text
+ | empty
+
+ Access ::=
+ "not-accessible"
+ | "accessible-for-notify"
+ | "read-only"
+ | "read-write"
+ | "read-create"
+
+ Status ::=
+ "current"
+ | "deprecated"
+ | "obsolete"
+
+ ReferPart ::=
+ "REFERENCE" Text
+ | empty
+
+ IndexPart ::=
+ "INDEX" "{" IndexTypes "}"
+ | "AUGMENTS" "{" Entry "}"
+ | empty
+ IndexTypes ::=
+ IndexType
+ | IndexTypes "," IndexType
+ IndexType ::=
+ "IMPLIED" Index
+ | Index
+
+ Index ::=
+ -- use the SYNTAX value of the
+ -- correspondent OBJECT-TYPE invocation
+ value(ObjectName)
+ Entry ::=
+ -- use the INDEX value of the
+ -- correspondent OBJECT-TYPE invocation
+ value(ObjectName)
+
+ DefValPart ::= "DEFVAL" "{" Defvalue "}"
+ | empty
+
+ Defvalue ::= -- must be valid for the type specified in
+ -- SYNTAX clause of same OBJECT-TYPE macro
+ value(ObjectSyntax)
+ | "{" BitsValue "}"
+
+ BitsValue ::= BitNames
+ | empty
+
+ BitNames ::= BitName
+ | BitNames "," BitName
+
+ BitName ::= identifier
+
+ -- a character string as defined in section 3.1.1
+ Text ::= value(IA5String)
+END
+
+-- definitions for notifications
+
+NOTIFICATION-TYPE MACRO ::=
+BEGIN
+ TYPE NOTATION ::=
+ ObjectsPart
+ "STATUS" Status
+ "DESCRIPTION" Text
+ ReferPart
+
+ VALUE NOTATION ::=
+ value(VALUE NotificationName)
+
+ ObjectsPart ::=
+ "OBJECTS" "{" Objects "}"
+ | empty
+ Objects ::=
+ Object
+
+ | Objects "," Object
+ Object ::=
+ value(ObjectName)
+
+ Status ::=
+ "current"
+ | "deprecated"
+ | "obsolete"
+
+ ReferPart ::=
+ "REFERENCE" Text
+ | empty
+
+ -- a character string as defined in section 3.1.1
+ Text ::= value(IA5String)
+END
+
+-- definitions of administrative identifiers
+
+zeroDotZero OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "A value used for null identifiers."
+ ::= { 0 0 }
+
+END
diff --git a/php/extras/mibs/SNMPv2-TC.txt b/php/extras/mibs/SNMPv2-TC.txt
new file mode 100644
index 000000000..860bf71ee
--- /dev/null
+++ b/php/extras/mibs/SNMPv2-TC.txt
@@ -0,0 +1,772 @@
+SNMPv2-TC DEFINITIONS ::= BEGIN
+
+IMPORTS
+ TimeTicks FROM SNMPv2-SMI;
+
+-- definition of textual conventions
+
+TEXTUAL-CONVENTION MACRO ::=
+
+BEGIN
+ TYPE NOTATION ::=
+ DisplayPart
+ "STATUS" Status
+ "DESCRIPTION" Text
+ ReferPart
+ "SYNTAX" Syntax
+
+ VALUE NOTATION ::=
+ value(VALUE Syntax) -- adapted ASN.1
+
+ DisplayPart ::=
+ "DISPLAY-HINT" Text
+ | empty
+
+ Status ::=
+ "current"
+ | "deprecated"
+ | "obsolete"
+
+ ReferPart ::=
+ "REFERENCE" Text
+ | empty
+
+ -- a character string as defined in [2]
+ Text ::= value(IA5String)
+
+ Syntax ::= -- Must be one of the following:
+ -- a base type (or its refinement), or
+ -- a BITS pseudo-type
+ type
+ | "BITS" "{" NamedBits "}"
+
+ NamedBits ::= NamedBit
+ | NamedBits "," NamedBit
+
+ NamedBit ::= identifier "(" number ")" -- number is nonnegative
+
+END
+
+DisplayString ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "255a"
+ STATUS current
+ DESCRIPTION
+ "Represents textual information taken from the NVT ASCII
+
+ character set, as defined in pages 4, 10-11 of RFC 854.
+
+ To summarize RFC 854, the NVT ASCII repertoire specifies:
+
+ - the use of character codes 0-127 (decimal)
+
+ - the graphics characters (32-126) are interpreted as
+ US ASCII
+
+ - NUL, LF, CR, BEL, BS, HT, VT and FF have the special
+ meanings specified in RFC 854
+
+ - the other 25 codes have no standard interpretation
+
+ - the sequence 'CR LF' means newline
+
+ - the sequence 'CR NUL' means carriage-return
+
+ - an 'LF' not preceded by a 'CR' means moving to the
+ same column on the next line.
+
+ - the sequence 'CR x' for any x other than LF or NUL is
+ illegal. (Note that this also means that a string may
+ end with either 'CR LF' or 'CR NUL', but not with CR.)
+
+ Any object defined using this syntax may not exceed 255
+ characters in length."
+ SYNTAX OCTET STRING (SIZE (0..255))
+
+PhysAddress ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "1x:"
+ STATUS current
+ DESCRIPTION
+ "Represents media- or physical-level addresses."
+ SYNTAX OCTET STRING
+
+MacAddress ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "1x:"
+ STATUS current
+ DESCRIPTION
+ "Represents an 802 MAC address represented in the
+ `canonical' order defined by IEEE 802.1a, i.e., as if it
+ were transmitted least significant bit first, even though
+ 802.5 (in contrast to other 802.x protocols) requires MAC
+ addresses to be transmitted most significant bit first."
+ SYNTAX OCTET STRING (SIZE (6))
+
+TruthValue ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "Represents a boolean value."
+ SYNTAX INTEGER { true(1), false(2) }
+
+TestAndIncr ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "Represents integer-valued information used for atomic
+ operations. When the management protocol is used to specify
+ that an object instance having this syntax is to be
+ modified, the new value supplied via the management protocol
+ must precisely match the value presently held by the
+ instance. If not, the management protocol set operation
+ fails with an error of `inconsistentValue'. Otherwise, if
+ the current value is the maximum value of 2^31-1 (2147483647
+ decimal), then the value held by the instance is wrapped to
+ zero; otherwise, the value held by the instance is
+ incremented by one. (Note that regardless of whether the
+ management protocol set operation succeeds, the variable-
+ binding in the request and response PDUs are identical.)
+
+ The value of the ACCESS clause for objects having this
+ syntax is either `read-write' or `read-create'. When an
+ instance of a columnar object having this syntax is created,
+ any value may be supplied via the management protocol.
+
+ When the network management portion of the system is re-
+ initialized, the value of every object instance having this
+ syntax must either be incremented from its value prior to
+ the re-initialization, or (if the value prior to the re-
+ initialization is unknown) be set to a pseudo-randomly
+ generated value."
+ SYNTAX INTEGER (0..2147483647)
+
+AutonomousType ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "Represents an independently extensible type identification
+ value. It may, for example, indicate a particular sub-tree
+ with further MIB definitions, or define a particular type of
+ protocol or hardware."
+ SYNTAX OBJECT IDENTIFIER
+
+InstancePointer ::= TEXTUAL-CONVENTION
+ STATUS obsolete
+ DESCRIPTION
+ "A pointer to either a specific instance of a MIB object or
+ a conceptual row of a MIB table in the managed device. In
+ the latter case, by convention, it is the name of the
+ particular instance of the first accessible columnar object
+ in the conceptual row.
+
+ The two uses of this textual convention are replaced by
+ VariablePointer and RowPointer, respectively."
+ SYNTAX OBJECT IDENTIFIER
+
+VariablePointer ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "A pointer to a specific object instance. For example,
+ sysContact.0 or ifInOctets.3."
+ SYNTAX OBJECT IDENTIFIER
+
+RowPointer ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "Represents a pointer to a conceptual row. The value is the
+ name of the instance of the first accessible columnar object
+ in the conceptual row.
+
+ For example, ifIndex.3 would point to the 3rd row in the
+ ifTable (note that if ifIndex were not-accessible, then
+ ifDescr.3 would be used instead)."
+ SYNTAX OBJECT IDENTIFIER
+
+RowStatus ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "The RowStatus textual convention is used to manage the
+ creation and deletion of conceptual rows, and is used as the
+ value of the SYNTAX clause for the status column of a
+ conceptual row (as described in Section 7.7.1 of [2].)
+
+ The status column has six defined values:
+
+ - `active', which indicates that the conceptual row is
+ available for use by the managed device;
+
+ - `notInService', which indicates that the conceptual
+ row exists in the agent, but is unavailable for use by
+ the managed device (see NOTE below); 'notInService' has
+ no implication regarding the internal consistency of
+ the row, availability of resources, or consistency with
+ the current state of the managed device;
+
+ - `notReady', which indicates that the conceptual row
+ exists in the agent, but is missing information
+ necessary in order to be available for use by the
+ managed device (i.e., one or more required columns in
+ the conceptual row have not been instanciated);
+
+ - `createAndGo', which is supplied by a management
+ station wishing to create a new instance of a
+ conceptual row and to have its status automatically set
+ to active, making it available for use by the managed
+ device;
+
+ - `createAndWait', which is supplied by a management
+ station wishing to create a new instance of a
+ conceptual row (but not make it available for use by
+ the managed device); and,
+ - `destroy', which is supplied by a management station
+ wishing to delete all of the instances associated with
+ an existing conceptual row.
+
+ Whereas five of the six values (all except `notReady') may
+ be specified in a management protocol set operation, only
+ three values will be returned in response to a management
+ protocol retrieval operation: `notReady', `notInService' or
+ `active'. That is, when queried, an existing conceptual row
+ has only three states: it is either available for use by
+ the managed device (the status column has value `active');
+ it is not available for use by the managed device, though
+ the agent has sufficient information to attempt to make it
+ so (the status column has value `notInService'); or, it is
+ not available for use by the managed device, and an attempt
+ to make it so would fail because the agent has insufficient
+ information (the state column has value `notReady').
+
+ NOTE WELL
+
+ This textual convention may be used for a MIB table,
+ irrespective of whether the values of that table's
+ conceptual rows are able to be modified while it is
+ active, or whether its conceptual rows must be taken
+ out of service in order to be modified. That is, it is
+ the responsibility of the DESCRIPTION clause of the
+ status column to specify whether the status column must
+ not be `active' in order for the value of some other
+ column of the same conceptual row to be modified. If
+ such a specification is made, affected columns may be
+ changed by an SNMP set PDU if the RowStatus would not
+ be equal to `active' either immediately before or after
+ processing the PDU. In other words, if the PDU also
+ contained a varbind that would change the RowStatus
+ value, the column in question may be changed if the
+ RowStatus was not equal to `active' as the PDU was
+ received, or if the varbind sets the status to a value
+ other than 'active'.
+
+ Also note that whenever any elements of a row exist, the
+ RowStatus column must also exist.
+
+ To summarize the effect of having a conceptual row with a
+ status column having a SYNTAX clause value of RowStatus,
+ consider the following state diagram:
+
+ STATE
+ +--------------+-----------+-------------+-------------
+ | A | B | C | D
+ | |status col.|status column|
+ |status column | is | is |status column
+ ACTION |does not exist| notReady | notInService| is active
+--------------+--------------+-----------+-------------+-------------
+set status |noError ->D|inconsist- |inconsistent-|inconsistent-
+column to | or | entValue| Value| Value
+createAndGo |inconsistent- | | |
+ | Value| | |
+--------------+--------------+-----------+-------------+-------------
+set status |noError see 1|inconsist- |inconsistent-|inconsistent-
+column to | or | entValue| Value| Value
+createAndWait |wrongValue | | |
+--------------+--------------+-----------+-------------+-------------
+set status |inconsistent- |inconsist- |noError |noError
+column to | Value| entValue| |
+active | | | |
+ | | or | |
+ | | | |
+ | |see 2 ->D|see 8 ->D| ->D
+--------------+--------------+-----------+-------------+-------------
+set status |inconsistent- |inconsist- |noError |noError ->C
+column to | Value| entValue| |
+notInService | | | |
+ | | or | | or
+ | | | |
+ | |see 3 ->C| ->C|see 6
+--------------+--------------+-----------+-------------+-------------
+set status |noError |noError |noError |noError ->A
+column to | | | | or
+destroy | ->A| ->A| ->A|see 7
+--------------+--------------+-----------+-------------+-------------
+set any other |see 4 |noError |noError |see 5
+column to some| | | |
+value | | see 1| ->C| ->D
+--------------+--------------+-----------+-------------+-------------
+
+ (1) goto B or C, depending on information available to the
+ agent.
+
+ (2) if other variable bindings included in the same PDU,
+ provide values for all columns which are missing but
+ required, and all columns have acceptable values, then
+ return noError and goto D.
+
+ (3) if other variable bindings included in the same PDU,
+ provide legal values for all columns which are missing but
+ required, then return noError and goto C.
+
+ (4) at the discretion of the agent, the return value may be
+ either:
+
+ inconsistentName: because the agent does not choose to
+ create such an instance when the corresponding
+ RowStatus instance does not exist, or
+
+ inconsistentValue: if the supplied value is
+ inconsistent with the state of some other MIB object's
+ value, or
+
+ noError: because the agent chooses to create the
+ instance.
+
+ If noError is returned, then the instance of the status
+ column must also be created, and the new state is B or C,
+ depending on the information available to the agent. If
+ inconsistentName or inconsistentValue is returned, the row
+ remains in state A.
+
+ (5) depending on the MIB definition for the column/table,
+ either noError or inconsistentValue may be returned.
+
+ (6) the return value can indicate one of the following
+ errors:
+
+ wrongValue: because the agent does not support
+ notInService (e.g., an agent which does not support
+ createAndWait), or
+
+ inconsistentValue: because the agent is unable to take
+ the row out of service at this time, perhaps because it
+ is in use and cannot be de-activated.
+
+ (7) the return value can indicate the following error:
+
+ inconsistentValue: because the agent is unable to
+ remove the row at this time, perhaps because it is in
+ use and cannot be de-activated.
+
+ (8) the transition to D can fail, e.g., if the values of the
+ conceptual row are inconsistent, then the error code would
+ be inconsistentValue.
+
+ NOTE: Other processing of (this and other varbinds of) the
+ set request may result in a response other than noError
+ being returned, e.g., wrongValue, noCreation, etc.
+
+ Conceptual Row Creation
+
+ There are four potential interactions when creating a
+ conceptual row: selecting an instance-identifier which is
+ not in use; creating the conceptual row; initializing any
+ objects for which the agent does not supply a default; and,
+ making the conceptual row available for use by the managed
+ device.
+
+ Interaction 1: Selecting an Instance-Identifier
+
+ The algorithm used to select an instance-identifier varies
+ for each conceptual row. In some cases, the instance-
+ identifier is semantically significant, e.g., the
+ destination address of a route, and a management station
+ selects the instance-identifier according to the semantics.
+
+ In other cases, the instance-identifier is used solely to
+ distinguish conceptual rows, and a management station
+ without specific knowledge of the conceptual row might
+ examine the instances present in order to determine an
+ unused instance-identifier. (This approach may be used, but
+ it is often highly sub-optimal; however, it is also a
+ questionable practice for a naive management station to
+ attempt conceptual row creation.)
+
+ Alternately, the MIB module which defines the conceptual row
+ might provide one or more objects which provide assistance
+ in determining an unused instance-identifier. For example,
+ if the conceptual row is indexed by an integer-value, then
+ an object having an integer-valued SYNTAX clause might be
+ defined for such a purpose, allowing a management station to
+ issue a management protocol retrieval operation. In order
+ to avoid unnecessary collisions between competing management
+ stations, `adjacent' retrievals of this object should be
+ different.
+
+ Finally, the management station could select a pseudo-random
+ number to use as the index. In the event that this index
+
+ was already in use and an inconsistentValue was returned in
+ response to the management protocol set operation, the
+ management station should simply select a new pseudo-random
+ number and retry the operation.
+
+ A MIB designer should choose between the two latter
+ algorithms based on the size of the table (and therefore the
+ efficiency of each algorithm). For tables in which a large
+ number of entries are expected, it is recommended that a MIB
+ object be defined that returns an acceptable index for
+ creation. For tables with small numbers of entries, it is
+ recommended that the latter pseudo-random index mechanism be
+ used.
+
+ Interaction 2: Creating the Conceptual Row
+
+ Once an unused instance-identifier has been selected, the
+ management station determines if it wishes to create and
+ activate the conceptual row in one transaction or in a
+ negotiated set of interactions.
+
+ Interaction 2a: Creating and Activating the Conceptual Row
+
+ The management station must first determine the column
+ requirements, i.e., it must determine those columns for
+ which it must or must not provide values. Depending on the
+ complexity of the table and the management station's
+ knowledge of the agent's capabilities, this determination
+ can be made locally by the management station. Alternately,
+ the management station issues a management protocol get
+ operation to examine all columns in the conceptual row that
+ it wishes to create. In response, for each column, there
+ are three possible outcomes:
+
+ - a value is returned, indicating that some other
+ management station has already created this conceptual
+ row. We return to interaction 1.
+
+ - the exception `noSuchInstance' is returned,
+ indicating that the agent implements the object-type
+ associated with this column, and that this column in at
+ least one conceptual row would be accessible in the MIB
+ view used by the retrieval were it to exist. For those
+ columns to which the agent provides read-create access,
+ the `noSuchInstance' exception tells the management
+ station that it should supply a value for this column
+ when the conceptual row is to be created.
+
+ - the exception `noSuchObject' is returned, indicating
+ that the agent does not implement the object-type
+ associated with this column or that there is no
+ conceptual row for which this column would be
+ accessible in the MIB view used by the retrieval. As
+ such, the management station can not issue any
+ management protocol set operations to create an
+ instance of this column.
+
+ Once the column requirements have been determined, a
+ management protocol set operation is accordingly issued.
+ This operation also sets the new instance of the status
+ column to `createAndGo'.
+
+ When the agent processes the set operation, it verifies that
+ it has sufficient information to make the conceptual row
+ available for use by the managed device. The information
+ available to the agent is provided by two sources: the
+ management protocol set operation which creates the
+ conceptual row, and, implementation-specific defaults
+ supplied by the agent (note that an agent must provide
+ implementation-specific defaults for at least those objects
+ which it implements as read-only). If there is sufficient
+ information available, then the conceptual row is created, a
+ `noError' response is returned, the status column is set to
+ `active', and no further interactions are necessary (i.e.,
+ interactions 3 and 4 are skipped). If there is insufficient
+ information, then the conceptual row is not created, and the
+ set operation fails with an error of `inconsistentValue'.
+ On this error, the management station can issue a management
+ protocol retrieval operation to determine if this was
+ because it failed to specify a value for a required column,
+ or, because the selected instance of the status column
+ already existed. In the latter case, we return to
+ interaction 1. In the former case, the management station
+ can re-issue the set operation with the additional
+ information, or begin interaction 2 again using
+ `createAndWait' in order to negotiate creation of the
+ conceptual row.
+
+ NOTE WELL
+
+ Regardless of the method used to determine the column
+ requirements, it is possible that the management
+ station might deem a column necessary when, in fact,
+ the agent will not allow that particular columnar
+ instance to be created or written. In this case, the
+ management protocol set operation will fail with an
+ error such as `noCreation' or `notWritable'. In this
+ case, the management station decides whether it needs
+ to be able to set a value for that particular columnar
+ instance. If not, the management station re-issues the
+ management protocol set operation, but without setting
+ a value for that particular columnar instance;
+ otherwise, the management station aborts the row
+ creation algorithm.
+
+ Interaction 2b: Negotiating the Creation of the Conceptual
+ Row
+
+ The management station issues a management protocol set
+ operation which sets the desired instance of the status
+ column to `createAndWait'. If the agent is unwilling to
+ process a request of this sort, the set operation fails with
+ an error of `wrongValue'. (As a consequence, such an agent
+ must be prepared to accept a single management protocol set
+ operation, i.e., interaction 2a above, containing all of the
+ columns indicated by its column requirements.) Otherwise,
+ the conceptual row is created, a `noError' response is
+ returned, and the status column is immediately set to either
+ `notInService' or `notReady', depending on whether it has
+ sufficient information to (attempt to) make the conceptual
+ row available for use by the managed device. If there is
+ sufficient information available, then the status column is
+ set to `notInService'; otherwise, if there is insufficient
+ information, then the status column is set to `notReady'.
+ Regardless, we proceed to interaction 3.
+
+ Interaction 3: Initializing non-defaulted Objects
+
+ The management station must now determine the column
+ requirements. It issues a management protocol get operation
+ to examine all columns in the created conceptual row. In
+ the response, for each column, there are three possible
+ outcomes:
+
+ - a value is returned, indicating that the agent
+ implements the object-type associated with this column
+ and had sufficient information to provide a value. For
+ those columns to which the agent provides read-create
+ access (and for which the agent allows their values to
+ be changed after their creation), a value return tells
+ the management station that it may issue additional
+ management protocol set operations, if it desires, in
+ order to change the value associated with this column.
+
+ - the exception `noSuchInstance' is returned,
+ indicating that the agent implements the object-type
+ associated with this column, and that this column in at
+ least one conceptual row would be accessible in the MIB
+ view used by the retrieval were it to exist. However,
+ the agent does not have sufficient information to
+ provide a value, and until a value is provided, the
+ conceptual row may not be made available for use by the
+ managed device. For those columns to which the agent
+ provides read-create access, the `noSuchInstance'
+ exception tells the management station that it must
+ issue additional management protocol set operations, in
+ order to provide a value associated with this column.
+
+ - the exception `noSuchObject' is returned, indicating
+ that the agent does not implement the object-type
+ associated with this column or that there is no
+ conceptual row for which this column would be
+ accessible in the MIB view used by the retrieval. As
+ such, the management station can not issue any
+ management protocol set operations to create an
+ instance of this column.
+
+ If the value associated with the status column is
+ `notReady', then the management station must first deal with
+ all `noSuchInstance' columns, if any. Having done so, the
+ value of the status column becomes `notInService', and we
+ proceed to interaction 4.
+
+ Interaction 4: Making the Conceptual Row Available
+
+ Once the management station is satisfied with the values
+ associated with the columns of the conceptual row, it issues
+ a management protocol set operation to set the status column
+ to `active'. If the agent has sufficient information to
+ make the conceptual row available for use by the managed
+ device, the management protocol set operation succeeds (a
+ `noError' response is returned). Otherwise, the management
+ protocol set operation fails with an error of
+ `inconsistentValue'.
+
+ NOTE WELL
+
+ A conceptual row having a status column with value
+ `notInService' or `notReady' is unavailable to the
+ managed device. As such, it is possible for the
+ managed device to create its own instances during the
+ time between the management protocol set operation
+ which sets the status column to `createAndWait' and the
+ management protocol set operation which sets the status
+ column to `active'. In this case, when the management
+ protocol set operation is issued to set the status
+ column to `active', the values held in the agent
+ supersede those used by the managed device.
+
+ If the management station is prevented from setting the
+ status column to `active' (e.g., due to management station
+ or network failure) the conceptual row will be left in the
+ `notInService' or `notReady' state, consuming resources
+ indefinitely. The agent must detect conceptual rows that
+ have been in either state for an abnormally long period of
+ time and remove them. It is the responsibility of the
+ DESCRIPTION clause of the status column to indicate what an
+ abnormally long period of time would be. This period of
+ time should be long enough to allow for human response time
+ (including `think time') between the creation of the
+ conceptual row and the setting of the status to `active'.
+ In the absence of such information in the DESCRIPTION
+ clause, it is suggested that this period be approximately 5
+ minutes in length. This removal action applies not only to
+ newly-created rows, but also to previously active rows which
+ are set to, and left in, the notInService state for a
+ prolonged period exceeding that which is considered normal
+ for such a conceptual row.
+
+ Conceptual Row Suspension
+
+ When a conceptual row is `active', the management station
+ may issue a management protocol set operation which sets the
+ instance of the status column to `notInService'. If the
+ agent is unwilling to do so, the set operation fails with an
+ error of `wrongValue' or `inconsistentValue'. Otherwise,
+ the conceptual row is taken out of service, and a `noError'
+ response is returned. It is the responsibility of the
+ DESCRIPTION clause of the status column to indicate under
+ what circumstances the status column should be taken out of
+ service (e.g., in order for the value of some other column
+ of the same conceptual row to be modified).
+
+ Conceptual Row Deletion
+
+ For deletion of conceptual rows, a management protocol set
+ operation is issued which sets the instance of the status
+ column to `destroy'. This request may be made regardless of
+ the current value of the status column (e.g., it is possible
+ to delete conceptual rows which are either `notReady',
+ `notInService' or `active'.) If the operation succeeds,
+ then all instances associated with the conceptual row are
+ immediately removed."
+ SYNTAX INTEGER {
+ -- the following two values are states:
+ -- these values may be read or written
+ active(1),
+ notInService(2),
+ -- the following value is a state:
+ -- this value may be read, but not written
+ notReady(3),
+ -- the following three values are
+ -- actions: these values may be written,
+ -- but are never read
+ createAndGo(4),
+ createAndWait(5),
+ destroy(6)
+ }
+
+TimeStamp ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "The value of the sysUpTime object at which a specific
+ occurrence happened. The specific occurrence must be
+
+ defined in the description of any object defined using this
+ type.
+
+ If sysUpTime is reset to zero as a result of a re-
+ initialization of the network management (sub)system, then
+ the values of all TimeStamp objects are also reset.
+ However, after approximately 497 days without a re-
+ initialization, the sysUpTime object will reach 2^^32-1 and
+ then increment around to zero; in this case, existing values
+ of TimeStamp objects do not change. This can lead to
+ ambiguities in the value of TimeStamp objects."
+ SYNTAX TimeTicks
+
+TimeInterval ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "A period of time, measured in units of 0.01 seconds."
+ SYNTAX INTEGER (0..2147483647)
+
+DateAndTime ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "2d-1d-1d,1d:1d:1d.1d,1a1d:1d"
+ STATUS current
+ DESCRIPTION
+ "A date-time specification.
+
+ field octets contents range
+ ----- ------ -------- -----
+ 1 1-2 year* 0..65536
+ 2 3 month 1..12
+ 3 4 day 1..31
+ 4 5 hour 0..23
+ 5 6 minutes 0..59
+ 6 7 seconds 0..60
+ (use 60 for leap-second)
+ 7 8 deci-seconds 0..9
+ 8 9 direction from UTC '+' / '-'
+ 9 10 hours from UTC* 0..13
+ 10 11 minutes from UTC 0..59
+
+ * Notes:
+ - the value of year is in network-byte order
+ - daylight saving time in New Zealand is +13
+
+ For example, Tuesday May 26, 1992 at 1:30:15 PM EDT would be
+ displayed as:
+
+ 1992-5-26,13:30:15.0,-4:0
+
+ Note that if only local time is known, then timezone
+ information (fields 8-10) is not present."
+ SYNTAX OCTET STRING (SIZE (8 | 11))
+
+StorageType ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "Describes the memory realization of a conceptual row. A
+ row which is volatile(2) is lost upon reboot. A row which
+ is either nonVolatile(3), permanent(4) or readOnly(5), is
+ backed up by stable storage. A row which is permanent(4)
+ can be changed but not deleted. A row which is readOnly(5)
+ cannot be changed nor deleted.
+
+ If the value of an object with this syntax is either
+ permanent(4) or readOnly(5), it cannot be written.
+ Conversely, if the value is either other(1), volatile(2) or
+ nonVolatile(3), it cannot be modified to be permanent(4) or
+ readOnly(5). (All illegal modifications result in a
+ 'wrongValue' error.)
+
+ Every usage of this textual convention is required to
+ specify the columnar objects which a permanent(4) row must
+ at a minimum allow to be writable."
+ SYNTAX INTEGER {
+ other(1), -- eh?
+ volatile(2), -- e.g., in RAM
+ nonVolatile(3), -- e.g., in NVRAM
+ permanent(4), -- e.g., partially in ROM
+ readOnly(5) -- e.g., completely in ROM
+ }
+
+TDomain ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "Denotes a kind of transport service.
+
+ Some possible values, such as snmpUDPDomain, are defined in
+ the SNMPv2-TM MIB module. Other possible values are defined
+ in other MIB modules."
+ REFERENCE "The SNMPv2-TM MIB module is defined in RFC 1906."
+ SYNTAX OBJECT IDENTIFIER
+
+TAddress ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "Denotes a transport service address.
+
+ A TAddress value is always interpreted within the context of a
+ TDomain value. Thus, each definition of a TDomain value must
+ be accompanied by a definition of a textual convention for use
+ with that TDomain. Some possible textual conventions, such as
+ SnmpUDPAddress for snmpUDPDomain, are defined in the SNMPv2-TM
+ MIB module. Other possible textual conventions are defined in
+ other MIB modules."
+ REFERENCE "The SNMPv2-TM MIB module is defined in RFC 1906."
+ SYNTAX OCTET STRING (SIZE (1..255))
+
+END
diff --git a/php/extras/mibs/SNMPv2-TM.txt b/php/extras/mibs/SNMPv2-TM.txt
new file mode 100644
index 000000000..949f99c7e
--- /dev/null
+++ b/php/extras/mibs/SNMPv2-TM.txt
@@ -0,0 +1,176 @@
+SNMPv2-TM DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-IDENTITY,
+ snmpModules, snmpDomains, snmpProxys
+ FROM SNMPv2-SMI
+ TEXTUAL-CONVENTION
+ FROM SNMPv2-TC;
+
+snmpv2tm MODULE-IDENTITY
+ LAST-UPDATED "200210160000Z"
+ ORGANIZATION "IETF SNMPv3 Working Group"
+ CONTACT-INFO
+ "WG-EMail: snmpv3@lists.tislabs.com
+ Subscribe: snmpv3-request@lists.tislabs.com
+
+ Co-Chair: Russ Mundy
+ Network Associates Laboratories
+ postal: 15204 Omega Drive, Suite 300
+ Rockville, MD 20850-4601
+ USA
+ EMail: mundy@tislabs.com
+ phone: +1 301 947-7107
+
+ Co-Chair: David Harrington
+ Enterasys Networks
+ postal: 35 Industrial Way
+ P. O. Box 5005
+ Rochester, NH 03866-5005
+ USA
+ EMail: dbh@enterasys.com
+ phone: +1 603 337-2614
+
+ Editor: Randy Presuhn
+ BMC Software, Inc.
+ postal: 2141 North First Street
+ San Jose, CA 95131
+ USA
+ EMail: randy_presuhn@bmc.com
+ phone: +1 408 546-1006"
+ DESCRIPTION
+ "The MIB module for SNMP transport mappings.
+
+ Copyright (C) The Internet Society (2002). This
+ version of this MIB module is part of RFC 3417;
+ see the RFC itself for full legal notices.
+ "
+ REVISION "200210160000Z"
+ DESCRIPTION
+ "Clarifications, published as RFC 3417."
+ REVISION "199601010000Z"
+ DESCRIPTION
+ "Clarifications, published as RFC 1906."
+ REVISION "199304010000Z"
+ DESCRIPTION
+ "The initial version, published as RFC 1449."
+ ::= { snmpModules 19 }
+
+-- SNMP over UDP over IPv4
+
+snmpUDPDomain OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The SNMP over UDP over IPv4 transport domain.
+ The corresponding transport address is of type
+ SnmpUDPAddress."
+ ::= { snmpDomains 1 }
+
+SnmpUDPAddress ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "1d.1d.1d.1d/2d"
+ STATUS current
+ DESCRIPTION
+ "Represents a UDP over IPv4 address:
+
+ octets contents encoding
+ 1-4 IP-address network-byte order
+ 5-6 UDP-port network-byte order
+ "
+ SYNTAX OCTET STRING (SIZE (6))
+
+-- SNMP over OSI
+
+snmpCLNSDomain OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The SNMP over CLNS transport domain.
+ The corresponding transport address is of type
+ SnmpOSIAddress."
+ ::= { snmpDomains 2 }
+
+snmpCONSDomain OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The SNMP over CONS transport domain.
+ The corresponding transport address is of type
+ SnmpOSIAddress."
+ ::= { snmpDomains 3 }
+
+SnmpOSIAddress ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "*1x:/1x:"
+ STATUS current
+ DESCRIPTION
+ "Represents an OSI transport-address:
+
+ octets contents encoding
+ 1 length of NSAP 'n' as an unsigned-integer
+ (either 0 or from 3 to 20)
+ 2..(n+1) NSAP concrete binary representation
+ (n+2)..m TSEL string of (up to 64) octets
+ "
+ SYNTAX OCTET STRING (SIZE (1 | 4..85))
+
+-- SNMP over DDP
+
+snmpDDPDomain OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The SNMP over DDP transport domain. The corresponding
+ transport address is of type SnmpNBPAddress."
+ ::= { snmpDomains 4 }
+
+SnmpNBPAddress ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "Represents an NBP name:
+
+ octets contents encoding
+ 1 length of object 'n' as an unsigned integer
+ 2..(n+1) object string of (up to 32) octets
+ n+2 length of type 'p' as an unsigned integer
+ (n+3)..(n+2+p) type string of (up to 32) octets
+ n+3+p length of zone 'q' as an unsigned integer
+ (n+4+p)..(n+3+p+q) zone string of (up to 32) octets
+
+ For comparison purposes, strings are
+ case-insensitive. All strings may contain any octet
+ other than 255 (hex ff)."
+ SYNTAX OCTET STRING (SIZE (3..99))
+
+-- SNMP over IPX
+
+snmpIPXDomain OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The SNMP over IPX transport domain. The corresponding
+ transport address is of type SnmpIPXAddress."
+ ::= { snmpDomains 5 }
+
+SnmpIPXAddress ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "4x.1x:1x:1x:1x:1x:1x.2d"
+ STATUS current
+ DESCRIPTION
+ "Represents an IPX address:
+
+ octets contents encoding
+ 1-4 network-number network-byte order
+ 5-10 physical-address network-byte order
+ 11-12 socket-number network-byte order
+ "
+ SYNTAX OCTET STRING (SIZE (12))
+
+-- for proxy to SNMPv1 (RFC 1157)
+
+rfc1157Proxy OBJECT IDENTIFIER ::= { snmpProxys 1 }
+
+rfc1157Domain OBJECT-IDENTITY
+ STATUS deprecated
+ DESCRIPTION
+ "The transport domain for SNMPv1 over UDP over IPv4.
+ The corresponding transport address is of type
+ SnmpUDPAddress."
+ ::= { rfc1157Proxy 1 }
+
+-- ::= { rfc1157Proxy 2 } this OID is obsolete
+
+END
diff --git a/php/extras/mibs/TCP-MIB.txt b/php/extras/mibs/TCP-MIB.txt
new file mode 100644
index 000000000..50e7f5752
--- /dev/null
+++ b/php/extras/mibs/TCP-MIB.txt
@@ -0,0 +1,785 @@
+TCP-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE, Integer32, Unsigned32,
+ Gauge32, Counter32, Counter64, IpAddress, mib-2
+ FROM SNMPv2-SMI
+ MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
+ InetAddress, InetAddressType,
+ InetPortNumber FROM INET-ADDRESS-MIB;
+
+tcpMIB MODULE-IDENTITY
+ LAST-UPDATED "200502180000Z" -- 18 February 2005
+ ORGANIZATION
+ "IETF IPv6 MIB Revision Team
+ http://www.ietf.org/html.charters/ipv6-charter.html"
+ CONTACT-INFO
+ "Rajiv Raghunarayan (editor)
+
+ Cisco Systems Inc.
+ 170 West Tasman Drive
+ San Jose, CA 95134
+
+ Phone: +1 408 853 9612
+ Email:
+
+ Send comments to "
+ DESCRIPTION
+ "The MIB module for managing TCP implementations.
+
+ Copyright (C) The Internet Society (2005). This version
+ of this MIB module is a part of RFC 4022; see the RFC
+ itself for full legal notices."
+ REVISION "200502180000Z" -- 18 February 2005
+ DESCRIPTION
+ "IP version neutral revision, published as RFC 4022."
+ REVISION "9411010000Z"
+ DESCRIPTION
+ "Initial SMIv2 version, published as RFC 2012."
+ REVISION "9103310000Z"
+ DESCRIPTION
+ "The initial revision of this MIB module was part of
+ MIB-II."
+ ::= { mib-2 49 }
+
+-- the TCP base variables group
+
+tcp OBJECT IDENTIFIER ::= { mib-2 6 }
+
+-- Scalars
+
+tcpRtoAlgorithm OBJECT-TYPE
+ SYNTAX INTEGER {
+ other(1), -- none of the following
+ constant(2), -- a constant rto
+ rsre(3), -- MIL-STD-1778, Appendix B
+ vanj(4), -- Van Jacobson's algorithm
+ rfc2988(5) -- RFC 2988
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The algorithm used to determine the timeout value used for
+ retransmitting unacknowledged octets."
+ ::= { tcp 1 }
+
+tcpRtoMin OBJECT-TYPE
+ SYNTAX Integer32 (0..2147483647)
+ UNITS "milliseconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The minimum value permitted by a TCP implementation for
+ the retransmission timeout, measured in milliseconds.
+ More refined semantics for objects of this type depend
+ on the algorithm used to determine the retransmission
+ timeout; in particular, the IETF standard algorithm
+ rfc2988(5) provides a minimum value."
+ ::= { tcp 2 }
+
+tcpRtoMax OBJECT-TYPE
+ SYNTAX Integer32 (0..2147483647)
+ UNITS "milliseconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The maximum value permitted by a TCP implementation for
+ the retransmission timeout, measured in milliseconds.
+ More refined semantics for objects of this type depend
+ on the algorithm used to determine the retransmission
+ timeout; in particular, the IETF standard algorithm
+ rfc2988(5) provides an upper bound (as part of an
+ adaptive backoff algorithm)."
+ ::= { tcp 3 }
+
+tcpMaxConn OBJECT-TYPE
+ SYNTAX Integer32 (-1 | 0..2147483647)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The limit on the total number of TCP connections the entity
+ can support. In entities where the maximum number of
+ connections is dynamic, this object should contain the
+ value -1."
+ ::= { tcp 4 }
+
+tcpActiveOpens OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of times that TCP connections have made a direct
+ transition to the SYN-SENT state from the CLOSED state.
+
+ Discontinuities in the value of this counter are
+ indicated via discontinuities in the value of sysUpTime."
+ ::= { tcp 5 }
+
+tcpPassiveOpens OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of times TCP connections have made a direct
+ transition to the SYN-RCVD state from the LISTEN state.
+
+ Discontinuities in the value of this counter are
+ indicated via discontinuities in the value of sysUpTime."
+ ::= { tcp 6 }
+
+tcpAttemptFails OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of times that TCP connections have made a direct
+ transition to the CLOSED state from either the SYN-SENT
+ state or the SYN-RCVD state, plus the number of times that
+ TCP connections have made a direct transition to the
+ LISTEN state from the SYN-RCVD state.
+
+ Discontinuities in the value of this counter are
+ indicated via discontinuities in the value of sysUpTime."
+ ::= { tcp 7 }
+
+tcpEstabResets OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of times that TCP connections have made a direct
+ transition to the CLOSED state from either the ESTABLISHED
+ state or the CLOSE-WAIT state.
+
+ Discontinuities in the value of this counter are
+ indicated via discontinuities in the value of sysUpTime."
+ ::= { tcp 8 }
+
+tcpCurrEstab OBJECT-TYPE
+ SYNTAX Gauge32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of TCP connections for which the current state
+ is either ESTABLISHED or CLOSE-WAIT."
+ ::= { tcp 9 }
+
+tcpInSegs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of segments received, including those
+ received in error. This count includes segments received
+ on currently established connections.
+
+ Discontinuities in the value of this counter are
+ indicated via discontinuities in the value of sysUpTime."
+ ::= { tcp 10 }
+
+tcpOutSegs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of segments sent, including those on
+ current connections but excluding those containing only
+ retransmitted octets.
+
+ Discontinuities in the value of this counter are
+ indicated via discontinuities in the value of sysUpTime."
+ ::= { tcp 11 }
+
+tcpRetransSegs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of segments retransmitted; that is, the
+ number of TCP segments transmitted containing one or more
+ previously transmitted octets.
+
+ Discontinuities in the value of this counter are
+ indicated via discontinuities in the value of sysUpTime."
+ ::= { tcp 12 }
+
+tcpInErrs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of segments received in error (e.g., bad
+ TCP checksums).
+
+ Discontinuities in the value of this counter are
+ indicated via discontinuities in the value of sysUpTime."
+ ::= { tcp 14 }
+
+tcpOutRsts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of TCP segments sent containing the RST flag.
+
+ Discontinuities in the value of this counter are
+ indicated via discontinuities in the value of sysUpTime."
+ ::= { tcp 15 }
+
+-- { tcp 16 } was used to represent the ipv6TcpConnTable in RFC 2452,
+-- which has since been obsoleted. It MUST not be used.
+
+tcpHCInSegs OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of segments received, including those
+ received in error. This count includes segments received
+
+ on currently established connections. This object is
+ the 64-bit equivalent of tcpInSegs.
+
+ Discontinuities in the value of this counter are
+ indicated via discontinuities in the value of sysUpTime."
+ ::= { tcp 17 }
+
+tcpHCOutSegs OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of segments sent, including those on
+ current connections but excluding those containing only
+ retransmitted octets. This object is the 64-bit
+ equivalent of tcpOutSegs.
+
+ Discontinuities in the value of this counter are
+ indicated via discontinuities in the value of sysUpTime."
+ ::= { tcp 18 }
+
+-- The TCP Connection table
+
+tcpConnectionTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF TcpConnectionEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table containing information about existing TCP
+ connections. Note that unlike earlier TCP MIBs, there
+ is a separate table for connections in the LISTEN state."
+ ::= { tcp 19 }
+
+tcpConnectionEntry OBJECT-TYPE
+ SYNTAX TcpConnectionEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A conceptual row of the tcpConnectionTable containing
+ information about a particular current TCP connection.
+ Each row of this table is transient in that it ceases to
+ exist when (or soon after) the connection makes the
+ transition to the CLOSED state."
+ INDEX { tcpConnectionLocalAddressType,
+ tcpConnectionLocalAddress,
+ tcpConnectionLocalPort,
+ tcpConnectionRemAddressType,
+ tcpConnectionRemAddress,
+ tcpConnectionRemPort }
+ ::= { tcpConnectionTable 1 }
+
+TcpConnectionEntry ::= SEQUENCE {
+ tcpConnectionLocalAddressType InetAddressType,
+ tcpConnectionLocalAddress InetAddress,
+ tcpConnectionLocalPort InetPortNumber,
+ tcpConnectionRemAddressType InetAddressType,
+ tcpConnectionRemAddress InetAddress,
+ tcpConnectionRemPort InetPortNumber,
+ tcpConnectionState INTEGER,
+ tcpConnectionProcess Unsigned32
+ }
+
+tcpConnectionLocalAddressType OBJECT-TYPE
+ SYNTAX InetAddressType
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The address type of tcpConnectionLocalAddress."
+ ::= { tcpConnectionEntry 1 }
+
+tcpConnectionLocalAddress OBJECT-TYPE
+ SYNTAX InetAddress
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The local IP address for this TCP connection. The type
+ of this address is determined by the value of
+ tcpConnectionLocalAddressType.
+
+ As this object is used in the index for the
+ tcpConnectionTable, implementors should be
+ careful not to create entries that would result in OIDs
+ with more than 128 subidentifiers; otherwise the information
+ cannot be accessed by using SNMPv1, SNMPv2c, or SNMPv3."
+ ::= { tcpConnectionEntry 2 }
+
+tcpConnectionLocalPort OBJECT-TYPE
+ SYNTAX InetPortNumber
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The local port number for this TCP connection."
+ ::= { tcpConnectionEntry 3 }
+
+tcpConnectionRemAddressType OBJECT-TYPE
+ SYNTAX InetAddressType
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The address type of tcpConnectionRemAddress."
+ ::= { tcpConnectionEntry 4 }
+
+tcpConnectionRemAddress OBJECT-TYPE
+ SYNTAX InetAddress
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The remote IP address for this TCP connection. The type
+ of this address is determined by the value of
+ tcpConnectionRemAddressType.
+
+ As this object is used in the index for the
+ tcpConnectionTable, implementors should be
+ careful not to create entries that would result in OIDs
+ with more than 128 subidentifiers; otherwise the information
+ cannot be accessed by using SNMPv1, SNMPv2c, or SNMPv3."
+ ::= { tcpConnectionEntry 5 }
+
+tcpConnectionRemPort OBJECT-TYPE
+ SYNTAX InetPortNumber
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The remote port number for this TCP connection."
+ ::= { tcpConnectionEntry 6 }
+
+tcpConnectionState OBJECT-TYPE
+ SYNTAX INTEGER {
+ closed(1),
+ listen(2),
+ synSent(3),
+ synReceived(4),
+ established(5),
+ finWait1(6),
+ finWait2(7),
+ closeWait(8),
+ lastAck(9),
+ closing(10),
+ timeWait(11),
+ deleteTCB(12)
+ }
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The state of this TCP connection.
+
+ The value listen(2) is included only for parallelism to the
+ old tcpConnTable and should not be used. A connection in
+ LISTEN state should be present in the tcpListenerTable.
+
+ The only value that may be set by a management station is
+ deleteTCB(12). Accordingly, it is appropriate for an agent
+ to return a `badValue' response if a management station
+ attempts to set this object to any other value.
+
+ If a management station sets this object to the value
+ deleteTCB(12), then the TCB (as defined in [RFC793]) of
+ the corresponding connection on the managed node is
+ deleted, resulting in immediate termination of the
+ connection.
+
+ As an implementation-specific option, a RST segment may be
+ sent from the managed node to the other TCP endpoint (note,
+ however, that RST segments are not sent reliably)."
+ ::= { tcpConnectionEntry 7 }
+
+tcpConnectionProcess OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The system's process ID for the process associated with
+ this connection, or zero if there is no such process. This
+ value is expected to be the same as HOST-RESOURCES-MIB::
+ hrSWRunIndex or SYSAPPL-MIB::sysApplElmtRunIndex for some
+ row in the appropriate tables."
+ ::= { tcpConnectionEntry 8 }
+
+-- The TCP Listener table
+
+tcpListenerTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF TcpListenerEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table containing information about TCP listeners. A
+ listening application can be represented in three
+ possible ways:
+
+ 1. An application that is willing to accept both IPv4 and
+ IPv6 datagrams is represented by
+
+ a tcpListenerLocalAddressType of unknown (0) and
+ a tcpListenerLocalAddress of ''h (a zero-length
+ octet-string).
+
+ 2. An application that is willing to accept only IPv4 or
+ IPv6 datagrams is represented by a
+ tcpListenerLocalAddressType of the appropriate address
+ type and a tcpListenerLocalAddress of '0.0.0.0' or '::'
+ respectively.
+
+ 3. An application that is listening for data destined
+ only to a specific IP address, but from any remote
+ system, is represented by a tcpListenerLocalAddressType
+ of an appropriate address type, with
+ tcpListenerLocalAddress as the specific local address.
+
+ NOTE: The address type in this table represents the
+ address type used for the communication, irrespective
+ of the higher-layer abstraction. For example, an
+ application using IPv6 'sockets' to communicate via
+ IPv4 between ::ffff:10.0.0.1 and ::ffff:10.0.0.2 would
+ use InetAddressType ipv4(1))."
+ ::= { tcp 20 }
+
+tcpListenerEntry OBJECT-TYPE
+ SYNTAX TcpListenerEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A conceptual row of the tcpListenerTable containing
+ information about a particular TCP listener."
+ INDEX { tcpListenerLocalAddressType,
+ tcpListenerLocalAddress,
+ tcpListenerLocalPort }
+ ::= { tcpListenerTable 1 }
+
+TcpListenerEntry ::= SEQUENCE {
+ tcpListenerLocalAddressType InetAddressType,
+ tcpListenerLocalAddress InetAddress,
+ tcpListenerLocalPort InetPortNumber,
+ tcpListenerProcess Unsigned32
+ }
+
+tcpListenerLocalAddressType OBJECT-TYPE
+ SYNTAX InetAddressType
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The address type of tcpListenerLocalAddress. The value
+ should be unknown (0) if connection initiations to all
+ local IP addresses are accepted."
+ ::= { tcpListenerEntry 1 }
+
+tcpListenerLocalAddress OBJECT-TYPE
+ SYNTAX InetAddress
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The local IP address for this TCP connection.
+
+ The value of this object can be represented in three
+ possible ways, depending on the characteristics of the
+ listening application:
+
+ 1. For an application willing to accept both IPv4 and
+ IPv6 datagrams, the value of this object must be
+ ''h (a zero-length octet-string), with the value
+ of the corresponding tcpListenerLocalAddressType
+ object being unknown (0).
+
+ 2. For an application willing to accept only IPv4 or
+ IPv6 datagrams, the value of this object must be
+ '0.0.0.0' or '::' respectively, with
+ tcpListenerLocalAddressType representing the
+ appropriate address type.
+
+ 3. For an application which is listening for data
+ destined only to a specific IP address, the value
+ of this object is the specific local address, with
+ tcpListenerLocalAddressType representing the
+ appropriate address type.
+
+ As this object is used in the index for the
+ tcpListenerTable, implementors should be
+ careful not to create entries that would result in OIDs
+ with more than 128 subidentifiers; otherwise the information
+ cannot be accessed, using SNMPv1, SNMPv2c, or SNMPv3."
+ ::= { tcpListenerEntry 2 }
+
+tcpListenerLocalPort OBJECT-TYPE
+ SYNTAX InetPortNumber
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The local port number for this TCP connection."
+ ::= { tcpListenerEntry 3 }
+
+tcpListenerProcess OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The system's process ID for the process associated with
+ this listener, or zero if there is no such process. This
+ value is expected to be the same as HOST-RESOURCES-MIB::
+ hrSWRunIndex or SYSAPPL-MIB::sysApplElmtRunIndex for some
+ row in the appropriate tables."
+ ::= { tcpListenerEntry 4 }
+
+-- The deprecated TCP Connection table
+
+tcpConnTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF TcpConnEntry
+ MAX-ACCESS not-accessible
+ STATUS deprecated
+ DESCRIPTION
+ "A table containing information about existing IPv4-specific
+ TCP connections or listeners. This table has been
+ deprecated in favor of the version neutral
+ tcpConnectionTable."
+ ::= { tcp 13 }
+
+tcpConnEntry OBJECT-TYPE
+ SYNTAX TcpConnEntry
+ MAX-ACCESS not-accessible
+ STATUS deprecated
+ DESCRIPTION
+ "A conceptual row of the tcpConnTable containing information
+ about a particular current IPv4 TCP connection. Each row
+ of this table is transient in that it ceases to exist when
+ (or soon after) the connection makes the transition to the
+ CLOSED state."
+ INDEX { tcpConnLocalAddress,
+ tcpConnLocalPort,
+ tcpConnRemAddress,
+ tcpConnRemPort }
+ ::= { tcpConnTable 1 }
+
+TcpConnEntry ::= SEQUENCE {
+ tcpConnState INTEGER,
+ tcpConnLocalAddress IpAddress,
+ tcpConnLocalPort Integer32,
+ tcpConnRemAddress IpAddress,
+ tcpConnRemPort Integer32
+
+ }
+
+tcpConnState OBJECT-TYPE
+ SYNTAX INTEGER {
+ closed(1),
+ listen(2),
+ synSent(3),
+ synReceived(4),
+ established(5),
+ finWait1(6),
+ finWait2(7),
+ closeWait(8),
+ lastAck(9),
+ closing(10),
+ timeWait(11),
+ deleteTCB(12)
+ }
+ MAX-ACCESS read-write
+ STATUS deprecated
+ DESCRIPTION
+ "The state of this TCP connection.
+
+ The only value that may be set by a management station is
+ deleteTCB(12). Accordingly, it is appropriate for an agent
+ to return a `badValue' response if a management station
+ attempts to set this object to any other value.
+
+ If a management station sets this object to the value
+ deleteTCB(12), then the TCB (as defined in [RFC793]) of
+ the corresponding connection on the managed node is
+ deleted, resulting in immediate termination of the
+ connection.
+
+ As an implementation-specific option, a RST segment may be
+ sent from the managed node to the other TCP endpoint (note,
+ however, that RST segments are not sent reliably)."
+ ::= { tcpConnEntry 1 }
+
+tcpConnLocalAddress OBJECT-TYPE
+ SYNTAX IpAddress
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The local IP address for this TCP connection. In the case
+ of a connection in the listen state willing to
+ accept connections for any IP interface associated with the
+ node, the value 0.0.0.0 is used."
+ ::= { tcpConnEntry 2 }
+
+tcpConnLocalPort OBJECT-TYPE
+ SYNTAX Integer32 (0..65535)
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The local port number for this TCP connection."
+ ::= { tcpConnEntry 3 }
+
+tcpConnRemAddress OBJECT-TYPE
+ SYNTAX IpAddress
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The remote IP address for this TCP connection."
+ ::= { tcpConnEntry 4 }
+
+tcpConnRemPort OBJECT-TYPE
+ SYNTAX Integer32 (0..65535)
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The remote port number for this TCP connection."
+ ::= { tcpConnEntry 5 }
+
+-- conformance information
+
+tcpMIBConformance OBJECT IDENTIFIER ::= { tcpMIB 2 }
+
+tcpMIBCompliances OBJECT IDENTIFIER ::= { tcpMIBConformance 1 }
+tcpMIBGroups OBJECT IDENTIFIER ::= { tcpMIBConformance 2 }
+
+-- compliance statements
+
+tcpMIBCompliance2 MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for systems that implement TCP.
+
+ A number of INDEX objects cannot be
+ represented in the form of OBJECT clauses in SMIv2 but
+ have the following compliance requirements,
+ expressed in OBJECT clause form in this description
+ clause:
+
+ -- OBJECT tcpConnectionLocalAddressType
+ -- SYNTAX InetAddressType { ipv4(1), ipv6(2) }
+ -- DESCRIPTION
+ -- This MIB requires support for only global IPv4
+
+ -- and IPv6 address types.
+ --
+ -- OBJECT tcpConnectionRemAddressType
+ -- SYNTAX InetAddressType { ipv4(1), ipv6(2) }
+ -- DESCRIPTION
+ -- This MIB requires support for only global IPv4
+ -- and IPv6 address types.
+ --
+ -- OBJECT tcpListenerLocalAddressType
+ -- SYNTAX InetAddressType { unknown(0), ipv4(1),
+ -- ipv6(2) }
+ -- DESCRIPTION
+ -- This MIB requires support for only global IPv4
+ -- and IPv6 address types. The type unknown also
+ -- needs to be supported to identify a special
+ -- case in the listener table: a listen using
+ -- both IPv4 and IPv6 addresses on the device.
+ --
+ "
+ MODULE -- this module
+ MANDATORY-GROUPS { tcpBaseGroup, tcpConnectionGroup,
+ tcpListenerGroup }
+ GROUP tcpHCGroup
+ DESCRIPTION
+ "This group is mandatory for systems that are capable
+ of receiving or transmitting more than 1 million TCP
+ segments per second. 1 million segments per second will
+ cause a Counter32 to wrap in just over an hour."
+ OBJECT tcpConnectionState
+ SYNTAX INTEGER { closed(1), listen(2), synSent(3),
+ synReceived(4), established(5),
+ finWait1(6), finWait2(7), closeWait(8),
+ lastAck(9), closing(10), timeWait(11) }
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required, nor is support for the value
+ deleteTCB (12)."
+ ::= { tcpMIBCompliances 2 }
+
+tcpMIBCompliance MODULE-COMPLIANCE
+ STATUS deprecated
+ DESCRIPTION
+ "The compliance statement for IPv4-only systems that
+ implement TCP. In order to be IP version independent, this
+ compliance statement is deprecated in favor of
+ tcpMIBCompliance2. However, agents are still encouraged
+ to implement these objects in order to interoperate with
+ the deployed base of managers."
+
+ MODULE -- this module
+ MANDATORY-GROUPS { tcpGroup }
+ OBJECT tcpConnState
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+ ::= { tcpMIBCompliances 1 }
+
+-- units of conformance
+
+tcpGroup OBJECT-GROUP
+ OBJECTS { tcpRtoAlgorithm, tcpRtoMin, tcpRtoMax,
+ tcpMaxConn, tcpActiveOpens,
+ tcpPassiveOpens, tcpAttemptFails,
+ tcpEstabResets, tcpCurrEstab, tcpInSegs,
+ tcpOutSegs, tcpRetransSegs, tcpConnState,
+ tcpConnLocalAddress, tcpConnLocalPort,
+ tcpConnRemAddress, tcpConnRemPort,
+ tcpInErrs, tcpOutRsts }
+ STATUS deprecated
+ DESCRIPTION
+ "The tcp group of objects providing for management of TCP
+ entities."
+ ::= { tcpMIBGroups 1 }
+
+tcpBaseGroup OBJECT-GROUP
+ OBJECTS { tcpRtoAlgorithm, tcpRtoMin, tcpRtoMax,
+ tcpMaxConn, tcpActiveOpens,
+ tcpPassiveOpens, tcpAttemptFails,
+ tcpEstabResets, tcpCurrEstab, tcpInSegs,
+ tcpOutSegs, tcpRetransSegs,
+ tcpInErrs, tcpOutRsts }
+ STATUS current
+ DESCRIPTION
+ "The group of counters common to TCP entities."
+ ::= { tcpMIBGroups 2 }
+
+tcpConnectionGroup OBJECT-GROUP
+ OBJECTS { tcpConnectionState, tcpConnectionProcess }
+ STATUS current
+ DESCRIPTION
+ "The group provides general information about TCP
+ connections."
+ ::= { tcpMIBGroups 3 }
+
+tcpListenerGroup OBJECT-GROUP
+ OBJECTS { tcpListenerProcess }
+ STATUS current
+ DESCRIPTION
+ "This group has objects providing general information about
+ TCP listeners."
+ ::= { tcpMIBGroups 4 }
+
+tcpHCGroup OBJECT-GROUP
+ OBJECTS { tcpHCInSegs, tcpHCOutSegs }
+ STATUS current
+ DESCRIPTION
+ "The group of objects providing for counters of high speed
+ TCP implementations."
+ ::= { tcpMIBGroups 5 }
+
+END
diff --git a/php/extras/mibs/TRANSPORT-ADDRESS-MIB.txt b/php/extras/mibs/TRANSPORT-ADDRESS-MIB.txt
new file mode 100644
index 000000000..7d450fbc2
--- /dev/null
+++ b/php/extras/mibs/TRANSPORT-ADDRESS-MIB.txt
@@ -0,0 +1,417 @@
+TRANSPORT-ADDRESS-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-IDENTITY, mib-2 FROM SNMPv2-SMI
+ TEXTUAL-CONVENTION FROM SNMPv2-TC;
+
+transportAddressMIB MODULE-IDENTITY
+ LAST-UPDATED "200211010000Z"
+ ORGANIZATION
+ "IETF Operations and Management Area"
+ CONTACT-INFO
+ "Juergen Schoenwaelder (Editor)
+ TU Braunschweig
+ Bueltenweg 74/75
+ 38106 Braunschweig, Germany
+ Phone: +49 531 391-3289
+ EMail: schoenw@ibr.cs.tu-bs.de
+
+ Send comments to ."
+ DESCRIPTION
+ "This MIB module provides commonly used transport
+ address definitions.
+
+ Copyright (C) The Internet Society (2002). This version of
+ this MIB module is part of RFC 3419; see the RFC itself for
+ full legal notices."
+
+ -- Revision log
+
+ REVISION "200211010000Z"
+ DESCRIPTION
+ "Initial version, published as RFC 3419."
+ ::= { mib-2 100 }
+
+
+transportDomains OBJECT IDENTIFIER ::= { transportAddressMIB 1 }
+
+transportDomainUdpIpv4 OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The UDP over IPv4 transport domain. The corresponding
+ transport address is of type TransportAddressIPv4 for
+ global IPv4 addresses."
+ ::= { transportDomains 1 }
+
+transportDomainUdpIpv6 OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The UDP over IPv6 transport domain. The corresponding
+ transport address is of type TransportAddressIPv6 for
+ global IPv6 addresses."
+ ::= { transportDomains 2 }
+
+transportDomainUdpIpv4z OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The UDP over IPv4 transport domain. The corresponding
+ transport address is of type TransportAddressIPv4z for
+ scoped IPv4 addresses with a zone index."
+ ::= { transportDomains 3 }
+
+transportDomainUdpIpv6z OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The UDP over IPv6 transport domain. The corresponding
+ transport address is of type TransportAddressIPv6z for
+ scoped IPv6 addresses with a zone index."
+ ::= { transportDomains 4 }
+
+transportDomainTcpIpv4 OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The TCP over IPv4 transport domain. The corresponding
+ transport address is of type TransportAddressIPv4 for
+ global IPv4 addresses."
+ ::= { transportDomains 5 }
+
+transportDomainTcpIpv6 OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The TCP over IPv6 transport domain. The corresponding
+ transport address is of type TransportAddressIPv6 for
+ global IPv6 addresses."
+ ::= { transportDomains 6 }
+
+transportDomainTcpIpv4z OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The TCP over IPv4 transport domain. The corresponding
+ transport address is of type TransportAddressIPv4z for
+ scoped IPv4 addresses with a zone index."
+ ::= { transportDomains 7 }
+
+transportDomainTcpIpv6z OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The TCP over IPv6 transport domain. The corresponding
+ transport address is of type TransportAddressIPv6z for
+ scoped IPv6 addresses with a zone index."
+ ::= { transportDomains 8 }
+
+transportDomainSctpIpv4 OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The SCTP over IPv4 transport domain. The corresponding
+ transport address is of type TransportAddressIPv4 for
+ global IPv4 addresses. This transport domain usually
+ represents the primary address on multihomed SCTP
+ endpoints."
+ ::= { transportDomains 9 }
+
+transportDomainSctpIpv6 OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The SCTP over IPv6 transport domain. The corresponding
+ transport address is of type TransportAddressIPv6 for
+ global IPv6 addresses. This transport domain usually
+ represents the primary address on multihomed SCTP
+ endpoints."
+ ::= { transportDomains 10 }
+
+transportDomainSctpIpv4z OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The SCTP over IPv4 transport domain. The corresponding
+ transport address is of type TransportAddressIPv4z for
+ scoped IPv4 addresses with a zone index. This transport
+ domain usually represents the primary address on
+ multihomed SCTP endpoints."
+ ::= { transportDomains 11 }
+
+transportDomainSctpIpv6z OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The SCTP over IPv6 transport domain. The corresponding
+ transport address is of type TransportAddressIPv6z for
+ scoped IPv6 addresses with a zone index. This transport
+ domain usually represents the primary address on
+ multihomed SCTP endpoints."
+ ::= { transportDomains 12 }
+
+transportDomainLocal OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The Posix Local IPC transport domain. The corresponding
+ transport address is of type TransportAddressLocal.
+
+ The Posix Local IPC transport domain incorporates the
+ well-known UNIX domain sockets."
+ ::= { transportDomains 13 }
+
+transportDomainUdpDns OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The UDP transport domain using fully qualified domain
+ names. The corresponding transport address is of type
+ TransportAddressDns."
+ ::= { transportDomains 14 }
+
+transportDomainTcpDns OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The TCP transport domain using fully qualified domain
+ names. The corresponding transport address is of type
+ TransportAddressDns."
+ ::= { transportDomains 15 }
+
+transportDomainSctpDns OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The SCTP transport domain using fully qualified domain
+ names. The corresponding transport address is of type
+ TransportAddressDns."
+ ::= { transportDomains 16 }
+
+TransportDomain ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "A value that represents a transport domain.
+
+ Some possible values, such as transportDomainUdpIpv4, are
+ defined in this module. Other possible values can be
+ defined in other MIB modules."
+ SYNTAX OBJECT IDENTIFIER
+
+--
+-- The enumerated values of the textual convention below should
+-- be identical to the last sub-identifier of the OID registered
+-- for the same domain.
+--
+
+TransportAddressType ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "A value that represents a transport domain. This is the
+ enumerated version of the transport domain registrations
+ in this MIB module. The enumerated values have the
+ following meaning:
+
+ unknown(0) unknown transport address type
+ udpIpv4(1) transportDomainUdpIpv4
+ udpIpv6(2) transportDomainUdpIpv6
+ udpIpv4z(3) transportDomainUdpIpv4z
+ udpIpv6z(4) transportDomainUdpIpv6z
+ tcpIpv4(5) transportDomainTcpIpv4
+ tcpIpv6(6) transportDomainTcpIpv6
+ tcpIpv4z(7) transportDomainTcpIpv4z
+ tcpIpv6z(8) transportDomainTcpIpv6z
+ sctpIpv4(9) transportDomainSctpIpv4
+ sctpIpv6(10) transportDomainSctpIpv6
+ sctpIpv4z(11) transportDomainSctpIpv4z
+ sctpIpv6z(12) transportDomainSctpIpv6z
+ local(13) transportDomainLocal
+ udpDns(14) transportDomainUdpDns
+ tcpDns(15) transportDomainTcpDns
+ sctpDns(16) transportDomainSctpDns
+
+ This textual convention can be used to represent transport
+ domains in situations where a syntax of TransportDomain is
+ unwieldy (for example, when used as an index).
+
+ The usage of this textual convention implies that additional
+ transport domains can only be supported by updating this MIB
+ module. This extensibility restriction does not apply for the
+ TransportDomain textual convention which allows MIB authors
+ to define additional transport domains independently in
+ other MIB modules."
+ SYNTAX INTEGER {
+ unknown(0),
+ udpIpv4(1),
+ udpIpv6(2),
+ udpIpv4z(3),
+ udpIpv6z(4),
+ tcpIpv4(5),
+ tcpIpv6(6),
+ tcpIpv4z(7),
+ tcpIpv6z(8),
+ sctpIpv4(9),
+ sctpIpv6(10),
+ sctpIpv4z(11),
+ sctpIpv6z(12),
+ local(13),
+ udpDns(14),
+ tcpDns(15),
+ sctpDns(16)
+ }
+
+TransportAddress ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "Denotes a generic transport address.
+
+ A TransportAddress value is always interpreted within the
+ context of a TransportAddressType or TransportDomain value.
+ Every usage of the TransportAddress textual convention MUST
+ specify the TransportAddressType or TransportDomain object
+ which provides the context. Furthermore, MIB authors SHOULD
+ define a separate TransportAddressType or TransportDomain
+ object for each TransportAddress object. It is suggested that
+ the TransportAddressType or TransportDomain is logically
+ registered before the object(s) which use the
+ TransportAddress textual convention if they appear in the
+ same logical row.
+
+ The value of a TransportAddress object must always be
+ consistent with the value of the associated
+ TransportAddressType or TransportDomain object. Attempts
+ to set a TransportAddress object to a value which is
+ inconsistent with the associated TransportAddressType or
+ TransportDomain must fail with an inconsistentValue error.
+
+ When this textual convention is used as a syntax of an
+ index object, there may be issues with the limit of 128
+ sub-identifiers specified in SMIv2, STD 58. In this case,
+ the OBJECT-TYPE declaration MUST include a 'SIZE' clause
+ to limit the number of potential instance sub-identifiers."
+ SYNTAX OCTET STRING (SIZE (0..255))
+
+TransportAddressIPv4 ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "1d.1d.1d.1d:2d"
+ STATUS current
+ DESCRIPTION
+ "Represents a transport address consisting of an IPv4
+ address and a port number (as used for example by UDP,
+ TCP and SCTP):
+
+ octets contents encoding
+ 1-4 IPv4 address network-byte order
+ 5-6 port number network-byte order
+
+ This textual convention SHOULD NOT be used directly in object
+ definitions since it restricts addresses to a specific format.
+ However, if it is used, it MAY be used either on its own or
+ in conjunction with TransportAddressType or TransportDomain
+ as a pair."
+ SYNTAX OCTET STRING (SIZE (6))
+
+TransportAddressIPv6 ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "0a[2x:2x:2x:2x:2x:2x:2x:2x]0a:2d"
+ STATUS current
+ DESCRIPTION
+ "Represents a transport address consisting of an IPv6
+ address and a port number (as used for example by UDP,
+ TCP and SCTP):
+
+ octets contents encoding
+ 1-16 IPv6 address network-byte order
+ 17-18 port number network-byte order
+
+ This textual convention SHOULD NOT be used directly in object
+ definitions since it restricts addresses to a specific format.
+ However, if it is used, it MAY be used either on its own or
+ in conjunction with TransportAddressType or TransportDomain
+ as a pair."
+ SYNTAX OCTET STRING (SIZE (18))
+
+TransportAddressIPv4z ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "1d.1d.1d.1d%4d:2d"
+ STATUS current
+ DESCRIPTION
+ "Represents a transport address consisting of an IPv4
+ address, a zone index and a port number (as used for
+ example by UDP, TCP and SCTP):
+
+ octets contents encoding
+ 1-4 IPv4 address network-byte order
+ 5-8 zone index network-byte order
+ 9-10 port number network-byte order
+
+ This textual convention SHOULD NOT be used directly in object
+ definitions since it restricts addresses to a specific format.
+ However, if it is used, it MAY be used either on its own or
+ in conjunction with TransportAddressType or TransportDomain
+ as a pair."
+ SYNTAX OCTET STRING (SIZE (10))
+
+TransportAddressIPv6z ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "0a[2x:2x:2x:2x:2x:2x:2x:2x%4d]0a:2d"
+ STATUS current
+ DESCRIPTION
+ "Represents a transport address consisting of an IPv6
+ address, a zone index and a port number (as used for
+ example by UDP, TCP and SCTP):
+
+ octets contents encoding
+ 1-16 IPv6 address network-byte order
+ 17-20 zone index network-byte order
+ 21-22 port number network-byte order
+
+ This textual convention SHOULD NOT be used directly in object
+ definitions since it restricts addresses to a specific format.
+ However, if it is used, it MAY be used either on its own or
+ in conjunction with TransportAddressType or TransportDomain
+ as a pair."
+ SYNTAX OCTET STRING (SIZE (22))
+
+TransportAddressLocal ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "1a"
+ STATUS current
+ DESCRIPTION
+ "Represents a POSIX Local IPC transport address:
+
+ octets contents encoding
+ all POSIX Local IPC address string
+
+ The Posix Local IPC transport domain subsumes UNIX domain
+ sockets.
+
+ This textual convention SHOULD NOT be used directly in object
+ definitions since it restricts addresses to a specific format.
+ However, if it is used, it MAY be used either on its own or
+ in conjunction with TransportAddressType or TransportDomain
+ as a pair.
+
+ When this textual convention is used as a syntax of an
+ index object, there may be issues with the limit of 128
+ sub-identifiers specified in SMIv2, STD 58. In this case,
+ the OBJECT-TYPE declaration MUST include a 'SIZE' clause
+ to limit the number of potential instance sub-identifiers."
+ REFERENCE
+ "Protocol Independent Interfaces (IEEE POSIX 1003.1g)"
+ SYNTAX OCTET STRING (SIZE (1..255))
+
+TransportAddressDns ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "1a"
+ STATUS current
+ DESCRIPTION
+ "Represents a DNS domain name followed by a colon ':'
+ (ASCII character 0x3A) and a port number in ASCII.
+ The name SHOULD be fully qualified whenever possible.
+
+ Values of this textual convention are not directly useable as
+ transport-layer addressing information, and require runtime
+ resolution. As such, applications that write them must be
+ prepared for handling errors if such values are not
+ supported, or cannot be resolved (if resolution occurs at the
+ time of the management operation).
+
+ The DESCRIPTION clause of TransportAddress objects that may
+ have TransportAddressDns values must fully describe how (and
+ when) such names are to be resolved to IP addresses and vice
+ versa.
+
+ This textual convention SHOULD NOT be used directly in object
+ definitions since it restricts addresses to a specific format.
+ However, if it is used, it MAY be used either on its own or
+ in conjunction with TransportAddressType or TransportDomain
+ as a pair.
+
+ When this textual convention is used as a syntax of an
+ index object, there may be issues with the limit of 128
+ sub-identifiers specified in SMIv2, STD 58. In this case,
+ the OBJECT-TYPE declaration MUST include a 'SIZE' clause
+ to limit the number of potential instance sub-identifiers."
+ SYNTAX OCTET STRING (SIZE (1..255))
+
+END
diff --git a/php/extras/mibs/TUNNEL-MIB.txt b/php/extras/mibs/TUNNEL-MIB.txt
new file mode 100644
index 000000000..615faa686
--- /dev/null
+++ b/php/extras/mibs/TUNNEL-MIB.txt
@@ -0,0 +1,774 @@
+TUNNEL-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE, transmission,
+ Integer32, IpAddress FROM SNMPv2-SMI -- [RFC2578]
+
+ RowStatus, StorageType FROM SNMPv2-TC -- [RFC2579]
+
+ MODULE-COMPLIANCE,
+ OBJECT-GROUP FROM SNMPv2-CONF -- [RFC2580]
+
+ InetAddressType,
+ InetAddress FROM INET-ADDRESS-MIB -- [RFC4001]
+
+ IPv6FlowLabelOrAny FROM IPV6-FLOW-LABEL-MIB -- [RFC3595]
+
+ ifIndex,
+ InterfaceIndexOrZero FROM IF-MIB -- [RFC2863]
+
+ IANAtunnelType FROM IANAifType-MIB; -- [IFTYPE]
+
+tunnelMIB MODULE-IDENTITY
+ LAST-UPDATED "200505160000Z" -- May 16, 2005
+ ORGANIZATION "IETF IP Version 6 (IPv6) Working Group"
+ CONTACT-INFO
+ " Dave Thaler
+ Microsoft Corporation
+ One Microsoft Way
+ Redmond, WA 98052-6399
+ EMail: dthaler@microsoft.com"
+ DESCRIPTION
+ "The MIB module for management of IP Tunnels,
+ independent of the specific encapsulation scheme in
+ use.
+
+ Copyright (C) The Internet Society (2005). This
+ version of this MIB module is part of RFC 4087; see
+ the RFC itself for full legal notices."
+
+
+
+ REVISION "200505160000Z" -- May 16, 2005
+ DESCRIPTION
+ "IPv4-specific objects were deprecated, including
+ tunnelIfLocalAddress, tunnelIfRemoteAddress, the
+ tunnelConfigTable, and the tunnelMIBBasicGroup.
+
+ Added IP version-agnostic objects that should be used
+ instead, including tunnelIfAddressType,
+ tunnelIfLocalInetAddress, tunnelIfRemoteInetAddress,
+ the tunnelInetConfigTable, and the
+ tunnelIMIBInetGroup.
+
+ The new tunnelIfLocalInetAddress and
+ tunnelIfRemoteInetAddress objects are read-write,
+ rather than read-only.
+
+ Updated DESCRIPTION clauses of existing version-
+ agnostic objects (e.g., tunnelIfTOS) that contained
+ IPv4-specific text to cover IPv6 as well.
+
+ Added tunnelIfFlowLabel for tunnels over IPv6.
+
+ The encapsulation method was previously an INTEGER
+ type, and is now an IANA-maintained textual
+ convention.
+
+ Published as RFC 4087."
+ REVISION "199908241200Z" -- August 24, 1999
+ DESCRIPTION
+ "Initial version, published as RFC 2667."
+ ::= { transmission 131 }
+
+tunnelMIBObjects OBJECT IDENTIFIER ::= { tunnelMIB 1 }
+
+tunnel OBJECT IDENTIFIER ::= { tunnelMIBObjects 1 }
+
+-- the IP Tunnel MIB-Group
+--
+-- a collection of objects providing information about
+-- IP Tunnels
+
+tunnelIfTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF TunnelIfEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The (conceptual) table containing information on
+ configured tunnels."
+
+
+
+ ::= { tunnel 1 }
+
+tunnelIfEntry OBJECT-TYPE
+ SYNTAX TunnelIfEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry (conceptual row) containing the information
+ on a particular configured tunnel."
+ INDEX { ifIndex }
+ ::= { tunnelIfTable 1 }
+
+TunnelIfEntry ::= SEQUENCE {
+ tunnelIfLocalAddress IpAddress, -- deprecated
+ tunnelIfRemoteAddress IpAddress, -- deprecated
+ tunnelIfEncapsMethod IANAtunnelType,
+ tunnelIfHopLimit Integer32,
+ tunnelIfSecurity INTEGER,
+ tunnelIfTOS Integer32,
+ tunnelIfFlowLabel IPv6FlowLabelOrAny,
+ tunnelIfAddressType InetAddressType,
+ tunnelIfLocalInetAddress InetAddress,
+ tunnelIfRemoteInetAddress InetAddress,
+ tunnelIfEncapsLimit Integer32
+}
+
+tunnelIfLocalAddress OBJECT-TYPE
+ SYNTAX IpAddress
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The address of the local endpoint of the tunnel
+ (i.e., the source address used in the outer IP
+ header), or 0.0.0.0 if unknown or if the tunnel is
+ over IPv6.
+
+ Since this object does not support IPv6, it is
+ deprecated in favor of tunnelIfLocalInetAddress."
+ ::= { tunnelIfEntry 1 }
+
+tunnelIfRemoteAddress OBJECT-TYPE
+ SYNTAX IpAddress
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The address of the remote endpoint of the tunnel
+ (i.e., the destination address used in the outer IP
+ header), or 0.0.0.0 if unknown, or an IPv6 address, or
+
+
+
+ the tunnel is not a point-to-point link (e.g., if it
+ is a 6to4 tunnel).
+
+ Since this object does not support IPv6, it is
+ deprecated in favor of tunnelIfRemoteInetAddress."
+ ::= { tunnelIfEntry 2 }
+
+tunnelIfEncapsMethod OBJECT-TYPE
+ SYNTAX IANAtunnelType
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The encapsulation method used by the tunnel."
+ ::= { tunnelIfEntry 3 }
+
+tunnelIfHopLimit OBJECT-TYPE
+ SYNTAX Integer32 (0 | 1..255)
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The IPv4 TTL or IPv6 Hop Limit to use in the outer IP
+ header. A value of 0 indicates that the value is
+ copied from the payload's header."
+ ::= { tunnelIfEntry 4 }
+
+tunnelIfSecurity OBJECT-TYPE
+ SYNTAX INTEGER {
+ none(1), -- no security
+ ipsec(2), -- IPsec security
+ other(3)
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The method used by the tunnel to secure the outer IP
+ header. The value ipsec indicates that IPsec is used
+ between the tunnel endpoints for authentication or
+ encryption or both. More specific security-related
+ information may be available in a MIB module for the
+ security protocol in use."
+ ::= { tunnelIfEntry 5 }
+
+tunnelIfTOS OBJECT-TYPE
+ SYNTAX Integer32 (-2..63)
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The method used to set the high 6 bits (the
+
+
+
+ differentiated services codepoint) of the IPv4 TOS or
+ IPv6 Traffic Class in the outer IP header. A value of
+ -1 indicates that the bits are copied from the
+ payload's header. A value of -2 indicates that a
+ traffic conditioner is invoked and more information
+ may be available in a traffic conditioner MIB module.
+ A value between 0 and 63 inclusive indicates that the
+ bit field is set to the indicated value.
+
+ Note: instead of the name tunnelIfTOS, a better name
+ would have been tunnelIfDSCPMethod, but the existing
+ name appeared in RFC 2667 and existing objects cannot
+ be renamed."
+ ::= { tunnelIfEntry 6 }
+
+tunnelIfFlowLabel OBJECT-TYPE
+ SYNTAX IPv6FlowLabelOrAny
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The method used to set the IPv6 Flow Label value.
+ This object need not be present in rows where
+ tunnelIfAddressType indicates the tunnel is not over
+ IPv6. A value of -1 indicates that a traffic
+ conditioner is invoked and more information may be
+ available in a traffic conditioner MIB. Any other
+ value indicates that the Flow Label field is set to
+ the indicated value."
+ ::= { tunnelIfEntry 7 }
+
+tunnelIfAddressType OBJECT-TYPE
+ SYNTAX InetAddressType
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The type of address in the corresponding
+ tunnelIfLocalInetAddress and tunnelIfRemoteInetAddress
+ objects."
+ ::= { tunnelIfEntry 8 }
+
+tunnelIfLocalInetAddress OBJECT-TYPE
+ SYNTAX InetAddress
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The address of the local endpoint of the tunnel
+ (i.e., the source address used in the outer IP
+ header). If the address is unknown, the value is
+
+
+
+ 0.0.0.0 for IPv4 or :: for IPv6. The type of this
+ object is given by tunnelIfAddressType."
+ ::= { tunnelIfEntry 9 }
+
+tunnelIfRemoteInetAddress OBJECT-TYPE
+ SYNTAX InetAddress
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The address of the remote endpoint of the tunnel
+ (i.e., the destination address used in the outer IP
+ header). If the address is unknown or the tunnel is
+ not a point-to-point link (e.g., if it is a 6to4
+ tunnel), the value is 0.0.0.0 for tunnels over IPv4 or
+ :: for tunnels over IPv6. The type of this object is
+ given by tunnelIfAddressType."
+ ::= { tunnelIfEntry 10 }
+
+tunnelIfEncapsLimit OBJECT-TYPE
+ SYNTAX Integer32 (-1 | 0..255)
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The maximum number of additional encapsulations
+ permitted for packets undergoing encapsulation at this
+ node. A value of -1 indicates that no limit is
+ present (except as a result of the packet size)."
+ REFERENCE "RFC 2473, section 4.1.1"
+ ::= { tunnelIfEntry 11 }
+
+tunnelConfigTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF TunnelConfigEntry
+ MAX-ACCESS not-accessible
+ STATUS deprecated
+ DESCRIPTION
+ "The (conceptual) table containing information on
+ configured tunnels. This table can be used to map a
+ set of tunnel endpoints to the associated ifIndex
+ value. It can also be used for row creation. Note
+ that every row in the tunnelIfTable with a fixed IPv4
+ destination address should have a corresponding row in
+ the tunnelConfigTable, regardless of whether it was
+ created via SNMP.
+
+ Since this table does not support IPv6, it is
+ deprecated in favor of tunnelInetConfigTable."
+ ::= { tunnel 2 }
+
+
+
+
+tunnelConfigEntry OBJECT-TYPE
+ SYNTAX TunnelConfigEntry
+ MAX-ACCESS not-accessible
+ STATUS deprecated
+ DESCRIPTION
+ "An entry (conceptual row) containing the information
+ on a particular configured tunnel.
+
+ Since this entry does not support IPv6, it is
+ deprecated in favor of tunnelInetConfigEntry."
+ INDEX { tunnelConfigLocalAddress,
+ tunnelConfigRemoteAddress,
+ tunnelConfigEncapsMethod,
+ tunnelConfigID }
+ ::= { tunnelConfigTable 1 }
+
+TunnelConfigEntry ::= SEQUENCE {
+ tunnelConfigLocalAddress IpAddress,
+ tunnelConfigRemoteAddress IpAddress,
+ tunnelConfigEncapsMethod IANAtunnelType,
+ tunnelConfigID Integer32,
+ tunnelConfigIfIndex InterfaceIndexOrZero,
+ tunnelConfigStatus RowStatus
+}
+
+tunnelConfigLocalAddress OBJECT-TYPE
+ SYNTAX IpAddress
+ MAX-ACCESS not-accessible
+ STATUS deprecated
+ DESCRIPTION
+ "The address of the local endpoint of the tunnel, or
+ 0.0.0.0 if the device is free to choose any of its
+ addresses at tunnel establishment time.
+
+ Since this object does not support IPv6, it is
+ deprecated in favor of tunnelInetConfigLocalAddress."
+ ::= { tunnelConfigEntry 1 }
+
+tunnelConfigRemoteAddress OBJECT-TYPE
+ SYNTAX IpAddress
+ MAX-ACCESS not-accessible
+ STATUS deprecated
+ DESCRIPTION
+ "The address of the remote endpoint of the tunnel.
+
+ Since this object does not support IPv6, it is
+ deprecated in favor of tunnelInetConfigRemoteAddress."
+ ::= { tunnelConfigEntry 2 }
+
+
+
+tunnelConfigEncapsMethod OBJECT-TYPE
+ SYNTAX IANAtunnelType
+ MAX-ACCESS not-accessible
+ STATUS deprecated
+ DESCRIPTION
+ "The encapsulation method used by the tunnel.
+
+ Since this object does not support IPv6, it is
+ deprecated in favor of tunnelInetConfigEncapsMethod."
+ ::= { tunnelConfigEntry 3 }
+
+tunnelConfigID OBJECT-TYPE
+ SYNTAX Integer32 (1..2147483647)
+ MAX-ACCESS not-accessible
+ STATUS deprecated
+ DESCRIPTION
+ "An identifier used to distinguish between multiple
+ tunnels of the same encapsulation method, with the
+ same endpoints. If the encapsulation protocol only
+ allows one tunnel per set of endpoint addresses (such
+ as for GRE or IP-in-IP), the value of this object is
+ 1. For encapsulation methods (such as L2F) which
+ allow multiple parallel tunnels, the manager is
+ responsible for choosing any ID which does not
+ conflict with an existing row, such as choosing a
+ random number.
+
+ Since this object does not support IPv6, it is
+ deprecated in favor of tunnelInetConfigID."
+ ::= { tunnelConfigEntry 4 }
+
+tunnelConfigIfIndex OBJECT-TYPE
+ SYNTAX InterfaceIndexOrZero
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "If the value of tunnelConfigStatus for this row is
+ active, then this object contains the value of ifIndex
+ corresponding to the tunnel interface. A value of 0
+ is not legal in the active state, and means that the
+ interface index has not yet been assigned.
+
+ Since this object does not support IPv6, it is
+ deprecated in favor of tunnelInetConfigIfIndex."
+ ::= { tunnelConfigEntry 5 }
+
+tunnelConfigStatus OBJECT-TYPE
+ SYNTAX RowStatus
+
+
+
+ MAX-ACCESS read-create
+ STATUS deprecated
+ DESCRIPTION
+ "The status of this row, by which new entries may be
+ created, or old entries deleted from this table. The
+ agent need not support setting this object to
+ createAndWait or notInService since there are no other
+ writable objects in this table, and writable objects
+ in rows of corresponding tables such as the
+ tunnelIfTable may be modified while this row is
+ active.
+
+ To create a row in this table for an encapsulation
+ method which does not support multiple parallel
+ tunnels with the same endpoints, the management
+ station should simply use a tunnelConfigID of 1, and
+ set tunnelConfigStatus to createAndGo. For
+ encapsulation methods such as L2F which allow multiple
+ parallel tunnels, the management station may select a
+ pseudo-random number to use as the tunnelConfigID and
+ set tunnelConfigStatus to createAndGo. In the event
+ that this ID is already in use and an
+ inconsistentValue is returned in response to the set
+ operation, the management station should simply select
+ a new pseudo-random number and retry the operation.
+
+ Creating a row in this table will cause an interface
+ index to be assigned by the agent in an
+ implementation-dependent manner, and corresponding
+ rows will be instantiated in the ifTable and the
+ tunnelIfTable. The status of this row will become
+ active as soon as the agent assigns the interface
+ index, regardless of whether the interface is
+ operationally up.
+
+ Deleting a row in this table will likewise delete the
+ corresponding row in the ifTable and in the
+ tunnelIfTable.
+
+ Since this object does not support IPv6, it is
+ deprecated in favor of tunnelInetConfigStatus."
+ ::= { tunnelConfigEntry 6 }
+
+tunnelInetConfigTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF TunnelInetConfigEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+
+
+
+ "The (conceptual) table containing information on
+ configured tunnels. This table can be used to map a
+ set of tunnel endpoints to the associated ifIndex
+ value. It can also be used for row creation. Note
+ that every row in the tunnelIfTable with a fixed
+ destination address should have a corresponding row in
+ the tunnelInetConfigTable, regardless of whether it
+ was created via SNMP."
+ ::= { tunnel 3 }
+
+tunnelInetConfigEntry OBJECT-TYPE
+ SYNTAX TunnelInetConfigEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry (conceptual row) containing the information
+ on a particular configured tunnel. Note that there is
+ a 128 subid maximum for object OIDs. Implementers
+ need to be aware that if the total number of octets in
+ tunnelInetConfigLocalAddress and
+ tunnelInetConfigRemoteAddress exceeds 110 then OIDs of
+ column instances in this table will have more than 128
+ sub-identifiers and cannot be accessed using SNMPv1,
+ SNMPv2c, or SNMPv3. In practice this is not expected
+ to be a problem since IPv4 and IPv6 addresses will not
+ cause the limit to be reached, but if other types are
+ supported by an agent, care must be taken to ensure
+ that the sum of the lengths do not cause the limit to
+ be exceeded."
+ INDEX { tunnelInetConfigAddressType,
+ tunnelInetConfigLocalAddress,
+ tunnelInetConfigRemoteAddress,
+ tunnelInetConfigEncapsMethod,
+ tunnelInetConfigID }
+ ::= { tunnelInetConfigTable 1 }
+
+TunnelInetConfigEntry ::= SEQUENCE {
+ tunnelInetConfigAddressType InetAddressType,
+ tunnelInetConfigLocalAddress InetAddress,
+ tunnelInetConfigRemoteAddress InetAddress,
+ tunnelInetConfigEncapsMethod IANAtunnelType,
+ tunnelInetConfigID Integer32,
+ tunnelInetConfigIfIndex InterfaceIndexOrZero,
+ tunnelInetConfigStatus RowStatus,
+ tunnelInetConfigStorageType StorageType
+}
+
+tunnelInetConfigAddressType OBJECT-TYPE
+
+
+
+ SYNTAX InetAddressType
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The address type over which the tunnel encapsulates
+ packets."
+ ::= { tunnelInetConfigEntry 1 }
+
+tunnelInetConfigLocalAddress OBJECT-TYPE
+ SYNTAX InetAddress
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The address of the local endpoint of the tunnel, or
+ 0.0.0.0 (for IPv4) or :: (for IPv6) if the device is
+ free to choose any of its addresses at tunnel
+ establishment time."
+ ::= { tunnelInetConfigEntry 2 }
+
+tunnelInetConfigRemoteAddress OBJECT-TYPE
+ SYNTAX InetAddress
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The address of the remote endpoint of the tunnel."
+ ::= { tunnelInetConfigEntry 3 }
+
+tunnelInetConfigEncapsMethod OBJECT-TYPE
+ SYNTAX IANAtunnelType
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The encapsulation method used by the tunnel."
+ ::= { tunnelInetConfigEntry 4 }
+
+tunnelInetConfigID OBJECT-TYPE
+ SYNTAX Integer32 (1..2147483647)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An identifier used to distinguish between multiple
+ tunnels of the same encapsulation method, with the
+ same endpoints. If the encapsulation protocol only
+ allows one tunnel per set of endpoint addresses (such
+ as for GRE or IP-in-IP), the value of this object is
+ 1. For encapsulation methods (such as L2F) which
+ allow multiple parallel tunnels, the manager is
+ responsible for choosing any ID which does not
+
+
+
+ conflict with an existing row, such as choosing a
+ random number."
+ ::= { tunnelInetConfigEntry 5 }
+
+tunnelInetConfigIfIndex OBJECT-TYPE
+ SYNTAX InterfaceIndexOrZero
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "If the value of tunnelInetConfigStatus for this row
+ is active, then this object contains the value of
+ ifIndex corresponding to the tunnel interface. A
+ value of 0 is not legal in the active state, and means
+ that the interface index has not yet been assigned."
+ ::= { tunnelInetConfigEntry 6 }
+
+tunnelInetConfigStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status of this row, by which new entries may be
+ created, or old entries deleted from this table. The
+ agent need not support setting this object to
+ createAndWait or notInService since there are no other
+ writable objects in this table, and writable objects
+ in rows of corresponding tables such as the
+ tunnelIfTable may be modified while this row is
+ active.
+
+ To create a row in this table for an encapsulation
+ method which does not support multiple parallel
+ tunnels with the same endpoints, the management
+ station should simply use a tunnelInetConfigID of 1,
+ and set tunnelInetConfigStatus to createAndGo. For
+ encapsulation methods such as L2F which allow multiple
+ parallel tunnels, the management station may select a
+ pseudo-random number to use as the tunnelInetConfigID
+ and set tunnelInetConfigStatus to createAndGo. In the
+ event that this ID is already in use and an
+ inconsistentValue is returned in response to the set
+ operation, the management station should simply select
+ a new pseudo-random number and retry the operation.
+
+ Creating a row in this table will cause an interface
+ index to be assigned by the agent in an
+ implementation-dependent manner, and corresponding
+ rows will be instantiated in the ifTable and the
+
+
+
+ tunnelIfTable. The status of this row will become
+ active as soon as the agent assigns the interface
+ index, regardless of whether the interface is
+ operationally up.
+
+ Deleting a row in this table will likewise delete the
+ corresponding row in the ifTable and in the
+ tunnelIfTable."
+ ::= { tunnelInetConfigEntry 7 }
+
+tunnelInetConfigStorageType OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The storage type of this row. If the row is
+ permanent(4), no objects in the row need be writable."
+ ::= { tunnelInetConfigEntry 8 }
+
+-- conformance information
+
+tunnelMIBConformance
+ OBJECT IDENTIFIER ::= { tunnelMIB 2 }
+tunnelMIBCompliances
+ OBJECT IDENTIFIER ::= { tunnelMIBConformance 1 }
+tunnelMIBGroups OBJECT IDENTIFIER ::= { tunnelMIBConformance 2 }
+
+-- compliance statements
+
+tunnelMIBCompliance MODULE-COMPLIANCE
+ STATUS deprecated
+ DESCRIPTION
+ "The (deprecated) IPv4-only compliance statement for
+ the IP Tunnel MIB.
+
+ This is deprecated in favor of
+ tunnelMIBInetFullCompliance and
+ tunnelMIBInetReadOnlyCompliance."
+ MODULE -- this module
+ MANDATORY-GROUPS { tunnelMIBBasicGroup }
+
+ OBJECT tunnelIfHopLimit
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+
+ OBJECT tunnelIfTOS
+ MIN-ACCESS read-only
+
+
+
+ DESCRIPTION
+ "Write access is not required."
+
+ OBJECT tunnelConfigStatus
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+ ::= { tunnelMIBCompliances 1 }
+
+tunnelMIBInetFullCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The full compliance statement for the IP Tunnel MIB."
+ MODULE -- this module
+ MANDATORY-GROUPS { tunnelMIBInetGroup }
+
+ OBJECT tunnelIfAddressType
+ SYNTAX InetAddressType { ipv4(1), ipv6(2),
+ ipv4z(3), ipv6z(4) }
+ DESCRIPTION
+ "An implementation is only required to support IPv4
+ and/or IPv6 addresses. An implementation only needs to
+ support the addresses it actually supports on the
+ device."
+ ::= { tunnelMIBCompliances 2 }
+
+tunnelMIBInetReadOnlyCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The read-only compliance statement for the IP Tunnel
+ MIB."
+ MODULE -- this module
+ MANDATORY-GROUPS { tunnelMIBInetGroup }
+
+ OBJECT tunnelIfHopLimit
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+
+ OBJECT tunnelIfTOS
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+
+ OBJECT tunnelIfFlowLabel
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+
+
+
+ OBJECT tunnelIfAddressType
+ SYNTAX InetAddressType { ipv4(1), ipv6(2),
+ ipv4z(3), ipv6z(4) }
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required.
+
+ An implementation is only required to support IPv4
+ and/or IPv6 addresses. An implementation only needs to
+ support the addresses it actually supports on the
+ device."
+
+ OBJECT tunnelIfLocalInetAddress
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+
+ OBJECT tunnelIfRemoteInetAddress
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+
+ OBJECT tunnelIfEncapsLimit
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+
+ OBJECT tunnelInetConfigStatus
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required, and active is the only
+ status that needs to be supported."
+
+ OBJECT tunnelInetConfigStorageType
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+ ::= { tunnelMIBCompliances 3 }
+
+-- units of conformance
+
+tunnelMIBBasicGroup OBJECT-GROUP
+ OBJECTS { tunnelIfLocalAddress, tunnelIfRemoteAddress,
+ tunnelIfEncapsMethod, tunnelIfHopLimit, tunnelIfTOS,
+ tunnelIfSecurity, tunnelConfigIfIndex, tunnelConfigStatus }
+ STATUS deprecated
+ DESCRIPTION
+ "A collection of objects to support basic management
+
+
+
+ of IPv4 Tunnels. Since this group cannot support
+ IPv6, it is deprecated in favor of
+ tunnelMIBInetGroup."
+ ::= { tunnelMIBGroups 1 }
+
+tunnelMIBInetGroup OBJECT-GROUP
+ OBJECTS { tunnelIfAddressType, tunnelIfLocalInetAddress,
+ tunnelIfRemoteInetAddress, tunnelIfEncapsMethod,
+ tunnelIfEncapsLimit,
+ tunnelIfHopLimit, tunnelIfTOS, tunnelIfFlowLabel,
+ tunnelIfSecurity, tunnelInetConfigIfIndex,
+ tunnelInetConfigStatus, tunnelInetConfigStorageType }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects to support basic management
+ of IPv4 and IPv6 Tunnels."
+ ::= { tunnelMIBGroups 2 }
+
+END
diff --git a/php/extras/mibs/UCD-DEMO-MIB.inc b/php/extras/mibs/UCD-DEMO-MIB.inc
new file mode 100644
index 000000000..0bb9566ea
--- /dev/null
+++ b/php/extras/mibs/UCD-DEMO-MIB.inc
@@ -0,0 +1,11 @@
+-- input include file for smicng.
+
+#condInclude "SNMPv2-SMI.inc" -- SNMPv2-SMI (SNMPv2 SMI)
+#condInclude "SNMPv2-TC.inc" -- SNMPv2-TC (SNMPv2 TC macro and base TCs)
+#condInclude "UCD-SNMP-MIB.inc"
+
+#pushOpt
+#addOpt "CM"
+#condInclude "UCD-DEMO-MIB.txt"
+#popOpt
+
diff --git a/php/extras/mibs/UCD-DEMO-MIB.txt b/php/extras/mibs/UCD-DEMO-MIB.txt
new file mode 100644
index 000000000..c3b566d86
--- /dev/null
+++ b/php/extras/mibs/UCD-DEMO-MIB.txt
@@ -0,0 +1,74 @@
+UCD-DEMO-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE, Integer32 FROM SNMPv2-SMI
+ ucdavis FROM UCD-SNMP-MIB;
+
+ucdDemoMIB MODULE-IDENTITY
+ LAST-UPDATED "9912090000Z"
+ ORGANIZATION "University of California, Davis"
+ CONTACT-INFO
+ "This mib is no longer being maintained by the University of
+ California and is now in life-support-mode and being
+ maintained by the net-snmp project. The best place to write
+ for public questions about the net-snmp-coders mailing list
+ at net-snmp-coders@lists.sourceforge.net.
+
+ postal: Wes Hardaker
+ P.O. Box 382
+ Davis CA 95617
+
+ email: net-snmp-coders@lists.sourceforge.net
+ "
+ DESCRIPTION
+ "The UCD-SNMP Demonstration MIB."
+ REVISION "9912090000Z"
+ DESCRIPTION
+ "SMIv2 version converted from older MIB definitions."
+ ::= { ucdavis 14 }
+
+ucdDemoMIBObjects OBJECT IDENTIFIER ::= { ucdDemoMIB 1 }
+
+ucdDemoPublic OBJECT IDENTIFIER ::= { ucdDemoMIBObjects 1 }
+
+ucdDemoResetKeys OBJECT-TYPE
+ SYNTAX Integer32 (0..2147483647)
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "A set of value 1 to this object resets the
+ demonstration user's auth and priv keys to the
+ keys based on the P->Ku->Kul transformation of the
+ value of the ucdDemoPasspharse object.
+
+ Values other than 1 are ignored."
+ ::= { ucdDemoPublic 1 }
+
+ucdDemoPublicString OBJECT-TYPE
+ SYNTAX OCTET STRING (SIZE(0..1024))
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "A publicly settable string that can be set for testing
+ snmpsets. This value has no real usage other than
+ testing purposes."
+ ::= { ucdDemoPublic 2 }
+
+ucdDemoUserList OBJECT-TYPE
+ SYNTAX OCTET STRING
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The list of users affected by the ucdDemoResetKeys object."
+ ::= { ucdDemoPublic 3 }
+
+ucdDemoPassphrase OBJECT-TYPE
+ SYNTAX OCTET STRING
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The demo passphrase that ucdDemoResetKeys changes each
+ users localized key to based on the P->Ku->Kul transformation."
+ ::= { ucdDemoPublic 4 }
+
+END
diff --git a/php/extras/mibs/UCD-DISKIO-MIB.inc b/php/extras/mibs/UCD-DISKIO-MIB.inc
new file mode 100644
index 000000000..8f96ccad0
--- /dev/null
+++ b/php/extras/mibs/UCD-DISKIO-MIB.inc
@@ -0,0 +1,11 @@
+-- input include file for smicng.
+
+#condInclude "SNMPv2-SMI.inc" -- SNMPv2-SMI (SNMPv2 SMI)
+#condInclude "SNMPv2-TC.inc" -- SNMPv2-TC (SNMPv2 TC macro and base TCs)
+#condInclude "UCD-SNMP-MIB.inc"
+
+#pushOpt
+#addOpt "CM"
+#condInclude "UCD-DISKIO-MIB.txt"
+#popOpt
+
diff --git a/php/extras/mibs/UCD-DISKIO-MIB.txt b/php/extras/mibs/UCD-DISKIO-MIB.txt
new file mode 100644
index 000000000..3b6aae2f7
--- /dev/null
+++ b/php/extras/mibs/UCD-DISKIO-MIB.txt
@@ -0,0 +1,162 @@
+UCD-DISKIO-MIB DEFINITIONS ::= BEGIN
+
+--
+-- Derived from the original VEST-INTERNETT-MIB. Open issues:
+--
+-- (a) where to register this MIB?
+-- (b) use not-accessible for diskIOIndex?
+--
+
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE, Integer32, Counter32, Counter64
+ FROM SNMPv2-SMI
+ DisplayString
+ FROM SNMPv2-TC
+ ucdExperimental
+ FROM UCD-SNMP-MIB;
+
+ucdDiskIOMIB MODULE-IDENTITY
+ LAST-UPDATED "200001260000Z"
+ ORGANIZATION "University of California, Davis"
+ CONTACT-INFO
+ "This mib is no longer being maintained by the University of
+ California and is now in life-support-mode and being
+ maintained by the net-snmp project. The best place to write
+ for public questions about the net-snmp-coders mailing list
+ at net-snmp-coders@lists.sourceforge.net.
+
+ postal: Wes Hardaker
+ P.O. Box 382
+ Davis CA 95617
+
+ email: net-snmp-coders@lists.sourceforge.net
+ "
+ DESCRIPTION
+ "This MIB module defines objects for disk IO statistics."
+ REVISION "200001260000Z"
+ DESCRIPTION
+ "SMIv2 version derived from older definitions contained
+ in the VEST-INTERNETT-MIB module."
+ REVISION "200504200000Z"
+ DESCRIPTION
+ "Add 64 bit counters. Patch from Dan Nelson."
+ ::= { ucdExperimental 15 }
+
+diskIOTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF DiskIOEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Table of IO devices and how much data they have read/written."
+ ::= { ucdDiskIOMIB 1 }
+
+diskIOEntry OBJECT-TYPE
+ SYNTAX DiskIOEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry containing a device and its statistics."
+ INDEX { diskIOIndex }
+ ::= { diskIOTable 1 }
+
+DiskIOEntry ::= SEQUENCE {
+ diskIOIndex Integer32,
+ diskIODevice DisplayString,
+ diskIONRead Counter32,
+ diskIONWritten Counter32,
+ diskIOReads Counter32,
+ diskIOWrites Counter32,
+ diskIONReadX Counter64,
+ diskIONWrittenX Counter64
+}
+
+diskIOIndex OBJECT-TYPE
+ SYNTAX Integer32 (0..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Reference index for each observed device."
+ ::= { diskIOEntry 1 }
+
+diskIODevice OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The name of the device we are counting/checking."
+ ::= { diskIOEntry 2 }
+
+diskIONRead OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of bytes read from this device since boot."
+ ::= { diskIOEntry 3 }
+
+diskIONWritten OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of bytes written to this device since boot."
+ ::= { diskIOEntry 4 }
+
+diskIOReads OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of read accesses from this device since boot."
+ ::= { diskIOEntry 5 }
+
+diskIOWrites OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of write accesses to this device since boot."
+ ::= { diskIOEntry 6 }
+
+diskIOLA1 OBJECT-TYPE
+ SYNTAX Integer32 (0..100)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The 1 minute average load of disk (%)"
+ ::= { diskIOEntry 9 }
+
+diskIOLA5 OBJECT-TYPE
+ SYNTAX Integer32 (0..100)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The 5 minute average load of disk (%)"
+ ::= { diskIOEntry 10 }
+
+diskIOLA15 OBJECT-TYPE
+ SYNTAX Integer32 (0..100)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The 15 minute average load of disk (%)"
+ ::= { diskIOEntry 11 }
+
+diskIONReadX OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of bytes read from this device since boot."
+ ::= { diskIOEntry 12 }
+
+diskIONWrittenX OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of bytes written to this device since boot."
+ ::= { diskIOEntry 13 }
+
+END
diff --git a/php/extras/mibs/UCD-DLMOD-MIB.inc b/php/extras/mibs/UCD-DLMOD-MIB.inc
new file mode 100644
index 000000000..21517fa49
--- /dev/null
+++ b/php/extras/mibs/UCD-DLMOD-MIB.inc
@@ -0,0 +1,8 @@
+#condInclude "SNMPv2-SMI.inc" -- SNMPv2-SMI (SNMPv2 SMI)
+#condInclude "SNMPv2-TC.inc" -- SNMPv2-TC (SNMPv2 TC macro and base TCs)
+#condInclude "UCD-SNMP-MIB.inc"
+
+#pushOpt
+#addOpt "CM"
+#condInclude "UCD-DLMOD-MIB.txt"
+#popOpt
diff --git a/php/extras/mibs/UCD-DLMOD-MIB.txt b/php/extras/mibs/UCD-DLMOD-MIB.txt
new file mode 100644
index 000000000..483b21118
--- /dev/null
+++ b/php/extras/mibs/UCD-DLMOD-MIB.txt
@@ -0,0 +1,119 @@
+UCD-DLMOD-MIB DEFINITIONS ::= BEGIN
+
+-- Why do we have dlmodNextIndex if the dlmodTable is read-write?
+-- What exactly is the dlmodName and dlmodPath?
+-- Should there not be a timestamp associated with dlmodError?
+-- What exactly do the dlmodStatus enumerations mean?
+
+IMPORTS
+ OBJECT-TYPE, MODULE-IDENTITY, Integer32 FROM SNMPv2-SMI
+ DisplayString FROM SNMPv2-TC
+ ucdExperimental FROM UCD-SNMP-MIB;
+
+ucdDlmodMIB MODULE-IDENTITY
+ LAST-UPDATED "9912100000Z"
+ ORGANIZATION "University of California, Davis"
+ CONTACT-INFO
+ "This mib is no longer being maintained by the University of
+ California and is now in life-support-mode and being
+ maintained by the net-snmp project. The best place to write
+ for public questions about the net-snmp-coders mailing list
+ at net-snmp-coders@lists.sourceforge.net.
+
+ postal: Wes Hardaker
+ P.O. Box 382
+ Davis CA 95617
+
+ email: net-snmp-coders@lists.sourceforge.net
+ "
+ DESCRIPTION
+ "This file defines the MIB objects for dynamic
+ loadable MIB modules."
+ REVISION "9912100000Z"
+ DESCRIPTION
+ "SMIv2 version converted from older MIB definitions."
+ ::= { ucdExperimental 14 }
+
+dlmodNextIndex OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The index number of next appropiate unassigned entry
+ in the dlmodTable."
+ ::= { ucdDlmodMIB 1 }
+
+dlmodTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF DlmodEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table of dlmodEntry."
+ ::= { ucdDlmodMIB 2 }
+
+dlmodEntry OBJECT-TYPE
+ SYNTAX DlmodEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The parameters of dynamically loaded MIB module."
+ INDEX { dlmodIndex }
+ ::= { dlmodTable 1 }
+
+DlmodEntry ::= SEQUENCE {
+ dlmodIndex Integer32,
+ dlmodName DisplayString,
+ dlmodPath DisplayString,
+ dlmodError DisplayString,
+ dlmodStatus INTEGER
+}
+
+dlmodIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..65535)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An index that uniqely identifies an entry in the dlmodTable."
+ ::= { dlmodEntry 1 }
+
+dlmodName OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The module name."
+ ::= { dlmodEntry 2 }
+
+dlmodPath OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The path of the module executable file."
+ ::= { dlmodEntry 3 }
+
+dlmodError OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The last error from dlmod_load_module."
+ ::= { dlmodEntry 4 }
+
+dlmodStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ loaded(1),
+ unloaded(2),
+ error(3),
+ load(4),
+ unload(5),
+ create(6),
+ delete(7)
+ }
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The current status of the loaded module."
+ ::= { dlmodEntry 5 }
+
+END
diff --git a/php/extras/mibs/UCD-IPFILTER-MIB.inc b/php/extras/mibs/UCD-IPFILTER-MIB.inc
new file mode 100644
index 000000000..6d4715938
--- /dev/null
+++ b/php/extras/mibs/UCD-IPFILTER-MIB.inc
@@ -0,0 +1,8 @@
+#condInclude "SNMPv2-SMI.inc" -- SNMPv2-SMI (SNMPv2 SMI)
+#condInclude "SNMPv2-TC.inc" -- SNMPv2-TC (SNMPv2 TC macro and base TCs)
+#condInclude "UCD-SNMP-MIB.inc"
+
+#pushOpt
+#addOpt "CM"
+#condInclude "UCD-IPFILTER-MIB.txt"
+#popOpt
diff --git a/php/extras/mibs/UCD-IPFILTER-MIB.txt b/php/extras/mibs/UCD-IPFILTER-MIB.txt
new file mode 100644
index 000000000..2a518d3b4
--- /dev/null
+++ b/php/extras/mibs/UCD-IPFILTER-MIB.txt
@@ -0,0 +1,256 @@
+UCD-IPFILTER-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ OBJECT-TYPE, MODULE-IDENTITY, Counter32, Integer32
+ FROM SNMPv2-SMI
+ ucdExperimental
+ FROM UCD-SNMP-MIB;
+
+ucdIpFilter MODULE-IDENTITY
+ LAST-UPDATED "9912150000Z"
+ ORGANIZATION "University of California, Davis"
+ CONTACT-INFO
+ "This mib is no longer being maintained by the University of
+ California and is now in life-support-mode and being
+ maintained by the net-snmp project. The best place to write
+ for public questions about the net-snmp-coders mailing list
+ at net-snmp-coders@lists.sourceforge.net.
+
+ postal: Wes Hardaker
+ P.O. Box 382
+ Davis CA 95617
+
+ email: net-snmp-coders@lists.sourceforge.net
+ "
+ DESCRIPTION
+ "This module defines MIB components for reading information
+ from the IP Filter. This would let you only read its rules
+ and counters.
+
+ IP Filter by Darren Reed
+ IP Filter web page URL http://coombs.anu.edu.au/~avalon/
+ ipf-mod.pl module by Yaroslav Terletsky
+ IP Filter UCD-SNMP module URL
+ ftp://ftp.polynet.lviv.ua/pub/UNIX/security/ipf/ucd-snmp-ipf-mod.tgz
+ Yaroslav Terletsky "
+ REVISION "9912150000Z"
+ DESCRIPTION
+ "SMIv2 version converted from an older MIB definition."
+ ::= { ucdExperimental 2 }
+
+ipfInTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IpfInEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table with IP Filter incoming rules and statistics."
+ ::= { ucdIpFilter 1 }
+
+ipfInEntry OBJECT-TYPE
+ SYNTAX IpfInEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "IP Filter incoming rules table entry."
+ INDEX { ipfInIndex }
+ ::= { ipfInTable 1 }
+
+IpfInEntry ::= SEQUENCE {
+ ipfInIndex Integer32,
+ ipfInRule OCTET STRING,
+ ipfInHits Counter32
+}
+
+ipfInIndex OBJECT-TYPE
+ SYNTAX Integer32 (0..2147483647)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Reference index for each incoming IP Filter rule."
+ ::= { ipfInEntry 1 }
+
+ipfInRule OBJECT-TYPE
+ SYNTAX OCTET STRING
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Textual representation of the incoming IP Filter rule."
+ ::= { ipfInEntry 2 }
+
+ipfInHits OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Hits of the incoming IP Filter rule."
+ ::= { ipfInEntry 3 }
+
+ipfOutTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IpfOutEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table with IP Filter outgoing rules and statistic."
+ ::= { ucdIpFilter 2 }
+
+ipfOutEntry OBJECT-TYPE
+ SYNTAX IpfOutEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "IP Filter outgoing rules table entry."
+ INDEX { ipfOutIndex }
+ ::= { ipfOutTable 1 }
+
+IpfOutEntry ::= SEQUENCE {
+ ipfOutIndex Integer32,
+ ipfOutRule OCTET STRING,
+ ipfOutHits Counter32
+}
+
+ipfOutIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..2147483647)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Reference index for each outgoing IP Filter rule."
+ ::= { ipfOutEntry 1 }
+
+ipfOutRule OBJECT-TYPE
+ SYNTAX OCTET STRING
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Textual representation of the outgoing IP Filter rule."
+ ::= { ipfOutEntry 2 }
+
+ipfOutHits OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Hits of the outgoing IP Filter rule."
+ ::= { ipfOutEntry 3 }
+
+ipfAccInTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IpfAccInEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table with IP Filter incoming accounting rules
+ and statistics."
+ ::= { ucdIpFilter 3 }
+
+ipfAccInEntry OBJECT-TYPE
+ SYNTAX IpfAccInEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "IP FIlter incoming accounting rules table entry."
+ INDEX { ipfAccInIndex }
+ ::= { ipfAccInTable 1 }
+
+IpfAccInEntry ::= SEQUENCE {
+ ipfAccInIndex Integer32,
+ ipfAccInRule OCTET STRING,
+ ipfAccInHits Counter32,
+ ipfAccInBytes Counter32
+}
+
+ipfAccInIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..2147483647)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Reference index for each incoming accounting
+ IP Filter rule."
+ ::= { ipfAccInEntry 1 }
+
+ipfAccInRule OBJECT-TYPE
+ SYNTAX OCTET STRING
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Textual representation of the incoming accounting
+ IP Filter rule."
+ ::= { ipfAccInEntry 2 }
+
+ipfAccInHits OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Hits of the incoming accounting IP Filter rule."
+ ::= { ipfAccInEntry 3 }
+
+ipfAccInBytes OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Bytes passed thru the incoming accounting
+ IP Filter rule."
+ ::= { ipfAccInEntry 4 }
+
+ipfAccOutTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IpfAccOutEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table with IP Filter outgoing accounting rules
+ and statistic."
+ ::= { ucdIpFilter 4 }
+
+ipfAccOutEntry OBJECT-TYPE
+ SYNTAX IpfAccOutEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "IP Filter outgoing accounting rules table entry."
+ INDEX { ipfAccOutIndex }
+ ::= { ipfAccOutTable 1 }
+
+IpfAccOutEntry ::= SEQUENCE {
+ ipfAccOutIndex Integer32,
+ ipfAccOutRule OCTET STRING,
+ ipfAccOutHits Counter32,
+ ipfAccOutBytes Counter32
+}
+
+ipfAccOutIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..2147483647)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Reference index for each outgoing accounting
+ IP Filter rule."
+ ::= { ipfAccOutEntry 1 }
+
+ipfAccOutRule OBJECT-TYPE
+ SYNTAX OCTET STRING
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Textual representation of the outgoing accounting
+ IP Filter rule."
+ ::= { ipfAccOutEntry 2 }
+
+ipfAccOutHits OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Hits of the outgoing accounting IP Filter rule."
+ ::= { ipfAccOutEntry 3 }
+
+ipfAccOutBytes OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Bytes passed thru the outgoing accounting
+ IP Filter rule."
+ ::= { ipfAccOutEntry 4 }
+
+END
+
diff --git a/php/extras/mibs/UCD-IPFWACC-MIB.inc b/php/extras/mibs/UCD-IPFWACC-MIB.inc
new file mode 100644
index 000000000..e57106a03
--- /dev/null
+++ b/php/extras/mibs/UCD-IPFWACC-MIB.inc
@@ -0,0 +1,11 @@
+-- input include file for smicng.
+
+#condInclude "SNMPv2-SMI.inc" -- SNMPv2-SMI (SNMPv2 SMI)
+#condInclude "SNMPv2-TC.inc" -- SNMPv2-TC (SNMPv2 TC macro and base TCs)
+#condInclude "UCD-SNMP-MIB.inc"
+
+#pushOpt
+#addOpt "CM"
+#condInclude "UCD-IPFWACC-MIB.txt"
+#popOpt
+
diff --git a/php/extras/mibs/UCD-IPFWACC-MIB.txt b/php/extras/mibs/UCD-IPFWACC-MIB.txt
new file mode 100644
index 000000000..e46d43742
--- /dev/null
+++ b/php/extras/mibs/UCD-IPFWACC-MIB.txt
@@ -0,0 +1,327 @@
+UCD-IPFWACC-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ OBJECT-TYPE, MODULE-IDENTITY, IpAddress, Integer32, Counter32
+ FROM SNMPv2-SMI
+ DisplayString
+ FROM SNMPv2-TC
+ ucdExperimental
+ FROM UCD-SNMP-MIB;
+
+ucdIpFwAccMIB MODULE-IDENTITY
+ LAST-UPDATED "9912160000Z"
+ ORGANIZATION "University of California, Davis"
+ CONTACT-INFO
+ "This mib is no longer being maintained by the University of
+ California and is now in life-support-mode and being
+ maintained by the net-snmp project. The best place to write
+ for public questions about the net-snmp-coders mailing list
+ at net-snmp-coders@lists.sourceforge.net.
+
+ postal: Wes Hardaker
+ P.O. Box 382
+ Davis CA 95617
+
+ email: net-snmp-coders@lists.sourceforge.net
+ "
+ DESCRIPTION
+ "This module defines MIB components for reading information
+ from the accounting rules IP Firewall. This would typically
+ let you read the rules and the counters. I did not include
+ some flags and fields that I considered irrelevant for the
+ accounting rules. Resetting the counters of the rules by SNMP
+ would be simple, but I don't consider it so useful. I gave no
+ consideration to implementing write access for allowing
+ modification of the accounting rules.
+
+ Cristian.Estan@net.utcluj.ro "
+ REVISION "9912160000Z"
+ DESCRIPTION
+ "SMIv2 version converted from an older MIB definition."
+ ::= { ucdExperimental 1 }
+
+ipFwAccTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IpFwAccEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table with the accounting rules of the IP firewall"
+ ::= { ucdIpFwAccMIB 1 }
+
+ipFwAccEntry OBJECT-TYPE
+ SYNTAX IpFwAccEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An accounting rule of the IP firewall"
+ INDEX { ipFwAccIndex }
+ ::= { ipFwAccTable 1 }
+
+IpFwAccEntry ::= SEQUENCE {
+ ipFwAccIndex Integer32,
+ ipFwAccSrcAddr IpAddress,
+ ipFwAccSrcNetMask IpAddress,
+ ipFwAccDstAddr IpAddress,
+ ipFwAccDstNetMask IpAddress,
+ ipFwAccViaName DisplayString,
+ ipFwAccViaAddr IpAddress,
+ ipFwAccProto INTEGER,
+ ipFwAccBidir INTEGER,
+ ipFwAccDir INTEGER,
+ ipFwAccBytes Counter32,
+ ipFwAccPackets Counter32,
+ ipFwAccNrSrcPorts Integer32,
+ ipFwAccNrDstPorts Integer32,
+ ipFwAccSrcIsRange INTEGER,
+ ipFwAccDstIsRange INTEGER,
+ ipFwAccPort1 Integer32,
+ ipFwAccPort2 Integer32,
+ ipFwAccPort3 Integer32,
+ ipFwAccPort4 Integer32,
+ ipFwAccPort5 Integer32,
+ ipFwAccPort6 Integer32,
+ ipFwAccPort7 Integer32,
+ ipFwAccPort8 Integer32,
+ ipFwAccPort9 Integer32,
+ ipFwAccPort10 Integer32
+}
+
+ipFwAccIndex OBJECT-TYPE
+ SYNTAX Integer32 (0..2147483647)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Reference index for each firewall rule."
+ ::= { ipFwAccEntry 1 }
+
+ipFwAccSrcAddr OBJECT-TYPE
+ SYNTAX IpAddress
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The source address in the firewall rule."
+ ::= { ipFwAccEntry 2 }
+
+ipFwAccSrcNetMask OBJECT-TYPE
+ SYNTAX IpAddress
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The netmask of the source address in the firewall rule."
+ ::= { ipFwAccEntry 3 }
+
+ipFwAccDstAddr OBJECT-TYPE
+ SYNTAX IpAddress
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The destination address in the firewall rule."
+ ::= { ipFwAccEntry 4 }
+
+ipFwAccDstNetMask OBJECT-TYPE
+ SYNTAX IpAddress
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The netmask of the destination address in the firewall rule."
+ ::= { ipFwAccEntry 5 }
+
+ipFwAccViaName OBJECT-TYPE
+ SYNTAX DisplayString (SIZE(1..64))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The name of the interface to which the rule applies. If no
+ interface is associated with the present rule, this should
+ contain a dash (-)."
+ ::= { ipFwAccEntry 6 }
+
+ipFwAccViaAddr OBJECT-TYPE
+ SYNTAX IpAddress
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The address of the interface to which the rule applies.
+ Using this parameter makes sense when multiple addresses are
+ associated to the same physical interface. If not defined
+ for the current rule this should be set to 0."
+ ::= { ipFwAccEntry 7 }
+
+ipFwAccProto OBJECT-TYPE
+ SYNTAX INTEGER {
+ other(1),
+ all(2),
+ tcp(3),
+ udp(4),
+ icmp(5)
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The protocol(s) to which the rule applies."
+ ::= { ipFwAccEntry 8 }
+
+ipFwAccBidir OBJECT-TYPE
+ SYNTAX INTEGER {
+ unidirectional(1),
+ bidirectional(2)
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Whether the rule works in both directions (i.e. with the
+ source and destination parts swapped) or not."
+ ::= { ipFwAccEntry 9 }
+
+ipFwAccDir OBJECT-TYPE
+ SYNTAX INTEGER {
+ both(1),
+ in(2),
+ out(3)
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Whether the rule applies to packets entering or exiting the
+ kernel."
+ ::= { ipFwAccEntry 10 }
+
+ipFwAccBytes OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of bytes that matched this rule since the last
+ reset of the counters."
+ ::= { ipFwAccEntry 11 }
+
+ipFwAccPackets OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of packets that matched this rule since the last
+ reset of the counters."
+ ::= { ipFwAccEntry 12 }
+
+ipFwAccNrSrcPorts OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of ports that refer to the source address."
+ ::= { ipFwAccEntry 13 }
+
+ipFwAccNrDstPorts OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of ports that refer to the destination address."
+ ::= { ipFwAccEntry 14 }
+
+ipFwAccSrcIsRange OBJECT-TYPE
+ SYNTAX INTEGER {
+ srchasrange(1),
+ srchasnorange(2)
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Interpret the first two ports of the source part as
+ the upper and lower limit of an interval or not."
+ ::= { ipFwAccEntry 15 }
+
+ipFwAccDstIsRange OBJECT-TYPE
+ SYNTAX INTEGER {
+ dsthasrange(1),
+ dsthasnorange(2)
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Interpret the first two ports of the destination part as
+ the upper and lower limit of an interval or not."
+ ::= { ipFwAccEntry 16 }
+
+ipFwAccPort1 OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Port number 1."
+ ::= { ipFwAccEntry 17 }
+
+ipFwAccPort2 OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Port number 2."
+ ::= { ipFwAccEntry 18 }
+
+ipFwAccPort3 OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Port number 3."
+ ::= { ipFwAccEntry 19 }
+
+ipFwAccPort4 OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Port number 4."
+ ::= { ipFwAccEntry 20 }
+
+ipFwAccPort5 OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Port number 5."
+ ::= { ipFwAccEntry 21 }
+
+ipFwAccPort6 OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Port number 6."
+ ::= { ipFwAccEntry 22 }
+
+ipFwAccPort7 OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Port number 7."
+ ::= { ipFwAccEntry 23 }
+
+ipFwAccPort8 OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Port number 8."
+ ::= { ipFwAccEntry 24 }
+
+ipFwAccPort9 OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Port number 9."
+ ::= { ipFwAccEntry 25 }
+
+ipFwAccPort10 OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Port number 10."
+ ::= { ipFwAccEntry 26 }
+
+END
diff --git a/php/extras/mibs/UCD-SNMP-MIB-OLD.txt b/php/extras/mibs/UCD-SNMP-MIB-OLD.txt
new file mode 100644
index 000000000..b432ee362
--- /dev/null
+++ b/php/extras/mibs/UCD-SNMP-MIB-OLD.txt
@@ -0,0 +1,744 @@
+UCD-SNMP-MIB-OLD DEFINITIONS ::= BEGIN
+
+--
+-- This mib is a badly created mib which has been replaced by a more
+-- properly created UCD-SNMP-MIB. Use that mib instead. This file
+-- exists for historical purposes only and for use by people that
+-- need to support both agent versions.
+--
+
+IMPORTS
+ ucdavis
+ FROM UCD-SNMP-MIB
+ OBJECT-TYPE
+ FROM SNMPv2-SMI
+ DisplayString
+ FROM SNMPv2-TC
+ Integer32
+ FROM SNMPv2-SMI;
+
+-- private OBJECT IDENTIFIER ::= { internet 4 }
+-- enterprises OBJECT IDENTIFIER ::= { private 1 }
+-- ucdavis OBJECT IDENTIFIER ::= { enterprises 2021 }
+-- processes OBJECT IDENTIFIER ::= { ucdavis 1 }
+-- exec OBJECT IDENTIFIER ::= { ucdavis 3 }
+-- memory OBJECT IDENTIFIER ::= { ucdavis 4 }
+-- lockd OBJECT IDENTIFIER ::= { ucdavis 5 }
+-- disk OBJECT IDENTIFIER ::= { ucdavis 6 }
+-- load OBJECT IDENTIFIER ::= { ucdavis 7 }
+-- version OBJECT IDENTIFIER ::= { ucdavis 100 }
+-- snmperrs OBJECT IDENTIFIER ::= { ucdavis 101 }
+-- mibRegistryTable OBJECT IDENTIFIER ::= { ucdavis 102 }
+
+-- These are the returned values of the agent type.
+-- returned to: .iso.org.dod.internet.mgmt.mib-2.system.sysObjectID.0
+
+-- The following section is commented out since it is defined in the
+-- current UCD-SNMP-MIB
+
+-- ucdSnmpAgent OBJECT IDENTIFIER ::= { ucdavis 250 }
+-- hpux9 OBJECT IDENTIFIER ::= { ucdSnmpAgent 1 }
+-- hpux10 OBJECT IDENTIFIER ::= { ucdSnmpAgent 6 }
+-- sunos4 OBJECT IDENTIFIER ::= { ucdSnmpAgent 2 }
+-- solaris OBJECT IDENTIFIER ::= { ucdSnmpAgent 3 }
+-- osf OBJECT IDENTIFIER ::= { ucdSnmpAgent 4 }
+-- ultrix OBJECT IDENTIFIER ::= { ucdSnmpAgent 5 }
+-- netbsd1 OBJECT IDENTIFIER ::= { ucdSnmpAgent 7 }
+-- freebsd OBJECT IDENTIFIER ::= { ucdSnmpAgent 8 }
+-- irix OBJECT IDENTIFIER ::= { ucdSnmpAgent 9 }
+-- linux OBJECT IDENTIFIER ::= { ucdSnmpAgent 10 }
+-- bsdi OBJECT IDENTIFIER ::= { ucdSnmpAgent 11 }
+-- unknown OBJECT IDENTIFIER ::= { ucdSnmpAgent 255 }
+
+
+
+Processes ::= SEQUENCE {
+ processIndex INTEGER,
+ processNames DisplayString,
+ processMin INTEGER,
+ processMax INTEGER,
+ processCount INTEGER,
+ processErrorFlag INTEGER,
+ processErrMessage DisplayString,
+ processErrFix INTEGER
+}
+
+processes OBJECT-TYPE
+ SYNTAX SEQUENCE OF Processes
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A set of information on running programs/daemons."
+ INDEX { processIndex }
+ ::= { ucdavis 1 }
+
+processIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Reference Index for each observed process."
+ ::= { processes 1 }
+
+processNames OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..255))
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The table of process names we're Counting."
+ ::= { processes 2 }
+
+processMin OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The minimum number of processes that should be
+ running. An error flag is generated if the number of
+ running processes is < the minimum."
+ ::= { processes 3 }
+
+processMax OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The maximum number of processes that should be
+ running. An error flag is generated if the number of
+ running processes is > the maximum."
+ ::= { processes 4 }
+
+processCount OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of current processes running with the name
+ in question."
+ ::= { processes 5 }
+
+processErrorFlag OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A Error flag to indicate trouble with a process. It
+ goes to 1 if there is an error, 0 if no error."
+ ::= { processes 100 }
+
+processErrMessage OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..255))
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "An error message describing the problem (if one exists)."
+ ::= { processes 101 }
+
+processErrFix OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this to one will try to fix the problem if possible."
+ ::= { processes 102 }
+
+extensible OBJECT-TYPE
+ SYNTAX SEQUENCE OF Extensible
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Extensible commands returning output and result codes."
+ INDEX { extensibleIndex }
+ ::= { ucdavis 3 }
+
+Extensible ::= SEQUENCE {
+ extensibleIndex INTEGER,
+ extensibleNames DisplayString,
+ extensibleCommand DisplayString,
+ extensibleResult INTEGER,
+ extensibleOutput DisplayString,
+ extensibleErrFix INTEGER
+}
+
+extensibleIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Reference Index for extensible calls."
+ ::= { extensible 1 }
+
+extensibleNames OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..255))
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Short, one name descriptions of the extensible commands."
+ ::= { extensible 2 }
+
+extensibleCommand OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..255))
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The command line to be executed."
+ ::= { extensible 3 }
+
+extensibleResult OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The result code from the executed command."
+ ::= { extensible 100 }
+
+extensibleOutput OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..255))
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The output of the extensible command (top line only)."
+ ::= { extensible 101 }
+
+extensibleErrFix OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Set to 1 to fix the problem, if possible."
+ ::= { extensible 102 }
+
+-- the following section is commented out because it is already
+-- defined in the current UCD-SNMP-MIB
+
+-- memory OBJECT-TYPE
+-- SYNTAX Memory
+-- ACCESS not-accessible
+-- STATUS mandatory
+-- DESCRIPTION
+-- "Miscellanous stuff - memory related."
+-- ::= { ucdavis 4 }
+--
+-- Memory ::= SEQUENCE {
+-- memIndex INTEGER,
+-- memErrorName DisplayString,
+-- memTotalSwap INTEGER,
+-- memAvailSwap INTEGER,
+-- memTotalReal INTEGER,
+-- memAvailReal INTEGER,
+-- memTotalSwapTXT INTEGER,
+-- memAvailSwapTXT INTEGER,
+-- memTotalRealTXT INTEGER,
+-- memAvailRealTXT INTEGER,
+-- memTotalFree INTEGER,
+-- memMinimumSwap INTEGER,
+-- memSwapError DisplayString,
+-- memShared INTEGER,
+-- memBuffer INTEGER,
+-- memCached INTEGER
+-- }
+-- memIndex OBJECT-TYPE
+-- SYNTAX INTEGER
+-- ACCESS read-only
+-- STATUS mandatory
+-- DESCRIPTION
+-- "Generic Index."
+-- ::= { memory 1 }
+--
+-- memErrorName OBJECT-TYPE
+-- SYNTAX DisplayString
+-- ACCESS read-only
+-- STATUS mandatory
+-- DESCRIPTION
+-- "Bogus Name (swap) for consistancy with the rest of the mibs."
+-- ::= { memory 2 }
+--
+-- memTotalSwap OBJECT-TYPE
+-- SYNTAX INTEGER
+-- ACCESS read-only
+-- STATUS mandatory
+-- DESCRIPTION
+-- "Total Swap Size."
+-- ::= { memory 3 }
+--
+-- memAvailSwap OBJECT-TYPE
+-- SYNTAX INTEGER
+-- ACCESS read-only
+-- STATUS mandatory
+-- DESCRIPTION
+-- "Available Swap Space."
+-- ::= { memory 4 }
+--
+-- memTotalReal OBJECT-TYPE
+-- SYNTAX INTEGER
+-- ACCESS read-only
+-- STATUS mandatory
+-- DESCRIPTION
+-- "Total Real/Physical Memory Size."
+-- ::= { memory 5 }
+--
+-- memAvailReal OBJECT-TYPE
+-- SYNTAX INTEGER
+-- ACCESS read-only
+-- STATUS mandatory
+-- DESCRIPTION
+-- "Available Real/Physical Memory Space."
+-- ::= { memory 6 }
+--
+-- memTotalSwapTXT OBJECT-TYPE
+-- SYNTAX INTEGER
+-- ACCESS read-only
+-- STATUS mandatory
+-- DESCRIPTION
+-- "Total VM used by text."
+-- ::= { memory 7 }
+--
+-- memAvailSwapTXT OBJECT-TYPE
+-- SYNTAX INTEGER
+-- ACCESS read-only
+-- STATUS mandatory
+-- DESCRIPTION
+-- "Active VM used by text."
+-- ::= { memory 8 }
+--
+-- memTotalRealTXT OBJECT-TYPE
+-- SYNTAX INTEGER
+-- ACCESS read-only
+-- STATUS mandatory
+-- DESCRIPTION
+-- "Total Real/Physical Memory Size used by txt."
+-- ::= { memory 9 }
+--
+-- memAvailRealTXT OBJECT-TYPE
+-- SYNTAX INTEGER
+-- ACCESS read-only
+-- STATUS mandatory
+-- DESCRIPTION
+-- "Active Real/Physical Memory Space used by txt."
+-- ::= { memory 10 }
+--
+-- memTotalFree OBJECT-TYPE
+-- SYNTAX INTEGER
+-- ACCESS read-only
+-- STATUS mandatory
+-- DESCRIPTION
+-- "Total Available Memory"
+-- ::= { memory 11 }
+--
+-- memMinimumSwap OBJECT-TYPE
+-- SYNTAX INTEGER
+-- ACCESS read-only
+-- STATUS mandatory
+-- DESCRIPTION
+-- "Minimum amount of free swap. Otherwise memErrorSwap
+-- is set to 1 "
+-- ::= { memory 12 }
+--
+-- memShared OBJECT-TYPE
+-- SYNTAX INTEGER
+-- ACCESS read-only
+-- STATUS mandatory
+-- DESCRIPTION
+-- "Total Shared Memory"
+-- ::= { memory 13 }
+--
+-- memBuffer OBJECT-TYPE
+-- SYNTAX INTEGER
+-- ACCESS read-only
+-- STATUS mandatory
+-- DESCRIPTION
+-- "Total Buffered Memory"
+-- ::= { memory 14 }
+--
+-- memCached OBJECT-TYPE
+-- SYNTAX INTEGER
+-- ACCESS read-only
+-- STATUS mandatory
+-- DESCRIPTION
+-- "Total Cached Memory"
+-- ::= { memory 15 }
+--
+-- memSwapError OBJECT-TYPE
+-- SYNTAX INTEGER
+-- ACCESS read-only
+-- STATUS mandatory
+-- DESCRIPTION
+-- "Error flag. 1 indicates very little swap space left"
+-- ::= { memory 100 }
+--
+-- memSwapErrorMsg OBJECT-TYPE
+-- SYNTAX DisplayString
+-- ACCESS read-only
+-- STATUS mandatory
+-- DESCRIPTION
+-- "Error message describing the errorflag condition"
+-- ::= { memory 101 }
+--
+-- lockd OBJECT-TYPE
+-- SYNTAX Lockd
+-- ACCESS not-accessible
+-- STATUS mandatory
+-- DESCRIPTION
+-- "Tests the functionality of the rpc.lockd/rpc.statd pair."
+-- INDEX { lockdIndex }
+-- ::= { ucdavis 5 }
+
+-- Lockd ::= SEQUENCE {
+-- lockdIndex INTEGER,
+-- lockdError INTEGER,
+-- lockdErrorMsg DisplayString
+-- }
+--
+-- lockdIndex OBJECT-TYPE
+-- SYNTAX INTEGER
+-- ACCESS read-only
+-- STATUS mandatory
+-- DESCRIPTION
+-- "Reference Index for lockd calls."
+-- ::= { lockd 1 }
+--
+-- lockdError OBJECT-TYPE
+-- SYNTAX INTEGER
+-- ACCESS read-only
+-- STATUS mandatory
+-- DESCRIPTION
+-- "Error Flag. > 0 indicates error"
+-- ::= { lockd 100 }
+--
+-- lockdErrorMsg OBJECT-TYPE
+-- SYNTAX DisplayString (SIZE (0..255))
+-- ACCESS read-only
+-- STATUS mandatory
+-- DESCRIPTION
+-- "Error message if something is wrong"
+-- ::= { lockd 101 }
+
+disk OBJECT-TYPE
+ SYNTAX SEQUENCE OF Disk
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Disk watching information."
+ INDEX { diskIndex }
+ ::= { ucdavis 6 }
+
+Disk ::= SEQUENCE {
+ diskIndex INTEGER,
+ diskPath DisplayString,
+ diskDevice DisplayString,
+ diskMinimum INTEGER,
+ diskMinPercent INTEGER,
+ diskTotal INTEGER,
+ diskAvail INTEGER,
+ diskUsed INTEGER,
+ diskPercent INTEGER,
+ diskErrorFlag INTEGER,
+ diskErrorMsg DisplayString
+}
+
+diskIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Reference number for the Disk Mib."
+ ::= { disk 1 }
+
+diskPath OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Path where disk is mounted."
+ ::= { disk 2 }
+
+diskDevice OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Device path"
+ ::= { disk 3 }
+
+diskMinimum OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Minimum space required on the disk."
+ ::= { disk 4 }
+
+diskMinPercent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Minimum percentage of space required on the disk."
+ ::= { disk 5 }
+
+diskTotal OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Total Disk Size (kbytes)"
+ ::= { disk 6 }
+
+diskAvail OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Available disk Space"
+ ::= { disk 7 }
+
+diskUsed OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Used Space on Disk"
+ ::= { disk 8 }
+
+diskPercent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Percentage of space used on disk"
+ ::= { disk 9 }
+
+diskErrorFlag OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Error flag signaling disk is over minimum required space"
+ ::= { disk 100 }
+
+diskErrorMsg OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A text description of what caused the error flag to be set."
+ ::= { disk 101 }
+
+loadaves OBJECT-TYPE
+ SYNTAX SEQUENCE OF Loadaves
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Load average information."
+ INDEX { loadaveIndex }
+ ::= { ucdavis 7 }
+
+
+Loadaves ::= SEQUENCE {
+ loadaveIndex INTEGER,
+ loadaveNames DisplayString,
+ loadaveLoad DisplayString,
+ loadaveConfig DisplayString,
+ loadaveErrorFlag INTEGER,
+ loadaveErrMessage DisplayString
+}
+
+loadaveIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Reference Index for each observed loadave."
+ ::= { loadaves 1 }
+
+loadaveNames OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..255))
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The list of loadave names we're Counting."
+ ::= { loadaves 2 }
+
+loadaveLoad OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The 1,5 and 10 minute load averages."
+ ::= { loadaves 3 }
+
+loadaveConfig OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The watch point for loadaverages to signal an error."
+ ::= { loadaves 4 }
+
+loadaveErrorFlag OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A Error flag to indicate trouble with a loadave. It
+ goes to 1 if there is an error, 0 if no error."
+ ::= { loadaves 100 }
+
+loadaveErrMessage OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..255))
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "An error message describing the problem (if one exists)."
+ ::= { loadaves 101 }
+
+-- the following section is commented out because it is already
+-- defined in the current UCD-SNMP-MIB
+
+-- version OBJECT-TYPE
+-- SYNTAX Version
+-- ACCESS not-accessible
+-- STATUS mandatory
+-- DESCRIPTION
+-- "ece-snmpd version info."
+-- INDEX { versionIndex }
+-- ::= { ucdavis 100 }
+--
+-- Version ::= SEQUENCE {
+-- versionIndex INTEGER,
+-- versionTag DisplayString,
+-- versionDate DisplayString,
+-- versionCDate DisplayString,
+-- versionIdent DisplayString,
+-- versionClearCache INTEGER,
+-- versionUpdateConfig INTEGER,
+-- versionDoDebugging INTEGER
+-- }
+--
+-- versionIndex OBJECT-TYPE
+-- SYNTAX INTEGER
+-- ACCESS read-only
+-- STATUS mandatory
+-- DESCRIPTION
+-- "Index to mib (always 1)"
+-- ::= { version 1 }
+--
+-- versionTag OBJECT-TYPE
+-- SYNTAX DisplayString
+-- ACCESS read-only
+-- STATUS mandatory
+-- DESCRIPTION
+-- "CVS tag keyword"
+-- ::= { version 2 }
+--
+-- versionDate OBJECT-TYPE
+-- SYNTAX DisplayString
+-- ACCESS read-only
+-- STATUS mandatory
+-- DESCRIPTION
+-- "Date string from RCS keyword"
+-- ::= { version 3 }
+--
+-- versionCDate OBJECT-TYPE
+-- SYNTAX DisplayString
+-- ACCESS read-only
+-- STATUS mandatory
+-- DESCRIPTION
+-- "Date string from ctime() "
+-- ::= { version 4 }
+--
+-- versionIdent OBJECT-TYPE
+-- SYNTAX DisplayString
+-- ACCESS read-only
+-- STATUS mandatory
+-- DESCRIPTION
+-- "Id string from RCS keyword"
+-- ::= { version 5 }
+--
+-- versionClearCache OBJECT-TYPE
+-- SYNTAX INTEGER
+-- ACCESS read-write
+-- STATUS mandatory
+-- DESCRIPTION
+-- "Set to 1 to clear the exec cache, if enabled"
+-- ::= { version 10 }
+--
+-- versionUpdateConfig OBJECT-TYPE
+-- SYNTAX INTEGER
+-- ACCESS read-write
+-- STATUS mandatory
+-- DESCRIPTION
+-- "Set to 1 to read-read the config file(s)."
+-- ::= { version 11 }
+--
+-- versionRestartAgent OBJECT-TYPE
+-- SYNTAX INTEGER
+-- ACCESS read-write
+-- STATUS mandatory
+-- DESCRIPTION
+-- "Set to 1 to restart the agent."
+-- ::= { version 12 }
+--
+-- versionDoDebugging OBJECT-TYPE
+-- SYNTAX INTEGER
+-- ACCESS read-write
+-- STATUS mandatory
+-- DESCRIPTION
+-- "Set to 1 to turn debugging statements on in the agent."
+-- ::= { version 20 }
+--
+
+-- the following section is commented out because it is already
+-- defined in the current UCD-SNMP-MIB
+
+-- snmperrs OBJECT-TYPE
+-- SYNTAX Snmperrs
+-- ACCESS not-accessible
+-- STATUS mandatory
+-- DESCRIPTION
+-- "A place for the agent to report problems."
+-- INDEX { snmperrIndex }
+-- ::= { ucdavis 101 }
+--
+--
+-- Snmperrs ::= SEQUENCE {
+-- snmperrIndex INTEGER,
+-- snmperrNames DisplayString,
+-- snmperrErrorFlag INTEGER,
+-- snmperrErrMessage DisplayString
+-- }
+--
+-- snmperrIndex OBJECT-TYPE
+-- SYNTAX INTEGER
+-- ACCESS read-only
+-- STATUS mandatory
+-- DESCRIPTION
+-- "Reference Index for each observed snmperr."
+-- ::= { snmperrs 1 }
+--
+-- snmperrNames OBJECT-TYPE
+-- SYNTAX DisplayString (SIZE (0..255))
+-- ACCESS read-only
+-- STATUS mandatory
+-- DESCRIPTION
+-- "snmp"
+-- ::= { snmperrs 2 }
+--
+-- snmperrErrorFlag OBJECT-TYPE
+-- SYNTAX INTEGER
+-- ACCESS read-only
+-- STATUS mandatory
+-- DESCRIPTION
+-- "A Error flag to indicate trouble with the agent. It
+-- goes to 1 if there is an error, 0 if no error."
+-- ::= { snmperrs 100 }
+--
+-- snmperrErrMessage OBJECT-TYPE
+-- SYNTAX DisplayString (SIZE (0..255))
+-- ACCESS read-only
+-- STATUS mandatory
+-- DESCRIPTION
+-- "An error message describing the problem (if one exists)."
+-- ::= { snmperrs 101 }
+--
+END
diff --git a/php/extras/mibs/UCD-SNMP-MIB.inc b/php/extras/mibs/UCD-SNMP-MIB.inc
new file mode 100644
index 000000000..3323aa17a
--- /dev/null
+++ b/php/extras/mibs/UCD-SNMP-MIB.inc
@@ -0,0 +1,9 @@
+-- input include file for smicng.
+
+#condInclude "SNMPv2-SMI.inc" -- SNMPv2-SMI (SNMPv2 SMI)
+#condInclude "SNMPv2-TC.inc" -- SNMPv2-TC (SNMPv2 TC macro and base TCs)
+
+#pushOpt
+#addOpt "CM"
+#condInclude "UCD-SNMP-MIB.txt"
+#popOpt
diff --git a/php/extras/mibs/UCD-SNMP-MIB.txt b/php/extras/mibs/UCD-SNMP-MIB.txt
new file mode 100644
index 000000000..461100df0
--- /dev/null
+++ b/php/extras/mibs/UCD-SNMP-MIB.txt
@@ -0,0 +1,1628 @@
+UCD-SNMP-MIB DEFINITIONS ::= BEGIN
+
+-- Design notes:
+--
+-- The design of this mib may seem unusual in parts, as it was
+-- designed for ease of numerical management routines.
+--
+-- In that light, most sub-sections of this mib have four common
+-- numerical oid consistencies:
+--
+-- 2021.ID.1 : an integer index value. In scalers, this is always
+-- of value 1. In tables it is a row index.
+-- 2021.ID.2 : a name of the script, process, etc. that this row represents.
+-- 2021.ID.100 : An error flag indicating if an error is present on
+-- that row (a threshold value was crossed, etc).
+-- 2021.ID.101 : An error string describing why the error flag is non-0.
+--
+-- These conventions enable managers to easy examine portions of the
+-- mib by setting the ID to the sub-section they are interested in
+-- monitoring, and then scanning the .100 value to check for an
+-- error(s), and get a more specific error message from .101 for the
+-- named check found in .2.
+--
+-- Row numbers between 2 and 100 are sub-section specific.
+--
+-- Mib sections utilizing the above conventions:
+-- Tables: procTable, execTable, diskTable, loadTable
+-- Scalers: memory, snmperrs
+
+
+IMPORTS
+ OBJECT-TYPE, NOTIFICATION-TYPE, MODULE-IDENTITY,
+ Integer32, Opaque, enterprises, Counter32
+ FROM SNMPv2-SMI
+
+ TEXTUAL-CONVENTION, DisplayString, TruthValue
+ FROM SNMPv2-TC;
+
+ucdavis MODULE-IDENTITY
+ LAST-UPDATED "200611220000Z"
+ ORGANIZATION "University of California, Davis"
+ CONTACT-INFO
+ "This mib is no longer being maintained by the University of
+ California and is now in life-support-mode and being
+ maintained by the net-snmp project. The best place to write
+ for public questions about the net-snmp-coders mailing list
+ at net-snmp-coders@lists.sourceforge.net.
+
+ postal: Wes Hardaker
+ P.O. Box 382
+ Davis CA 95617
+
+ email: net-snmp-coders@lists.sourceforge.net
+ "
+ DESCRIPTION
+ "Clarify behaviour of objects in the memory & systemStats groups
+ (including updated versions of malnamed mem*Text objects).
+ Define suitable TCs to describe error reporting/fix behaviour."
+ REVISION "200611220000Z"
+ DESCRIPTION
+ "Added ssCpuRawSoftIRQ for Linux (2.6) and forgotten raw swap counters."
+ REVISION "200404070000Z"
+ DESCRIPTION
+ "Deprecate the non-raw objects."
+ REVISION "200209050000Z"
+ DESCRIPTION
+ "This file defines the private UCD SNMP MIB extensions."
+ REVISION "200101170000Z"
+ DESCRIPTION
+ "Added raw CPU and IO counters."
+ REVISION "9912090000Z"
+ DESCRIPTION
+ "SMIv2 version converted from older MIB definitions."
+ ::= { enterprises 2021 }
+
+-- Current UCD core mib table entries:
+-- prTable OBJECT IDENTIFIER ::= { ucdavis 2 }
+-- memory OBJECT IDENTIFIER ::= { ucdavis 4 }
+-- extTable OBJECT IDENTIFIER ::= { ucdavis 8 }
+-- diskTable OBJECT IDENTIFIER ::= { ucdavis 9 }
+-- loadTable OBJECT IDENTIFIER ::= { ucdavis 10 }
+-- systemStats OBJECT IDENTIFIER ::= { ucdavis 11 }
+-- ucdDemoMIB OBJECT IDENTIFIER ::= { ucdavis 14 } - UCD-DEMO-MIB
+-- fileTable OBJECT IDENTIFIER ::= { ucdavis 15 }
+-- logMatch OBJECT IDENTIFIER ::= { ucdavis 16 }
+-- version OBJECT IDENTIFIER ::= { ucdavis 100 }
+-- snmperrs OBJECT IDENTIFIER ::= { ucdavis 101 }
+-- mibRegistryTable OBJECT IDENTIFIER ::= { ucdavis 102 }
+
+-- Older mib table entries that were changed to new locations above:
+-- processes OBJECT IDENTIFIER ::= { ucdavis 1 }
+-- exec OBJECT IDENTIFIER ::= { ucdavis 3 }
+-- disk OBJECT IDENTIFIER ::= { ucdavis 6 }
+-- load OBJECT IDENTIFIER ::= { ucdavis 7 }
+
+-- Never implemented and removed from the mib:
+-- lockd OBJECT IDENTIFIER ::= { ucdavis 5 }
+
+-- Branches for registering other UCD MIB modules:
+ucdInternal OBJECT IDENTIFIER ::= { ucdavis 12 }
+ucdExperimental OBJECT IDENTIFIER ::= { ucdavis 13 }
+
+-- OID values assigned in the ucdExperimental branch:
+-- ucdIpFwAccMIB OBJECT IDENTIFIER ::= { ucdExperimental 1 } - UCD-IPFWACC-MIB
+-- ucdIpFilter OBJECT IDENTIFIER ::= { ucdExperimental 2 } - UCD-IPFILTER-MIB
+-- wavelan OBJECT IDENTIFIER ::= { ucdExperimental 3 } - WL-MIB
+-- ucdDlmodMIB OBJECT IDENTIFIER ::= { ucdExperimental 14 } - UCD-DLMOD-MIB
+-- ucdDiskIOMIB OBJECT IDENTIFIER ::= { ucdExperimental 15 } - UCD-DISKIO-MIB
+-- lmSensors OBJECT IDENTIFIER ::= { ucdExperimental 16 } - LM-SENSORS-MIB
+
+
+-- These are the returned values of the agent type.
+-- returned to: .iso.org.dod.internet.mgmt.mib-2.system.sysObjectID.0
+
+ucdSnmpAgent OBJECT IDENTIFIER ::= { ucdavis 250 }
+hpux9 OBJECT IDENTIFIER ::= { ucdSnmpAgent 1 }
+sunos4 OBJECT IDENTIFIER ::= { ucdSnmpAgent 2 }
+solaris OBJECT IDENTIFIER ::= { ucdSnmpAgent 3 }
+osf OBJECT IDENTIFIER ::= { ucdSnmpAgent 4 }
+ultrix OBJECT IDENTIFIER ::= { ucdSnmpAgent 5 }
+hpux10 OBJECT IDENTIFIER ::= { ucdSnmpAgent 6 }
+netbsd1 OBJECT IDENTIFIER ::= { ucdSnmpAgent 7 }
+freebsd OBJECT IDENTIFIER ::= { ucdSnmpAgent 8 }
+irix OBJECT IDENTIFIER ::= { ucdSnmpAgent 9 }
+linux OBJECT IDENTIFIER ::= { ucdSnmpAgent 10 }
+bsdi OBJECT IDENTIFIER ::= { ucdSnmpAgent 11 }
+openbsd OBJECT IDENTIFIER ::= { ucdSnmpAgent 12 }
+win32 OBJECT IDENTIFIER ::= { ucdSnmpAgent 13 } -- unlucky
+hpux11 OBJECT IDENTIFIER ::= { ucdSnmpAgent 14 }
+unknown OBJECT IDENTIFIER ::= { ucdSnmpAgent 255 }
+
+
+--
+-- Define the Float Textual Convention
+-- This definition was written by David Perkins.
+--
+
+Float ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "A single precision floating-point number. The semantics
+ and encoding are identical for type 'single' defined in
+ IEEE Standard for Binary Floating-Point,
+ ANSI/IEEE Std 754-1985.
+ The value is restricted to the BER serialization of
+ the following ASN.1 type:
+ FLOATTYPE ::= [120] IMPLICIT FloatType
+ (note: the value 120 is the sum of '30'h and '48'h)
+ The BER serialization of the length for values of
+ this type must use the definite length, short
+ encoding form.
+
+ For example, the BER serialization of value 123
+ of type FLOATTYPE is '9f780442f60000'h. (The tag
+ is '9f78'h; the length is '04'h; and the value is
+ '42f60000'h.) The BER serialization of value
+ '9f780442f60000'h of data type Opaque is
+ '44079f780442f60000'h. (The tag is '44'h; the length
+ is '07'h; and the value is '9f780442f60000'h."
+ SYNTAX Opaque (SIZE (7))
+
+UCDErrorFlag ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "Represents a possible error condition"
+ SYNTAX INTEGER { noError(0), error(1) }
+
+UCDErrorFix ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "Represents a 'push-button' object, to invoke a suitable
+ configured action. Will always return 0 when read."
+ SYNTAX INTEGER { noError(0), runFix(1) }
+
+--
+-- Process table checks
+--
+
+prTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF PrEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table containing information on running
+ programs/daemons configured for monitoring in the
+ snmpd.conf file of the agent. Processes violating the
+ number of running processes required by the agent's
+ configuration file are flagged with numerical and
+ textual errors."
+ ::= { ucdavis 2 }
+
+prEntry OBJECT-TYPE
+ SYNTAX PrEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry containing a process and its statistics."
+ INDEX { prIndex }
+ ::= { prTable 1 }
+
+PrEntry ::= SEQUENCE {
+ prIndex Integer32,
+ prNames DisplayString,
+ prMin Integer32,
+ prMax Integer32,
+ prCount Integer32,
+ prErrorFlag UCDErrorFlag,
+ prErrMessage DisplayString,
+ prErrFix UCDErrorFix,
+ prErrFixCmd DisplayString
+}
+
+prIndex OBJECT-TYPE
+ SYNTAX Integer32 (0..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Reference Index for each observed process."
+ ::= { prEntry 1 }
+
+prNames OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The process name we're counting/checking on."
+ ::= { prEntry 2 }
+
+prMin OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The minimum number of processes that should be
+ running. An error flag is generated if the number of
+ running processes is < the minimum."
+ ::= { prEntry 3 }
+
+prMax OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The maximum number of processes that should be
+ running. An error flag is generated if the number of
+ running processes is > the maximum."
+ ::= { prEntry 4 }
+
+prCount OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of current processes running with the name
+ in question."
+ ::= { prEntry 5 }
+
+prErrorFlag OBJECT-TYPE
+ SYNTAX UCDErrorFlag
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A Error flag to indicate trouble with a process. It
+ goes to 1 if there is an error, 0 if no error."
+ ::= { prEntry 100 }
+
+prErrMessage OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An error message describing the problem (if one exists)."
+ ::= { prEntry 101 }
+
+prErrFix OBJECT-TYPE
+ SYNTAX UCDErrorFix
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "Setting this to one will try to fix the problem if
+ the agent has been configured with a script to call
+ to attempt to fix problems automatically using remote
+ snmp operations."
+ ::= { prEntry 102 }
+
+prErrFixCmd OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The command that gets run when the prErrFix column is
+ set to 1."
+ ::= { prEntry 103 }
+
+
+
+extTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF ExtEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table of extensible commands returning output and
+ result codes. These commands are configured via the
+ agent's snmpd.conf file."
+ ::= { ucdavis 8 }
+
+extEntry OBJECT-TYPE
+ SYNTAX ExtEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry containing an extensible script/program and its output."
+ INDEX { extIndex }
+ ::= { extTable 1 }
+
+ExtEntry ::= SEQUENCE {
+ extIndex Integer32,
+ extNames DisplayString,
+ extCommand DisplayString,
+ extResult Integer32,
+ extOutput DisplayString,
+ extErrFix UCDErrorFix,
+ extErrFixCmd DisplayString
+}
+
+extIndex OBJECT-TYPE
+ SYNTAX Integer32 (0..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Reference Index for extensible scripts. Simply an
+ integer row number."
+ ::= { extEntry 1 }
+
+extNames OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A Short, one name description of the extensible command."
+ ::= { extEntry 2 }
+
+extCommand OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The command line to be executed."
+ ::= { extEntry 3 }
+
+extResult OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The result code (exit status) from the executed command."
+ ::= { extEntry 100 }
+
+extOutput OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The first line of output of the executed command."
+ ::= { extEntry 101 }
+
+extErrFix OBJECT-TYPE
+ SYNTAX UCDErrorFix
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "Setting this to one will try to fix the problem if
+ the agent has been configured with a script to call
+ to attempt to fix problems automatically using remote
+ snmp operations."
+ ::= { extEntry 102 }
+
+extErrFixCmd OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The command that gets run when the extErrFix column is
+ set to 1."
+ ::= { extEntry 103 }
+
+--
+-- Memory usage/watch reporting.
+-- Not supported on all systems!
+-- See agent/mibgroup/ucd_snmp.h to see if its loaded for your architecture.
+--
+memory OBJECT IDENTIFIER ::= { ucdavis 4 }
+
+memIndex OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Bogus Index. This should always return the integer 0."
+ ::= { memory 1 }
+
+memErrorName OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Bogus Name. This should always return the string 'swap'."
+ ::= { memory 2 }
+
+memTotalSwap OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "kB"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total amount of swap space configured for this host."
+ ::= { memory 3 }
+
+memAvailSwap OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "kB"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The amount of swap space currently unused or available."
+ ::= { memory 4 }
+
+memTotalReal OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "kB"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total amount of real/physical memory installed
+ on this host."
+ ::= { memory 5 }
+
+memAvailReal OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "kB"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The amount of real/physical memory currently unused
+ or available."
+ ::= { memory 6 }
+
+memTotalSwapTXT OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "kB"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total amount of swap space or virtual memory allocated
+ for text pages on this host.
+
+ This object will not be implemented on hosts where the
+ underlying operating system does not distinguish text
+ pages from other uses of swap space or virtual memory."
+ ::= { memory 7 }
+
+memAvailSwapTXT OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "kB"
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The amount of swap space or virtual memory currently
+ being used by text pages on this host.
+
+ This object will not be implemented on hosts where the
+ underlying operating system does not distinguish text
+ pages from other uses of swap space or virtual memory.
+
+ Note that (despite the name), this value reports the
+ amount used, rather than the amount free or available
+ for use. For clarity, this object is being deprecated
+ in favour of 'memUsedSwapTXT(16)."
+ ::= { memory 8 }
+
+memTotalRealTXT OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "kB"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total amount of real/physical memory allocated
+ for text pages on this host.
+
+ This object will not be implemented on hosts where the
+ underlying operating system does not distinguish text
+ pages from other uses of physical memory."
+ ::= { memory 9 }
+
+memAvailRealTXT OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "kB"
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The amount of real/physical memory currently being
+ used by text pages on this host.
+
+ This object will not be implemented on hosts where the
+ underlying operating system does not distinguish text
+ pages from other uses of physical memory.
+
+ Note that (despite the name), this value reports the
+ amount used, rather than the amount free or available
+ for use. For clarity, this object is being deprecated
+ in favour of 'memUsedRealTXT(17)."
+ ::= { memory 10 }
+
+memTotalFree OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "kB"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total amount of memory free or available for use on
+ this host. This value typically covers both real memory
+ and swap space or virtual memory."
+ ::= { memory 11 }
+
+memMinimumSwap OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "kB"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The minimum amount of swap space expected to be kept
+ free or available during normal operation of this host.
+
+ If this value (as reported by 'memAvailSwap(4)') falls
+ below the specified level, then 'memSwapError(100)' will
+ be set to 1 and an error message made available via
+ 'memSwapErrorMsg(101)'."
+ ::= { memory 12 }
+
+memShared OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "kB"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total amount of real or virtual memory currently
+ allocated for use as shared memory.
+
+ This object will not be implemented on hosts where the
+ underlying operating system does not explicitly identify
+ memory as specifically reserved for this purpose."
+ ::= { memory 13 }
+
+memBuffer OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "kB"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total amount of real or virtual memory currently
+ allocated for use as memory buffers.
+
+ This object will not be implemented on hosts where the
+ underlying operating system does not explicitly identify
+ memory as specifically reserved for this purpose."
+ ::= { memory 14 }
+
+memCached OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "kB"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total amount of real or virtual memory currently
+ allocated for use as cached memory.
+
+ This object will not be implemented on hosts where the
+ underlying operating system does not explicitly identify
+ memory as specifically reserved for this purpose."
+ ::= { memory 15 }
+
+memUsedSwapTXT OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "kB"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The amount of swap space or virtual memory currently
+ being used by text pages on this host.
+
+ This object will not be implemented on hosts where the
+ underlying operating system does not distinguish text
+ pages from other uses of swap space or virtual memory."
+ ::= { memory 16 }
+
+memUsedRealTXT OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "kB"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The amount of real/physical memory currently being
+ used by text pages on this host.
+
+ This object will not be implemented on hosts where the
+ underlying operating system does not distinguish text
+ pages from other uses of physical memory."
+ ::= { memory 17 }
+
+memSwapError OBJECT-TYPE
+ SYNTAX UCDErrorFlag
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Indicates whether the amount of available swap space
+ (as reported by 'memAvailSwap(4)'), is less than the
+ desired minimum (specified by 'memMinimumSwap(12)')."
+ ::= { memory 100 }
+
+memSwapErrorMsg OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Describes whether the amount of available swap space
+ (as reported by 'memAvailSwap(4)'), is less than the
+ desired minimum (specified by 'memMinimumSwap(12)')."
+ ::= { memory 101 }
+
+
+dskTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF DskEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Disk watching information. Partions to be watched
+ are configured by the snmpd.conf file of the agent."
+ ::= { ucdavis 9 }
+
+dskEntry OBJECT-TYPE
+ SYNTAX DskEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry containing a disk and its statistics."
+ INDEX { dskIndex }
+ ::= { dskTable 1 }
+
+DskEntry ::= SEQUENCE {
+ dskIndex Integer32,
+ dskPath DisplayString,
+ dskDevice DisplayString,
+ dskMinimum Integer32,
+ dskMinPercent Integer32,
+ dskTotal Integer32,
+ dskAvail Integer32,
+ dskUsed Integer32,
+ dskPercent Integer32,
+ dskPercentNode Integer32,
+ dskErrorFlag UCDErrorFlag,
+ dskErrorMsg DisplayString
+}
+
+dskIndex OBJECT-TYPE
+ SYNTAX Integer32 (0..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Integer reference number (row number) for the disk mib."
+ ::= { dskEntry 1 }
+
+dskPath OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Path where the disk is mounted."
+ ::= { dskEntry 2 }
+
+dskDevice OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Path of the device for the partition"
+ ::= { dskEntry 3 }
+
+dskMinimum OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Minimum space required on the disk (in kBytes) before the
+ errors are triggered. Either this or dskMinPercent is
+ configured via the agent's snmpd.conf file."
+ ::= { dskEntry 4 }
+
+dskMinPercent OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Percentage of minimum space required on the disk before the
+ errors are triggered. Either this or dskMinimum is
+ configured via the agent's snmpd.conf file."
+ ::= { dskEntry 5 }
+
+dskTotal OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Total size of the disk/partion (kBytes)"
+ ::= { dskEntry 6 }
+
+dskAvail OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Available space on the disk"
+ ::= { dskEntry 7 }
+
+dskUsed OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Used space on the disk"
+ ::= { dskEntry 8 }
+
+dskPercent OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Percentage of space used on disk"
+ ::= { dskEntry 9 }
+
+dskPercentNode OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Percentage of inodes used on disk"
+ ::= { dskEntry 10 }
+
+dskErrorFlag OBJECT-TYPE
+ SYNTAX UCDErrorFlag
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Error flag signaling that the disk or partition is under
+ the minimum required space configured for it."
+ ::= { dskEntry 100 }
+
+dskErrorMsg OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A text description providing a warning and the space left
+ on the disk."
+ ::= { dskEntry 101 }
+
+laTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF LaEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Load average information."
+ ::= { ucdavis 10 }
+
+laEntry OBJECT-TYPE
+ SYNTAX LaEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry containing a load average and its values."
+ INDEX { laIndex }
+ ::= { laTable 1 }
+
+LaEntry ::= SEQUENCE {
+ laIndex Integer32,
+ laNames DisplayString,
+ laLoad DisplayString,
+ laConfig DisplayString,
+ laLoadInt Integer32,
+ laLoadFloat Float,
+ laErrorFlag UCDErrorFlag,
+ laErrMessage DisplayString
+}
+
+laIndex OBJECT-TYPE
+ SYNTAX Integer32 (0..3)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "reference index/row number for each observed loadave."
+ ::= { laEntry 1 }
+
+laNames OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The list of loadave names we're watching."
+ ::= { laEntry 2 }
+
+laLoad OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The 1,5 and 15 minute load averages (one per row)."
+ ::= { laEntry 3 }
+
+laConfig OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The watch point for load-averages to signal an
+ error. If the load averages rises above this value,
+ the laErrorFlag below is set."
+ ::= { laEntry 4 }
+
+laLoadInt OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The 1,5 and 15 minute load averages as an integer.
+ This is computed by taking the floating point
+ loadaverage value and multiplying by 100, then
+ converting the value to an integer."
+ ::= { laEntry 5 }
+
+laLoadFloat OBJECT-TYPE
+ SYNTAX Float
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The 1,5 and 15 minute load averages as an opaquely
+ wrapped floating point number."
+ ::= { laEntry 6 }
+
+laErrorFlag OBJECT-TYPE
+ SYNTAX UCDErrorFlag
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A Error flag to indicate the load-average has crossed
+ its threshold value defined in the snmpd.conf file.
+ It is set to 1 if the threshold is crossed, 0 otherwise."
+ ::= { laEntry 100 }
+
+laErrMessage OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An error message describing the load-average and its
+ surpased watch-point value."
+ ::= { laEntry 101 }
+
+
+version OBJECT IDENTIFIER ::= { ucdavis 100 }
+
+versionIndex OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Index to mib (always 0)"
+ ::= { version 1 }
+
+versionTag OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "CVS tag keyword"
+ ::= { version 2 }
+
+versionDate OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Date string from RCS keyword"
+ ::= { version 3 }
+
+versionCDate OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Date string from ctime() "
+ ::= { version 4 }
+
+versionIdent OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Id string from RCS keyword"
+ ::= { version 5 }
+
+versionConfigureOptions OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Options passed to the configure script when this agent was built."
+ ::= { version 6 }
+
+versionClearCache OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "Set to 1 to clear the exec cache, if enabled"
+ ::= { version 10 }
+
+versionUpdateConfig OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "Set to 1 to read-read the config file(s)."
+ ::= { version 11 }
+
+versionRestartAgent OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "Set to 1 to restart the agent."
+ ::= { version 12 }
+
+versionSavePersistentData OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "Set to 1 to force the agent to save it's persistent data immediately."
+ ::= { version 13 }
+
+versionDoDebugging OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "Set to 1 to turn debugging statements on in the agent or 0
+ to turn it off."
+ ::= { version 20 }
+
+
+snmperrs OBJECT IDENTIFIER ::= { ucdavis 101 }
+
+snmperrIndex OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Bogus Index for snmperrs (always 0)."
+ ::= { snmperrs 1 }
+
+snmperrNames OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "snmp"
+ ::= { snmperrs 2 }
+
+snmperrErrorFlag OBJECT-TYPE
+ SYNTAX UCDErrorFlag
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A Error flag to indicate trouble with the agent. It
+ goes to 1 if there is an error, 0 if no error."
+ ::= { snmperrs 100 }
+
+snmperrErrMessage OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An error message describing the problem (if one exists)."
+ ::= { snmperrs 101 }
+
+
+mrTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF MrEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table displaying all the oid's registered by mib modules in
+ the agent. Since the agent is modular in nature, this lists
+ each module's OID it is responsible for and the name of the module"
+ ::= { ucdavis 102 }
+
+mrEntry OBJECT-TYPE
+ SYNTAX MrEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry containing a registered mib oid."
+ INDEX { IMPLIED mrIndex }
+ ::= { mrTable 1 }
+
+MrEntry ::= SEQUENCE {
+ mrIndex OBJECT IDENTIFIER,
+ mrModuleName DisplayString
+}
+
+mrIndex OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The registry slot of a mibmodule."
+ ::= { mrEntry 1 }
+
+mrModuleName OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The module name that registered this OID."
+ ::= { mrEntry 2 }
+
+systemStats OBJECT IDENTIFIER ::= { ucdavis 11 }
+
+ssIndex OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Bogus Index. This should always return the integer 1."
+ ::= { systemStats 1 }
+
+ssErrorName OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Bogus Name. This should always return the string 'systemStats'."
+ ::= { systemStats 2 }
+
+ssSwapIn OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "kB"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The average amount of memory swapped in from disk,
+ calculated over the last minute."
+ ::= { systemStats 3 }
+
+ssSwapOut OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "kB"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The average amount of memory swapped out to disk,
+ calculated over the last minute."
+ ::= { systemStats 4 }
+
+ssIOSent OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "blocks/s"
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The average amount of data written to disk or other
+ block device, calculated over the last minute.
+
+ This object has been deprecated in favour of
+ 'ssIORawSent(57)', which can be used to calculate
+ the same metric, but over any desired time period."
+ ::= { systemStats 5 }
+
+ssIOReceive OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "blocks/s"
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The average amount of data read from disk or other
+ block device, calculated over the last minute.
+
+ This object has been deprecated in favour of
+ 'ssIORawReceived(58)', which can be used to calculate
+ the same metric, but over any desired time period."
+ ::= { systemStats 6 }
+
+ssSysInterrupts OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "interrupts/s"
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The average rate of interrupts processed (including
+ the clock) calculated over the last minute.
+
+ This object has been deprecated in favour of
+ 'ssRawInterrupts(59)', which can be used to calculate
+ the same metric, but over any desired time period."
+ ::= { systemStats 7 }
+
+ssSysContext OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "switches/s"
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The average rate of context switches,
+ calculated over the last minute.
+
+ This object has been deprecated in favour of
+ 'ssRawContext(60)', which can be used to calculate
+ the same metric, but over any desired time period."
+ ::= { systemStats 8 }
+
+ssCpuUser OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The percentage of CPU time spent processing
+ user-level code, calculated over the last minute.
+
+ This object has been deprecated in favour of
+ 'ssCpuRawUser(50)', which can be used to calculate
+ the same metric, but over any desired time period."
+ ::= { systemStats 9 }
+
+ssCpuSystem OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The percentage of CPU time spent processing
+ system-level code, calculated over the last minute.
+
+ This object has been deprecated in favour of
+ 'ssCpuRawSystem(52)', which can be used to calculate
+ the same metric, but over any desired time period."
+ ::= { systemStats 10 }
+
+ssCpuIdle OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The percentage of processor time spent idle,
+ calculated over the last minute.
+
+ This object has been deprecated in favour of
+ 'ssCpuRawIdle(53)', which can be used to calculate
+ the same metric, but over any desired time period."
+ ::= { systemStats 11 }
+
+-- The agent only implements those of the following counters that the
+-- kernel supports! Don't expect all to be present.
+
+ssCpuRawUser OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of 'ticks' (typically 1/100s) spent
+ processing user-level code.
+
+ On a multi-processor system, the 'ssCpuRaw*'
+ counters are cumulative over all CPUs, so their
+ sum will typically be N*100 (for N processors)."
+ ::= { systemStats 50 }
+
+ssCpuRawNice OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of 'ticks' (typically 1/100s) spent
+ processing reduced-priority code.
+
+ This object will not be implemented on hosts where
+ the underlying operating system does not measure
+ this particular CPU metric.
+
+ On a multi-processor system, the 'ssCpuRaw*'
+ counters are cumulative over all CPUs, so their
+ sum will typically be N*100 (for N processors)."
+ ::= { systemStats 51 }
+
+ssCpuRawSystem OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of 'ticks' (typically 1/100s) spent
+ processing system-level code.
+
+ On a multi-processor system, the 'ssCpuRaw*'
+ counters are cumulative over all CPUs, so their
+ sum will typically be N*100 (for N processors).
+
+ This object may sometimes be implemented as the
+ combination of the 'ssCpuRawWait(54)' and
+ 'ssCpuRawKernel(55)' counters, so care must be
+ taken when summing the overall raw counters."
+ ::= { systemStats 52 }
+
+ssCpuRawIdle OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of 'ticks' (typically 1/100s) spent
+ idle.
+
+ On a multi-processor system, the 'ssCpuRaw*'
+ counters are cumulative over all CPUs, so their
+ sum will typically be N*100 (for N processors)."
+ ::= { systemStats 53 }
+
+ssCpuRawWait OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of 'ticks' (typically 1/100s) spent
+ waiting for IO.
+
+ This object will not be implemented on hosts where
+ the underlying operating system does not measure
+ this particular CPU metric. This time may also be
+ included within the 'ssCpuRawSystem(52)' counter.
+
+ On a multi-processor system, the 'ssCpuRaw*'
+ counters are cumulative over all CPUs, so their
+ sum will typically be N*100 (for N processors)."
+ ::= { systemStats 54 }
+
+ssCpuRawKernel OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of 'ticks' (typically 1/100s) spent
+ processing kernel-level code.
+
+ This object will not be implemented on hosts where
+ the underlying operating system does not measure
+ this particular CPU metric. This time may also be
+ included within the 'ssCpuRawSystem(52)' counter.
+
+ On a multi-processor system, the 'ssCpuRaw*'
+ counters are cumulative over all CPUs, so their
+ sum will typically be N*100 (for N processors)."
+ ::= { systemStats 55 }
+
+ssCpuRawInterrupt OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of 'ticks' (typically 1/100s) spent
+ processing hardware interrupts.
+
+ This object will not be implemented on hosts where
+ the underlying operating system does not measure
+ this particular CPU metric.
+
+ On a multi-processor system, the 'ssCpuRaw*'
+ counters are cumulative over all CPUs, so their
+ sum will typically be N*100 (for N processors)."
+ ::= { systemStats 56 }
+
+ssIORawSent OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Number of blocks sent to a block device"
+ ::= { systemStats 57 }
+
+ssIORawReceived OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Number of blocks received from a block device"
+ ::= { systemStats 58 }
+
+ssRawInterrupts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Number of interrupts processed"
+ ::= { systemStats 59 }
+
+ssRawContexts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Number of context switches"
+ ::= { systemStats 60 }
+
+ssCpuRawSoftIRQ OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of 'ticks' (typically 1/100s) spent
+ processing software interrupts.
+
+ This object will not be implemented on hosts where
+ the underlying operating system does not measure
+ this particular CPU metric.
+
+ On a multi-processor system, the 'ssCpuRaw*'
+ counters are cumulative over all CPUs, so their
+ sum will typically be N*100 (for N processors)."
+ ::= { systemStats 61 }
+
+ssRawSwapIn OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Number of blocks swapped in"
+ ::= { systemStats 62 }
+
+ssRawSwapOut OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Number of blocks swapped out"
+ ::= { systemStats 63 }
+
+-- possibly used in the future:
+--
+-- ssErrorFlag OBJECT-TYPE
+-- SYNTAX UCDErrorFlag
+-- MAX-ACCESS read-only
+-- STATUS current
+-- DESCRIPTION
+-- "Error flag."
+-- ::= { systemStats 100 }
+--
+-- ssErrMessage OBJECT-TYPE
+-- SYNTAX DisplayString
+-- MAX-ACCESS read-only
+-- STATUS current
+-- DESCRIPTION
+-- "Error message describing the errorflag condition."
+-- ::= { systemStats 101 }
+
+
+ucdTraps OBJECT IDENTIFIER ::= { ucdavis 251 }
+
+ucdStart NOTIFICATION-TYPE
+ STATUS current
+ DESCRIPTION
+ "This trap could in principle be sent when the agent start"
+ ::= { ucdTraps 1 }
+
+ucdShutdown NOTIFICATION-TYPE
+ STATUS current
+ DESCRIPTION
+ "This trap is sent when the agent terminates"
+ ::= { ucdTraps 2 }
+
+--
+-- File Table: monitor a list of files to check for a maximum size.
+--
+
+fileTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF FileEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Table of monitored files."
+ ::= { ucdavis 15 }
+
+fileEntry OBJECT-TYPE
+ SYNTAX FileEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Entry of file"
+ INDEX { fileIndex }
+ ::= { fileTable 1 }
+
+FileEntry ::= SEQUENCE {
+ fileIndex Integer32,
+ fileName DisplayString,
+ fileSize Integer32,
+ fileMax Integer32,
+ fileErrorFlag UCDErrorFlag,
+ fileErrorMsg DisplayString
+}
+
+fileIndex OBJECT-TYPE
+ SYNTAX Integer32 (0..2147483647)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Index of file"
+ ::= { fileEntry 1 }
+
+fileName OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Filename"
+ ::= { fileEntry 2 }
+
+fileSize OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "kB"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Size of file (kB)"
+ ::= { fileEntry 3 }
+
+fileMax OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "kB"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Limit of filesize (kB)"
+ ::= { fileEntry 4 }
+
+fileErrorFlag OBJECT-TYPE
+ SYNTAX UCDErrorFlag
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Limit exceeded flag"
+ ::= { fileEntry 100 }
+
+fileErrorMsg OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Filesize error message"
+ ::= { fileEntry 101 }
+
+logMatch OBJECT IDENTIFIER ::= { ucdavis 16 }
+
+logMatchMaxEntries OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The maximum number of logmatch entries
+ this snmpd daemon can support."
+ ::= { logMatch 1 }
+
+logMatchTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF LogMatchEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Table of monitored files."
+ ::= { logMatch 2 }
+
+logMatchEntry OBJECT-TYPE
+ SYNTAX LogMatchEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Entry of file"
+ INDEX { logMatchIndex }
+ ::= { logMatchTable 1 }
+
+LogMatchEntry ::=
+ SEQUENCE {
+ logMatchIndex
+ Integer32,
+ logMatchName
+ DisplayString,
+ logMatchFilename
+ DisplayString,
+ logMatchRegEx
+ DisplayString,
+ logMatchGlobalCounter
+ Counter32,
+ logMatchGlobalCount
+ Integer32,
+ logMatchCurrentCounter
+ Counter32,
+ logMatchCurrentCount
+ Integer32,
+ logMatchCounter
+ Counter32,
+ logMatchCount
+ Integer32,
+ logMatchCycle
+ Integer32,
+ logMatchErrorFlag
+ UCDErrorFlag,
+ logMatchRegExCompilation
+ DisplayString
+ }
+
+logMatchIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..2147483647)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Index of logmatch"
+ ::= { logMatchEntry 1 }
+
+logMatchName OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "logmatch instance name"
+ ::= { logMatchEntry 2 }
+
+logMatchFilename OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "filename to be logmatched"
+ ::= { logMatchEntry 3 }
+
+logMatchRegEx OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "regular expression"
+ ::= { logMatchEntry 4 }
+
+logMatchGlobalCounter OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "global count of matches"
+ ::= { logMatchEntry 5 }
+
+logMatchGlobalCount OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Description."
+ ::= { logMatchEntry 6 }
+
+logMatchCurrentCounter OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Regex match counter. This counter will
+ be reset with each logfile rotation."
+ ::= { logMatchEntry 7 }
+
+logMatchCurrentCount OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Description."
+ ::= { logMatchEntry 8 }
+
+logMatchCounter OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Regex match counter. This counter will
+ be reset with each read"
+ ::= { logMatchEntry 9 }
+
+logMatchCount OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Description."
+ ::= { logMatchEntry 10 }
+
+logMatchCycle OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "time between updates (if not queried) in seconds"
+ ::= { logMatchEntry 11 }
+
+logMatchErrorFlag OBJECT-TYPE
+ SYNTAX UCDErrorFlag
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "errorflag: is this line configured correctly?"
+ ::= { logMatchEntry 100 }
+
+logMatchRegExCompilation OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "message of regex precompilation"
+ ::= { logMatchEntry 101 }
+
+END
diff --git a/php/extras/mibs/UDP-MIB.txt b/php/extras/mibs/UDP-MIB.txt
new file mode 100644
index 000000000..eec9dbadb
--- /dev/null
+++ b/php/extras/mibs/UDP-MIB.txt
@@ -0,0 +1,549 @@
+UDP-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE, Integer32, Counter32, Counter64,
+ Unsigned32, IpAddress, mib-2 FROM SNMPv2-SMI
+ MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
+ InetAddress, InetAddressType,
+ InetPortNumber FROM INET-ADDRESS-MIB;
+
+udpMIB MODULE-IDENTITY
+ LAST-UPDATED "200505200000Z" -- May 20, 2005
+ ORGANIZATION
+ "IETF IPv6 Working Group
+ http://www.ietf.org/html.charters/ipv6-charter.html"
+ CONTACT-INFO
+ "Bill Fenner (editor)
+
+ AT&T Labs -- Research
+ 75 Willow Rd.
+ Menlo Park, CA 94025
+
+ Phone: +1 650 330-7893
+ Email:
+
+ John Flick (editor)
+
+ Hewlett-Packard Company
+ 8000 Foothills Blvd. M/S 5557
+ Roseville, CA 95747
+
+ Phone: +1 916 785 4018
+ Email:
+
+ Send comments to "
+ DESCRIPTION
+ "The MIB module for managing UDP implementations.
+ Copyright (C) The Internet Society (2005). This
+ version of this MIB module is part of RFC 4113;
+ see the RFC itself for full legal notices."
+ REVISION "200505200000Z" -- May 20, 2005
+ DESCRIPTION
+ "IP version neutral revision, incorporating the
+ following revisions:
+
+ - Added udpHCInDatagrams and udpHCOutDatagrams in order
+ to provide high-capacity counters for fast networks.
+ - Added text to the descriptions of all counter objects
+ to indicate how discontinuities are detected.
+ - Deprecated the IPv4-specific udpTable and replaced it
+ with the version neutral udpEndpointTable. This
+ table includes support for connected UDP endpoints
+ and support for identification of the operating
+ system process associated with a UDP endpoint.
+ - Deprecated the udpGroup and replaced it with object
+ groups representing the current set of objects.
+ - Deprecated udpMIBCompliance and replaced it with
+ udpMIBCompliance2, which includes the compliance
+ information for the new object groups.
+
+ This version published as RFC 4113."
+ REVISION "199411010000Z" -- November 1, 1994
+ DESCRIPTION
+ "Initial SMIv2 version, published as RFC 2013."
+ REVISION "199103310000Z" -- March 31, 1991
+ DESCRIPTION
+ "The initial revision of this MIB module was part of
+ MIB-II, published as RFC 1213."
+ ::= { mib-2 50 }
+
+-- the UDP group
+
+udp OBJECT IDENTIFIER ::= { mib-2 7 }
+
+udpInDatagrams OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of UDP datagrams delivered to UDP
+ users.
+
+ Discontinuities in the value of this counter can occur
+ at re-initialization of the management system, and at
+ other times as indicated by discontinuities in the
+ value of sysUpTime."
+ ::= { udp 1 }
+
+udpNoPorts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of received UDP datagrams for which
+ there was no application at the destination port.
+
+ Discontinuities in the value of this counter can occur
+ at re-initialization of the management system, and at
+ other times as indicated by discontinuities in the
+ value of sysUpTime."
+ ::= { udp 2 }
+
+udpInErrors OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of received UDP datagrams that could not be
+ delivered for reasons other than the lack of an
+ application at the destination port.
+
+ Discontinuities in the value of this counter can occur
+ at re-initialization of the management system, and at
+ other times as indicated by discontinuities in the
+ value of sysUpTime."
+ ::= { udp 3 }
+
+udpOutDatagrams OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of UDP datagrams sent from this
+ entity.
+
+ Discontinuities in the value of this counter can occur
+ at re-initialization of the management system, and at
+ other times as indicated by discontinuities in the
+ value of sysUpTime."
+ ::= { udp 4 }
+
+udpHCInDatagrams OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of UDP datagrams delivered to UDP
+ users, for devices that can receive more than 1
+ million UDP datagrams per second.
+
+ Discontinuities in the value of this counter can occur
+ at re-initialization of the management system, and at
+ other times as indicated by discontinuities in the
+ value of sysUpTime."
+ ::= { udp 8 }
+
+udpHCOutDatagrams OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of UDP datagrams sent from this
+ entity, for devices that can transmit more than 1
+ million UDP datagrams per second.
+
+ Discontinuities in the value of this counter can occur
+ at re-initialization of the management system, and at
+ other times as indicated by discontinuities in the
+ value of sysUpTime."
+ ::= { udp 9 }
+
+--
+-- { udp 6 } was defined as the ipv6UdpTable in RFC2454's
+-- IPV6-UDP-MIB. This RFC obsoletes RFC 2454, so { udp 6 } is
+-- obsoleted.
+--
+
+-- The UDP "Endpoint" table.
+
+udpEndpointTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF UdpEndpointEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table containing information about this entity's UDP
+ endpoints on which a local application is currently
+ accepting or sending datagrams.
+
+ The address type in this table represents the address
+ type used for the communication, irrespective of the
+ higher-layer abstraction. For example, an application
+ using IPv6 'sockets' to communicate via IPv4 between
+ ::ffff:10.0.0.1 and ::ffff:10.0.0.2 would use
+ InetAddressType ipv4(1).
+
+ Unlike the udpTable in RFC 2013, this table also allows
+ the representation of an application that completely
+ specifies both local and remote addresses and ports. A
+ listening application is represented in three possible
+ ways:
+
+ 1) An application that is willing to accept both IPv4
+ and IPv6 datagrams is represented by a
+ udpEndpointLocalAddressType of unknown(0) and a
+ udpEndpointLocalAddress of ''h (a zero-length
+ octet-string).
+
+ 2) An application that is willing to accept only IPv4
+ or only IPv6 datagrams is represented by a
+ udpEndpointLocalAddressType of the appropriate
+ address type and a udpEndpointLocalAddress of
+ '0.0.0.0' or '::' respectively.
+
+ 3) An application that is listening for datagrams only
+ for a specific IP address but from any remote
+ system is represented by a
+ udpEndpointLocalAddressType of the appropriate
+ address type, with udpEndpointLocalAddress
+ specifying the local address.
+
+ In all cases where the remote is a wildcard, the
+ udpEndpointRemoteAddressType is unknown(0), the
+ udpEndpointRemoteAddress is ''h (a zero-length
+ octet-string), and the udpEndpointRemotePort is 0.
+
+ If the operating system is demultiplexing UDP packets
+ by remote address and port, or if the application has
+ 'connected' the socket specifying a default remote
+ address and port, the udpEndpointRemote* values should
+ be used to reflect this."
+ ::= { udp 7 }
+
+udpEndpointEntry OBJECT-TYPE
+ SYNTAX UdpEndpointEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Information about a particular current UDP endpoint.
+
+ Implementers need to be aware that if the total number
+ of elements (octets or sub-identifiers) in
+ udpEndpointLocalAddress and udpEndpointRemoteAddress
+ exceeds 111, then OIDs of column instances in this table
+ will have more than 128 sub-identifiers and cannot be
+ accessed using SNMPv1, SNMPv2c, or SNMPv3."
+ INDEX { udpEndpointLocalAddressType,
+ udpEndpointLocalAddress,
+ udpEndpointLocalPort,
+ udpEndpointRemoteAddressType,
+ udpEndpointRemoteAddress,
+ udpEndpointRemotePort,
+ udpEndpointInstance }
+ ::= { udpEndpointTable 1 }
+
+UdpEndpointEntry ::= SEQUENCE {
+ udpEndpointLocalAddressType InetAddressType,
+ udpEndpointLocalAddress InetAddress,
+ udpEndpointLocalPort InetPortNumber,
+ udpEndpointRemoteAddressType InetAddressType,
+ udpEndpointRemoteAddress InetAddress,
+ udpEndpointRemotePort InetPortNumber,
+ udpEndpointInstance Unsigned32,
+ udpEndpointProcess Unsigned32
+ }
+
+udpEndpointLocalAddressType OBJECT-TYPE
+ SYNTAX InetAddressType
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The address type of udpEndpointLocalAddress. Only
+ IPv4, IPv4z, IPv6, and IPv6z addresses are expected, or
+ unknown(0) if datagrams for all local IP addresses are
+ accepted."
+ ::= { udpEndpointEntry 1 }
+
+udpEndpointLocalAddress OBJECT-TYPE
+ SYNTAX InetAddress
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The local IP address for this UDP endpoint.
+
+ The value of this object can be represented in three
+
+ possible ways, depending on the characteristics of the
+ listening application:
+
+ 1. For an application that is willing to accept both
+ IPv4 and IPv6 datagrams, the value of this object
+ must be ''h (a zero-length octet-string), with
+ the value of the corresponding instance of the
+ udpEndpointLocalAddressType object being unknown(0).
+
+ 2. For an application that is willing to accept only IPv4
+ or only IPv6 datagrams, the value of this object
+ must be '0.0.0.0' or '::', respectively, while the
+ corresponding instance of the
+ udpEndpointLocalAddressType object represents the
+ appropriate address type.
+
+ 3. For an application that is listening for data
+ destined only to a specific IP address, the value
+ of this object is the specific IP address for which
+ this node is receiving packets, with the
+ corresponding instance of the
+ udpEndpointLocalAddressType object representing the
+ appropriate address type.
+
+ As this object is used in the index for the
+ udpEndpointTable, implementors of this table should be
+ careful not to create entries that would result in OIDs
+ with more than 128 subidentifiers; else the information
+ cannot be accessed using SNMPv1, SNMPv2c, or SNMPv3."
+ ::= { udpEndpointEntry 2 }
+
+udpEndpointLocalPort OBJECT-TYPE
+ SYNTAX InetPortNumber
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The local port number for this UDP endpoint."
+ ::= { udpEndpointEntry 3 }
+
+udpEndpointRemoteAddressType OBJECT-TYPE
+ SYNTAX InetAddressType
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The address type of udpEndpointRemoteAddress. Only
+ IPv4, IPv4z, IPv6, and IPv6z addresses are expected, or
+ unknown(0) if datagrams for all remote IP addresses are
+ accepted. Also, note that some combinations of
+
+ udpEndpointLocalAdressType and
+ udpEndpointRemoteAddressType are not supported. In
+ particular, if the value of this object is not
+ unknown(0), it is expected to always refer to the
+ same IP version as udpEndpointLocalAddressType."
+ ::= { udpEndpointEntry 4 }
+
+udpEndpointRemoteAddress OBJECT-TYPE
+ SYNTAX InetAddress
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The remote IP address for this UDP endpoint. If
+ datagrams from any remote system are to be accepted,
+ this value is ''h (a zero-length octet-string).
+ Otherwise, it has the type described by
+ udpEndpointRemoteAddressType and is the address of the
+ remote system from which datagrams are to be accepted
+ (or to which all datagrams will be sent).
+
+ As this object is used in the index for the
+ udpEndpointTable, implementors of this table should be
+ careful not to create entries that would result in OIDs
+ with more than 128 subidentifiers; else the information
+ cannot be accessed using SNMPv1, SNMPv2c, or SNMPv3."
+ ::= { udpEndpointEntry 5 }
+
+udpEndpointRemotePort OBJECT-TYPE
+ SYNTAX InetPortNumber
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The remote port number for this UDP endpoint. If
+ datagrams from any remote system are to be accepted,
+ this value is zero."
+ ::= { udpEndpointEntry 6 }
+
+udpEndpointInstance OBJECT-TYPE
+ SYNTAX Unsigned32 (1..'ffffffff'h)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The instance of this tuple. This object is used to
+ distinguish among multiple processes 'connected' to
+ the same UDP endpoint. For example, on a system
+ implementing the BSD sockets interface, this would be
+ used to support the SO_REUSEADDR and SO_REUSEPORT
+ socket options."
+ ::= { udpEndpointEntry 7 }
+
+udpEndpointProcess OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The system's process ID for the process associated with
+ this endpoint, or zero if there is no such process.
+ This value is expected to be the same as
+ HOST-RESOURCES-MIB::hrSWRunIndex or SYSAPPL-MIB::
+ sysApplElmtRunIndex for some row in the appropriate
+ tables."
+ ::= { udpEndpointEntry 8 }
+
+-- The deprecated UDP Listener table
+
+-- The deprecated UDP listener table only contains information
+-- about this entity's IPv4 UDP end-points on which a local
+-- application is currently accepting datagrams. It does not
+-- provide more detailed connection information, or information
+-- about IPv6 endpoints.
+
+udpTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF UdpEntry
+ MAX-ACCESS not-accessible
+ STATUS deprecated
+ DESCRIPTION
+ "A table containing IPv4-specific UDP listener
+ information. It contains information about all local
+ IPv4 UDP end-points on which an application is
+ currently accepting datagrams. This table has been
+ deprecated in favor of the version neutral
+ udpEndpointTable."
+ ::= { udp 5 }
+
+udpEntry OBJECT-TYPE
+ SYNTAX UdpEntry
+ MAX-ACCESS not-accessible
+ STATUS deprecated
+ DESCRIPTION
+ "Information about a particular current UDP listener."
+ INDEX { udpLocalAddress, udpLocalPort }
+ ::= { udpTable 1 }
+
+UdpEntry ::= SEQUENCE {
+ udpLocalAddress IpAddress,
+ udpLocalPort Integer32
+
+}
+
+udpLocalAddress OBJECT-TYPE
+ SYNTAX IpAddress
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The local IP address for this UDP listener. In the
+ case of a UDP listener that is willing to accept
+ datagrams for any IP interface associated with the
+ node, the value 0.0.0.0 is used."
+ ::= { udpEntry 1 }
+
+udpLocalPort OBJECT-TYPE
+ SYNTAX Integer32 (0..65535)
+ MAX-ACCESS read-only
+ STATUS deprecated
+ DESCRIPTION
+ "The local port number for this UDP listener."
+ ::= { udpEntry 2 }
+
+-- conformance information
+
+udpMIBConformance OBJECT IDENTIFIER ::= { udpMIB 2 }
+udpMIBCompliances OBJECT IDENTIFIER ::= { udpMIBConformance 1 }
+udpMIBGroups OBJECT IDENTIFIER ::= { udpMIBConformance 2 }
+
+-- compliance statements
+
+udpMIBCompliance2 MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for systems that implement
+ UDP.
+
+ There are a number of INDEX objects that cannot be
+ represented in the form of OBJECT clauses in SMIv2, but
+ for which we have the following compliance
+ requirements, expressed in OBJECT clause form in this
+ description clause:
+
+ -- OBJECT udpEndpointLocalAddressType
+ -- SYNTAX InetAddressType { unknown(0), ipv4(1),
+ -- ipv6(2), ipv4z(3),
+ -- ipv6z(4) }
+ -- DESCRIPTION
+ -- Support for dns(5) is not required.
+ -- OBJECT udpEndpointLocalAddress
+
+ -- SYNTAX InetAddress (SIZE(0|4|8|16|20))
+ -- DESCRIPTION
+ -- Support is only required for zero-length
+ -- octet-strings, and for scoped and unscoped
+ -- IPv4 and IPv6 addresses.
+ -- OBJECT udpEndpointRemoteAddressType
+ -- SYNTAX InetAddressType { unknown(0), ipv4(1),
+ -- ipv6(2), ipv4z(3),
+ -- ipv6z(4) }
+ -- DESCRIPTION
+ -- Support for dns(5) is not required.
+ -- OBJECT udpEndpointRemoteAddress
+ -- SYNTAX InetAddress (SIZE(0|4|8|16|20))
+ -- DESCRIPTION
+ -- Support is only required for zero-length
+ -- octet-strings, and for scoped and unscoped
+ -- IPv4 and IPv6 addresses.
+ "
+ MODULE -- this module
+ MANDATORY-GROUPS { udpBaseGroup, udpEndpointGroup }
+ GROUP udpHCGroup
+ DESCRIPTION
+ "This group is mandatory for systems that
+ are capable of receiving or transmitting more than
+ 1 million UDP datagrams per second. 1 million
+ datagrams per second will cause a Counter32 to
+ wrap in just over an hour."
+ ::= { udpMIBCompliances 2 }
+
+udpMIBCompliance MODULE-COMPLIANCE
+ STATUS deprecated
+ DESCRIPTION
+ "The compliance statement for IPv4-only systems that
+ implement UDP. For IP version independence, this
+ compliance statement is deprecated in favor of
+ udpMIBCompliance2. However, agents are still
+ encouraged to implement these objects in order to
+ interoperate with the deployed base of managers."
+ MODULE -- this module
+ MANDATORY-GROUPS { udpGroup }
+ ::= { udpMIBCompliances 1 }
+
+-- units of conformance
+
+udpGroup OBJECT-GROUP
+ OBJECTS { udpInDatagrams, udpNoPorts,
+ udpInErrors, udpOutDatagrams,
+ udpLocalAddress, udpLocalPort }
+ STATUS deprecated
+ DESCRIPTION
+ "The deprecated group of objects providing for
+ management of UDP over IPv4."
+ ::= { udpMIBGroups 1 }
+
+udpBaseGroup OBJECT-GROUP
+ OBJECTS { udpInDatagrams, udpNoPorts, udpInErrors,
+ udpOutDatagrams }
+ STATUS current
+ DESCRIPTION
+ "The group of objects providing for counters of UDP
+ statistics."
+ ::= { udpMIBGroups 2 }
+
+udpHCGroup OBJECT-GROUP
+ OBJECTS { udpHCInDatagrams, udpHCOutDatagrams }
+ STATUS current
+ DESCRIPTION
+ "The group of objects providing for counters of high
+ speed UDP implementations."
+ ::= { udpMIBGroups 3 }
+
+udpEndpointGroup OBJECT-GROUP
+ OBJECTS { udpEndpointProcess }
+ STATUS current
+ DESCRIPTION
+ "The group of objects providing for the IP version
+ independent management of UDP 'endpoints'."
+ ::= { udpMIBGroups 4 }
+
+END
diff --git a/php/extras/mibs/ianalist b/php/extras/mibs/ianalist
new file mode 100644
index 000000000..c3f057589
--- /dev/null
+++ b/php/extras/mibs/ianalist
@@ -0,0 +1,11 @@
+# updated 2005-01-06
+ianaiftype-mib IANAifType-MIB
+ianalanguage-mib IANA-LANGUAGE-MIB
+ianaaddressfamilynumbers-mib IANA-ADDRESS-FAMILY-NUMBERS-MIB
+ianaiprouteprotocol-mib IANA-RTPROTO-MIB
+ianatn3270etc-mib IANATn3270eTC-MIB
+ianamalloc-mib IANA-MALLOC-MIB
+ianacharset-mib IANA-CHARSET-MIB
+ianaprinter-mib IANA-PRINTER-MIB
+ianafinisher-mib IANA-FINISHER-MIB
+ianaitualarmtc-mib IANA-ITU-ALARM-TC-MIB
diff --git a/php/extras/mibs/makehtml.pl b/php/extras/mibs/makehtml.pl
new file mode 100644
index 000000000..5a34a358a
--- /dev/null
+++ b/php/extras/mibs/makehtml.pl
@@ -0,0 +1,112 @@
+#!/usr/bin/perl
+
+use SNMP;
+
+use Getopt::Std;
+
+%opts = ( M => ".",
+ D => "html");
+
+getopts("M:D:WH:", \%opts) || die "usage: makehtml.pl -W [-M MIBDIR] [-D OUTDIR] files > index.html";
+
+$SNMP::save_descriptions = 1;
+
+$ENV{'MIBDIRS'} = $opts{'M'};
+$ENV{'SNMPCONFPATH'} = 'bogus';
+
+if (-f "rfclist") {
+ open(I,"rfclist");
+ while () {
+ if (/^(\d+)\s+([-:\w]+)\s*$/) {
+ my $mib = $2;
+ my $rfc = $1;
+ my @mibs = split(/:/,$mib);
+ foreach my $i (@mibs) {
+ $mibs{$i} = $rfc;
+ }
+ }
+ }
+ close(I);
+}
+
+if (-f "nodemap") {
+ open(I,"nodemap");
+ while () {
+ if (/^([-\w]+)\s+(\w+)\s*$/) {
+ $nodemap{$1} = $2;
+ }
+ }
+ close(I);
+}
+
+if ($opts{'W'}) {
+ print '
+Net-SNMP Distributed MIBs
+
+
+
The following are the MIB files distributed with Net-SNMP. Note that because they are distributed with Net-SNMP does not mean the agent implements them all. Another good place for finding other MIB definitions can be found at the MIB depot.
+
+
+
MIB
RFC
Description
+';
+}
+
+my %didit;
+
+foreach my $mibf (@ARGV) {
+ my $node;
+ my $mib = $mibf;
+ $mib =~ s/.txt//;
+
+ next if ($didit{$mib});
+ $didit{$mib} = 1;
+
+ open(I, "$opts{M}/$mibf");
+ while () {
+ if (/(\w+)\s+MODULE-IDENTITY/) {
+ $node = $1;
+ }
+ }
+ close(I);
+
+ if (!$node) {
+ print STDERR "Couldn't find starting node for $mib $node $_\n";
+ next;
+ }
+
+ SNMP::loadModules($mib);
+
+ $desc = $SNMP::MIB{$node}{'description'};
+
+ # get a different tree than the module identity though.
+ if (exists($nodemap{$mib})) {
+ $node = $nodemap{$mib};
+ }
+
+ # Change tabs to spaces
+ $desc =~ s/\t/ /g;
+
+ # Clean up formatting
+ my ($s) = ($desc =~ /\n(\s+)/);
+ $desc =~ s/^$s//gm;
+
+ $desc =~ s/&/&/g;
+ $desc =~ s/</g;
+ $desc =~ s/>/>/g;
+
+ print "
\n";
+
+
diff --git a/php/extras/mibs/mibfetch b/php/extras/mibs/mibfetch
new file mode 100644
index 000000000..d3aa4c6e4
--- /dev/null
+++ b/php/extras/mibs/mibfetch
@@ -0,0 +1,51 @@
+#!/bin/sh
+
+# Usage: mibfetch [ -d outdir ] host directory rfc [mibs]
+#
+# If "rfc" contains a "." it is expected to be a complete file name,
+# otherwise it is assumed to be just the rfc number.
+# If "mibs" is specified, it is a ":" separated list of mibs to extract,
+# otherwise all mibs are extracted.
+#
+# The script fetches the file from the givn directory on the given
+# host, and then runs the file through smistrip to extract the mibs.
+
+exact=0
+verbose=
+
+while getopts xvd: c
+do
+ case $c in
+ d) mdir="-d $OPTARG"
+ ;;
+ x) exact=1
+ ;;
+ v) verbose=-v
+ ;;
+ \?) exit 2
+ ;;
+ esac
+done
+
+shift `expr $OPTIND - 1`
+
+set -e
+
+host=$1
+dir=$2
+rfc=$3
+
+if [ $exact = 0 -a `echo $rfc | sed 's/\.//'` = $rfc ]; then
+ file=rfc$rfc.txt
+else
+ file=$rfc
+fi
+
+if [ -n "$4" ]; then
+ mibs="-m $4"
+fi
+
+# ncftpget -FV ftp://$host/$dir/$file
+wget -O - -q -nv $host/$dir/$file | \
+ tr -d \\r | \
+ ./smistrip $verbose -x .txt $mdir $mibs -
diff --git a/php/extras/mibs/nodemap b/php/extras/mibs/nodemap
new file mode 100644
index 000000000..bce284f17
--- /dev/null
+++ b/php/extras/mibs/nodemap
@@ -0,0 +1,6 @@
+EtherLike-MIB dot3
+HOST-RESOURCES-MIB host
+IP-MIB ip
+IF-MIB interfaces
+UDP-MIB udp
+TCP-MIB tcp
diff --git a/php/extras/mibs/rfclist b/php/extras/mibs/rfclist
new file mode 100644
index 000000000..4d034344f
--- /dev/null
+++ b/php/extras/mibs/rfclist
@@ -0,0 +1,188 @@
+# updated 2005-03-14
+1155 RFC1155-SMI
+1213 RFC1213-MIB
+1227 SMUX-MIB
+1238 CLNS-MIB
+1381 RFC1381-MIB
+1382 RFC1382-MIB
+1414 RFC1414-MIB
+1461 MIOX25-MIB
+1471 PPP-LCP-MIB
+1472 PPP-SEC-MIB
+1473 PPP-IP-NCP-MIB
+1474 PPP-BRIDGE-NCP-MIB
+1512 FDDI-SMT73-MIB
+1513 TOKEN-RING-RMON-MIB
+1525 SOURCE-ROUTING-MIB
+1559 DECNET-PHIV-MIB
+1567 DSA-MIB
+1611 DNS-SERVER-MIB
+1612 DNS-RESOLVER-MIB
+1628 UPS-MIB
+1657 BGP4-MIB
+1658 CHARACTER-MIB
+1659 RS-232-MIB
+1660 PARALLEL-MIB
+1666 SNA-NAU-MIB
+1694 SIP-MIB
+1696 Modem-MIB
+1697 RDBMS-MIB
+1724 RIPv2-MIB
+1742 APPLETALK-MIB
+1747 SNA-SDLC-MIB
+1748 TOKENRING-MIB
+1749 TOKENRING-STATION-SR-MIB
+1792 TCPIPX-MIB
+1850 OSPF-MIB:OSPF-TRAP-MIB
+2006 MIP-MIB
+2020 DOT12-IF-MIB
+2021 RMON2-MIB
+2024 DLSW-MIB
+2051 APPC-MIB
+2108 SNMP-REPEATER-MIB
+2115 FRAME-RELAY-DTE-MIB
+2127 ISDN-MIB
+2128 DIAL-CONTROL-MIB
+2206 RSVP-MIB
+2213 INTEGRATED-SERVICES-MIB
+2214 INTEGRATED-SERVICES-GUARANTEED-MIB
+2232 APPN-DLUR-MIB
+2238 HPR-MIB
+2266 DOT12-RPTR-MIB
+2287 SYSAPPL-MIB
+2320 IPOA-MIB
+2366 IPATM-IPMC-MIB
+2452 IPV6-TCP-MIB
+2454 IPV6-UDP-MIB
+2455 APPN-MIB
+2456 APPN-TRAP-MIB
+2457 EBN-MIB
+2465 IPV6-TC:IPV6-MIB
+2466 IPV6-ICMP-MIB
+2494 DS0-MIB:DS0BUNDLE-MIB
+2495 DS1-MIB
+2496 DS3-MIB
+2512 ATM-ACCOUNTING-INFORMATION-MIB
+2513 ACCOUNTING-CONTROL-MIB
+2514 ATM-TC-MIB
+2515 ATM-MIB
+2561 TN3270E-MIB
+2562 TN3270E-RT-MIB
+2564 APPLICATION-MIB
+2576 SNMP-COMMUNITY-MIB
+2578 SNMPv2-SMI
+2579 SNMPv2-TC
+2580 SNMPv2-CONF
+2584 HPR-IP-MIB
+2594 WWW-MIB
+2605 DIRECTORY-SERVER-MIB
+2613 SMON-MIB
+2618 RADIUS-AUTH-CLIENT-MIB
+2619 RADIUS-AUTH-SERVER-MIB
+2620 RADIUS-ACC-CLIENT-MIB
+2621 RADIUS-ACC-SERVER-MIB
+2662 ADSL-TC-MIB:ADSL-LINE-MIB
+2666 ETHER-CHIPSET-MIB
+2669 DOCS-CABLE-DEVICE-MIB
+2670 DOCS-IF-MIB
+2674 P-BRIDGE-MIB:Q-BRIDGE-MIB
+2677 NHRP-MIB
+2707 Job-Monitoring-MIB
+2720 FLOW-METER-MIB
+2742 AGENTX-MIB
+2758 SLAPM-MIB
+2786 SNMP-USM-DH-OBJECTS-MIB
+2787 VRRP-MIB
+2788 NETWORK-SERVICES-MIB
+2789 MTA-MIB
+2790 HOST-RESOURCES-MIB:HOST-RESOURCES-TYPES
+2819 RMON-MIB
+2837 FIBRE-CHANNEL-FE-MIB
+2856 HCNUM-TC
+2863 IF-MIB
+2864 IF-INVERTED-STACK-MIB
+2922 PTOPO-MIB
+2925 DISMAN-PING-MIB:DISMAN-TRACEROUTE-MIB:DISMAN-NSLOOKUP-MIB
+2932 IPMROUTE-STD-MIB
+2933 IGMP-STD-MIB
+2934 PIM-MIB
+2940 COPS-CLIENT-MIB
+2954 FRNETSERV-MIB
+2955 FR-ATM-PVC-SERVICE-IWF-MIB
+2959 RTP-MIB
+2981 DISMAN-EVENT-MIB
+2982 DISMAN-EXPRESSION-MIB
+3014 NOTIFICATION-LOG-MIB
+3019 IPV6-MLD-MIB
+3020 FR-MFR-MIB
+3055 PINT-MIB
+3083 DOCS-BPI-MIB
+3144 INTERFACETOPN-MIB
+3165 DISMAN-SCRIPT-MIB
+3201 CIRCUIT-IF-MIB
+3202 FRSLD-MIB
+3231 DISMAN-SCHEDULE-MIB
+3273 HC-RMON-MIB
+3276 HDSL2-SHDSL-LINE-MIB
+3289 DIFFSERV-DSCP-TC:DIFFSERV-MIB
+3295 GSMP-MIB
+3371 L2TP-MIB
+3411 SNMP-FRAMEWORK-MIB
+3412 SNMP-MPD-MIB
+3413 SNMP-TARGET-MIB:SNMP-NOTIFICATION-MIB:SNMP-PROXY-MIB
+3414 SNMP-USER-BASED-SM-MIB
+3415 SNMP-VIEW-BASED-ACM-MIB
+3417 SNMPv2-TM
+3418 SNMPv2-MIB
+3419 TRANSPORT-ADDRESS-MIB
+3433 ENTITY-SENSOR-MIB
+3434 HC-ALARM-MIB
+3440 ADSL-LINE-EXT-MIB
+3498 APS-MIB
+3559 MALLOC-MIB
+3591 OPT-IF-MIB
+3592 SONET-MIB
+3593 PerfHist-TC-MIB
+3595 IPV6-FLOW-LABEL-MIB
+3606 ATM2-MIB
+3621 POWER-ETHERNET-MIB
+3635 EtherLike-MIB
+3636 MAU-MIB
+3637 ETHER-WIS
+3705 HC-PerfHist-TC-MIB
+3728 VDSL-LINE-MIB
+3729 APM-MIB
+3747 DIFFSERV-CONFIG-MIB
+3805 Printer-MIB
+3806 Finisher-MIB
+# 3808 IANA-CHARSET-MIB
+3811 MPLS-TC-STD-MIB
+3812 MPLS-TE-STD-MIB
+3813 MPLS-LSR-STD-MIB
+3814 MPLS-FTN-STD-MIB
+3815 MPLS-LDP-STD-MIB:MPLS-LDP-ATM-STD-MIB:MPLS-LDP-FRAME-RELAY-STD-MIB:MPLS-LDP-GENERIC-STD-MIB
+3816 ROHC-MIB:ROHC-UNCOMPRESSED-MIB:ROHC-RTP-MIB
+3826 SNMP-USM-AES-MIB
+3873 SCTP-MIB
+3877 ALARM-MIB:ITU-ALARM-TC-MIB:ITU-ALARM-MIB
+3878 ARC-MIB
+3970 TE-MIB
+4001 INET-ADDRESS-MIB
+4008 NAT-MIB
+4011 POLICY-BASED-MANAGEMENT-MIB
+4022 TCP-MIB
+4036 DOCS-IETF-SUBMGT-MIB
+4044 FC-MGMT-MIB
+4069 VDSL-LINE-EXT-SCM-MIB
+4070 VDSL-LINE-EXT-MCM-MIB
+4087 TUNNEL-MIB
+4113 UDP-MIB
+4131 DOCS-IETF-BPI2-MIB
+4133 ENTITY-MIB
+4149 SSPM-MIB
+4188 BRIDGE-MIB
+4220 TE-LINK-STD-MIB
+4265 VPN-TC-STD-MIB
+4268 ENTITY-STATE-TC-MIB:ENTITY-STATE-MIB
+4292 IP-FORWARD-MIB
+4293 IP-MIB
diff --git a/php/extras/mibs/rfcmibs.diff b/php/extras/mibs/rfcmibs.diff
new file mode 100644
index 000000000..0618c178d
--- /dev/null
+++ b/php/extras/mibs/rfcmibs.diff
@@ -0,0 +1,499 @@
+Only in /usr/local/share/snmp/rfc: .index
+diff -ru /usr/local/share/snmp/rfc.orig/ADSL-LINE-MIB.txt /usr/local/share/snmp/rfc/ADSL-LINE-MIB.txt
+--- /usr/local/share/snmp/rfc.orig/ADSL-LINE-MIB.txt Sat Mar 3 17:27:00 2001
++++ /usr/local/share/snmp/rfc/ADSL-LINE-MIB.txt Tue Jan 23 00:42:41 2001
+@@ -3379,7 +3379,6 @@
+ static profiles are implemented."
+
+ OBJECT adslAtucConfMinSnrMgn
+- MIN-ACCESS read-wr
+ MIN-ACCESS read-write
+ DESCRIPTION
+ "Read-write access is applicable when
+diff -ru /usr/local/share/snmp/rfc.orig/DLSW-MIB.txt /usr/local/share/snmp/rfc/DLSW-MIB.txt
+--- /usr/local/share/snmp/rfc.orig/DLSW-MIB.txt Sat Mar 3 17:18:28 2001
++++ /usr/local/share/snmp/rfc/DLSW-MIB.txt Tue Jan 23 00:13:40 2001
+@@ -7,7 +7,7 @@
+
+ Counter32, Gauge32, TimeTicks,
+ OBJECT-TYPE, MODULE-IDENTITY,
+- NOTIFICATION-TYPE FROM SNMPv2-SMI
++ NOTIFICATION-TYPE, mib-2 FROM SNMPv2-SMI
+ MODULE-COMPLIANCE, OBJECT-GROUP,
+ NOTIFICATION-GROUP FROM SNMPv2-CONF
+ ifIndex FROM IF-MIB
+@@ -150,12 +150,12 @@
+
+ -- The DLSw MIB module contains an object part and a conformance part.
+ -- Object part is organized in the following groups:
+--- (1) dlswNode -- information about this DLSw
+--- (2) dlswTConn -- about adjacent DLSw partners
+--- (3) dlswInterface -- about which interfaces DLSw is active on
+--- (4) dlswDirectory -- about any directory of local/remote resources
+--- (5) dlswCircuit -- about established circuits.
+--- (6) dlswSdlc -- about SDLC data link switched devices
++-- (1) dlswNode - information about this DLSw
++-- (2) dlswTConn - about adjacent DLSw partners
++-- (3) dlswInterface - about which interfaces DLSw is active on
++-- (4) dlswDirectory - about any directory of local/remote resources
++-- (5) dlswCircuit - about established circuits.
++-- (6) dlswSdlc - about SDLC data link switched devices
+
+ dlswNode OBJECT IDENTIFIER ::= { dlswMIB 1 }
+ dlswTConn OBJECT IDENTIFIER ::= { dlswMIB 2 }
+@@ -168,9 +168,9 @@
+ -- THE NODE GROUP
+ -- *******************************************************************
+
+--- -------------------------------------------------------------------
++-- ===================================================================
+ -- DLSw Node Identity
+--- -------------------------------------------------------------------
++-- ===================================================================
+ dlswNodeVersion OBJECT-TYPE
+ SYNTAX OCTET STRING (SIZE (2))
+ MAX-ACCESS read-only
+@@ -211,9 +211,9 @@
+ "DLSW: Switch-to-Switch Protocol RFC 1795"
+ ::= { dlswNode 3 }
+
+--- -------------------------------------------------------------------
++-- ===================================================================
+ -- DLSw Code Capability
+--- -------------------------------------------------------------------
++-- ===================================================================
+ dlswNodeStdPacingSupport OBJECT-TYPE
+ SYNTAX INTEGER {
+ none (1), -- does not support DLSw
+@@ -238,9 +238,9 @@
+ scheme but never varies its receive window size."
+ ::= { dlswNode 4 }
+
+--- -------------------------------------------------------------------
++-- ===================================================================
+ -- DLSw Node Operational Objects
+--- -------------------------------------------------------------------
++--====================================================================
+ dlswNodeStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ active (1),
+@@ -339,10 +339,10 @@
+ -- TRANSPORT CONNECTION (aka: PARTNER DLSW)
+ -- *******************************************************************
+
+--- -------------------------------------------------------------------
++-- ===================================================================
+
+ -- Transport Connection Statistics Objects
+--- -------------------------------------------------------------------
++-- ===================================================================
+ dlswTConnStat OBJECT IDENTIFIER ::= { dlswTConn 1 }
+
+ dlswTConnStatActiveConnections OBJECT-TYPE
+@@ -375,9 +375,9 @@
+ this means the transport connection failed unexpectedly."
+ ::= { dlswTConnStat 3 }
+
+--- -------------------------------------------------------------------
++-- ===================================================================
+ -- Transport Connection Configuration Table
+--- -------------------------------------------------------------------
++-- ===================================================================
+ dlswTConnConfigTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF DlswTConnConfigEntry
+ MAX-ACCESS not-accessible
+@@ -651,15 +651,15 @@
+ row definition out of use."
+ ::= { dlswTConnConfigEntry 13 }
+
+--- -------------------------------------------------------------------
++-- ===================================================================
+ -- Transport Connection Operation Table
+--- -------------------------------------------------------------------
++-- ===================================================================
+ -- (1) At most one transport connection can be connected between
+ -- this DLSw and one of its DLSw partners at a given time.
+ -- (2) Multiple transport types are supported.
+ -- (3) Since the entries may be reused, dlswTConnOperEntryTime
+ -- needs to be consulted for the possibility of counter reset.
+--- -------------------------------------------------------------------
++-- ===================================================================
+
+ dlswTConnOperTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF DlswTConnOperEntry
+@@ -1254,14 +1254,14 @@
+ connection, where `active' means not in `disconnected' state."
+ ::= { dlswTConnOperEntry 36 }
+
+--- -------------------------------------------------------------------
++-- ===================================================================
+ -- Transport Connection Specific
+--- -------------------------------------------------------------------
++-- ===================================================================
+ dlswTConnSpecific OBJECT IDENTIFIER ::= { dlswTConn 4 }
+ dlswTConnTcp OBJECT IDENTIFIER ::= { dlswTConnSpecific 1 }
+
+ -- ...................................................................
+--- TCP Transport Connection Specific -- Configuration
++-- TCP Transport Connection Specific - Configuration
+ -- ...................................................................
+ dlswTConnTcpConfigTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF DlswTConnTcpConfigEntry
+@@ -1328,7 +1328,7 @@
+ ::= { dlswTConnTcpConfigEntry 3 }
+
+ -- ...................................................................
+--- TCP Transport Connection Specific -- Operation
++-- TCP Transport Connection Specific - Operation
+ -- ...................................................................
+ dlswTConnTcpOperTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF DlswTConnTcpOperEntry
+@@ -1472,9 +1472,9 @@
+ -- transport address of the DLSw partner is cached.
+ -- *******************************************************************
+
+--- -------------------------------------------------------------------
++-- ===================================================================
+ -- Directory Related Statistical Objects
+--- -------------------------------------------------------------------
++-- ===================================================================
+ dlswDirStat OBJECT IDENTIFIER ::= { dlswDirectory 1 }
+
+ dlswDirMacEntries OBJECT-TYPE
+@@ -1556,9 +1556,9 @@
+ create new rows."
+ ::= { dlswDirStat 8 }
+
+--- -------------------------------------------------------------------
++-- ===================================================================
+ -- Directory Cache
+--- -------------------------------------------------------------------
++-- ===================================================================
+ dlswDirCache OBJECT IDENTIFIER ::= { dlswDirectory 2 }
+
+ -- ...................................................................
+@@ -1566,7 +1566,7 @@
+ -- All Possible combinations of values of these objects.
+ --
+ -- EntryType LocationType Location Status
+--- -------------- ------------ ------------------ --------------
++-- ============== ============ ================== ==============
+ -- userConfigured local ifEntry or 0.0 reachable, or
+ -- notReachable, or
+ -- unknown
+@@ -1743,7 +1743,7 @@
+ -- All Possible combinations of values of these objects.
+ --
+ -- EntryType LocationType Location Status
+--- -------------- ------------ ------------------ --------------
++-- ============== ============ ================== ==============
+ -- userConfigured local ifEntry or 0.0 reachable, or
+ -- notReachable, or
+ -- unknown
+@@ -1918,9 +1918,9 @@
+ following the RowStatus textual convention."
+ ::= { dlswDirNBEntry 9 }
+
+--- -------------------------------------------------------------------
++-- ===================================================================
+ -- Resource Locations
+--- -------------------------------------------------------------------
++-- ===================================================================
+
+ dlswDirLocate OBJECT IDENTIFIER ::= { dlswDirectory 3 }
+
+@@ -2056,9 +2056,9 @@
+ -- station that receives the initiation.
+ -- *******************************************************************
+
+--- -------------------------------------------------------------------
++-- ===================================================================
+ -- Statistics Related to Circuits
+--- -------------------------------------------------------------------
++-- ===================================================================
+ dlswCircuitStat OBJECT IDENTIFIER ::= { dlswCircuit 1 }
+
+ dlswCircuitStatActives OBJECT-TYPE
+@@ -2079,7 +2079,7 @@
+ or reactivated upon exiting `disconnected' state."
+ ::= { dlswCircuitStat 2 }
+
+--- -------------------------------------------------------------------
++-- ===================================================================
+ -- Circuit Table
+ --
+ -- This table is the DLSw entity's view of circuits. There will be
+@@ -2090,9 +2090,9 @@
+ -- this Circuit Table:
+ --
+ -- number of | Origin End Station Location
+--- entries in the |--------------------------------------
++-- entries in the |======================================
+ -- Circuit Table | internal local remote
+--- -----------------------|--------------------------------------
++-- =======================|======================================
+ -- Target | internal | NA 2 1
+ -- End | local | 2 2 1
+ -- Station | remote | 1 1 NA
+@@ -2106,7 +2106,7 @@
+ --
+ -- Most of statistics related to circuits can be collected
+ -- from LLC-2 Link Station Table.
+--- -------------------------------------------------------------------
++-- ===================================================================
+ dlswCircuitTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF DlswCircuitEntry
+ MAX-ACCESS not-accessible
+@@ -2814,7 +2814,7 @@
+ -- *******************************************************************
+ dlswTraps OBJECT IDENTIFIER ::= { dlswMIB 0 }
+
+--- -------------------------------------------------------------------
++-- ===================================================================
+ -- This section defines the well-known notifications sent by
+ -- DLSW agents.
+ -- Care must be taken to insure that no particular notification
+@@ -2827,7 +2827,7 @@
+ -- (3) Transport connection up/down
+
+ -- (4) Circuit up/down
+--- -------------------------------------------------------------------
++-- ===================================================================
+ --
+
+ dlswTrapTConnPartnerReject NOTIFICATION-TYPE
+@@ -2902,9 +2902,9 @@
+ dlswCompliances OBJECT IDENTIFIER ::= { dlswConformance 1 }
+ dlswGroups OBJECT IDENTIFIER ::= { dlswConformance 2 }
+
+--- -------------------------------------------------------------------
++-- ===================================================================
+ -- COMPLIANCE STATEMENTS
+--- -------------------------------------------------------------------
++-- ===================================================================
+
+ -- ...................................................................
+ -- Core compliance for all DLSw entities
+@@ -3245,9 +3245,9 @@
+ "Write access is not required."
+ ::= { dlswCompliances 5 }
+
+--- -------------------------------------------------------------------
++-- ===================================================================
+ -- CONFORMANCE GROUPS
+--- -------------------------------------------------------------------
++-- ===================================================================
+
+ -- ...................................................................
+ -- Node Conformance Group
+diff -ru /usr/local/share/snmp/rfc.orig/DSA-MIB.txt /usr/local/share/snmp/rfc/DSA-MIB.txt
+--- /usr/local/share/snmp/rfc.orig/DSA-MIB.txt Sat Mar 3 17:15:36 2001
++++ /usr/local/share/snmp/rfc/DSA-MIB.txt Thu Feb 22 00:33:45 2001
+@@ -10,7 +10,7 @@
+ mib-2
+ FROM RFC1213-MIB
+ applIndex, DistinguishedName
+- FROM APPLICATION-MIB;
++ FROM NETWORK-SERVICES-MIB;
+
+ dsaMIB MODULE-IDENTITY
+ LAST-UPDATED "9311250000Z"
+diff -ru /usr/local/share/snmp/rfc.orig/FDDI-SMT73-MIB.txt /usr/local/share/snmp/rfc/FDDI-SMT73-MIB.txt
+--- /usr/local/share/snmp/rfc.orig/FDDI-SMT73-MIB.txt Sat Mar 3 17:15:09 2001
++++ /usr/local/share/snmp/rfc/FDDI-SMT73-MIB.txt Tue Jan 23 00:11:46 2001
+@@ -3,6 +3,8 @@
+ IMPORTS
+ Counter
+ FROM RFC1155-SMI
++ transmission
++ FROM RFC1213-MIB
+ OBJECT-TYPE
+ FROM RFC-1212;
+
+diff -ru /usr/local/share/snmp/rfc.orig/HPR-MIB.txt /usr/local/share/snmp/rfc/HPR-MIB.txt
+--- /usr/local/share/snmp/rfc.orig/HPR-MIB.txt Sat Mar 3 17:19:54 2001
++++ /usr/local/share/snmp/rfc/HPR-MIB.txt Tue Jan 23 00:25:54 2001
+@@ -18,7 +18,7 @@
+ FROM APPN-MIB;
+
+ hprMIB MODULE-IDENTITY
+- LAST-UPDATED "970514000000Z"
++ LAST-UPDATED "9705140000Z"
+ ORGANIZATION "AIW APPN / HPR MIB SIG"
+ CONTACT-INFO
+ "
+diff -ru /usr/local/share/snmp/rfc.orig/MIP-MIB.txt /usr/local/share/snmp/rfc/MIP-MIB.txt
+--- /usr/local/share/snmp/rfc.orig/MIP-MIB.txt Sat Mar 3 17:17:42 2001
++++ /usr/local/share/snmp/rfc/MIP-MIB.txt Tue Jan 23 00:25:27 2001
+@@ -1,7 +1,7 @@
+ MIP-MIB DEFINITIONS ::= BEGIN
+
+ IMPORTS
+- Counter32, Gauge32, Integer32, IpAddress, experimental,
++ Counter32, Gauge32, Integer32, IpAddress, mib-2,
+ MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE
+ FROM SNMPv2-SMI
+ RowStatus, TruthValue, TimeStamp,
+@@ -2117,7 +2117,7 @@
+ function within a home agent."
+ ::= { mipGroups 12 }
+
+- mipSecNotifcationsGroup NOTIFICATION-GROUP
++ mipSecNotificationsGroup NOTIFICATION-GROUP
+ NOTIFICATIONS { mipAuthFailure }
+ STATUS current
+ DESCRIPTION
+diff -ru /usr/local/share/snmp/rfc.orig/Modem-MIB.txt /usr/local/share/snmp/rfc/Modem-MIB.txt
+--- /usr/local/share/snmp/rfc.orig/Modem-MIB.txt Sat Mar 3 17:16:35 2001
++++ /usr/local/share/snmp/rfc/Modem-MIB.txt Mon Jan 22 23:53:08 2001
+@@ -23,7 +23,7 @@
+ E-mail: waldbusser@cmu.edu"
+ DESCRIPTION
+ "The MIB module for management of dial-up modems."
+- ::= { mdmMIB 1 }
++ ::= { mdmMib 1 }
+
+ mdmMib OBJECT IDENTIFIER ::= { mib-2 38 }
+
+diff -ru /usr/local/share/snmp/rfc.orig/PPP-LCP-MIB.txt /usr/local/share/snmp/rfc/PPP-LCP-MIB.txt
+--- /usr/local/share/snmp/rfc.orig/PPP-LCP-MIB.txt Sat Mar 3 17:14:46 2001
++++ /usr/local/share/snmp/rfc/PPP-LCP-MIB.txt Sat Mar 3 23:13:27 2001
+@@ -182,7 +182,7 @@
+ ::= { pppLinkStatusEntry 5 }
+
+ pppLinkStatusLocalMRU OBJECT-TYPE
+- SYNTAX INTEGER(1..2147483648)
++ SYNTAX INTEGER(1..2147483647)
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+@@ -195,7 +195,7 @@
+ ::= { pppLinkStatusEntry 6 }
+
+ pppLinkStatusRemoteMRU OBJECT-TYPE
+- SYNTAX INTEGER(1..2147483648)
++ SYNTAX INTEGER(1..2147483647)
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+@@ -535,7 +535,7 @@
+ ::= { pppLqrEntry 2 }
+
+ pppLqrLocalPeriod OBJECT-TYPE
+- SYNTAX INTEGER(1..2147483648)
++ SYNTAX INTEGER(1..2147483647)
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+@@ -548,7 +548,7 @@
+ ::= { pppLqrEntry 3 }
+
+ pppLqrRemotePeriod OBJECT-TYPE
+- SYNTAX INTEGER(1..2147483648)
++ SYNTAX INTEGER(1..2147483647)
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+diff -ru /usr/local/share/snmp/rfc.orig/RDBMS-MIB.txt /usr/local/share/snmp/rfc/RDBMS-MIB.txt
+--- /usr/local/share/snmp/rfc.orig/RDBMS-MIB.txt Sat Mar 3 17:16:41 2001
++++ /usr/local/share/snmp/rfc/RDBMS-MIB.txt Tue Jan 23 00:24:04 2001
+@@ -6,8 +6,8 @@
+ FROM SNMPv2-SMI
+ DisplayString, DateAndTime, AutonomousType
+ FROM SNMPv2-TC
+- applIndex, applGroup
+- FROM APPLICATION-MIB
++ applIndex, applGroups
++ FROM NETWORK-SERVICES-MIB
+ mib-2
+ FROM RFC1213-MIB;
+
+@@ -1263,8 +1263,8 @@
+ implement the RDBMS MIB"
+ MODULE HOST-RESOURCES-MIB
+ MANDATORY-GROUPS { hrSystem }
+- MODULE APPLICATION-MIB
+- MANDATORY-GROUPS { applGroup }
++ MODULE NETWORK-SERVICES-MIB
++ MANDATORY-GROUPS { applGroups }
+ MODULE RDBMS-MIB
+ MANDATORY-GROUPS { rdbmsGroup }
+
+Only in /usr/local/share/snmp/rfc: RFC-1215.txt
+diff -ru /usr/local/share/snmp/rfc.orig/RFC1414-MIB.txt /usr/local/share/snmp/rfc/RFC1414-MIB.txt
+--- /usr/local/share/snmp/rfc.orig/RFC1414-MIB.txt Sat Mar 3 17:14:37 2001
++++ /usr/local/share/snmp/rfc/RFC1414-MIB.txt Tue Feb 20 00:25:21 2001
+@@ -3,6 +3,7 @@
+ IMPORTS
+ OBJECT-TYPE
+ FROM RFC-1212
++ mib-2,
+ tcpConnLocalAddress, tcpConnLocalPort,
+ tcpConnRemAddress, tcpConnRemPort
+ FROM RFC1213-MIB;
+diff -ru /usr/local/share/snmp/rfc.orig/SNA-NAU-MIB.txt /usr/local/share/snmp/rfc/SNA-NAU-MIB.txt
+--- /usr/local/share/snmp/rfc.orig/SNA-NAU-MIB.txt Sat Mar 3 17:16:24 2001
++++ /usr/local/share/snmp/rfc/SNA-NAU-MIB.txt Mon Jan 22 23:57:44 2001
+@@ -17,7 +17,7 @@
+ DisplayString, RowStatus, TimeStamp, InstancePointer
+ FROM SNMPv2-TC
+
+- Counter32, Gauge32, Integer32,
++ Counter32, Gauge32, Integer32, mib-2,
+ OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE
+ FROM SNMPv2-SMI
+
+diff -ru /usr/local/share/snmp/rfc.orig/TCPIPX-MIB.txt /usr/local/share/snmp/rfc/TCPIPX-MIB.txt
+--- /usr/local/share/snmp/rfc.orig/TCPIPX-MIB.txt Sat Mar 3 17:17:17 2001
++++ /usr/local/share/snmp/rfc/TCPIPX-MIB.txt Sat Mar 3 16:51:11 2001
+@@ -1,6 +1,8 @@
+ TCPIPX-MIB DEFINITIONS ::= BEGIN
+
+ IMPORTS
++ enterprises
++ FROM RFC1155-SMI
+ OBJECT-TYPE
+ FROM RFC-1212;
+
+@@ -10,7 +12,7 @@
+
+ -- as hex digits, as in: nnnnnnnn:mmmmmmmmmmmm
+
+-IpxAddress ::= OCTET STRING (size (10))
++IpxAddress ::= OCTET STRING (SIZE (10))
+
+ -- TCP/IPX MIB object idenfifiers
+
+diff -ru /usr/local/share/snmp/rfc.orig/UPS-MIB.txt /usr/local/share/snmp/rfc/UPS-MIB.txt
+--- /usr/local/share/snmp/rfc.orig/UPS-MIB.txt Sat Mar 3 17:16:01 2001
++++ /usr/local/share/snmp/rfc/UPS-MIB.txt Mon Jan 22 23:55:45 2001
+@@ -2,7 +2,7 @@
+
+ IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
+- OBJECT-IDENTITY, Counter32, Gauge32, Integer32
++ OBJECT-IDENTITY, Counter32, Gauge32, Integer32, mib-2
+ FROM SNMPv2-SMI
+ DisplayString, TimeStamp, TimeInterval, TestAndIncr,
+ AutonomousType
+diff -ru /usr/local/share/snmp/rfc.orig/SMUX-MIB.txt /usr/local/share/snmp/rfc/SMUX-MIB.txt
+--- /usr/local/share/snmp/rfc.orig/SMUX-MIB.txt 2002-06-15 15:31:22.000000000 +0200
++++ /usr/local/share/snmp/rfc/SMUX-MIB.txt 2002-06-15 15:31:22.000000000 +0200
+@@ -3,6 +3,8 @@
+ IMPORTS
+ enterprises
+ FROM RFC1155-SMI
++ DisplayString
++ FROM RFC1213-MIB
+ OBJECT-TYPE
+ FROM RFC1212;
+
+@@ -120,7 +122,7 @@
+ ::= { smuxTreeEntry 1 }
+
+ smuxTpriority OBJECT-TYPE
+- SYNTAX INTEGER (0..'07fffffff'h)
++ SYNTAX INTEGER (0..'7fffffff'h)
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
diff --git a/php/extras/mibs/smistrip b/php/extras/mibs/smistrip
new file mode 100644
index 000000000..773d4fd09
--- /dev/null
+++ b/php/extras/mibs/smistrip
@@ -0,0 +1,179 @@
+#!/bin/sh
+#
+# smistrip --
+#
+# Extract MIB modules from text files, like RFCs or I-Ds.
+#
+# This is variant of smistrip from libsmi-0.2, modified to be somewhat
+# more aggressive in suppressing blank lines, and support the -x option.
+#
+# Copyright (c) 1999 Frank Strauss, Technical University of Braunschweig.
+# Modified by Niels Baggesen
+#
+# See the file "COPYING" for information on usage and redistribution
+# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+#
+# $Id: smistrip 11912 2005-02-08 20:08:10Z nba $
+#
+# NOTE, that this script relies on awk (tested with GNU awk) and getopts
+# (shell builtin like in bash or standalone).
+#
+
+AWK=awk
+[ `uname` != SunOS ] || AWK=/usr/bin/nawk
+GETOPTS=getopts
+VERSION=0.3-cvs
+
+
+do_version () {
+ echo "smistrip $VERSION"
+}
+
+
+
+do_usage () {
+ echo "Usage: smistrip [-Vhn] [-d dir] [-s suffix] [-m modules] file ..."
+ echo "-V show version and license information"
+ echo "-v verbose"
+ echo "-h show usage information"
+ echo "-n do not write module files"
+ echo "-d dir write module to directory dir"
+ echo "-x suffix append suffix to the module file name"
+ echo "-m modules strip only the specified modules. For a list of modules"
+ echo " use : as a separator"
+ echo "file ... input files to parse (RFCs, I-Ds, ...)"
+}
+
+
+
+do_strip () {
+ cat $1 | $AWK -v test="$test" -v dir="$dir" -v single="$single" -v suffix="$suffix" -v verbose="$verbose" '
+
+ BEGIN {
+ if (length(single) != 0) {
+ single = ":"single":"
+ }
+ else {
+ single = ""
+ }
+ }
+
+ END {
+ if (single != "" && single != ":") {
+ gsub(":", " ", single)
+ print "WARNING: Module(s) not found:" single
+ }
+ }
+
+ # start of module
+ /^[ \t]*[A-Za-z0-9-]* *DEFINITIONS *::= *BEGIN/ {
+ module = $1
+ collect = 1
+ macro = 0
+ n = 0
+ }
+
+ # page footer - start skipping
+ /\[Page [iv0-9]*\] */ {
+ collect = 0
+ next
+ }
+
+ /^[ \t]*(::=|DESCRIPTION|SYNTAX|MAX-ACCESS|MIN-ACCESS|ACCESS|STATUS|REFERENCE|INDEX|AUGMENTS|DEFVAL|UNITS|DISPLAY|")/ {
+ if (collect)
+ if (line[n-1] == "") n--
+ }
+
+ # a blank line - suppress multiple
+ /^[ \t\r]*$/ {
+ if (collect)
+ if (line[n-1] != "" && line[n-1] !~ /,[ \t\r]*$/) line[n++] = ""
+ next
+ }
+
+ # collect non-blank line when inside mib module
+ /[^ \f\t]/ {
+ if (length(module) > 0) {
+ if (!collect)
+ collect = 1 # page header, stop skipping
+ else
+ line[n++] = $0
+ }
+ }
+
+ # remember when we enter a macro definition
+ / *MACRO *::=/ {
+ macro = 1
+ }
+
+ # end of module
+ /^[ \t]*END[ \t\r]*$/ {
+ if (macro)
+ macro = 0
+ else if (single == "" || match(single, ":"module":")) {
+ sub(":"module, "", single)
+ strip = 99
+ for (i = 0 ; i < n ; i++) {
+ # find the minimum column that contains non-blank characters
+ # in order to cut a blank prefix off.
+ p = match(line[i], "[^ ]")
+ if (p < strip && length(line[i]) > p) strip = p
+ }
+
+ if (test != "1") {
+ if (dir)
+ f = dir "/" module suffix
+ else
+ f = module suffix
+ for (i = 0 ; i < n ; i++)
+ print substr(line[i], strip) >f
+ }
+
+ if (verbose) {
+ print module ": " n " lines."
+ }
+ module = ""
+ collect = 0
+ }
+ else
+ print "NOTE: " module ": ignored."
+ }
+ '
+}
+
+
+while $GETOPTS Vvhnm:d:x: c ; do
+ case $c in
+ v) verbose=1
+ ;;
+ n) test=1
+ ;;
+ m) single=$OPTARG
+ ;;
+ d) dir=$OPTARG
+ ;;
+ x) suffix=$OPTARG
+ ;;
+ h) do_usage
+ exit 0
+ ;;
+ V) do_version
+ exit 0
+ ;;
+ *) do_usage
+ exit 1
+ ;;
+ esac
+done
+
+shift `expr $OPTIND - 1`
+
+if [ $# -eq 0 ] ; then
+ do_strip -
+else
+ for f in $@ ; do
+ do_strip $f
+ done
+fi
+
+exit 0
diff --git a/php/extras/openssl/README-SSL.txt b/php/extras/openssl/README-SSL.txt
new file mode 100644
index 000000000..ba9c1e87e
--- /dev/null
+++ b/php/extras/openssl/README-SSL.txt
@@ -0,0 +1,42 @@
+To use the CSR and key generation functions from PHP, you will need to install
+an openssl.cnf file. We have included a sample file that can be used for this
+purpose in this folder alongside this readme file.
+
+The default path for the openssl.cnf file is determined as follows:
+
+OPENSSL_CONF environmental variable, if set, is assumed to hold the
+path to the file.
+
+If it is not set, SSLEAY_CONF environmental variable is checked next.
+If neither are set, PHP will look in the default certificate area that was set
+at the time that the SSL DLLs were compiled. This is typically
+"C:\usr\local\ssl\openssl.cnf".
+
+If the default path is not suitable for your system, you can set the
+OPENSSL_CONF variable; under windows 95 and 98 you can set this variable in
+your autoexec.bat (or the batch file that starts your webserver/PHP).
+Under NT, 2000 and XP you can set environmental variables using "My Computer"
+properties.
+
+If setting an environmental var is not suitable, and you don't want to install
+the config file at the default location, you can override the default path
+using code like this:
+
+$configargs = array(
+ "config" => "path/to/openssl.cnf"
+ );
+
+$pkey = openssl_pkey_new($config);
+$csr = openssl_csr_new($dn, $pkey, $config);
+
+Please consult the online manual for more information about these functions.
+
+NOTE!
+
+Windows Explorer gives special meaning to files with a .cnf extension.
+This typically means that editing the file from the explorer (by double or
+right-clicking) will be difficult or impossible depending on your setup.
+It is often easier to open the file from within the editor.
+You can avoid this issue by naming the file something else (you might need to
+rename the file using a DOS box) and then setting up an environmental variable
+as described above.
diff --git a/php/extras/openssl/openssl.cnf b/php/extras/openssl/openssl.cnf
new file mode 100644
index 000000000..9e59020c1
--- /dev/null
+++ b/php/extras/openssl/openssl.cnf
@@ -0,0 +1,313 @@
+#
+# OpenSSL example configuration file.
+# This is mostly being used for generation of certificate requests.
+#
+
+# This definition stops the following lines choking if HOME isn't
+# defined.
+HOME = .
+RANDFILE = $ENV::HOME/.rnd
+
+# Extra OBJECT IDENTIFIER info:
+#oid_file = $ENV::HOME/.oid
+oid_section = new_oids
+
+# To use this configuration file with the "-extfile" option of the
+# "openssl x509" utility, name here the section containing the
+# X.509v3 extensions to use:
+# extensions =
+# (Alternatively, use a configuration file that has only
+# X.509v3 extensions in its main [= default] section.)
+
+[ new_oids ]
+
+# We can add new OIDs in here for use by 'ca' and 'req'.
+# Add a simple OID like this:
+# testoid1=1.2.3.4
+# Or use config file substitution like this:
+# testoid2=${testoid1}.5.6
+
+####################################################################
+[ ca ]
+default_ca = CA_default # The default ca section
+
+####################################################################
+[ CA_default ]
+
+dir = ./demoCA # Where everything is kept
+certs = $dir/certs # Where the issued certs are kept
+crl_dir = $dir/crl # Where the issued crl are kept
+database = $dir/index.txt # database index file.
+#unique_subject = no # Set to 'no' to allow creation of
+ # several ctificates with same subject.
+new_certs_dir = $dir/newcerts # default place for new certs.
+
+certificate = $dir/cacert.pem # The CA certificate
+serial = $dir/serial # The current serial number
+crlnumber = $dir/crlnumber # the current crl number
+ # must be commented out to leave a V1 CRL
+crl = $dir/crl.pem # The current CRL
+private_key = $dir/private/cakey.pem# The private key
+RANDFILE = $dir/private/.rand # private random number file
+
+x509_extensions = usr_cert # The extentions to add to the cert
+
+# Comment out the following two lines for the "traditional"
+# (and highly broken) format.
+name_opt = ca_default # Subject Name options
+cert_opt = ca_default # Certificate field options
+
+# Extension copying option: use with caution.
+# copy_extensions = copy
+
+# Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs
+# so this is commented out by default to leave a V1 CRL.
+# crlnumber must also be commented out to leave a V1 CRL.
+# crl_extensions = crl_ext
+
+default_days = 365 # how long to certify for
+default_crl_days= 30 # how long before next CRL
+default_md = sha1 # which md to use.
+preserve = no # keep passed DN ordering
+
+# A few difference way of specifying how similar the request should look
+# For type CA, the listed attributes must be the same, and the optional
+# and supplied fields are just that :-)
+policy = policy_match
+
+# For the CA policy
+[ policy_match ]
+countryName = match
+stateOrProvinceName = match
+organizationName = match
+organizationalUnitName = optional
+commonName = supplied
+emailAddress = optional
+
+# For the 'anything' policy
+# At this point in time, you must list all acceptable 'object'
+# types.
+[ policy_anything ]
+countryName = optional
+stateOrProvinceName = optional
+localityName = optional
+organizationName = optional
+organizationalUnitName = optional
+commonName = supplied
+emailAddress = optional
+
+####################################################################
+[ req ]
+default_bits = 1024
+default_keyfile = privkey.pem
+distinguished_name = req_distinguished_name
+attributes = req_attributes
+x509_extensions = v3_ca # The extentions to add to the self signed cert
+
+# Passwords for private keys if not present they will be prompted for
+# input_password = secret
+# output_password = secret
+
+# This sets a mask for permitted string types. There are several options.
+# default: PrintableString, T61String, BMPString.
+# pkix : PrintableString, BMPString.
+# utf8only: only UTF8Strings.
+# nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings).
+# MASK:XXXX a literal mask value.
+# WARNING: current versions of Netscape crash on BMPStrings or UTF8Strings
+# so use this option with caution!
+string_mask = nombstr
+
+# req_extensions = v3_req # The extensions to add to a certificate request
+
+[ req_distinguished_name ]
+countryName = Country Name (2 letter code)
+countryName_default = AU
+countryName_min = 2
+countryName_max = 2
+
+stateOrProvinceName = State or Province Name (full name)
+stateOrProvinceName_default = Some-State
+
+localityName = Locality Name (eg, city)
+
+0.organizationName = Organization Name (eg, company)
+0.organizationName_default = Internet Widgits Pty Ltd
+
+# we can do this but it is not needed normally :-)
+#1.organizationName = Second Organization Name (eg, company)
+#1.organizationName_default = World Wide Web Pty Ltd
+
+organizationalUnitName = Organizational Unit Name (eg, section)
+#organizationalUnitName_default =
+
+commonName = Common Name (eg, YOUR name)
+commonName_max = 64
+
+emailAddress = Email Address
+emailAddress_max = 64
+
+# SET-ex3 = SET extension number 3
+
+[ req_attributes ]
+challengePassword = A challenge password
+challengePassword_min = 4
+challengePassword_max = 20
+
+unstructuredName = An optional company name
+
+[ usr_cert ]
+
+# These extensions are added when 'ca' signs a request.
+
+# This goes against PKIX guidelines but some CAs do it and some software
+# requires this to avoid interpreting an end user certificate as a CA.
+
+basicConstraints=CA:FALSE
+
+# Here are some examples of the usage of nsCertType. If it is omitted
+# the certificate can be used for anything *except* object signing.
+
+# This is OK for an SSL server.
+# nsCertType = server
+
+# For an object signing certificate this would be used.
+# nsCertType = objsign
+
+# For normal client use this is typical
+# nsCertType = client, email
+
+# and for everything including object signing:
+# nsCertType = client, email, objsign
+
+# This is typical in keyUsage for a client certificate.
+# keyUsage = nonRepudiation, digitalSignature, keyEncipherment
+
+# This will be displayed in Netscape's comment listbox.
+nsComment = "OpenSSL Generated Certificate"
+
+# PKIX recommendations harmless if included in all certificates.
+subjectKeyIdentifier=hash
+authorityKeyIdentifier=keyid,issuer
+
+# This stuff is for subjectAltName and issuerAltname.
+# Import the email address.
+# subjectAltName=email:copy
+# An alternative to produce certificates that aren't
+# deprecated according to PKIX.
+# subjectAltName=email:move
+
+# Copy subject details
+# issuerAltName=issuer:copy
+
+#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem
+#nsBaseUrl
+#nsRevocationUrl
+#nsRenewalUrl
+#nsCaPolicyUrl
+#nsSslServerName
+
+[ v3_req ]
+
+# Extensions to add to a certificate request
+
+basicConstraints = CA:FALSE
+keyUsage = nonRepudiation, digitalSignature, keyEncipherment
+
+[ v3_ca ]
+
+
+# Extensions for a typical CA
+
+
+# PKIX recommendation.
+
+subjectKeyIdentifier=hash
+
+authorityKeyIdentifier=keyid:always,issuer:always
+
+# This is what PKIX recommends but some broken software chokes on critical
+# extensions.
+#basicConstraints = critical,CA:true
+# So we do this instead.
+basicConstraints = CA:true
+
+# Key usage: this is typical for a CA certificate. However since it will
+# prevent it being used as an test self-signed certificate it is best
+# left out by default.
+# keyUsage = cRLSign, keyCertSign
+
+# Some might want this also
+# nsCertType = sslCA, emailCA
+
+# Include email address in subject alt name: another PKIX recommendation
+# subjectAltName=email:copy
+# Copy issuer details
+# issuerAltName=issuer:copy
+
+# DER hex encoding of an extension: beware experts only!
+# obj=DER:02:03
+# Where 'obj' is a standard or added object
+# You can even override a supported extension:
+# basicConstraints= critical, DER:30:03:01:01:FF
+
+[ crl_ext ]
+
+# CRL extensions.
+# Only issuerAltName and authorityKeyIdentifier make any sense in a CRL.
+
+# issuerAltName=issuer:copy
+authorityKeyIdentifier=keyid:always,issuer:always
+
+[ proxy_cert_ext ]
+# These extensions should be added when creating a proxy certificate
+
+# This goes against PKIX guidelines but some CAs do it and some software
+# requires this to avoid interpreting an end user certificate as a CA.
+
+basicConstraints=CA:FALSE
+
+# Here are some examples of the usage of nsCertType. If it is omitted
+# the certificate can be used for anything *except* object signing.
+
+# This is OK for an SSL server.
+# nsCertType = server
+
+# For an object signing certificate this would be used.
+# nsCertType = objsign
+
+# For normal client use this is typical
+# nsCertType = client, email
+
+# and for everything including object signing:
+# nsCertType = client, email, objsign
+
+# This is typical in keyUsage for a client certificate.
+# keyUsage = nonRepudiation, digitalSignature, keyEncipherment
+
+# This will be displayed in Netscape's comment listbox.
+nsComment = "OpenSSL Generated Certificate"
+
+# PKIX recommendations harmless if included in all certificates.
+subjectKeyIdentifier=hash
+authorityKeyIdentifier=keyid,issuer:always
+
+# This stuff is for subjectAltName and issuerAltname.
+# Import the email address.
+# subjectAltName=email:copy
+# An alternative to produce certificates that aren't
+# deprecated according to PKIX.
+# subjectAltName=email:move
+
+# Copy subject details
+# issuerAltName=issuer:copy
+
+#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem
+#nsBaseUrl
+#nsRevocationUrl
+#nsRenewalUrl
+#nsCaPolicyUrl
+#nsSslServerName
+
+# This really needs to be in place for it to be a proxy certificate.
+proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo
diff --git a/php/extras/openssl/openssl.exe b/php/extras/openssl/openssl.exe
new file mode 100644
index 000000000..da84f8e25
Binary files /dev/null and b/php/extras/openssl/openssl.exe differ
diff --git a/php/extras/ssl/openssl.cnf b/php/extras/ssl/openssl.cnf
index 1eb86c401..4acca4b04 100644
--- a/php/extras/ssl/openssl.cnf
+++ b/php/extras/ssl/openssl.cnf
@@ -3,10 +3,13 @@
# This is mostly being used for generation of certificate requests.
#
+# Note that you can include other files from the main configuration
+# file using the .include directive.
+#.include filename
+
# This definition stops the following lines choking if HOME isn't
# defined.
HOME = .
-RANDFILE = $ENV::HOME/.rnd
# Extra OBJECT IDENTIFIER info:
#oid_file = $ENV::HOME/.oid
@@ -15,7 +18,7 @@ oid_section = new_oids
# To use this configuration file with the "-extfile" option of the
# "openssl x509" utility, name here the section containing the
# X.509v3 extensions to use:
-# extensions =
+# extensions =
# (Alternatively, use a configuration file that has only
# X.509v3 extensions in its main [= default] section.)
@@ -44,7 +47,7 @@ certs = $dir/certs # Where the issued certs are kept
crl_dir = $dir/crl # Where the issued crl are kept
database = $dir/index.txt # database index file.
#unique_subject = no # Set to 'no' to allow creation of
- # several ctificates with same subject.
+ # several certs with same subject.
new_certs_dir = $dir/newcerts # default place for new certs.
certificate = $dir/cacert.pem # The CA certificate
@@ -53,9 +56,8 @@ crlnumber = $dir/crlnumber # the current crl number
# must be commented out to leave a V1 CRL
crl = $dir/crl.pem # The current CRL
private_key = $dir/private/cakey.pem# The private key
-RANDFILE = $dir/private/.rand # private random number file
-x509_extensions = usr_cert # The extentions to add to the cert
+x509_extensions = usr_cert # The extensions to add to the cert
# Comment out the following two lines for the "traditional"
# (and highly broken) format.
@@ -107,13 +109,13 @@ default_bits = 2048
default_keyfile = privkey.pem
distinguished_name = req_distinguished_name
attributes = req_attributes
-x509_extensions = v3_ca # The extentions to add to the self signed cert
+x509_extensions = v3_ca # The extensions to add to the self signed cert
# Passwords for private keys if not present they will be prompted for
# input_password = secret
# output_password = secret
-# This sets a mask for permitted string types. There are several options.
+# This sets a mask for permitted string types. There are several options.
# default: PrintableString, T61String, BMPString.
# pkix : PrintableString, BMPString (PKIX recommendation before 2004)
# utf8only: only UTF8Strings (PKIX recommendation after 2004).
@@ -233,11 +235,7 @@ subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer
-# This is what PKIX recommends but some broken software chokes on critical
-# extensions.
-#basicConstraints = critical,CA:true
-# So we do this instead.
-basicConstraints = CA:true
+basicConstraints = critical,CA:true
# Key usage: this is typical for a CA certificate. However since it will
# prevent it being used as an test self-signed certificate it is best
@@ -335,11 +333,11 @@ signer_cert = $dir/tsacert.pem # The TSA signing certificate
certs = $dir/cacert.pem # Certificate chain to include in reply
# (optional)
signer_key = $dir/private/tsakey.pem # The TSA private key (optional)
-
+signer_digest = sha256 # Signing digest to use. (Optional)
default_policy = tsa_policy1 # Policy if request did not specify it
# (optional)
other_policies = tsa_policy2, tsa_policy3 # acceptable policies (optional)
-digests = md5, sha1 # Acceptable message digests (mandatory)
+digests = sha1, sha256, sha384, sha512 # Acceptable message digests (mandatory)
accuracy = secs:1, millisecs:500, microsecs:100 # (optional)
clock_precision_digits = 0 # number of digits after dot. (optional)
ordering = yes # Is ordering defined for timestamps?
@@ -348,3 +346,5 @@ tsa_name = yes # Must the TSA name be included in the reply?
# (optional, default: no)
ess_cert_id_chain = no # Must the ESS cert id chain be included?
# (optional, default: no)
+ess_cert_id_alg = sha1 # algorithm to compute certificate
+ # identifier (optional, default: sha1)
diff --git a/php/glib-2.dll b/php/glib-2.dll
index 6e92f085f..14fd703b8 100644
Binary files a/php/glib-2.dll and b/php/glib-2.dll differ
diff --git a/php/gmodule-2.dll b/php/gmodule-2.dll
index 21cf2ca65..f004bbcf4 100644
Binary files a/php/gmodule-2.dll and b/php/gmodule-2.dll differ
diff --git a/php/icudt63.dll b/php/icudt63.dll
deleted file mode 100644
index 775acb569..000000000
Binary files a/php/icudt63.dll and /dev/null differ
diff --git a/php/icudt70.dll b/php/icudt70.dll
new file mode 100644
index 000000000..fd5c52a1a
Binary files /dev/null and b/php/icudt70.dll differ
diff --git a/php/icuin63.dll b/php/icuin63.dll
deleted file mode 100644
index 201f6fbf8..000000000
Binary files a/php/icuin63.dll and /dev/null differ
diff --git a/php/icuin70.dll b/php/icuin70.dll
new file mode 100644
index 000000000..4a7a4128d
Binary files /dev/null and b/php/icuin70.dll differ
diff --git a/php/icuio63.dll b/php/icuio63.dll
deleted file mode 100644
index 99f490936..000000000
Binary files a/php/icuio63.dll and /dev/null differ
diff --git a/php/icuio70.dll b/php/icuio70.dll
new file mode 100644
index 000000000..f2fd1105b
Binary files /dev/null and b/php/icuio70.dll differ
diff --git a/php/icuuc63.dll b/php/icuuc63.dll
deleted file mode 100644
index f775feb8a..000000000
Binary files a/php/icuuc63.dll and /dev/null differ
diff --git a/php/icuuc70.dll b/php/icuuc70.dll
new file mode 100644
index 000000000..c611f3510
Binary files /dev/null and b/php/icuuc70.dll differ
diff --git a/php/install.txt b/php/install.txt
deleted file mode 100644
index 283619d86..000000000
--- a/php/install.txt
+++ /dev/null
@@ -1,1797 +0,0 @@
-Installing PHP
- __________________________________________________________________
-
- Table of Contents
- Preface
- 1. General Installation Considerations
- 2. Installation on Windows systems
-
- Manual Installation Steps
- ActiveScript
- Microsoft IIS
- Apache 1.3.x on Microsoft Windows
- Apache 2.0.x on Microsoft Windows
- Sun, iPlanet and Netscape servers on Microsoft Windows
- OmniHTTPd Server
- Sambar Server on Microsoft Windows
- Xitami on Microsoft Windows
- Installation of extensions on Windows
-
- 3. Installation of PECL extensions
-
- Introduction to PECL Installations
- Downloading PECL extensions
- PECL for Windows users
- Compiling shared PECL extensions with the pecl command
- Compiling shared PECL extensions with phpize
- Compiling PECL extensions statically into PHP
-
- 4. Problems?
-
- Read the FAQ
- Other problems
- Bug reports
-
- 5. Runtime Configuration
-
- The configuration file
- How to change configuration settings
-
- 6. Installation FAQ
- __________________________________________________________________
-
-Preface
-
- These installation instructions were generated from the HTML version of
- the PHP Manual so formatting and linking have been altered. See the
- online and updated version at: http://php.net/install.windows
- __________________________________________________________________
-
-Chapter 1. General Installation Considerations
-
- Before starting the installation, first you need to know what do you
- want to use PHP for. There are three main fields you can use PHP, as
- described in the What can PHP do? section:
-
- * Websites and web applications (server-side scripting)
- * Command line scripting
- * Desktop (GUI) applications
-
- For the first and most common form, you need three things: PHP itself,
- a web server and a web browser. You probably already have a web
- browser, and depending on your operating system setup, you may also
- have a web server (e.g. Apache on Linux and MacOS X; IIS on Windows).
- You may also rent webspace at a company. This way, you don't need to
- set up anything on your own, only write your PHP scripts, upload it to
- the server you rent, and see the results in your browser.
-
- In case of setting up the server and PHP on your own, you have two
- choices for the method of connecting PHP to the server. For many
- servers PHP has a direct module interface (also called SAPI). These
- servers include Apache, Microsoft Internet Information Server, Netscape
- and iPlanet servers. Many other servers have support for ISAPI, the
- Microsoft module interface (OmniHTTPd for example). If PHP has no
- module support for your web server, you can always use it as a CGI or
- FastCGI processor. This means you set up your server to use the CGI
- executable of PHP to process all PHP file requests on the server.
-
- If you are also interested to use PHP for command line scripting (e.g.
- write scripts autogenerating some images for you offline, or processing
- text files depending on some arguments you pass to them), you always
- need the command line executable. For more information, read the
- section about writing command line PHP applications. In this case, you
- need no server and no browser.
-
- With PHP you can also write desktop GUI applications using the PHP-GTK
- extension. This is a completely different approach than writing web
- pages, as you do not output any HTML, but manage Windows and objects
- within them. For more information about PHP-GTK, please visit the site
- dedicated to this extension. PHP-GTK is not included in the official
- PHP distribution.
-
- From now on, this section deals with setting up PHP for web servers on
- Unix and Windows with server module interfaces and CGI executables. You
- will also find information on the command line executable in the
- following sections.
-
- PHP source code and binary distributions for Windows can be found at
- http://www.php.net/downloads.php. We recommend you to choose a mirror
- nearest to you for downloading the distributions.
- __________________________________________________________________
-
-Chapter 2. Installation on Windows systems
-
- This section applies to Windows 98/Me and Windows NT/2000/XP/2003. PHP
- will not work on 16 bit platforms such as Windows 3.1 and sometimes we
- refer to the supported Windows platforms as Win32. Windows 95 is no
- longer supported as of PHP 4.3.0.
-
- If you have Microsoft Visual Studio, you can also build PHP from the
- original source code.
-
- Once you have PHP installed on your Windows system, you may also want
- to load various extensions for added functionality.
-
- Warning
-
- There are several all-in-one installers over the Internet, but none of
- those are endorsed by PHP.net, as we believe that the manual
- installation is the best choice to have your system secure and
- optimised.
- __________________________________________________________________
-
-Manual Installation Steps
-
- This install guide will help you manually install and configure PHP
- with a web server on Microsoft Windows. To get started you'll need to
- download the zip binary distribution from the downloads page at
- http://www.php.net/downloads.php.
-
- Although there are many all-in-one installation kits, we recommend you
- take the time to setup PHP yourself as this will provide you with a
- better understanding of the system, and enables you to install PHP
- extensions easily when needed.
-
- Upgrading from a previous PHP version: Previous editions of the
- manual suggest moving various ini and DLL files into your SYSTEM
- (i.e. C:\WINDOWS) folder and while this simplifies the installation
- procedure it makes upgrading difficult. We advise you remove all of
- these files (like php.ini and PHP related DLLs from the Windows
- SYSTEM folder) before moving on with a new PHP installation. Be sure
- to backup these files as you might break the entire system. The old
- php.ini might be useful in setting up the new PHP as well. And as
- you'll soon learn, the preferred method for installing PHP is to
- keep all PHP related files in one directory and have this directory
- available to your systems PATH.
-
- MDAC requirements: If you use Microsoft Windows 98/NT4 download the
- latest version of the Microsoft Data Access Components (MDAC) for
- your platform. MDAC is available at http://msdn.microsoft.com/data/.
- This requirement exists because ODBC is built into the distributed
- Windows binaries.
-
- The following steps should be completed on all installations before any
- server specific instructions are performed:
-
- Extract the distribution file into a directory of your choice. If you
- are installing PHP 4, extract to C:\, as the zip file expands to a
- foldername like php-4.3.7-Win32. If you are installing PHP 7, extract
- to C:\php as the zip file doesn't expand as in PHP 4. You may choose a
- different location but do not have spaces in the path (like C:\Program
- Files\PHP) as some web servers will crash if you do.
-
- The directory structure extracted from the zip is different for PHP
- versions 4 and 5 and look like as follows:
-
- Example 2-2. PHP 7 package structure
-c:\php
- |
- +--dev
- | |
- | |-php7ts.lib
- |
- +--ext -- extension DLLs for PHP
- | |
- | |-php_bz2.dll
- | |
- | |-php_cpdf.dll
- | |
- | |-..
- |
- +--extras
- | |
- | +--mibs -- support files for SNMP
- | |
- | +--openssl -- support files for Openssl
- | |
- | +--pdf-related -- support files for PDF
- | |
- | |-mime.magic
- |
- +--pear -- initial copy of PEAR
- |
- |
- |-go-pear.bat -- PEAR setup script
- |
- |-fdftk.dll
- |
- |-..
- |
- |-php-cgi.exe -- CGI executable
- |
- |-php-win.exe -- executes scripts without an opened command prompt
- |
- |-php.exe -- CLI executable - ONLY for command line scripting
- |
- |-..
- |
- |-php.ini-development -- development php.ini settings
- |
- |-php.ini-production -- recommended php.ini settings for production
- |
- |-php5activescript.dll
- |
- |-php7apache2_4.dll
- |
- |-..
- |
- |-php5ts.dll -- core PHP DLL
- |
- |-...
-
- Notice the differences and similarities. Both PHP 4 and PHP 5 have a
- CGI executable, a CLI executable, and server modules, but they are
- located in different folders and/or have different names. While PHP 4
- packages have the server modules in the sapi folder, PHP 5
- distributions have no such directory and instead they're in the PHP
- folder root. The supporting DLLs for the PHP 5 extensions are also not
- in a separate directory.
-
- Note: In PHP 4, you should move all files located in the dll and
- sapi folders to the main folder (e.g. C:\php).
-
- Here is a list of server modules shipped with PHP 5:
-
- * php7apache2_4.dll - Apache 2.4.x module.
-
- Server modules provide significantly better performance and additional
- functionality compared to the CGI binary. The FastCGI is significantly
- more stable and can be faster than the ISAPI module with IIS.
- The CLI version is designed to let you use PHP for command line
- scripting. More information about CLI is available in the chapter
- about using PHP from the command line.
-
- Warning
-
- The SAPI modules have been significantly improved as of the 4.1
- release, however, in older systems you may encounter server errors or
- other server modules failing, such as ASP.
-
- The CGI and CLI binaries, and the web server modules all require the
- php7ts.dll file to be available to them. You have to make
- sure that this file can be found by your PHP installation. The search
- order for this DLL is as follows:
-
- * The same directory from where php.exe is called, or in case you use
- a SAPI module, the web server's directory (e.g. C:\Program
- Files\Apache Group\Apache2\bin).
- * Any directory in your Windows PATH environment variable.
-
- To make php7ts.dll available you have three options: copy
- the file to the Windows system directory, copy the file to the web
- server's directory, or add your PHP directory, C:\php to the PATH. For
- better maintenance, we advise you to follow the last option, add C:\php
- to the PATH, because it will be simpler to upgrade PHP in the future.
- Read more about how to add your PHP directory to PATH in the
- corresponding FAQ entry (and then don't forget to restart the computer
- - logoff isn't enough).
-
- The next step is to set up a valid configuration file for PHP, php.ini.
- There are two ini files distributed in the zip file, php.ini-development
- and php.ini-production. We advise you to use php.ini-production,
- because we optimized the default settings in this file for performance,
- and security. Read this well documented file carefully because it has
- changes from php.ini-production that will drastically affect your setup.
- Some examples are display_errors being off and magic_quotes_gpc being off.
- In addition to reading these, study the ini settings and set every
- element manually yourself. If you would like to achieve the best
- security, then this is the way for you, although PHP works fine with
- these default ini files. Copy your chosen ini-file to a directory that
- PHP is able to find and rename it to php.ini. PHP searches for php.ini
- in the locations described in the Section called The configuration file
- in Chapter 5 section.
-
- If you are running Apache 2, the simpler option is to use the PHPIniDir
- directive (read the installation on Apache 2 page), otherwise your best
- option is to set the PHPRC environment variable. This process is
- explained in the following FAQ entry.
-
- Note: If you're using NTFS on Windows NT, 2000, XP or 2003, make
- sure that the user running the web server has read permissions to
- your php.ini (e.g. make it readable by Everyone).
-
- The following steps are optional:
-
- * Edit your new php.ini file. If you plan to use OmniHTTPd, do not
- follow the next step. Set the doc_root to point to your web servers
- document_root. For example:
-
-doc_root = c:\inetpub\wwwroot // for IIS
-
-doc_root = c:\apache\htdocs // for Apache
-
- * Choose the extensions you would like to load when PHP starts. See
- the section about Windows extensions, about how to set up one, and
- what is already built in. Note that on a new installation it is
- advisable to first get PHP working and tested without any
- extensions before enabling them in php.ini.
-
- PHP is now setup on your system. The next step is to choose a web
- server, and enable it to run PHP. Choose a web server from the table of
- contents.
- __________________________________________________________________
-
-ActiveScript
-
- This section contains notes specific to the ActiveScript installation.
-
- ActiveScript is a Windows only SAPI that enables you to use PHP script
- in any ActiveScript compliant host, like Windows Script Host,
- ASP/ASP.NET, Windows Script Components or Microsoft Scriptlet control.
-
- As of PHP 5.0.1, ActiveScript has been moved to the PECL repository.
- The DLL for this PECL extension may be downloaded from either the PHP
- Downloads page or from http://pecl4win.php.net/
-
- Note: You should read the manual installation steps first!
-
- After installing PHP, you should download the ActiveScript DLL
- (php7activescript.dll) and place it in the main PHP folder (e.g.
- C:\php).
-
- After having all the files needed, you must register the DLL on your
- system. To achieve this, open a Command Prompt window (located in the
- Start Menu). Then go to your PHP directory by typing something like cd
- C:\php. To register the DLL just type regsvr32 php7activescript.dll.
-
- To test if ActiveScript is working, create a new file, named test.wsf
- (the extension is very important) and type:
-
-
-
-
-
-
- Save and double-click on the file. If you receive a little window
- saying "Hello World!" you're done.
-
- Note: In PHP 4, the engine was named 'ActivePHP', so if you are
- using PHP 4, you should replace 'PHPScript' with 'ActivePHP' in the
- above example.
-
- Note: ActiveScript doesn't use the default php.ini file. Instead, it
- will look only in the same directory as the .exe that caused it to
- load. You should create php-activescript.ini and place it in that
- folder, if you wish to load extensions, etc.
- __________________________________________________________________
-
-Microsoft IIS
-
- This section contains notes and hints specific to IIS (Microsoft
- Internet Information Server).
-
- Warning
-
- By using the CGI setup, your server is open to several possible
- attacks. Please read our CGI security section to learn how to defend
- yourself from those attacks.
- __________________________________________________________________
-
-General considerations for all installations of PHP with IIS
-
- * First, read the Manual Installation Instructions. Do not skip this
- step as it provides crucial information for installing PHP on
- Windows.
- * CGI users must set the cgi.force_redirect PHP directive to 0 inside
- php.ini. Read the faq on cgi.force_redirect for important details.
- Also, CGI users may want to set the cgi.redirect_status_env
- directive. When using directives, be sure these directives aren't
- commented out inside php.ini.
- * The PHP 4 CGI is named php.exe while in PHP 7 it's php-cgi.exe. In
- PHP 7, php.exe is the CLI, and not the CGI.
- * Modify the Windows PATH environment variable to include the PHP
- directory. This way the PHP DLL files and PHP executables can all
- remain in the PHP directory without cluttering up the Windows
- system directory. For more details, see the FAQ on Setting the
- PATH.
- * The IIS user (usually IUSR_MACHINENAME) needs permission to read
- various files and directories, such as php.ini, docroot, and the
- session tmp directory.
- * Be sure the extension_dir and doc_root PHP directives are
- appropriately set in php.ini. These directives depend on the system
- that PHP is being installed on. In PHP 4, the extension_dir is
- extensions while with PHP 7 it's ext. So, an example PHP 7
- extensions_dir value is "c:\php\ext" and an example IIS doc_root
- value is "c:\Inetpub\wwwroot".
- * PHP extension DLL files, such as php_mysql.dll and php_curl.dll,
- are found in the zip package of the PHP download. In PHP 7, many
- extensions are part of PECL and can be downloaded in the
- "Collection of PECL modules" package. Files such as php_zip.dll and
- php_ssh2.dll. Download PHP files here.
- * When defining the executable, the 'check that file exists' box may
- also be checked. For a small performance penalty, the IIS
- will check that the script file exists and sort out authentication
- before firing up PHP. This means that the web server will provide
- sensible 404 style error messages instead of CGI errors complaining
- that PHP did not output any data.
- __________________________________________________________________
-
-Windows NT/200x/XP and IIS 4 or newer
-
- PHP may be installed as a CGI binary, or with the ISAPI module. In
- either case, you need to start the Microsoft Management Console (may
- appear as 'Internet Services Manager', either in your Windows NT 4.0
- Option Pack branch or the Control Panel=>Administrative Tools under
- Windows 2000/XP). Then right click on your Web server node (this will
- most probably appear as 'Default Web Server'), and select 'Properties'.
-
- If you want to use the CGI binary, do the following:
-
- * Under 'Home Directory', 'Virtual Directory', or 'Directory', do the
- following:
- * Change the Execute Permissions to 'Scripts only'
- * Click on the 'Configuration' button, and choose the Application
- Mappings tab. Click Add and set the Executable path to the
- appropriate CGI file. An example PHP 7 value is: C:\php\php-cgi.exe
- Supply .php as the extension. Leave 'Method exclusions' blank, and
- check the 'Script engine' checkbox. Now, click OK a few times.
- * Set up the appropriate security. (This is done in Internet Service
- Manager), and if your NT Server uses NTFS file system, add execute
- rights for I_USR_ to the directory that contains php.exe /
- php-cgi.exe.
-
- To use the ISAPI module, do the following:
-
- * If you don't want to perform HTTP Authentication using PHP, you can
- (and should) skip this step. Under ISAPI Filters, add a new ISAPI
- filter. Use PHP as the filter name, and supply a path to the
- php7isapi.dll.
- * Under 'Home Directory', 'Virtual Directory', or 'Directory', do the
- following:
- * Change the Execute Permissions to 'Scripts only'
- * Click on the 'Configuration' button, and choose the Application
- Mappings tab. Click Add and set the Executable path to the
- appropriate ISAPI DLL. An example PHP 7 value is:
- C:\php\php7isapi.dll Supply .php as the extension. Leave 'Method
- exclusions' blank, and check the 'Script engine' checkbox. Now,
- click OK a few times.
- * Stop IIS completely (NET STOP iisadmin)
- * Start IIS again (NET START w3svc)
-
- With IIS 6 (2003 Server), open up the IIS Manager, go to Web Service
- Extensions, choose "Add a new Web service extension", enter in a name
- such as PHP, choose the Add button and for the value browse to either
- the ISAPI file (php7isapi.dll) or CGI (php.exe or
- php-cgi.exe) then check "Set extension status to Allowed" and click OK.
-
- In order to use index.php as a default content page, do the following:
- From within the Documents tab, choose Add. Type in index.php and click
- OK. Adjust the order by choosing Move Up or Move Down. This is similar
- to setting DirectoryIndex with Apache.
-
- The steps above must be repeated for each extension that is to be
- associated with PHP scripts. .php is the most common although .php3 may
- be required for legacy applications.
-
- If you experience 100% CPU usage after some time, turn off the IIS
- setting Cache ISAPI Application.
- __________________________________________________________________
-
-Windows and IIS
-
-See http://www.php.net/install.windows
- __________________________________________________________________
-
-Apache 1.3.x on Microsoft Windows
-
- This section contains notes and hints specific to Apache 1.3.x installs
- of PHP on Microsoft Windows systems. There are also instructions and
- notes for Apache 2 on a separate page.
-
- Note: Please read the manual installation steps first!
-
- There are two ways to set up PHP to work with Apache 1.3.x on Windows.
- One is to use the CGI binary (php.exe for PHP 4 and php-cgi.exe for PHP
- 5), the other is to use the Apache Module DLL. In either case you need
- to edit your httpd.conf to configure Apache to work with PHP, and then
- restart the server.
-
- It is worth noting here that now the SAPI module has been made more
- stable under Windows, we recommend it's use above the CGI binary, since
- it is more transparent and secure.
-
- Although there can be a few variations of configuring PHP under Apache,
- these are simple enough to be used by the newcomer. Please consult the
- Apache Documentation for further configuration directives.
-
- After changing the configuration file, remember to restart the server,
- for example, NET STOP APACHE followed by NET START APACHE, if you run
- Apache as a Windows Service, or use your regular shortcuts.
-
- Note: Remember that when adding path values in the Apache
- configuration files on Windows, all backslashes such as
- c:\directory\file.ext must be converted to forward slashes, as
- c:/directory/file.ext. A trailing slash may also be necessary for
- directories.
- __________________________________________________________________
-
-Installing as an Apache module
-
- You should add the following lines to your Apache httpd.conf file:
-
- Example 2-3. PHP as an Apache 1.3.x module
-
- This assumes PHP is installed to c:\php. Adjust the path if this is not
- the case.
-
- For PHP 7:
-# Add to the end of the LoadModule section
-LoadModule php7_module "C:/php/php7apache.dll"
-
-# Add to the end of the AddModule section
-AddModule mod_php7.c
-
- For both:
-# Add this line inside the conditional brace
-AddType application/x-httpd-php .php
-
-# For syntax highlighted .phps files, also add
-AddType application/x-httpd-php-source .phps
- __________________________________________________________________
-
-Installing as a CGI binary
-
- If you unzipped the PHP package to C:\php\ as described in the Manual
- Installation Steps section, you need to insert these lines to your
- Apache configuration file to set up the CGI binary:
-
- Example 2-4. PHP and Apache 1.3.x as CGI
-ScriptAlias /php/ "c:/php/"
-AddType application/x-httpd-php .php
-
-# For PHP 4
-Action application/x-httpd-php "/php/php.exe"
-
-# For PHP 7
-Action application/x-httpd-php "/php/php-cgi.exe"
-
-# specify the directory where php.ini is
-SetEnv PHPRC C:/php
-
- Note that the second line in the list above can be found in the actual
- versions of httpd.conf, but it is commented out. Remember also to
- substitute the c:/php/ for your actual path to PHP.
-
- Warning
-
- By using the CGI setup, your server is open to several possible
- attacks. Please read our CGI security section to learn how to defend
- yourself from those attacks.
-
- If you would like to present PHP source files syntax highlighted, there
- is no such convenient option as with the module version of PHP. If you
- chose to configure Apache to use PHP as a CGI binary, you will need to
- use the highlight_file() function. To do this simply create a PHP
- script file and add this code: .
- __________________________________________________________________
-
-Apache 2.0.x on Microsoft Windows
-
- This section contains notes and hints specific to Apache 2.0.x installs
- of PHP on Microsoft Windows systems. We also have instructions and
- notes for Apache 1.3.x users on a separate page.
-
- Note: You should read the manual installation steps first!
-
- Apache 2.2.x Support: Users of Apache 2.2.x may use the
- documentation below except the appropriate DLL file is named
- php7apache2_2.dll and it only exists as of PHP 7.2.0. See also
- http://snaps.php.net/
-
- Warning
-
- We do not recommend using a threaded MPM in production with Apache2.
- Use the prefork MPM instead, or use Apache1. For information on why,
- read the related FAQ entry on using Apache2 with a threaded MPM
-
- You are highly encouraged to take a look at the Apache Documentation to
- get a basic understanding of the Apache 2.0.x Server. Also consider to
- read the Windows specific notes for Apache 2.0.x before reading on
- here.
-
- PHP and Apache 2.0.x compatibility notes: The following versions of
- PHP are known to work with the most recent version of Apache 2.0.x:
-
- * PHP 4.3.0 or later available at http://www.php.net/downloads.php.
- * the latest stable development version. Get the source code
- http://snaps.php.net/php7-latest.tar.gz or download binaries for
- Windows http://snaps.php.net/win32/php7-win32-latest.zip.
- * a prerelease version downloadable from http://qa.php.net/.
- * you have always the option to obtain PHP through SVN.
-
- These versions of PHP are compatible to Apache 2.0.40 and later.
-
- Apache 2.0 SAPI-support started with PHP 4.2.0. PHP 4.2.3 works with
- Apache 2.0.39, don't use any other version of Apache with PHP 4.2.3.
- However, the recommended setup is to use PHP 4.3.0 or later with the
- most recent version of Apache2.
-
- All mentioned versions of PHP will work still with Apache 1.3.x.
-
- Warning
-
- Apache 2.0.x is designed to run on Windows NT 4.0, Windows 2000 or
- Windows XP. At this time, support for Windows 9x is incomplete. Apache
- 2.0.x is not expected to work on those platforms at this time.
-
- Download the most recent version of Apache 2.0.x and a fitting PHP
- version. Follow the Manual Installation Steps and come back to go on
- with the integration of PHP and Apache.
-
- There are two ways to set up PHP to work with Apache 2.0.x on Windows.
- One is to use the CGI binary the other is to use the Apache module DLL.
- In either case you need to edit your httpd.conf to configure Apache to
- work with PHP and then restart the server.
-
- Note: Remember that when adding path values in the Apache
- configuration files on Windows, all backslashes such as
- c:\directory\file.ext must be converted to forward slashes, as
- c:/directory/file.ext. A trailing slash may also be necessary for
- directories.
- __________________________________________________________________
-
-Installing as a CGI binary
-
- You need to insert these three lines to your Apache httpd.conf
- configuration file to set up the CGI binary:
-
- Example 2-5. PHP and Apache 2.0 as CGI
-ScriptAlias /php/ "c:/php/"
-AddType application/x-httpd-php .php
-
-# For PHP 4
-Action application/x-httpd-php "/php/php.exe"
-
-# For PHP 7
-Action application/x-httpd-php "/php/php-cgi.exe"
-
- Warning
-
- By using the CGI setup, your server is open to several possible
- attacks. Please read our CGI security section to learn how to defend
- yourself from those attacks.
- __________________________________________________________________
-
-Installing as an Apache module
-
- You need to insert these two lines to your Apache httpd.conf
- configuration file to set up the PHP module for Apache 2.0:
-
- Example 2-6. PHP and Apache 2.0 as Module
-
-# For PHP 7 do something like this:
-LoadModule php7_module "c:/php/php7apache2.dll"
-AddType application/x-httpd-php .php
-
-# configure the path to php.ini
-PHPIniDir "C:/php"
-
- Note: Remember to substitute your actual path to PHP for the c:/php/
- in the above examples. Take care to use either
- php5apache2.dll in your LoadModule directive and not php5apache.dll
- as the latter ones are designed to run with Apache 1.3.x.
-
- Note: If you want to use content negotiation, read related FAQ.
-
- Warning
-
- Don't mix up your installation with DLL files from different PHP
- versions. You have the only choice to use the DLL's and extensions that
- ship with your downloaded PHP version.
- __________________________________________________________________
-
-Sun, iPlanet and Netscape servers on Microsoft Windows
-
- This section contains notes and hints specific to Sun Java System Web
- Server, Sun ONE Web Server, iPlanet and Netscape server installs of PHP
- on Windows.
-
- From PHP 4.3.3 on you can use PHP scripts with the NSAPI module to
- generate custom directory listings and error pages. Additional
- functions for Apache compatibility are also available. For support in
- current web servers read the note about subrequests.
- __________________________________________________________________
-
-CGI setup on Sun, iPlanet and Netscape servers
-
- To install PHP as a CGI handler, do the following:
-
- * Copy php7ts.dll to your systemroot (the directory where you
- installed Windows)
- * Make a file association from the command line. Type the following
- two lines:
-
-assoc .php=PHPScript
-ftype PHPScript=c:\php\php.exe %1 %*
-
- * In the Netscape Enterprise Administration Server create a dummy
- shellcgi directory and remove it just after (this step creates 5
- important lines in obj.conf and allow the web server to handle
- shellcgi scripts).
- * In the Netscape Enterprise Administration Server create a new mime
- type (Category: type, Content-Type: magnus-internal/shellcgi, File
- Suffix:php).
- * Do it for each web server instance you want PHP to run
-
- More details about setting up PHP as a CGI executable can be found
- here: http://benoit.noss.free.fr/php/install-php.html
- __________________________________________________________________
-
-NSAPI setup on Sun, iPlanet and Netscape servers
-
- To install PHP with NSAPI, do the following:
-
- * Copy php7ts.dll to your systemroot (the directory where you
- installed Windows)
- * Make a file association from the command line. Type the following
- two lines:
-
-assoc .php=PHPScript
-ftype PHPScript=c:\php\php.exe %1 %*
-
- * In the Netscape Enterprise Administration Server create a new mime
- type (Category: type, Content-Type: magnus-internal/x-httpd-php,
- File Suffix: php).
- * Edit magnus.conf (for servers >= 6) or obj.conf (for servers < 6)
- and add the following: You should place the lines after mime types
- init.
-
-Init fn="load-modules" funcs="php7_init,php7_execute,php7_auth_trans" shlib="c:/
-php/sapi/php7nsapi.dll"
-Init fn="php7_init" LateInit="yes" errorString="Failed to initialise PHP!" [php_
-ini="c:/path/to/php.ini"]
-
- The php_ini parameter is optional but with it you
- can place your php.ini in your web server configuration directory.
- * Configure the default object in obj.conf (for virtual server
- classes [Sun Web Server 6.0+] in their vserver.obj.conf): In the
-